Changeset 9166
- Timestamp:
- 01/15/13 15:50:53 (12 years ago)
- Location:
- branches/OaaS
- Files:
-
- 14 added
- 1 deleted
- 49 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/OaaS/HeuristicLab 3.3 Hive.Slave.sln
r8251 r9166 95 95 {7C4B1DE4-FC9A-4448-BCF8-3CB3FA3CB8FA}.Release|x86.Build.0 = Release|x86 96 96 {57E37188-4523-4F8D-8CEF-AE0AA27BB754}.Debug|Any CPU.ActiveCfg = Debug 97 {57E37188-4523-4F8D-8CEF-AE0AA27BB754}.Debug|Any CPU.Build.0 = Debug98 97 {57E37188-4523-4F8D-8CEF-AE0AA27BB754}.Debug|x64.ActiveCfg = Debug 99 98 {57E37188-4523-4F8D-8CEF-AE0AA27BB754}.Debug|x64.Build.0 = Debug … … 119 118 {BA8001DE-E83C-4B1F-8B2E-2695C4222491}.Release|x86.Build.0 = Release|x86 120 119 {C16CA1A6-7AE8-4B87-A6A6-9C290E8B9646}.Debug|Any CPU.ActiveCfg = Debug 121 {C16CA1A6-7AE8-4B87-A6A6-9C290E8B9646}.Debug|Any CPU.Build.0 = Debug122 120 {C16CA1A6-7AE8-4B87-A6A6-9C290E8B9646}.Debug|x64.ActiveCfg = Debug 123 121 {C16CA1A6-7AE8-4B87-A6A6-9C290E8B9646}.Debug|x64.Build.0 = Debug -
branches/OaaS/HeuristicLab 3.3 Services.sln
r8545 r9166 39 39 Release.AspNetCompiler.FixedNames = "false" 40 40 Release.AspNetCompiler.Debug = "False" 41 VWDPort = " 48545"41 VWDPort = "25129" 42 42 VWDVirtualPath = "/Hive-3.3" 43 43 DefaultWebSiteLanguage = "Visual C#" … … 191 191 {F685556B-F6EB-4143-8E7E-662D00FDD299}.Release|x86.Build.0 = Release|x86 192 192 {034C2EE4-E303-4E45-98AB-F0074EC83B81}.Debug|Any CPU.ActiveCfg = Debug 193 {034C2EE4-E303-4E45-98AB-F0074EC83B81}.Debug|Any CPU.Build.0 = Debug194 193 {034C2EE4-E303-4E45-98AB-F0074EC83B81}.Debug|Mixed Platforms.ActiveCfg = Debug 195 194 {034C2EE4-E303-4E45-98AB-F0074EC83B81}.Debug|Mixed Platforms.Build.0 = Debug … … 335 334 {E0095F29-604B-4EE8-9EE8-8187DA3B24F1}.Release|x86.ActiveCfg = Release|Any CPU 336 335 {D6DD768C-707C-415A-B9F8-C1F7668F8560}.Debug|Any CPU.ActiveCfg = Debug|x86 336 {D6DD768C-707C-415A-B9F8-C1F7668F8560}.Debug|Any CPU.Build.0 = Debug|x86 337 337 {D6DD768C-707C-415A-B9F8-C1F7668F8560}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 338 338 {D6DD768C-707C-415A-B9F8-C1F7668F8560}.Debug|Mixed Platforms.Build.0 = Debug|x86 -
branches/OaaS/HeuristicLab.Services.Optimization
- Property svn:ignore
-
old new 2 2 csx 3 3 obj 4 rcf
-
- Property svn:ignore
-
branches/OaaS/HeuristicLab.Services.Optimization.Controller/Azure/DAL.cs
r8958 r9166 6 6 using Microsoft.WindowsAzure; 7 7 using Microsoft.WindowsAzure.StorageClient; 8 using Microsoft.WindowsAzure.ServiceRuntime; 9 using System.Diagnostics; 8 10 9 11 namespace HeuristicLab.Services.Optimization.ControllerService.Azure { … … 98 100 get { 99 101 if (storageAccount == null) { 100 storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting(AzureConstants.CLOUD_SETTINGS_KEY)); 102 try { 103 storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting(AzureConstants.CLOUD_SETTINGS_KEY)); 104 } 105 catch (Exception ex) { 106 Trace.WriteLine(ex.Message); 107 storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=optimizationstorage1;AccountKey=n7Leom8ZFWkof/VQ2a4aRSvwOlX+Gwr3uojQF9CFJw1osmGCV0WwaNC8s7nkZ+qteLduAgW2l75WFpbXrkvG4Q=="); 108 } 101 109 } 102 110 return storageAccount; -
branches/OaaS/HeuristicLab.Services.Optimization.Controller/HL/HLMapper.cs
r8958 r9166 11 11 namespace HeuristicLab.Services.Optimization.ControllerService { 12 12 public interface IScenarioMapper { 13 void MapScenario(OptimizationScenario scenario, IAlgorithm algorithm);13 void MapScenario(OptimizationScenario scenario, out IAlgorithm algorithm); 14 14 } 15 15 … … 18 18 var dv = parameter.Value as DecimalValue; 19 19 return new DoubleValue(dv.Value); 20 } 21 22 public static T Create<T>(Parameter typeParameter) { 23 var type = Type.GetType((typeParameter.Value as TypeValue).Value); 24 return (T)Activator.CreateInstance(type, null); 20 25 } 21 26 -
branches/OaaS/HeuristicLab.Services.Optimization.Controller/HL/HiveMapper.cs
r8958 r9166 7 7 namespace HeuristicLab.Services.Optimization.ControllerService.Model { 8 8 public static class HiveMapper { 9 public static double FindDoubleValue(this InputParameters ip, string what) {9 public static double FindDoubleValue(this ProblemParameters ip, string what) { 10 10 foreach (var param in ip.Items) { 11 11 if (param.Value.Name == what) { -
branches/OaaS/HeuristicLab.Services.Optimization.Controller/HL/HiveScenarioManager.cs
r9062 r9166 20 20 using HeuristicLab.Services.Optimization.ControllerService.Azure; 21 21 using System.Data; 22 using HeuristicLab.Services.Optimization.ControllerService.General; 22 23 23 24 namespace HeuristicLab.Services.Optimization.ControllerService { … … 43 44 private static object lockable; 44 45 private Dictionary<string, IScenarioMapper> mappers = new Dictionary<string, IScenarioMapper>(); 45 private IDataAccessLayer dal = new AzureDataAccessLayer();46 private IDataAccessLayer dal = DataAccessLayerProvider.GetLayer(); 46 47 47 48 public static readonly string SCENARIO_TABLE = "Scenario"; … … 51 52 } 52 53 53 public void DispatchScenario(Model.User user, Model.OptimizationScenario scenario ) {54 Experiment experiment = new Experiment();55 var problem = new TravelingSalesmanProblem();56 var algo = new GeneticAlgorithm();57 algo.Problem = problem;54 public void DispatchScenario(Model.User user, Model.OptimizationScenario scenario, JobExecutionDetails details) { 55 // Experiment experiment = new Experiment(); 56 // var problem = new TravelingSalesmanProblem(); 57 // var algo = new GeneticAlgorithm(); 58 // algo.Problem = problem; 58 59 59 60 IScenarioMapper mapper = GetMapper(scenario); 60 mapper.MapScenario(scenario, algo); 61 62 //experiment.Optimizers.Add(algo); 63 SendExperimentToHive(user, algo); 61 IAlgorithm algo; 62 mapper.MapScenario(scenario, out algo); 63 if (details.Repititions > 1) { 64 BatchRun br = new BatchRun(); 65 //br.Name = details.JobTitle; 66 br.Optimizer = algo; 67 br.Repetitions = details.Repititions; 68 SendExperimentToHive(user, br, details); 69 } 70 else { 71 SendExperimentToHive(user, algo, details); 72 } 64 73 } 65 74 … … 73 82 } 74 83 75 p rivateIScenarioMapper CompileMapper(string scenarioMapper) {84 public static IScenarioMapper CompileMapper(string scenarioMapper) { 76 85 // http://stackoverflow.com/questions/3188882/compile-and-run-dynamic-code-without-generating-exe 77 86 using (var csCodeProvider = new Microsoft.CSharp.CSharpCodeProvider()) { … … 105 114 106 115 private IScenarioMapper GetMapper(Model.OptimizationScenario scenario) { 107 if (!mappers.ContainsKey(scenario.Name)) { 116 var id = scenario.Id; 117 if (!mappers.ContainsKey(id)) { 108 118 lock (lockable) { 109 if (mappers.ContainsKey( scenario.Name))110 return mappers[ scenario.Name];119 if (mappers.ContainsKey(id)) 120 return mappers[id]; 111 121 112 var mapperString = GetMapperFromBlobStore( scenario.Name);122 var mapperString = GetMapperFromBlobStore(id); 113 123 var mapper = CompileMapper(mapperString); 114 124 115 mappers[ scenario.Name] = mapper;125 mappers[id] = mapper; 116 126 return mapper; 117 127 } // lock … … 120 130 } 121 131 122 private void MapExperiment(Model.OptimizationScenario scenario, IAlgorithm algorithm) {132 private void MapExperiment(Model.OptimizationScenario scenario, out IAlgorithm algorithm) { 123 133 IScenarioMapper mapper = GetMapper(scenario); 124 mapper.MapScenario(scenario, algorithm); 125 } 126 127 private void SendExperimentToHive(Model.User user, IAlgorithm exp) { 134 mapper.MapScenario(scenario, out algorithm); 135 } 136 137 private void ConfigureHive(Model.User user) { 138 HiveServiceLocator.Instance.Username = user.Username; 139 HiveServiceLocator.Instance.Password = user.Password; 140 HiveServiceLocator.Instance.EndpointConfigurationName = Configuration.HiveEndpointName; 141 } 142 143 private void SendExperimentToHive(Model.User user, IOptimizer exp, JobExecutionDetails details) { 128 144 var job = new RefreshableJob(); 129 145 job.IsAllowedPrivileged = true; 130 job.Job.Name = "Web Scheduled Traveling Salesman Job"; 131 job.Job.ResourceNames = "TESTGROUP"; 132 job.RefreshAutomatically = false; 146 job.Job.Name = details.JobTitle; 147 job.Job.ResourceNames = details.Group; 148 job.RefreshAutomatically = false; 149 if (exp.ExecutionState != ExecutionState.Prepared) { 150 exp.Prepare(); 151 } 133 152 job.HiveTasks.Add(new OptimizerHiveTask(exp)); 134 HiveServiceLocator.Instance.Username = user.Username; 135 HiveServiceLocator.Instance.Password = user.Password; 136 HiveServiceLocator.Instance.EndpointConfigurationName = "WSHttpBinding_IHiveService"; 153 ConfigureHive(user); 137 154 138 155 HiveClient.StartJob((ex) => { … … 145 162 146 163 public IList<Model.Job> GetJobs(User user) { 147 HiveServiceLocator.Instance.Username = user.Username; 148 HiveServiceLocator.Instance.Password = user.Password; 149 HiveServiceLocator.Instance.EndpointConfigurationName = "WSHttpBinding_IHiveService"; 164 ConfigureHive(user); 150 165 var jobsLoaded = HiveServiceLocator.Instance.CallHiveService<IEnumerable<HeuristicLab.Clients.Hive.Job>>(s => s.GetJobs()); 151 166 IList<Model.Job> jobs = new List<Model.Job>(); 152 167 153 168 foreach (var job in jobsLoaded) { 154 169 jobs.Add(ConvertJob(user, job)); … … 163 178 if (job.CalculatingCount > 0) 164 179 state = JobState.Calculating; 165 else if (job.JobCount == job.FinishedCount)180 else if (job.JobCount > 0 && job.JobCount == job.FinishedCount) 166 181 state = JobState.Finished; 167 182 else 168 183 state = JobState.Waiting; 169 /*var jobTasks = HiveServiceLocator.Instance.CallHiveService<IEnumerable<HeuristicLab.Clients.Hive.LightweightTask>>(s => s.GetLightweightJobTasks(job.Id));170 171 foreach (var task in jobTasks) {172 switch (task.State) {173 case TaskState.Aborted:174 state = JobState.Aborted;175 break;176 case TaskState.Failed:177 state = JobState.Failed;178 break;179 }180 }181 if (!state.HasValue) {182 if (job.CalculatingCount > 0)183 state = JobState.Calculating;184 else if (waitingJobs > 0)185 state = JobState.Waiting;186 else187 state = JobState.Finished;188 }*/189 184 return new Model.Job() { Id = job.Id.ToString(), Name = job.Name, Resource = job.ResourceNames, State = state.Value, DateCreated = job.DateCreated }; 190 185 } … … 192 187 193 188 public Model.Job GetJob(User user, string id) { 194 HiveServiceLocator.Instance.Username = user.Username; 195 HiveServiceLocator.Instance.Password = user.Password; 196 HiveServiceLocator.Instance.EndpointConfigurationName = "WSHttpBinding_IHiveService"; 189 ConfigureHive(user); 197 190 var guid = Guid.Parse(id); 198 191 return ConvertJob(user, HiveServiceLocator.Instance.CallHiveService<HeuristicLab.Clients.Hive.Job>(s => s.GetJob(guid))); … … 201 194 202 195 public void DeleteJob(User user, string id) { 203 HiveServiceLocator.Instance.Username = user.Username; 204 HiveServiceLocator.Instance.Password = user.Password; 205 HiveServiceLocator.Instance.EndpointConfigurationName = "WSHttpBinding_IHiveService"; 196 ConfigureHive(user); 206 197 var guid = Guid.Parse(id); 207 198 HiveServiceLocator.Instance.CallHiveService(s => s.DeleteJob(guid)); … … 209 200 210 201 public IList<Model.Run> GetJobResults(User user, string id) { 211 HiveServiceLocator.Instance.Username = user.Username; 212 HiveServiceLocator.Instance.Password = user.Password; 213 HiveServiceLocator.Instance.EndpointConfigurationName = "WSHttpBinding_IHiveService"; 202 ConfigureHive(user); 214 203 var guid = Guid.Parse(id); 215 204 var jobTasks = HiveServiceLocator.Instance.CallHiveService<IEnumerable<HeuristicLab.Clients.Hive.LightweightTask>>(s => s.GetLightweightJobTasks(guid)); -
branches/OaaS/HeuristicLab.Services.Optimization.Controller/HL/ScenarioParser.cs
r8958 r9166 9 9 using HeuristicLab.Services.Optimization.ControllerService.Azure; 10 10 using HeuristicLab.Services.Optimization.ControllerService.Interfaces; 11 using System.Diagnostics; 11 12 12 13 namespace HeuristicLab.Services.Optimization.ControllerService { … … 15 16 private static object lockable = new object(); 16 17 17 private IDataAccessLayer dal = new AzureDataAccessLayer();18 private IDataAccessLayer dal = DataAccessLayerProvider.GetLayer(); 18 19 19 20 public IList<Model.OptimizationScenario> Scenarios { … … 32 33 public Model.OptimizationScenario GetByName(string name) { 33 34 foreach (var scen in Scenarios) { 34 if (scen. Name== name) {35 if (scen.Id == name) { 35 36 return scen; 36 37 } … … 115 116 } */ 116 117 118 private Model.Problem ParseProblem(XmlReader reader) { 119 var problem = new Model.Problem(); 120 while (reader.Read()) { 121 if (reader.NodeType == XmlNodeType.EndElement) 122 break; 123 if (reader.Name == "parameters") 124 problem.Parameters.Items = ParseParameters(reader); 125 } 126 return problem; 127 } 128 129 private void ParseAlgorithms(out IList<Model.Algorithm> algos, XmlReader reader) { 130 algos = new List<Model.Algorithm>(); 131 var depth = reader.Depth; 132 do { 133 if (reader.Name == "algorithm" && reader.Depth == depth) { 134 var innerAlg = new Model.Algorithm(); 135 algos.Add(innerAlg); 136 137 innerAlg.Mapper = reader.GetAttribute("mapper"); 138 reader.Read(); 139 for (;;) { 140 if (reader.Name == "algorithm" && reader.NodeType == XmlNodeType.EndElement) 141 break; 142 143 if (reader.Name == "parameters" && reader.NodeType == XmlNodeType.Element) { 144 innerAlg.Parameters.Items = ParseParameters(reader); 145 continue; 146 } 147 else if (reader.Name == "problem" && reader.NodeType == XmlNodeType.Element) { 148 innerAlg.Problem = ParseProblem(reader); 149 continue; 150 } 151 else if (reader.Name == "algorithm" && reader.NodeType == XmlNodeType.Element) { 152 IList<Model.Algorithm> childAlgos; 153 ParseAlgorithms(out childAlgos, reader); 154 innerAlg.ChildAlgorithms = childAlgos; 155 //TODO: Test with child algorithms 156 continue; 157 } 158 reader.Read(); 159 } 160 } 161 } while (reader.Read() && reader.Depth >= depth); 162 } 163 164 private Model.OptimizationScenario ParseScenarioElement(XmlReader reader) { 165 var scenario = new Model.OptimizationScenario(); 166 var depth = reader.Depth; 167 while (reader.Depth >= depth) { 168 if (reader.Name == "scenario" && reader.NodeType == XmlNodeType.EndElement) 169 break; 170 171 if (reader.Name == "name") { 172 scenario.Id = reader.ReadElementContentAsString(); 173 continue; 174 } 175 else if (reader.Name == "algorithm") { 176 IList<Model.Algorithm> algos; 177 ParseAlgorithms(out algos, reader); 178 scenario.Algorithm = algos; 179 continue; 180 } 181 reader.Read(); 182 } 183 return scenario; 184 } 185 117 186 private Model.OptimizationScenario ParseScenario(StringReader str) { 118 187 // Set the validation settings. … … 120 189 var settings = GetSettings(); 121 190 settings.ValidationEventHandler += (sender, args) => { 122 Console.WriteLine(args.Message);191 Trace.WriteLine(args.Message); 123 192 isErrorPresent = true; 124 193 }; 125 Model.OptimizationScenario scenario = null; 194 Model.OptimizationScenario scenario = null; 126 195 using (var reader = XmlReader.Create(str, settings)) { 127 while (! isErrorPresent && !reader.EOF) {196 while (!reader.EOF) { 128 197 if (reader.Name == "scenario" && reader.NodeType == XmlNodeType.Element) { 129 scenario = new Model.OptimizationScenario(); 130 scenario.ProblemType = reader.GetAttribute("mapper"); 131 scenario.ProblemType = reader.GetAttribute("algorithmType"); 132 scenario.ProblemType = reader.GetAttribute("problemType"); 133 } 134 else if (reader.Name == "name") { 135 scenario.Name = reader.ReadElementContentAsString(); 136 continue; 137 } 138 else if (reader.Name == "problemParameters") { 139 IList<Model.Parameter> problemParameters = ParseParameters(reader); 140 foreach (var param in problemParameters) 141 scenario.InputParameters.Items.Add(param); 142 } 143 else if (reader.Name == "algorithmParameters") { 144 IList<Model.Parameter> algoParameters = ParseParameters(reader); 145 foreach (var param in algoParameters) 146 scenario.AlgorithmParameters.Items.Add(param); 198 scenario = ParseScenarioElement(reader); 147 199 } 148 200 reader.Read(); … … 185 237 IList<Model.Parameter> parameters = new List<Model.Parameter>(); 186 238 while (reader.Read()) { 187 if (reader.Name .EndsWith("Parameters"))239 if (reader.Name == "parameters" && reader.NodeType == XmlNodeType.EndElement) 188 240 break; 189 241 // parse parameter 190 if (reader. Depth == 2 && reader.Name == "param" && reader.NodeType == XmlNodeType.Element) {242 if (reader.Name == "param" && reader.NodeType == XmlNodeType.Element) { 191 243 var param = new Model.Parameter(); 192 244 var typeAtt = reader.GetAttribute("type"); -
branches/OaaS/HeuristicLab.Services.Optimization.Controller/HeuristicLab.Services.Optimization.ControllerService.csproj
r9062 r9166 36 36 <HintPath>..\bin\ALGLIB-3.5.0.dll</HintPath> 37 37 </Reference> 38 <Reference Include="HeuristicLab.ALGLIB-3.5.0"> 39 <HintPath>..\bin\HeuristicLab.ALGLIB-3.5.0.dll</HintPath> 40 </Reference> 41 <Reference Include="HeuristicLab.Algorithms.Benchmarks-3.3"> 42 <HintPath>..\bin\HeuristicLab.Algorithms.Benchmarks-3.3.dll</HintPath> 43 </Reference> 38 44 <Reference Include="HeuristicLab.Algorithms.GeneticAlgorithm-3.3"> 39 45 <HintPath>..\bin\HeuristicLab.Algorithms.GeneticAlgorithm-3.3.dll</HintPath> … … 92 98 <HintPath>..\bin\HeuristicLab.Operators-3.3.dll</HintPath> 93 99 </Reference> 100 <Reference Include="HeuristicLab.Operators.Views.GraphVisualization-3.3"> 101 <HintPath>..\bin\HeuristicLab.Operators.Views.GraphVisualization-3.3.dll</HintPath> 102 </Reference> 94 103 <Reference Include="HeuristicLab.Optimization-3.3"> 95 104 <HintPath>..\HeuristicLab.Optimization\3.3\obj\Debug\HeuristicLab.Optimization-3.3.dll</HintPath> … … 129 138 <SpecificVersion>False</SpecificVersion> 130 139 <HintPath>..\bin\HeuristicLab.Selection-3.3.dll</HintPath> 140 </Reference> 141 <Reference Include="HeuristicLab.SequentialEngine-3.3"> 142 <HintPath>..\bin\HeuristicLab.SequentialEngine-3.3.dll</HintPath> 131 143 </Reference> 132 144 <Reference Include="HeuristicLab.Tracing-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL"> … … 153 165 <ItemGroup> 154 166 <Compile Include="Azure\DAL.cs" /> 155 <Compile Include=" HL\HiveScenarioManagerOld.cs" />167 <Compile Include="General\Configuration.cs" /> 156 168 <Compile Include="HL\HiveMapper.cs" /> 157 169 <Compile Include="HL\HiveScenarioManager.cs" /> … … 161 173 <Compile Include="Interfaces\IScenarioManager.cs" /> 162 174 <Compile Include="Interfaces\Model\ControllerModel.cs" /> 175 <Compile Include="Mockup\MockupDAL.cs" /> 176 <Compile Include="Mockup\MockupScenarioManager.cs" /> 163 177 <Compile Include="PlaceholderControllerService.cs" /> 164 178 <Compile Include="Properties\AssemblyInfo.cs" /> … … 172 186 <None Include="packages.config" /> 173 187 </ItemGroup> 188 <ItemGroup /> 174 189 <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 175 190 <PropertyGroup> -
branches/OaaS/HeuristicLab.Services.Optimization.Controller/Interfaces/DAL.cs
r8958 r9166 27 27 IBlobDao CreateBlobDao(); 28 28 } 29 30 public static class DataAccessLayerProvider { 31 private static IDataAccessLayer layer = new Azure.AzureDataAccessLayer(); 32 //private static IDataAccessLayer layer = new Mockup.MockupDataAccessLayer(); 33 34 public static IDataAccessLayer GetLayer() { 35 return layer; 36 } 37 } 29 38 } 30 39 -
branches/OaaS/HeuristicLab.Services.Optimization.Controller/Interfaces/IControllerService.cs
r8958 r9166 20 20 21 21 [OperationContract] 22 void ScheduleOptimizationScenario(User user, OptimizationScenario scenario );22 void ScheduleOptimizationScenario(User user, OptimizationScenario scenario, JobExecutionDetails details); 23 23 24 24 [OperationContract] -
branches/OaaS/HeuristicLab.Services.Optimization.Controller/Interfaces/IScenarioManager.cs
r8958 r9166 7 7 namespace HeuristicLab.Services.Optimization.ControllerService.Interfaces { 8 8 public interface IScenarioManager { 9 void DispatchScenario(User user, OptimizationScenario scenario );9 void DispatchScenario(User user, OptimizationScenario scenario, JobExecutionDetails details); 10 10 IList<Job> GetJobs(User user); 11 11 Job GetJob(User user, string id); -
branches/OaaS/HeuristicLab.Services.Optimization.Controller/Interfaces/Model/ControllerModel.cs
r9062 r9166 45 45 public string[] RowNames { get; set; } 46 46 47 public void CopyRow(int index) { 48 var newData = new double[Value.Length + 1][]; 49 var copyRow = new double[Value[index].Length]; 50 for (var i = 0; i < copyRow.Length; i++) { 51 copyRow[i] = Value[index][i]; 52 } 53 for (var i = 0; i < newData.Length; i++) { 54 if (i < index) { 55 newData[i] = Value[i]; 56 } 57 else if (i == index) { 58 newData[i] = copyRow; 59 } 60 else if (i > index) { 61 newData[i] = Value[i - 1]; 62 } 63 } 64 Value = newData; 65 } 66 67 public void DeleteRow(int index) { 68 if (Value.Length == 1) 69 return; 70 71 var newData = new double[Value.Length - 1][]; 72 for (var i = 0; i < Value.Length; i++) { 73 if (i < index) { 74 newData[i] = Value[i]; 75 } 76 else if (i > index) { 77 newData[i - 1] = Value[i]; 78 } 79 } 80 Value = newData; 81 } 82 47 83 public override bool TrySetFromString(string input) { 48 84 var splitted = input.Split(':'); … … 61 97 return false; 62 98 // very, very buggy 63 if (i >= Value.Length || j >= Value[0].Length ) {99 /*if (i >= Value.Length || j >= Value[0].Length ) { 64 100 double[][] valueArr = new double[i >= Value.GetLength(0) ? i : Value.GetLength(0)][]; 65 101 for (int k = 0; k < Value.Length; k++) { … … 70 106 } 71 107 Value = valueArr; 72 } 108 }*/ 73 109 74 110 Value[i][j] = value; … … 186 222 187 223 [DataContract] 188 public class InputParameters {224 public class ProblemParameters { 189 225 private IList<Parameter> items = new List<Parameter>(); 190 226 … … 226 262 227 263 [DataContract] 264 public class Problem { 265 public Problem() { Parameters = new ProblemParameters(); } 266 267 [DataMember] 268 public ProblemParameters Parameters { get; set; } 269 270 [DataMember] 271 public string Class { get; set; } 272 } 273 274 [DataContract] 275 public class Algorithm { 276 public Algorithm() { Parameters = new AlgorithmParameters(); } 277 278 [DataMember] 279 public AlgorithmParameters Parameters { get; set; } 280 281 [DataMember] 282 public Problem Problem{ get; set; } 283 284 [DataMember] 285 public IList<Algorithm> ChildAlgorithms { get; set; } 286 287 [DataMember] 288 public string Class { get; set; } 289 290 [DataMember] 291 public string Mapper { get; set; } 292 } 293 294 [DataContract] 228 295 public class OptimizationScenario { 229 296 [DataMember] 297 public string Id { get; set; } 298 299 [DataMember] 300 public IList<Algorithm> Algorithm { get; set; } 301 302 public Algorithm FirstAlgorithm { get { return Algorithm.FirstOrDefault(); } } 303 } 304 305 [DataContract] 306 public class Experiment { 307 [DataMember] 308 public IList<OptimizationScenario> Scenarios { get; set; } 309 310 public Experiment() { 311 Scenarios = new List<OptimizationScenario>(); 312 } 313 } 314 315 [DataContract] 316 public enum JobState { 317 [EnumMember] 318 Waiting, 319 [EnumMember] 320 Calculating, 321 [EnumMember] 322 Aborted, 323 [EnumMember] 324 Failed, 325 [EnumMember] 326 Finished 327 } 328 329 [DataContract] 330 public class JobExecutionDetails { 331 [DataMember] 332 public int Repititions { get; set; } 333 334 [DataMember] 335 public string JobTitle { get; set; } 336 337 [DataMember] 338 public string Group { get; set; } 339 } 340 341 [DataContract] 342 public class Job { 343 [DataMember] 344 public string Id { get; set; } 345 346 [DataMember] 347 public JobState State { get; set; } 348 349 [DataMember] 230 350 public string Name { get; set; } 231 351 232 352 [DataMember] 233 public string ProblemType { get; set; } 234 235 [DataMember] 236 public string AlgorithmType { get; set; } 237 238 [DataMember] 239 public string MapperType { get; set; } 240 241 private InputParameters inputParams = new InputParameters(); 242 243 [DataMember] 244 public InputParameters InputParameters { 245 get { return inputParams; } 246 set { inputParams = value; } 247 } 248 249 250 private AlgorithmParameters algorithmParameters = new AlgorithmParameters(); 251 252 [DataMember] 253 public AlgorithmParameters AlgorithmParameters { 254 get { return algorithmParameters; } 255 set { algorithmParameters = value; } 256 } 257 } 258 259 [DataContract] 260 public enum JobState { 261 [EnumMember] 262 Waiting, 263 [EnumMember] 264 Calculating, 265 [EnumMember] 266 Aborted, 267 [EnumMember] 268 Failed, 269 [EnumMember] 270 Finished 271 } 272 273 [DataContract] 274 public class Job { 353 public string Resource { get; set; } 354 355 [DataMember] 356 public DateTime DateCreated { get; set; } 357 } 358 359 [DataContract] 360 public class Run { 275 361 [DataMember] 276 362 public string Id { get; set; } 277 363 278 364 [DataMember] 279 public JobState State { get; set; }280 281 [DataMember]282 365 public string Name { get; set; } 283 366 284 367 [DataMember] 285 public string Resource { get; set; }286 287 [DataMember]288 public DateTime DateCreated { get; set; }289 }290 291 [DataContract]292 public class Run {293 [DataMember]294 public string Id { get; set; }295 296 [DataMember]297 public string Name { get; set; }298 299 [DataMember]300 368 public IList<Parameter> Results { get; set; } 301 369 } -
branches/OaaS/HeuristicLab.Services.Optimization.Controller/PlaceholderControllerService.cs
r8958 r9166 51 51 this.scenarios = new List<Model.OptimizationScenario>() { tsp };*/ 52 52 //hiveManager.DispatchScenario(tsp); 53 //hiveManager = new MockupScenarioManager(); 53 54 hiveManager = new HiveScenarioManager(); 54 55 scenarios = parser.Scenarios; … … 63 64 public Model.OptimizationScenario GetOptimizationScenarioByName(string name) { 64 65 var scen = (from e in scenarios 65 where e. Name== name66 where e.Id == name 66 67 select e).FirstOrDefault(); 67 68 return scen; 68 69 } 69 70 70 public void ScheduleOptimizationScenario(Model.User user, Model.OptimizationScenario scenario ) {71 hiveManager.DispatchScenario(user, scenario );71 public void ScheduleOptimizationScenario(Model.User user, Model.OptimizationScenario scenario, JobExecutionDetails details) { 72 hiveManager.DispatchScenario(user, scenario, details); 72 73 } 73 74 … … 97 98 return false; 98 99 } 99 var added = hiveManager.AddScenario(user, scenario. Name, scenarioXml, scenarioMapper);100 var added = hiveManager.AddScenario(user, scenario.Id, scenarioXml, scenarioMapper); 100 101 if (added) 101 102 scenarios.Add(scenario); … … 114 115 public IEnumerable<string> GetOptimizationScenarioNames() { 115 116 return (from e in scenarios 116 select e. Name).AsEnumerable();117 select e.Id).AsEnumerable(); 117 118 } 118 119 } -
branches/OaaS/HeuristicLab.Services.Optimization.ControllerService.Tests/HeuristicLab.Services.Optimization.ControllerService.Tests.csproj
r8817 r9166 40 40 <HintPath>..\bin\ALGLIB-3.5.0.dll</HintPath> 41 41 </Reference> 42 <Reference Include="HeuristicLab.Algorithms.Benchmarks-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL"> 43 <SpecificVersion>False</SpecificVersion> 44 <HintPath>..\bin\HeuristicLab.Algorithms.Benchmarks-3.3.dll</HintPath> 45 </Reference> 42 46 <Reference Include="HeuristicLab.Algorithms.GeneticAlgorithm-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL"> 43 47 <SpecificVersion>False</SpecificVersion> -
branches/OaaS/HeuristicLab.Services.Optimization.ControllerService.Tests/Program.cs
r8817 r9166 12 12 using HeuristicLab.Persistence.Core; 13 13 using HeuristicLab.Core; 14 using HeuristicLab.Optimization; 14 15 15 16 namespace HeuristicLab.Services.Optimization.ControllerService.Tests { … … 17 18 static void Main(string[] args) { 18 19 Console.WriteLine(AppDomain.CurrentDomain.BaseDirectory); 19 //TestScenarioParser();20 TestCodeDOM();20 TestScenarioParser(); 21 //TestCodeDOM(); 21 22 //TestPython(); 22 23 //TestOtis(); … … 65 66 cp.ReferencedAssemblies.Add("System.dll"); 66 67 67 tsp.BestKnownQuality = HLMapper.ConvertToDoubleValue(scen. InputParameters.FindByName("BestKnownQuality"));68 tsp.BestKnownQuality = HLMapper.ConvertToDoubleValue(scen.FirstAlgorithm.Problem.Parameters.FindByName("BestKnownQuality")); 68 69 69 70 var res = csCodeProvider.CompileAssemblyFromSource( … … 120 121 var type = res.CompiledAssembly.GetType("TSPScenarioMapper"); 121 122 var mapper = Activator.CreateInstance(type) as IScenarioMapper; 122 mapper.MapScenario(scen, algo);123 //mapper.MapScenario(scen, algo); 123 124 } 124 125 } … … 217 218 static void TestScenarioParser() { 218 219 ScenarioParser parser = new ScenarioParser(); 219 var scen = parser.GetByName("Traveling Salesman Problem"); 220 TravelingSalesmanProblem tsp = new TravelingSalesmanProblem(); 221 // proceed with mapping between scen and tsp 220 //var scen = parser.GetByName("Traveling Salesman Problem"); 221 var scen = parser.GetByName("Benchmark Algorithm"); 222 223 var mapper = HiveScenarioManager.CompileMapper( 224 @" 225 using System; 226 using System.Collections.Generic; 227 using System.Linq; 228 using System.Text; 229 using HeuristicLab.Data; 230 using HeuristicLab.Services.Optimization.ControllerService.Model; 231 using HeuristicLab.Optimization; 232 using HeuristicLab.Services.Optimization.ControllerService; 233 using HeuristicLab.Algorithms.Benchmarks; 234 using HeuristicLab.Parameters; 235 using HeuristicLab.PluginInfrastructure; 236 237 238 namespace HeuristicLab.Mappers { 239 public class BenchmarkScenarioMapper : IScenarioMapper { 240 public void MapScenario(OptimizationScenario scenario, out IAlgorithm algorithm) { 241 var alg = scenario.FirstAlgorithm; 242 var bm = new BenchmarkAlgorithm(); 243 bm.Benchmark = (IBenchmark) Activator.CreateInstance((from t in ApplicationManager.Manager.GetTypes(typeof(IBenchmark)) 244 where t.Name == HLMapper.GetStringValue(alg.Parameters.FindByName(""Benchmark"")) 245 select t).FirstOrDefault()); 246 ((ValueParameter<IntValue>)bm.Parameters[""ChunkSize""]).Value = HLMapper.ConvertToIntValue(alg.Parameters.FindByName(""ChunkSize"")); 247 ((ValueParameter<DoubleValue>)bm.Parameters[""TimeLimit""]).Value = HLMapper.ConvertToDoubleValue(alg.Parameters.FindByName(""TimeLimit"")); 248 249 algorithm = bm; 222 250 } 223 251 } 224 252 } 253 254 "); 255 IAlgorithm algo; 256 //mapper = new BenchmarkScenarioMapper(); 257 mapper.MapScenario(scen, out algo); 258 // proceed with mapping between scen and tsp 259 } 260 } 261 } -
branches/OaaS/HeuristicLab.Services.Optimization.ControllerService.Tests/mappings/scenario.xsd
r8817 r9166 8 8 <xsd:complexType name="scenarioType"> 9 9 <xsd:sequence maxOccurs="1"> 10 <xsd:element name="name" type="xsd:string"/> 11 <xsd:element name="problemParameters" type="paramsType"/> 12 <xsd:element name="algorithmParameters" type="paramsType"/> 13 </xsd:sequence> 14 <xsd:attribute name="problemType" use="required"/> 15 <xsd:attribute name="algorithmType" use="required"/> 16 <xsd:attribute name="mapper" use="required"/> 10 <xsd:element name="name" minOccurs="1" type="xsd:string"/> 11 <xsd:element name="algorithm" minOccurs="1" maxOccurs="unbounded" type="algorithmType"/> 12 </xsd:sequence> 17 13 </xsd:complexType> 14 15 <xsd:complexType name="algorithmType"> 16 <xsd:sequence maxOccurs="1"> 17 <xsd:element name="parameters" type="paramsType"/> 18 <xsd:element name="problem" minOccurs="0" type="problemType"/> 19 <xsd:element name="algorithm" minOccurs="0" maxOccurs="unbounded" type="algorithmType"/> 20 </xsd:sequence> 21 <xsd:attribute name="mapper" use="required"/> 22 </xsd:complexType> 23 24 <xsd:complexType name="problemType"> 25 <xsd:sequence maxOccurs="1"> 26 <xsd:element name="parameters" type="paramsType"/> 27 </xsd:sequence> 28 <xsd:attribute name="class"/> 29 </xsd:complexType> 18 30 19 31 <xsd:complexType name="paramsType"> 20 32 <xsd:sequence> 21 <xsd:element name="param" type="parameterType" minOccurs=" 1" maxOccurs="unbounded"/>33 <xsd:element name="param" type="parameterType" minOccurs="0" maxOccurs="unbounded"/> 22 34 </xsd:sequence> 23 35 </xsd:complexType> -
branches/OaaS/HeuristicLab.Services.Optimization.ControllerService.Tests/mappings/tsp.xml
r8817 r9166 1 1 <?xml version='1.0'?> 2 <scenario problemType="HeuristicLab.Problems.TravelingSalesman.TravelingSalesman" 3 algorithmType="HeuristicLab.Algorithms.GeneticAlgorithm" 4 xmlns="urn:scenario-schema" 5 mapper="HeuristicLab.Controllers.HLMapper"> 2 <scenario xmlns="urn:scenario-schema"> 6 3 <name>Traveling Salesman Problem</name> 7 <problemParameters> 8 <param type="Decimal" name="BestKnownQuality" value="6110.0"/> 9 <param type="DecimalVector" name="BestKnownSolution"> 10 <value v1="0"/> 11 <value v1="40"/> 12 <value v1="38"/> 13 </param> 14 <param type="DecimalMatrix" name="Coordinates"> 15 <value v1="334.5909" v2="161.7809"/> 16 <value v1="503.5909" v2="172.7809"/> 17 </param> 18 <param type="Type" name="EvaluatorParameter"> 19 <choice name="HeuristicLab.Problems.TravelingSalesman.TSPRoundedEuclideanPathEvaluator" /> 20 <choice name="HeuristicLab.Problems.TravelingSalesman.TSPGeoPathEvaluator" selected="true"/> 21 <choice name="HeuristicLab.Problems.TravelingSalesman.TSPEuclideanPathEvaluator"/> 22 </param> 23 <param type="Boolean" name="UseDistanceMatrix" value="true"/> 24 </problemParameters> 25 <algorithmParameters> 26 <param type="Type" name="CrossoverParameter"> 27 <choice name="OrderCrossover2"/> 28 <choice name="CosaCrossover" selected="true"/> 29 </param> 30 <param type="Integer" name="Elites" value="1"/> 31 <param type="Integer" name="MaximumGenerations" value="1000"/> 32 <param type="Percent" name="MutationProbability" value="5"/> 33 <param type="Type" name="Mutator"> 34 <choice name="InversionManipulator" selected="true"/> 35 <choice name="ScrambleManipulator"/> 36 </param> 37 <param type="Integer" name="PopulationSize" value="100"/> 38 <param type="Integer" name="Seed" value="100"/> 39 <param type="Type" name="Selector"> 40 <choice name="ProportionalSelector" selected="true"/> 41 <choice name="BestSelector"/> 42 </param> 43 <param type="Boolean" name="SetSeedRandomly" value="true"/> 44 </algorithmParameters> 4 <algorithm mapper="HeuristicLab.Mappers.TSPScenarioMapper"> 5 <parameters> 6 <param type="Type" name="CrossoverParameter"> 7 <choice name="OrderCrossover2"/> 8 <choice name="CosaCrossover" selected="true"/> 9 </param> 10 <param type="Integer" name="Elites" value="1"/> 11 <param type="Integer" name="MaximumGenerations" value="1000"/> 12 <param type="Percent" name="MutationProbability" value="5"/> 13 <param type="Type" name="Mutator"> 14 <choice name="InversionManipulator" selected="true"/> 15 <choice name="ScrambleManipulator"/> 16 </param> 17 <param type="Integer" name="PopulationSize" value="100"/> 18 <param type="Integer" name="Seed" value="100"/> 19 <param type="Type" name="Selector"> 20 <choice name="ProportionalSelector" selected="true"/> 21 <choice name="BestSelector"/> 22 </param> 23 <param type="Boolean" name="SetSeedRandomly" value="true"/> 24 </parameters> 25 <problem> 26 <parameters> 27 <param type="Decimal" name="BestKnownQuality" value="6110.0"/> 28 <param type="DecimalVector" name="BestKnownSolution"> 29 <value v1="0"/> 30 <value v1="40"/> 31 <value v1="38"/> 32 <value v1="60"/> 33 </param> 34 <param type="DecimalMatrix" name="Coordinates"> 35 <value v1="334.5909" v2="161.7809"/> 36 <value v1="503.5909" v2="172.7809"/> 37 <value v1="400.5909" v2="300.7809"/> 38 <value v1="700.5909" v2="700.7809"/> 39 </param> 40 <param type="Type" name="EvaluatorParameter"> 41 <choice name="HeuristicLab.Problems.TravelingSalesman.TSPRoundedEuclideanPathEvaluator" /> 42 <choice name="HeuristicLab.Problems.TravelingSalesman.TSPGeoPathEvaluator" selected="true"/> 43 <choice name="HeuristicLab.Problems.TravelingSalesman.TSPEuclideanPathEvaluator"/> 44 </param> 45 <param type="Boolean" name="UseDistanceMatrix" value="true"/> 46 </parameters> 47 </problem> 48 </algorithm> 45 49 </scenario> -
branches/OaaS/HeuristicLab.Services.Optimization.HiveController
-
Property
svn:ignore
set to
bin
obj
-
Property
svn:ignore
set to
-
branches/OaaS/HeuristicLab.Services.Optimization.Web/Content/Styling.js
r9062 r9166 33 33 show: true, 34 34 placement: 'outsideGrid' 35 }, 36 highlighter: { 37 show: true, 38 sizeAdjust: 7.5 35 39 } 36 40 }); 41 } 42 43 function handleDatatableSelectionChanged(datatable, datarow) { 44 $.ajax({ 45 url: '/chart/GetDatatableContent?datatable=' + datatable + '&datarow=' + datarow, 46 47 success: function (result) { 48 var plot = generatePlot('dataTableGraph', result) 49 plot.replot({ resetAxes: true }); 50 51 var resizer = $("#dataTableGraph").closest('.resizable'); 52 $(resizer).unbind('resizestop'); 53 $(resizer).bind('resizestop', function (event, ui) { 54 var id = $(this).children('div').get(0).id; 55 $("#dataTableGraph").height($(this).height() * 0.96); 56 $("#dataTableGraph").width($(this).width() * 0.96); 57 plot.replot({ resetAxes: true }); 58 }); 59 }, 60 error: function (jqXHR, textStatus, errorThrown) { 61 alert(textStatus); 62 } 63 }); 64 } 65 66 function redrawAccordions() { 67 $(".collapsible").accordion("refresh"); 68 } 69 70 function injectDatatableAnalyzer() { 71 var datatable = null; 72 var row = null; 73 74 // crawl datatables for current run results 75 if ($("#dataTable").length > 0) { 76 $.ajax({ 77 url: '/chart/GetDatatables', 78 79 success: function (result) { 80 $("#dataTable").empty(); 81 $.each(result.Datatables, function (index, tableName) { 82 // http://stackoverflow.com/questions/1801499/how-to-change-options-of-select-with-jquery 83 $("#dataTable").append($("<option></option>").attr("value", tableName).text(tableName)); 84 }); 85 86 // select first row 87 // http://stackoverflow.com/questions/1414276/how-to-make-first-option-of-select-selected-with-jquery 88 $("#dataTable").val($("#dataTable option:first").val()); 89 // fire selection changed event 90 $("#dataTable").change(); 91 }, 92 error: function (jqXHR, textStatus, errorThrown) { 93 alert(textStatus); 94 } 95 }); 96 97 $("#dataTable option:selected").each(function () { 98 datatable = $(this).text(); 99 }); 100 101 $("#dataTable").change(function () { 102 $("#dataTable option:selected").each(function () { 103 datatable = $(this).text(); 104 $.ajax({ 105 url: '/chart/GetRowNames?datatable=' + datatable, 106 107 success: function (result) { 108 $("#dataRow").empty(); 109 $.each(result.RowNames, function (index, rowName) { 110 // http://stackoverflow.com/questions/1801499/how-to-change-options-of-select-with-jquery 111 $("#dataRow").append($("<option></option>").attr("value", rowName).text(rowName)); 112 }); 113 114 // select first row 115 // http://stackoverflow.com/questions/1414276/how-to-make-first-option-of-select-selected-with-jquery 116 $("#dataRow").val($("#dataRow option:first").val()); 117 // fire selection changed event 118 //$("#dataRow").change(); 119 }, 120 error: function (jqXHR, textStatus, errorThrown) { 121 alert(textStatus); 122 } 123 }); 124 }); 125 }); 126 127 $("#dataRow").change(function () { 128 $("#dataRow option:selected").each(function () { 129 row = $(this).text(); 130 handleDatatableSelectionChanged(datatable, row); 131 }); 132 }); 133 } 134 } 135 136 function injectMatrixGraph() { 137 $(".matrix-graph").each(function (i) { 138 var tabable = $(this).closest(".tabable"); 139 var id = this.id; 140 var resizerId = $(this).parent().get(0).id; 141 var indices = retrieveMatrix(id); 142 var graphCreated = false; 143 144 $(tabable).bind('tabsactivate', function (event, ui) { 145 if ($(ui.newPanel[0]).hasClass("resizable") && !graphCreated) { 146 graphCreated = true; 147 var id = $(ui.newPanel[0]).children("div")[0].id; 148 var resizerId = $("#" + id).parent().get(0).id; 149 var indices = retrieveMatrix(id); 150 151 $.ajax({ 152 url: '/Chart/GetMatrixContentForGraph?run=' + indices.runId + '¶meterOffset=' + indices.parameterOffset + "&showMarker=false", 153 154 success: function (result) { 155 var plot = generatePlot(id, result); 156 tabable.bind('tabsshow', function (event, ui) { 157 if (ui.index == 1 && plot._drawCount == 0) { 158 plot.replot(); 159 } 160 redrawAccordions(); 161 }); 162 var resizer = $("#" + id).closest('.resizable'); 163 $(resizer).bind('resizestop', function (event, ui) { 164 var id = $(this).children('div').get(0).id; 165 $("#" + id).height($(this).height() * 0.96); 166 $("#" + id).width($(this).width() * 0.96); 167 plot.replot({ resetAxes: true }); 168 }); 169 }, 170 error: function (jqXHR, textStatus, errorThrown) { 171 alert(textStatus); 172 alert(errorThrown); 173 } 174 }); 175 } 176 }); 177 }); 178 } 179 180 function injectTableModifiers() { 181 // TODO: Make row add / delete via javascript 182 var i = 10 + 20; 183 return i; 37 184 } 38 185 … … 108 255 109 256 try { 110 $(".collapsible").accordion( "resize",111 {257 $(".collapsible").accordion({ 258 heightStyle: "content", 112 259 collapsible: true, 113 260 active: false … … 131 278 $(this).resizable(); 132 279 }); 133 134 $(".matrix-graph").each(function (i) { 135 var tabable = $(this).closest(".tabable"); 136 var id = this.id; 137 var resizerId = $(this).parent().get(0).id; 138 var indices = retrieveMatrix(id); 139 140 $.ajax({ 141 url: '/Chart/GetMatrixContentForGraph?run=' + indices.runId + '¶meterOffset=' + indices.parameterOffset + "&showMarker=false", 142 143 success: function (result) { 144 var plot = generatePlot(id, result); 145 tabable.bind('tabsshow', function (event, ui) { 146 if (ui.index == 1 && plot._drawCount == 0) { 147 plot.replot(); 148 } 149 }); 150 var resizer = $("#"+id).closest('.resizable'); 151 $(resizer).bind('resizestop', function (event, ui) { 152 var id = $(this).children('div').get(0).id; 153 $("#"+id).height($(this).height() * 0.96); 154 $("#" + id).width($(this).width() * 0.96); 155 plot.replot({ resetAxes: true }); 156 }); 157 }, 158 error: function (jqXHR, textStatus, errorThrown) { 159 alert(textStatus); 160 alert(errorThrown); 161 } 162 }); 163 }); 164 } catch (e) { 165 } 280 } catch (e) { 281 } 282 283 injectMatrixGraph(); 284 injectDatatableAnalyzer(); 285 //injectTableModifiers(); 166 286 } 167 287 ); -
branches/OaaS/HeuristicLab.Services.Optimization.Web/Content/jqplot
-
Property
svn:ignore
set to
extras
NDdata
examples
.hg_archival.txt
.hgignore
.hgtags
build.xml
dist.props
-
Property
svn:ignore
set to
-
branches/OaaS/HeuristicLab.Services.Optimization.Web/Content/jqplot/src
-
Property
svn:ignore
set to
changes.txt
-
Property
svn:ignore
set to
-
branches/OaaS/HeuristicLab.Services.Optimization.Web/ControllerService.svc
r8384 r9166 2 2 Language="C#" 3 3 Debug="true" 4 Service="HeuristicLab.Services.Optimization.ControllerService.PlaceholderControllerService" 4 Service="HeuristicLab.Services.Optimization.ControllerService.PlaceholderControllerService" 5 5 %> -
branches/OaaS/HeuristicLab.Services.Optimization.Web/Controllers/ChartController.cs
r9062 r9166 157 157 return Json("error", JsonRequestBehavior.AllowGet); 158 158 } 159 160 [HttpGet] 161 public JsonResult GetDatatableContent(string datatable, string datarow) { 162 try { 163 var model = Session["jobDetails"] as JobDetailsModel; 164 var plotableData = new PlotableData(); 165 166 for (var i=0; i < model.Runs.Count; i++) { 167 foreach (var result in model.Runs[i].Results) { 168 if (result.Value.Name == datatable) { 169 var matrix = result.Value as DecimalMatrix; 170 var index = Array.IndexOf(matrix.RowNames, datarow); 171 plotableData.Series.Add( 172 new SeriesEntry() { 173 Label = "" + (i + 1) + ". Run - " + datatable + " - " + datarow, 174 Values = matrix.Value[index] 175 } 176 ); 177 break; 178 } 179 } 180 } 181 182 return Json(plotableData, JsonRequestBehavior.AllowGet); 183 } 184 catch (Exception e) { 185 Trace.TraceError(e.Message); 186 } 187 Response.StatusCode = 400; 188 Response.Status = "Session timed out"; 189 return Json("error", JsonRequestBehavior.AllowGet); 190 } 191 192 [HttpGet] 193 public JsonResult GetDatatables() { 194 try { 195 var model = Session["jobDetails"] as JobDetailsModel; 196 var dts = new DatatableContainer(); 197 var datatables = new List<string>(); 198 foreach (var param in model.Runs[0].Results) { 199 if (param.Value is DecimalMatrix) { 200 datatables.Add(param.Value.Name); 201 } 202 } 203 204 dts.Datatables = datatables.ToArray(); 205 206 return Json(dts, JsonRequestBehavior.AllowGet); 207 } 208 catch (Exception e) { 209 Trace.TraceError(e.Message); 210 } 211 Response.StatusCode = 400; 212 Response.Status = "Session timed out or "; 213 return Json("error", JsonRequestBehavior.AllowGet); 214 } 215 216 [HttpGet] 217 public JsonResult GetRowNames(string datatable) { 218 var model = Session["jobDetails"] as JobDetailsModel; 219 try { 220 foreach (var param in model.Runs[0].Results) { 221 if (param.Value.Name == datatable) { 222 var matrix = param.Value as DecimalMatrix; 223 224 var rowNames = new RowNameContainer() { 225 RowNames = new List<string>(matrix.RowNames) 226 }; 227 return Json(rowNames, JsonRequestBehavior.AllowGet); 228 } 229 } 230 } 231 catch(Exception ex) { 232 Trace.WriteLine(ex.Message); 233 } 234 Response.StatusCode = 400; 235 Response.Status = "Session timed out"; 236 return Json("error", JsonRequestBehavior.AllowGet); 237 } 159 238 } 160 239 } -
branches/OaaS/HeuristicLab.Services.Optimization.Web/Controllers/OptimizationController.cs
r9062 r9166 10 10 using System.Web.Security; 11 11 using HeuristicLab.Services.Optimization.Web.Models; 12 using HeuristicLab.Services.Optimization.ControllerService.General; 12 13 13 14 namespace HeuristicLab.Services.Optimization.Web.Controllers … … 16 17 public class OptimizationController : Controller 17 18 { 18 public const string DEFAULT_CONTROLLER_ENDPOINT = "WSHttpBinding_IControllerService";19 public static readonly string DEFAULT_CONTROLLER_ENDPOINT = Configuration.ControllerEndpointName; 19 20 20 21 public delegate T ControllerServiceDelegate<T>(IControllerService service); … … 25 26 Response.Redirect("/Account/Logon"); 26 27 27 using (var cf = new ChannelFactory<IControllerService>( OptimizationController.DEFAULT_CONTROLLER_ENDPOINT)) {28 using (var cf = new ChannelFactory<IControllerService>(DEFAULT_CONTROLLER_ENDPOINT)) { 28 29 var credentialBehaviour = cf.Endpoint.Behaviors.Find<ClientCredentials>(); 29 30 credentialBehaviour.UserName.UserName = Membership.GetUser().UserName; … … 38 39 Response.Redirect("/Account/Logon"); 39 40 40 using (var cf = new ChannelFactory<IControllerService>( OptimizationController.DEFAULT_CONTROLLER_ENDPOINT)) {41 using (var cf = new ChannelFactory<IControllerService>(DEFAULT_CONTROLLER_ENDPOINT)) { 41 42 var credentialBehaviour = cf.Endpoint.Behaviors.Find<ClientCredentials>(); 42 43 credentialBehaviour.UserName.UserName = Membership.GetUser().UserName; … … 66 67 }); 67 68 Session["scenario"] = optScenario; 68 return View(optScenario.InputParameters); 69 if (optScenario.FirstAlgorithm.Problem == null) 70 return RedirectToAction("AlgorithmParameters"); 71 return View(optScenario.FirstAlgorithm.Problem.Parameters); 72 } 73 74 public ActionResult ProblemParameters2() { 75 return View("ProblemParameters", (Session["scenario"] as OptimizationScenario).FirstAlgorithm.Problem.Parameters); 69 76 } 70 77 … … 93 100 94 101 [HttpPost] 95 public ActionResult ProblemParameters( InputParameters parameters) {102 public ActionResult ProblemParameters(ProblemParameters parameters) { 96 103 if (ModelState.IsValid) { 97 104 return RedirectToAction("AlgorithmParameters", parameters); … … 101 108 102 109 public ActionResult AlgorithmParameters() { 103 return View((Session["scenario"] as OptimizationScenario). AlgorithmParameters);110 return View((Session["scenario"] as OptimizationScenario).FirstAlgorithm.Parameters); 104 111 } 105 112 … … 117 124 118 125 [HttpPost] 119 public ActionResult ScheduleJob( OptimizationScenario scenario) {126 public ActionResult ScheduleJob(ScheduleJobModel jobModel) { 120 127 using (var cf = new ChannelFactory<IControllerService>(OptimizationController.DEFAULT_CONTROLLER_ENDPOINT)) { 121 128 var credentialBehaviour = cf.Endpoint.Behaviors.Find<ClientCredentials>(); … … 124 131 var controllerProxy = cf.CreateChannel(); 125 132 User u = new User() { Username = Membership.GetUser().UserName, Password = Session["pw"] as string }; 126 controllerProxy.ScheduleOptimizationScenario(u, Session["scenario"] as OptimizationScenario); 133 var scenario = Session["scenario"] as OptimizationScenario; 134 var details = new JobExecutionDetails() { Group = jobModel.Group, JobTitle = jobModel.Name, Repititions = jobModel.Repetitions }; 135 controllerProxy.ScheduleOptimizationScenario(u, scenario, details); 127 136 } 128 137 return RedirectToAction("Index"); 129 138 } 139 // TODO: Add unique identifier for algorithm / input parameters 140 public ActionResult AddRow(int id, string paramName) { 141 var os = Session["scenario"] as OptimizationScenario; 142 var parameter = os.FirstAlgorithm.Problem.Parameters.FindByName(paramName); 143 bool inputParam = true; 144 if (parameter == null) { 145 parameter = os.FirstAlgorithm.Parameters.FindByName(paramName); 146 inputParam = false; 147 } 148 var dm = parameter.Value as DecimalMatrix; 149 dm.CopyRow(id); 150 return inputParam ? View("ProblemParameters", os.FirstAlgorithm.Problem.Parameters) : View("AlgorithmParameters", os.FirstAlgorithm.Parameters); 151 } 152 153 public ActionResult DeleteRow(int id, string paramName) { 154 var os = Session["scenario"] as OptimizationScenario; 155 var parameter = os.FirstAlgorithm.Problem.Parameters.FindByName(paramName); 156 bool inputParam = true; 157 if (parameter == null) { 158 parameter = os.FirstAlgorithm.Parameters.FindByName(paramName); 159 inputParam = false; 160 } 161 var dm = parameter.Value as DecimalMatrix; 162 dm.DeleteRow(id); 163 return inputParam ? View("ProblemParameters", os.FirstAlgorithm.Problem.Parameters) : View("AlgorithmParameters", os.FirstAlgorithm.Parameters); 164 } 130 165 } 131 166 } -
branches/OaaS/HeuristicLab.Services.Optimization.Web/Global.asax.cs
r8506 r9166 32 32 RegisterGlobalFilters(GlobalFilters.Filters); 33 33 RegisterRoutes(RouteTable.Routes); 34 ModelBinders.Binders.Add(typeof(Optimization.ControllerService.Model. InputParameters), new ProblemParametersModelBinder());34 ModelBinders.Binders.Add(typeof(Optimization.ControllerService.Model.ProblemParameters), new ProblemParametersModelBinder()); 35 35 ModelBinders.Binders.Add(typeof(Optimization.ControllerService.Model.AlgorithmParameters), new AlgorithmParametersModelBinder()); 36 36 } -
branches/OaaS/HeuristicLab.Services.Optimization.Web/HeuristicLab.Services.Optimization.Web.csproj
r9062 r9166 105 105 <DependentUpon>Global.asax</DependentUpon> 106 106 </Compile> 107 <Compile Include="Mockup\MockupMembershipProvider.cs" /> 107 108 <Compile Include="Models\AccountModels.cs" /> 108 109 <Compile Include="Models\AdminModels.cs" /> … … 329 330 </ItemGroup> 330 331 <ItemGroup> 331 <Content Include="Views\Shared\EditorTemplates\ InputParameters.cshtml" />332 <Content Include="Views\Shared\EditorTemplates\ProblemParameters.cshtml" /> 332 333 </ItemGroup> 333 334 <ItemGroup> … … 368 369 </ItemGroup> 369 370 <ItemGroup> 370 <Content Include="Views\Shared\DisplayTemplates\ InputParameters.cshtml" />371 <Content Include="Views\Shared\DisplayTemplates\ProblemParameters.cshtml" /> 371 372 </ItemGroup> 372 373 <ItemGroup> … … 386 387 <Content Include="Views\Chart\GenerateChart.cshtml" /> 387 388 <Content Include="Views\Optimization\Copy of JobDetails.cshtml" /> 389 <Content Include="Views\Shared\DisplayTemplates\StringValue.cshtml" /> 388 390 </ItemGroup> 389 391 <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> -
branches/OaaS/HeuristicLab.Services.Optimization.Web/Mappings/scenario.xsd
r8817 r9166 8 8 <xsd:complexType name="scenarioType"> 9 9 <xsd:sequence maxOccurs="1"> 10 <xsd:element name="name" type="xsd:string"/> 11 <xsd:element name="problemParameters" type="paramsType"/> 12 <xsd:element name="algorithmParameters" type="paramsType"/> 13 </xsd:sequence> 14 <xsd:attribute name="problemType" use="required"/> 15 <xsd:attribute name="algorithmType" use="required"/> 16 <xsd:attribute name="mapper" use="required"/> 10 <xsd:element name="name" minOccurs="1" type="xsd:string"/> 11 <xsd:element name="algorithm" minOccurs="1" maxOccurs="unbounded" type="algorithmType"/> 12 </xsd:sequence> 17 13 </xsd:complexType> 14 15 <xsd:complexType name="algorithmType"> 16 <xsd:sequence maxOccurs="1"> 17 <xsd:element name="parameters" type="paramsType"/> 18 <xsd:element name="problem" minOccurs="0" type="problemType"/> 19 <xsd:element name="algorithm" minOccurs="0" maxOccurs="unbounded" type="algorithmType"/> 20 </xsd:sequence> 21 <xsd:attribute name="mapper" use="required"/> 22 </xsd:complexType> 23 24 <xsd:complexType name="problemType"> 25 <xsd:sequence maxOccurs="1"> 26 <xsd:element name="parameters" type="paramsType"/> 27 </xsd:sequence> 28 <xsd:attribute name="class"/> 29 </xsd:complexType> 18 30 19 31 <xsd:complexType name="paramsType"> 20 32 <xsd:sequence> 21 <xsd:element name="param" type="parameterType" minOccurs=" 1" maxOccurs="unbounded"/>33 <xsd:element name="param" type="parameterType" minOccurs="0" maxOccurs="unbounded"/> 22 34 </xsd:sequence> 23 35 </xsd:complexType> -
branches/OaaS/HeuristicLab.Services.Optimization.Web/Mappings/tsp.cs
r8958 r9166 4 4 using System.Text; 5 5 using HeuristicLab.Data; 6 using HeuristicLab.Services.Optimization.ControllerService.Model; 6 using HeuristicLab.Services.Optimization.ControllerService.Model; 7 7 using HeuristicLab.Optimization; 8 8 using HeuristicLab.Services.Optimization.ControllerService; 9 9 using HeuristicLab.Algorithms.GeneticAlgorithm; 10 10 using HeuristicLab.Problems.TravelingSalesman; 11 public class TSPScenarioMapper : IScenarioMapper { 12 public void MapScenario(OptimizationScenario scenario, IAlgorithm algorithm) { 13 Console.WriteLine("Mapping scenario!"); 14 var ga = algorithm as GeneticAlgorithm; 15 var problem = algorithm.Problem as TravelingSalesmanProblem; 16 17 problem.BestKnownQuality = HLMapper.ConvertToDoubleValue(scenario.InputParameters.FindByName("BestKnownQuality")); 18 problem.BestKnownSolution = HLMapper.ConvertToPermutation(scenario.InputParameters.FindByName("BestKnownSolution")); 19 problem.Coordinates = HLMapper.ConvertToDoubleMatrix(scenario.InputParameters.FindByName("Coordinates")); 20 var evalParam = HLMapper.GetStringValue(scenario.InputParameters.FindByName("EvaluatorParameter")); 21 if (evalParam == "HeuristicLab.Problems.TravelingSalesman.TSPRoundedEuclideanPathEvaluator") { 22 problem.EvaluatorParameter.Value = new TSPRoundedEuclideanPathEvaluator(); 11 namespace HeuristicLab.Mappers { 12 public class TSPScenarioMapper : IScenarioMapper { 13 public void MapScenario(OptimizationScenario scenario, out IAlgorithm algorithm) { 14 Console.WriteLine("Mapping scenario!"); 15 var ga = new GeneticAlgorithm(); 16 var problem = new TravelingSalesmanProblem(); 17 ga.Problem = problem; 18 algorithm = ga; 19 20 problem.BestKnownQuality = HLMapper.ConvertToDoubleValue(scenario.FirstAlgorithm.Problem.Parameters.FindByName("BestKnownQuality")); 21 problem.BestKnownSolution = HLMapper.ConvertToPermutation(scenario.FirstAlgorithm.Problem.Parameters.FindByName("BestKnownSolution")); 22 problem.Coordinates = HLMapper.ConvertToDoubleMatrix(scenario.FirstAlgorithm.Problem.Parameters.FindByName("Coordinates")); 23 var evalParam = HLMapper.GetStringValue(scenario.FirstAlgorithm.Problem.Parameters.FindByName("EvaluatorParameter")); 24 if (evalParam == "HeuristicLab.Problems.TravelingSalesman.TSPRoundedEuclideanPathEvaluator") { 25 problem.EvaluatorParameter.Value = new TSPRoundedEuclideanPathEvaluator(); 26 } 27 else if (evalParam == "HeuristicLab.Problems.TravelingSalesman.TSPGeoPathEvaluator") { 28 problem.EvaluatorParameter.Value = new TSPGeoPathEvaluator(); 29 } 30 else { 31 problem.EvaluatorParameter.Value = new TSPEuclideanPathEvaluator(); 32 } 33 problem.UseDistanceMatrix = HLMapper.ConvertToBoolValue(scenario.FirstAlgorithm.Problem.Parameters.FindByName("UseDistanceMatrix")); 34 Console.WriteLine("Mapping algorithm..."); 35 ga.Mutator = HLMapper.FindInItemSet<HeuristicLab.Optimization.IManipulator>(ga.MutatorParameter.ValidValues, scenario.FirstAlgorithm.Parameters.FindByName("Mutator")); 36 ga.CrossoverParameter.Value = HLMapper.FindOperator<HeuristicLab.Optimization.ICrossover>(problem, scenario.FirstAlgorithm.Parameters.FindByName("CrossoverParameter")); 37 ga.Elites = HLMapper.ConvertToIntValue(scenario.FirstAlgorithm.Parameters.FindByName("Elites")); 38 ga.MaximumGenerations = HLMapper.ConvertToIntValue(scenario.FirstAlgorithm.Parameters.FindByName("MaximumGenerations")); 39 ga.MutationProbability = HLMapper.ConvertToPercentValue(scenario.FirstAlgorithm.Parameters.FindByName("MutationProbability")); 40 ga.PopulationSize = HLMapper.ConvertToIntValue(scenario.FirstAlgorithm.Parameters.FindByName("PopulationSize")); 41 ga.Seed = HLMapper.ConvertToIntValue(scenario.FirstAlgorithm.Parameters.FindByName("Seed")); 42 ga.Selector = HLMapper.FindInItemSet<HeuristicLab.Optimization.ISelector>(ga.SelectorParameter.ValidValues, scenario.FirstAlgorithm.Parameters.FindByName("Selector")); 43 ga.SetSeedRandomly = HLMapper.ConvertToBoolValue(scenario.FirstAlgorithm.Parameters.FindByName("SetSeedRandomly")); 23 44 } 24 else if (evalParam == "HeuristicLab.Problems.TravelingSalesman.TSPGeoPathEvaluator") {25 problem.EvaluatorParameter.Value = new TSPGeoPathEvaluator();26 }27 else {28 problem.EvaluatorParameter.Value = new TSPEuclideanPathEvaluator();29 }30 problem.UseDistanceMatrix = HLMapper.ConvertToBoolValue(scenario.InputParameters.FindByName("UseDistanceMatrix"));31 Console.WriteLine("Mapping algorithm...");32 ga.Mutator = HLMapper.FindInItemSet<HeuristicLab.Optimization.IManipulator>(ga.MutatorParameter.ValidValues, scenario.AlgorithmParameters.FindByName("Mutator"));33 ga.CrossoverParameter.Value = HLMapper.FindOperator<HeuristicLab.Optimization.ICrossover>(problem, scenario.AlgorithmParameters.FindByName("CrossoverParameter"));34 ga.Elites = HLMapper.ConvertToIntValue(scenario.AlgorithmParameters.FindByName("Elites"));35 ga.MaximumGenerations = HLMapper.ConvertToIntValue(scenario.AlgorithmParameters.FindByName("MaximumGenerations"));36 ga.MutationProbability = HLMapper.ConvertToPercentValue(scenario.AlgorithmParameters.FindByName("MutationProbability"));37 ga.PopulationSize = HLMapper.ConvertToIntValue(scenario.AlgorithmParameters.FindByName("PopulationSize"));38 ga.Seed = HLMapper.ConvertToIntValue(scenario.AlgorithmParameters.FindByName("Seed"));39 ga.Selector = HLMapper.FindInItemSet<HeuristicLab.Optimization.ISelector>(ga.SelectorParameter.ValidValues, scenario.AlgorithmParameters.FindByName("Selector"));40 ga.SetSeedRandomly = HLMapper.ConvertToBoolValue(scenario.AlgorithmParameters.FindByName("SetSeedRandomly"));41 45 } 42 46 } -
branches/OaaS/HeuristicLab.Services.Optimization.Web/Mappings/tsp.xml
r8958 r9166 1 1 <?xml version='1.0'?> 2 <scenario problemType="HeuristicLab.Problems.TravelingSalesman.TravelingSalesman" 3 algorithmType="HeuristicLab.Algorithms.GeneticAlgorithm" 4 xmlns="urn:scenario-schema" 5 mapper="HeuristicLab.Controllers.HLMapper"> 2 <scenario xmlns="urn:scenario-schema"> 6 3 <name>Traveling Salesman Problem</name> 7 <problemParameters> 8 <param type="Decimal" name="BestKnownQuality" value="6110.0"/> 9 <param type="DecimalVector" name="BestKnownSolution"> 10 <value v1="0"/> 11 <value v1="40"/> 12 <value v1="38"/> 13 <value v1="60"/> 14 </param> 15 <param type="DecimalMatrix" name="Coordinates"> 16 <value v1="334.5909" v2="161.7809"/> 17 <value v1="503.5909" v2="172.7809"/> 18 <value v1="400.5909" v2="300.7809"/> 19 <value v1="700.5909" v2="700.7809"/> 20 </param> 21 <param type="Type" name="EvaluatorParameter"> 22 <choice name="HeuristicLab.Problems.TravelingSalesman.TSPRoundedEuclideanPathEvaluator" /> 23 <choice name="HeuristicLab.Problems.TravelingSalesman.TSPGeoPathEvaluator" selected="true"/> 24 <choice name="HeuristicLab.Problems.TravelingSalesman.TSPEuclideanPathEvaluator"/> 25 </param> 26 <param type="Boolean" name="UseDistanceMatrix" value="true"/> 27 </problemParameters> 28 <algorithmParameters> 29 <param type="Type" name="CrossoverParameter"> 30 <choice name="OrderCrossover2"/> 31 <choice name="CosaCrossover" selected="true"/> 32 </param> 33 <param type="Integer" name="Elites" value="1"/> 34 <param type="Integer" name="MaximumGenerations" value="1000"/> 35 <param type="Percent" name="MutationProbability" value="5"/> 36 <param type="Type" name="Mutator"> 37 <choice name="InversionManipulator" selected="true"/> 38 <choice name="ScrambleManipulator"/> 39 </param> 40 <param type="Integer" name="PopulationSize" value="100"/> 41 <param type="Integer" name="Seed" value="100"/> 42 <param type="Type" name="Selector"> 43 <choice name="ProportionalSelector" selected="true"/> 44 <choice name="BestSelector"/> 45 </param> 46 <param type="Boolean" name="SetSeedRandomly" value="true"/> 47 </algorithmParameters> 4 <algorithm mapper="HeuristicLab.Mappers.TSPScenarioMapper"> 5 <parameters> 6 <param type="Type" name="CrossoverParameter"> 7 <choice name="OrderCrossover2"/> 8 <choice name="CosaCrossover" selected="true"/> 9 </param> 10 <param type="Integer" name="Elites" value="1"/> 11 <param type="Integer" name="MaximumGenerations" value="1000"/> 12 <param type="Percent" name="MutationProbability" value="5"/> 13 <param type="Type" name="Mutator"> 14 <choice name="InversionManipulator" selected="true"/> 15 <choice name="ScrambleManipulator"/> 16 </param> 17 <param type="Integer" name="PopulationSize" value="100"/> 18 <param type="Integer" name="Seed" value="100"/> 19 <param type="Type" name="Selector"> 20 <choice name="ProportionalSelector" selected="true"/> 21 <choice name="BestSelector"/> 22 </param> 23 <param type="Boolean" name="SetSeedRandomly" value="true"/> 24 </parameters> 25 <problem> 26 <parameters> 27 <param type="Decimal" name="BestKnownQuality" value="6110.0"/> 28 <param type="DecimalVector" name="BestKnownSolution"> 29 <value v1="0"/> 30 <value v1="40"/> 31 <value v1="38"/> 32 <value v1="60"/> 33 </param> 34 <param type="DecimalMatrix" name="Coordinates"> 35 <value v1="334.5909" v2="161.7809"/> 36 <value v1="503.5909" v2="172.7809"/> 37 <value v1="400.5909" v2="300.7809"/> 38 <value v1="700.5909" v2="700.7809"/> 39 </param> 40 <param type="Type" name="EvaluatorParameter"> 41 <choice name="HeuristicLab.Problems.TravelingSalesman.TSPRoundedEuclideanPathEvaluator" /> 42 <choice name="HeuristicLab.Problems.TravelingSalesman.TSPGeoPathEvaluator" selected="true"/> 43 <choice name="HeuristicLab.Problems.TravelingSalesman.TSPEuclideanPathEvaluator"/> 44 </param> 45 <param type="Boolean" name="UseDistanceMatrix" value="true"/> 46 </parameters> 47 </problem> 48 </algorithm> 48 49 </scenario> -
branches/OaaS/HeuristicLab.Services.Optimization.Web/Models/ChartModels.cs
r9062 r9166 18 18 } 19 19 } 20 21 public class RowNameContainer { 22 private IList<string> rowNames = new List<string>(); 23 24 public IList<string> RowNames { 25 get { return rowNames; } 26 set { rowNames = value; } 27 } 28 } 29 30 public class DatatableContainer { 31 public string[] Datatables { get; set; } 32 } 20 33 } -
branches/OaaS/HeuristicLab.Services.Optimization.Web/Models/OptimizationModels.cs
r9062 r9166 7 7 8 8 namespace HeuristicLab.Services.Optimization.Web.Models { 9 public class ScheduleJobModel { 10 public int Repetitions { get; set; } 11 public string Name { get; set; } 12 public string Group { get; set; } 13 } 9 14 10 15 public class OptimizationModel { … … 41 46 realValue += value.AttemptedValue; 42 47 } 43 var param = (from par in scenario. InputParameters.Items where par.Value.Name == realKey select par).FirstOrDefault();48 var param = (from par in scenario.FirstAlgorithm.Problem.Parameters.Items where par.Value.Name == realKey select par).FirstOrDefault(); 44 49 if (param != null && !param.Value.TrySetFromString(realValue)) { 45 50 bindingContext.ModelState.AddModelError(bindingContext.ModelName, new Exception(string.Format("Unable to parse {0} into destination type {1}", value, param.Type))); 46 51 } 47 52 } 48 return scenario. InputParameters;53 return scenario.FirstAlgorithm.Problem.Parameters; 49 54 } 50 55 } … … 55 60 foreach (var key in controllerContext.RequestContext.HttpContext.Request.Form.AllKeys) { 56 61 var value = bindingContext.ValueProvider.GetValue(key); 57 var param = (from par in scenario. AlgorithmParameters.Items where par.Value.Name == key select par).FirstOrDefault();62 var param = (from par in scenario.FirstAlgorithm.Parameters.Items where par.Value.Name == key select par).FirstOrDefault(); 58 63 if (param != null && !param.Value.TrySetFromString(value.AttemptedValue)) { 59 64 bindingContext.ModelState.AddModelError(bindingContext.ModelName, new Exception(string.Format("Unable to parse {0} into destination type {1}", value, param.Type))); 60 65 } 61 66 } 62 return scenario. AlgorithmParameters;67 return scenario.FirstAlgorithm.Parameters; 63 68 } 64 69 } -
branches/OaaS/HeuristicLab.Services.Optimization.Web/Views/Optimization/AlgorithmParameters.cshtml
r8506 r9166 2 2 3 3 @{ 4 ViewBag.Title = "Algorithm Parameters";4 ViewBag.Title = "Algorithm Parameters"; 5 5 } 6 6 7 7 <h2>Adjust algorithm parameters:</h2> 8 @using (Html.BeginForm( )) {8 @using (Html.BeginForm("AlgorithmParameters", "Optimization")) { 9 9 @Html.ValidationSummary(true) 10 10 <fieldset> -
branches/OaaS/HeuristicLab.Services.Optimization.Web/Views/Optimization/Index.cshtml
r9062 r9166 2 2 3 3 @{ 4 ViewBag.Title = " Index";4 ViewBag.Title = "Optimization-as-a-Service"; 5 5 } 6 6 … … 32 32 <ul> 33 33 @foreach (var itm in Model.Scenarios) { 34 <li>@Html.ActionLink(itm. Name, "ProblemParameters", new { scenario=itm.Name})</li>34 <li>@Html.ActionLink(itm.Id, "ProblemParameters", new { scenario=itm.Id })</li> 35 35 } 36 36 </ul> -
branches/OaaS/HeuristicLab.Services.Optimization.Web/Views/Optimization/JobDetails.cshtml
r9062 r9166 28 28 29 29 <h3>Run details:</h3> 30 @for (int j=0; j < Model.Runs.Count; j++) { 30 <div class="collapsible"> 31 @if (Model.Runs.Count > 1) { 32 <h3>Analyze runs</h3> 33 <div> 34 <div class="resizable ui-widget-content" style="width: 800px; height: 600px;"> 35 <div id="dataTableView" style="width: 96%; height: 96%;"> 36 <form action="#"> 37 <label for="dataTable">DataTable:</label> 38 <select name="dataTable" id="dataTable"></select> 39 <label for="dataRow">DataRow:</label> 40 <select name="dataRow" id="dataRow"></select> 41 <div id="dataTableGraph" style="width: 100%; height: 100%;"></div> 42 </form> 43 </div> 44 </div> 45 </div> 46 } 47 @for (int j = 0; j < Model.Runs.Count; j++) { 31 48 var run = Model.Runs[j]; 32 <p>@run.Name:</p> 49 <h3>@run.Name</h3> 50 <div> 33 51 <table> 34 52 <thead> … … 40 58 <tbody> 41 59 @for (var i = 0; i < run.Results.Count; i++) { 42 var result = run.Results[i];60 var result = run.Results[i]; 43 61 <tr> 44 <td>@ result.Value.Name</td>62 <td>@Html.Label(result.Value.Name, result.Value.Name)</td> 45 63 @if (result.Value is HeuristicLab.Services.Optimization.ControllerService.Model.DecimalMatrix) { 46 64 var matrix = (result.Value as HeuristicLab.Services.Optimization.ControllerService.Model.DecimalMatrix); … … 65 83 </div> 66 84 </td> 67 } 85 } 68 86 else { 69 <td>@((result.Value as HeuristicLab.Services.Optimization.ControllerService.Model.StringValue).Value)</td> 87 <td> 88 @Html.DisplayFor(m => result.Value) 89 </td> 90 <!-- Html.Partial(string.Format("~/Views/Shared/DisplayTemplates/{0}.cshtml", result.Value.GetType().Name), result.Value) --> 91 <!--td>((result.Value as HeuristicLab.Services.Optimization.ControllerService.Model.StringValue).Value)</td--> 70 92 } 71 93 </tr> … … 73 95 </tbody> 74 96 </table> 97 </div> 75 98 } 99 </div> -
branches/OaaS/HeuristicLab.Services.Optimization.Web/Views/Optimization/ProblemParameters.cshtml
r8506 r9166 1 @model HeuristicLab.Services.Optimization.ControllerService.Model. InputParameters1 @model HeuristicLab.Services.Optimization.ControllerService.Model.ProblemParameters 2 2 3 3 @{ 4 ViewBag.Title = "Problem Parameters";4 ViewBag.Title = "Problem Parameters"; 5 5 } 6 6 7 7 <h2>Adjust problem parameters:</h2> 8 8 9 @using (Html.BeginForm( )) {9 @using (Html.BeginForm("ProblemParameters", "Optimization")) { 10 10 @Html.ValidationSummary(true) 11 11 <fieldset> -
branches/OaaS/HeuristicLab.Services.Optimization.Web/Views/Optimization/ScheduleJob.cshtml
r8506 r9166 2 2 3 3 @{ 4 ViewBag.Title = "Schedule Job";4 ViewBag.Title = "Schedule Job"; 5 5 } 6 6 7 <h2>Do you really want to schedule the following job?</h2> 8 9 10 <h3>Problem Parameters:</h3> 11 @Html.DisplayFor(model => Model.InputParameters) 12 7 @using (Html.BeginForm()) { 8 <fieldset> 9 <legend>Scheduling parameters</legend> 10 <div class="editor-label"> 11 <label for="name">Name:</label> 12 </div> 13 <div class="editor-field"> 14 <input id="name" name="Name" type="text" value="Web scheduled job" /> 15 </div> 16 <div class="editor-label"> 17 <label for="repetitions">Repetitions:</label> 18 </div> 19 <div class="editor-field"> 20 <input id="repetitions" name="Repetitions" type="text" value="1" /> 21 </div> 22 <div class="editor-label"> 23 <label for="group">Group:</label> 24 </div> 25 <div class="editor-field"> 26 <input id="group" name="Group" type="text" value="TESTAZURE" /> 27 </div> 28 <div class="editor-field"> 29 <input type="submit" value="Schedule job!" /> 30 </div> 31 </fieldset> 32 } 33 @if (Model.FirstAlgorithm.Problem != null) { 34 <h3>Problem Parameters:</h3> 35 @Html.DisplayFor(model => Model.FirstAlgorithm.Problem.Parameters) 36 } 37 13 38 <h3>Algorithm Parameters:</h3> 14 @Html.DisplayFor(model => Model.AlgorithmParameters) 15 16 @using (Html.BeginForm()) { 17 <p> 18 <input type="submit" value="Schedule job!" /> 19 </p> 20 } 39 @Html.DisplayFor(model => Model.FirstAlgorithm.Parameters) -
branches/OaaS/HeuristicLab.Services.Optimization.Web/Views/Shared/DisplayTemplates/DecimalMatrix.cshtml
r9062 r9166 10 10 @for (int i = 0; i < Model.Value.Length; i++) { 11 11 <tr> 12 @if (Model.RowNames .Length > i) {12 @if (Model.RowNames != null && Model.RowNames.Length > i) { 13 13 <th scope="row">@Model.RowNames[i]</th> 14 14 } -
branches/OaaS/HeuristicLab.Services.Optimization.Web/Views/Shared/EditorTemplates/DecimalMatrix.cshtml
r9062 r9166 19 19 </td> 20 20 } 21 <td><a class="delete-row" href="#">Delete</a></td> 22 <td><input type="submit" name="AddRow" value="Add Row"/></td> 21 <!-- TODO: Add unique identifier for algorithm / input parameters --> 22 <td>@Html.ActionLink("-", "DeleteRow", new { paramName = @Model.Name, id = @i }) </td> 23 <td>@Html.ActionLink("+", "AddRow", new { paramName = @Model.Name, id = @i }) </td> 23 24 </tr> 24 25 } -
branches/OaaS/HeuristicLab.Services.Optimization.Web/Views/Shared/_Layout.cshtml
r9062 r9166 19 19 <script src="@Url.Content("~/Content/jqplot/src/plugins/jqplot.canvasTextRenderer.js")" type="text/javascript"></script> 20 20 <script src="@Url.Content("~/Content/jqplot/src/plugins/jqplot.canvasAxisLabelRenderer.js")" type="text/javascript"></script> 21 <script type="text/javascript" src="@Url.Content("~/Content/jqplot/src/plugins/jqplot.highlighter.js")"></script> 21 22 <script type="text/javascript" src="@Url.Content("~/Content/jqplot/src/plugins/jqplot.barRenderer.js")"></script> 22 23 <script type="text/javascript" src="@Url.Content("~/Content/jqplot/src/plugins/jqplot.categoryAxisRenderer.js")"></script> -
branches/OaaS/HeuristicLab.Services.Optimization.Web/Web.config
r8506 r9166 14 14 </trace> 15 15 <sources> 16 <source name="System.ServiceModel" 17 switchValue="Information, ActivityTracing" 18 propagateActivity="true" > 16 <source name="System.ServiceModel" switchValue="Information, ActivityTracing" propagateActivity="true"> 19 17 <listeners> 20 <add name="xml" />18 <add name="xml" /> 21 19 </listeners> 22 20 </source> 23 21 <source name="System.ServiceModel.MessageLogging"> 24 22 <listeners> 25 <add name="xml" />23 <add name="xml" /> 26 24 </listeners> 27 25 </source> 28 <source name="myUserTraceSource" 29 switchValue="Information, ActivityTracing"> 26 <source name="myUserTraceSource" switchValue="Information, ActivityTracing"> 30 27 <listeners> 31 <add name="xml" />28 <add name="xml" /> 32 29 </listeners> 33 30 </source> 34 31 </sources> 35 32 <sharedListeners> 36 <add name="xml" 37 type="System.Diagnostics.XmlWriterTraceListener" 38 initializeData="C:\logs\Traces.svclog" /> 33 <add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="C:\logs\Traces.svclog" /> 39 34 </sharedListeners> 40 35 </system.diagnostics> … … 42 37 43 38 <connectionStrings> 44 <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" 45 providerName="System.Data.SqlClient" /> 46 <add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=aspnet_eb6c1a930dad4e2e9eaf3dcd73e6f924;Integrated Security=True;MultipleActiveResultSets=True" 47 providerName="System.Data.SqlClient" /> 48 <add name="HeuristicLab.Authentication" connectionString="ADJUST_ME"/> 39 <add name="HeuristicLab.Authentication" connectionString="ADJUST_ME" /> 49 40 </connectionStrings> 50 41 <appSettings> … … 66 57 <forms loginUrl="~/Account/LogOn" timeout="2880" /> 67 58 </authentication> 68 <membership> 69 <providers> 70 <clear/> 71 <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="HeuristicLab.Authentication" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="HeuristicLab.Authentication"/> 59 <membership defaultProvider="AspNetSqlMembershipProvider"> 60 <providers> 61 <clear /> 62 <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="HeuristicLab.Authentication" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="HeuristicLab.Authentication" /> 63 <!-- add applicationName="MockupProvider" name="MockupMembershipProvider" type="HeuristicLab.Services.Optimization.ControllerService.Mockup.MockupMembershipProvider"/ --> 72 64 </providers> 73 65 </membership> … … 79 71 </providers> 80 72 </profile> 81 <roleManager enabled="true" >73 <roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider"> 82 74 <providers> 83 75 <clear /> 84 <add connectionStringName="HeuristicLab.Authentication" applicationName="HeuristicLab.Authentication" 85 name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" />76 <add connectionStringName="HeuristicLab.Authentication" applicationName="HeuristicLab.Authentication" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" /> 77 <!-- add applicationName="MockupProvider" name="MockupRoleProvider" type="HeuristicLab.Services.Optimization.ControllerService.Mockup.MockupRoleProvider" /--> 86 78 </providers> 87 79 </roleManager> … … 101 93 </providers> 102 94 </sessionState> 95 103 96 </system.web> 104 97 <system.webServer> … … 128 121 <system.serviceModel> 129 122 <diagnostics> 130 <messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" maxMessagesToLog="3000" />123 <messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" maxMessagesToLog="3000" /> 131 124 </diagnostics> 132 125 <bindings> 133 126 <wsHttpBinding> 134 127 <binding name="WSHttpBinding_IControllerService" receiveTimeout="00:10:00" sendTimeout="00:10:00" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"> 135 <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />128 <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 136 129 <security mode="Message"> 137 <transport clientCredentialType="Certificate" />138 <message clientCredentialType="UserName" />130 <transport clientCredentialType="Certificate" /> 131 <message clientCredentialType="UserName" /> 139 132 </security> 140 133 </binding> … … 142 135 <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 143 136 <security mode="Message"> 144 <transport clientCredentialType="Certificate" />145 <message clientCredentialType="UserName" />137 <transport clientCredentialType="Certificate" /> 138 <message clientCredentialType="UserName" /> 146 139 </security> 147 140 </binding> … … 152 145 <behavior name="ServiceBehaviour_IControllerService"> 153 146 <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --> 154 <serviceMetadata httpGetEnabled="true" httpsGetEnabled="false" />147 <serviceMetadata httpGetEnabled="true" httpsGetEnabled="false" /> 155 148 <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> 156 <serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true"/> 157 <serviceAuthorization principalPermissionMode="UseAspNetRoles" roleProviderName="AspNetSqlRoleProvider"/> 149 <serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" /> 150 <serviceAuthorization principalPermissionMode="UseAspNetRoles" roleProviderName="AspNetSqlRoleProvider" /> 151 <!--serviceAuthorization principalPermissionMode="UseAspNetRoles" roleProviderName="MockupRoleProvider" /--> 158 152 <serviceCredentials> 159 <serviceCertificate findValue="localhost" x509FindType="FindBySubjectName"/> 160 <userNameAuthentication userNamePasswordValidationMode="MembershipProvider" membershipProviderName="AspNetSqlMembershipProvider"/> 153 <serviceCertificate findValue="localhost" x509FindType="FindBySubjectName" /> 154 <userNameAuthentication userNamePasswordValidationMode="MembershipProvider" membershipProviderName="AspNetSqlMembershipProvider" /> 155 <!--userNameAuthentication userNamePasswordValidationMode="MembershipProvider" membershipProviderName="MockupMembershipProvider" /--> 161 156 </serviceCredentials> 162 <serviceSecurityAudit auditLogLocation="Application" suppressAuditFailure="false" messageAuthenticationAuditLevel="SuccessOrFailure" />163 <serviceThrottling maxConcurrentCalls="100" />164 <dataContractSerializer maxItemsInObjectGraph="2147483647" />157 <serviceSecurityAudit auditLogLocation="Application" suppressAuditFailure="false" messageAuthenticationAuditLevel="SuccessOrFailure" /> 158 <serviceThrottling maxConcurrentCalls="100" /> 159 <dataContractSerializer maxItemsInObjectGraph="2147483647" /> 165 160 </behavior> 166 161 </serviceBehaviors> … … 172 167 </serviceCertificate> 173 168 </clientCredentials> 174 <dataContractSerializer maxItemsInObjectGraph="2147483647" />169 <dataContractSerializer maxItemsInObjectGraph="2147483647" /> 175 170 </behavior> 176 171 </endpointBehaviors> … … 178 173 <services> 179 174 <service behaviorConfiguration="ServiceBehaviour_IControllerService" name="HeuristicLab.Services.Optimization.ControllerService.PlaceholderControllerService"> 180 <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration="" name="MexEndpoint" contract="IMetadataExchange" />181 <endpoint binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IControllerService" name="WSHttpBinding_IControllerService" contract="HeuristicLab.Services.Optimization.ControllerService.IControllerService" />175 <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration="" name="MexEndpoint" contract="IMetadataExchange" /> 176 <endpoint binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IControllerService" name="WSHttpBinding_IControllerService" contract="HeuristicLab.Services.Optimization.ControllerService.IControllerService" /> 182 177 </service> 183 178 </services> 184 179 <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 185 180 <client> 186 <endpoint address="http://localhost:8080/ControllerService.svc" behaviorConfiguration="LocalCertValidation" 187 binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IControllerService" 188 contract="HeuristicLab.Services.Optimization.ControllerService.IControllerService" name="WSHttpBinding_IControllerService"> 189 <identity> 190 <certificate encodedValue="ADJUST_ME" /> 191 </identity> 192 </endpoint> 193 <endpoint address="http://127.0.0.1:81/HiveService.svc" behaviorConfiguration="LocalCertValidation" 194 binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IHiveService" contract="HeuristicLab.Clients.Hive.IHiveService" name="WSHttpBinding_IHiveService"> 195 <identity> 196 <certificate encodedValue="ADJUST_ME" /> 197 </identity> 198 </endpoint> 199 <!-- 200 <endpoint address="http://optimization.cloudapp.net/HiveService.svc" behaviorConfiguration="LocalCertValidation" 201 binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IHiveService" contract="HeuristicLab.Clients.Hive.IHiveService" name="WSHttpBinding_IHiveService"> 202 <identity> 203 <certificate encodedValue="ADJUST_ME" /> 204 </identity> 205 </endpoint> 206 --> 181 182 183 <endpoint address="http://127.0.0.1:8080/ControllerService.svc" behaviorConfiguration="LocalCertValidation" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IControllerService" contract="HeuristicLab.Services.Optimization.ControllerService.IControllerService" name="WSHttpBinding_Local_IControllerService"> 184 <identity> 185 <certificate encodedValue="ADJUST_ME" /> 186 </identity> 187 </endpoint> 188 189 <endpoint address="http://127.0.0.1:81/HiveService.svc" behaviorConfiguration="LocalCertValidation" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IHiveService" contract="HeuristicLab.Clients.Hive.IHiveService" name="WSHttpBinding_Local_IHiveService"> 190 <identity> 191 <certificate encodedValue="ADJUST_ME" /> 192 </identity> 193 </endpoint> 194 195 196 <endpoint address="http://optimization1.cloudapp.net:8080/ControllerService.svc" behaviorConfiguration="LocalCertValidation" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IControllerService" contract="HeuristicLab.Services.Optimization.ControllerService.IControllerService" name="WSHttpBinding_Remote_IControllerService"> 197 <identity> 198 <certificate encodedValue="ADJUST_ME" /> 199 </identity> 200 </endpoint> 201 202 <endpoint address="http://optimization1.cloudapp.net/HiveService.svc" behaviorConfiguration="LocalCertValidation" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IHiveService" contract="HeuristicLab.Clients.Hive.IHiveService" name="WSHttpBinding_Remote_IHiveService"> 203 <identity> 204 <certificate encodedValue="ADJUST_ME" /> 205 </identity> 206 </endpoint> 207 207 208 </client> 208 209 </system.serviceModel> -
branches/OaaS/HeuristicLab.Services.Optimization.Web/WebRole.cs
r8958 r9166 29 29 } 30 30 31 RoleEnvironment.Changed += RoleEnvironmentChanged; 32 31 33 return base.OnStart(); 34 } 35 36 private void RoleEnvironmentChanged(object sender, RoleEnvironmentChangedEventArgs e) { 32 37 } 33 38 } -
branches/OaaS/HeuristicLab.Services.Optimization/ServiceConfiguration.Cloud.cscfg
r8817 r9166 24 24 <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword" value="MIIBnQYJKoZIhvcNAQcDoIIBjjCCAYoCAQAxggFOMIIBSgIBADAyMB4xHDAaBgNVBAMME1dpbmRvd3MgQXp1cmUgVG9vbHMCEBiSEYQzfxGpQrRVsLegHyUwDQYJKoZIhvcNAQEBBQAEggEALEyQxFoVGXNmWbDtfIra3tjA33W3n9ESgfWKGKv3f0Zsggkm3OzznfY9A8HIoZ7WMOvjl8l8gjQTSxSKGJG8052JM1V7y16jM/bjtShmk7N9h2vdX0rjxXLpdXjGji59PeL6rKiGu2ewPbJhNhvdTStqnpHydnvlb79J2ZbK8E5f+7ngCD7Gy9RQc8zm+1y3UzoqXxZlSVKhsVIvZMoIOuJM4TO7klDZJEsG3Rx/CUXFPAPf15H46t1B0zy2FrMW32BeWFr40qbUW+tKjg8Uiiw4EhHDtqryhzE3ZkjoR0iz7KUQBPDtvq8rSz049EW6ejgGuI2jDyW3iLfIeqfZEzAzBgkqhkiG9w0BBwEwFAYIKoZIhvcNAwcECFNbToWlDaTpgBAOc6871l7N2o4Mut92Cooo" /> 25 25 <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration" value="2013-07-05T23:59:59.0000000+02:00" /> 26 <Setting name="Cloudia.WindowsAzure.Storage" value="ADJUST_ME" /> 27 <Setting name="HiveEndpointName" value="WSHttpBinding_Remote_IHiveService" /> 28 <Setting name="ControllerEndpointName" value="WSHttpBinding_Remote_IControllerService" /> 26 29 </ConfigurationSettings> 27 30 <Certificates> -
branches/OaaS/HeuristicLab.Services.Optimization/ServiceConfiguration.Local.cscfg
r8817 r9166 24 24 <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword" value="MIIBnQYJKoZIhvcNAQcDoIIBjjCCAYoCAQAxggFOMIIBSgIBADAyMB4xHDAaBgNVBAMME1dpbmRvd3MgQXp1cmUgVG9vbHMCEBiSEYQzfxGpQrRVsLegHyUwDQYJKoZIhvcNAQEBBQAEggEALEyQxFoVGXNmWbDtfIra3tjA33W3n9ESgfWKGKv3f0Zsggkm3OzznfY9A8HIoZ7WMOvjl8l8gjQTSxSKGJG8052JM1V7y16jM/bjtShmk7N9h2vdX0rjxXLpdXjGji59PeL6rKiGu2ewPbJhNhvdTStqnpHydnvlb79J2ZbK8E5f+7ngCD7Gy9RQc8zm+1y3UzoqXxZlSVKhsVIvZMoIOuJM4TO7klDZJEsG3Rx/CUXFPAPf15H46t1B0zy2FrMW32BeWFr40qbUW+tKjg8Uiiw4EhHDtqryhzE3ZkjoR0iz7KUQBPDtvq8rSz049EW6ejgGuI2jDyW3iLfIeqfZEzAzBgkqhkiG9w0BBwEwFAYIKoZIhvcNAwcECFNbToWlDaTpgBAOc6871l7N2o4Mut92Cooo" /> 25 25 <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration" value="2013-07-05T23:59:59.0000000+02:00" /> 26 <Setting name="Cloudia.WindowsAzure.Storage" value="ADJUST_ME" /> 27 <Setting name="HiveEndpointName" value="WSHttpBinding_Local_IHiveService" /> 28 <Setting name="ControllerEndpointName" value="WSHttpBinding_Local_IControllerService" /> 26 29 </ConfigurationSettings> 27 30 <Certificates> -
branches/OaaS/HeuristicLab.Services.Optimization/ServiceDefinition.build.csdef
r8817 r9166 32 32 <Certificate name="localhost" storeLocation="LocalMachine" storeName="My" /> 33 33 </Certificates> 34 <Contents>35 <Content destination=".\">36 <SourceDirectory path="rcf/Debug/HeuristicLab.Services.Hive.WebRoleContent\" />37 </Content>38 </Contents>39 34 </WebRole> 40 35 <WebRole name="HeuristicLab.Services.Optimization.Web" vmsize="Small"> … … 56 51 <Certificate name="localhost" storeLocation="LocalMachine" storeName="My" /> 57 52 </Certificates> 53 <ConfigurationSettings> 54 <Setting name="Cloudia.WindowsAzure.Storage" /> 55 <Setting name="HiveEndpointName" /> 56 <Setting name="ControllerEndpointName" /> 57 </ConfigurationSettings> 58 58 </WebRole> 59 59 </ServiceDefinition> -
branches/OaaS/HeuristicLab.Services.Optimization/ServiceDefinition.csdef
r8817 r9166 42 42 <Certificate name="localhost" storeLocation="LocalMachine" storeName="My" /> 43 43 </Certificates> 44 <ConfigurationSettings> 45 <Setting name="Cloudia.WindowsAzure.Storage" /> 46 <Setting name="HiveEndpointName" /> 47 <Setting name="ControllerEndpointName" /> 48 </ConfigurationSettings> 44 49 </WebRole> 45 50 </ServiceDefinition> -
branches/OaaS/otis
-
Property
svn:ignore
set to
src
tools
ref
go.bat
notes.txt
otis.build
-
Property
svn:ignore
set to
-
branches/OaaS/otis/build/bin
-
Property
svn:ignore
set to
Release
-
Property
svn:ignore
set to
-
branches/OaaS/otis/build/bin/Debug
-
Property
svn:ignore
set to
Otis.Sample.exe
Otis.Sample.exe.config
Otis.Sample.pdb
Otis.Sample.vshost.exe
Otis.Sample.vshost.exe.config
Otis.Sample.vshost.exe.manifest
Otis.XML
-
Property
svn:ignore
set to
Note: See TracChangeset
for help on using the changeset viewer.