private void addExperiment(IExperiment experiment)
        {
            bool isOk = (experiment.getParameters() is IParameterList);

            if (isOk)
            {
                this.jwriter.writeStartObject();
                this.jwriter.writePropertyName("experiment_id");
                this.jwriter.writeValue(experiment.getId());
                if (!String.IsNullOrEmpty(experiment.getName()))
                {
                    this.jwriter.writePropertyName("name");
                    this.jwriter.writeValue(experiment.getName());
                }
                if (!String.IsNullOrEmpty(experiment.getDescription()))
                {
                    this.jwriter.writePropertyName("description");
                    this.jwriter.writeValue(experiment.getDescription());
                }
                this.jwriter.writePropertyName("parametercollection");
                this.addParameterCollection((IParameterList)experiment.getParameters());
                this.jwriter.writeEndObject();
            }
            else
            {
                throw new ArgumentException("Property 'experiment.getParameters()' of argument " +
                                            "'experiment' must be of type IParameterList.");
            }
        }
コード例 #2
0
        // starts an task, which created an experiment service
        private async Task <KeyValuePair <String, String> > distributeExperimentAsync(String seriesId,
                                                                                      String seriesName,
                                                                                      String seriesDescription,
                                                                                      String seriesSoftwarename,
                                                                                      IExperiment experiment,
                                                                                      String dockerImage,
                                                                                      String executionPath)
        {
            String path = executionPath;

            // build name for experiment service
            builder.setId(seriesId);
            builder.setName(seriesName);
            builder.setDescription(seriesDescription);
            builder.setSoftwareName(seriesSoftwarename);
            builder.add(experiment);
            String json = (String)builder.build();

            builder.reset();
            String experimentIdentifier = System.Guid.NewGuid().ToString() + "----" +
                                          seriesId + "-series--" + experiment.getId() + "-experiment";

            Console.WriteLine("Investigator: Create experiment service task " +
                              "with generated id\n\t        " + experimentIdentifier);
            String serviceId = await this.client.createExperimentServiceAsync(experimentIdentifier,
                                                                              dockerImage, path, json);

            Console.WriteLine("Investigator: Experiment service task of id\n\t        " +
                              experimentIdentifier + "\n\t      has been started\n\t      " +
                              "The experiment started inside the docker service with id " + serviceId);
            return(new KeyValuePair <string, string>(serviceId, experimentIdentifier));
        }