private static List <ProfilePipeline> LoadProfilePipelines(IEnumerable <XElement> groupPipelineNodes)
        {
            var profilePipelines = new List <ProfilePipeline>();

            foreach (var groupPipelineNode in groupPipelineNodes)
            {
                var  profilePipeline = new ProfilePipeline();
                bool hideBuildInfo   = false;

                var hideBuildInfoAttribute = groupPipelineNode.Attribute("hideBuildInfo");
                if (hideBuildInfoAttribute != null)
                {
                    bool.TryParse(hideBuildInfoAttribute.Value, out hideBuildInfo);
                }

                profilePipeline.HideBuildInfo = hideBuildInfo;

                var aliasAttribute = groupPipelineNode.Attribute("alias");
                if (aliasAttribute != null)
                {
                    profilePipeline.Alias = aliasAttribute.Value;
                }

                profilePipeline.Name = groupPipelineNode.Value;

                profilePipelines.Add(profilePipeline);
            }
            return(profilePipelines);
        }
Esempio n. 2
0
        public IActionResult Post([FromBody] PipelineViewModel value)
        {
            var             _id             = Guid.Parse(userManager.GetUserId(User));
            Profile         profile         = dataCenterContext.Profiles.Where(x => x.Id == _id).First();
            Algorithm       algorithm       = dataCenterContext.Algorithms.Find(Guid.Parse(value.AlgorithmId));
            CompleteDataSet completeDataSet = dataCenterContext.CompleteDataSets.Find(Guid.Parse(value.DataSetId));
            Pipeline        pipeline        = new Pipeline
            {
                Algorithm          = algorithm,
                Id                 = Guid.NewGuid(),
                Name               = value.Name,
                Description        = value.Description,
                NumberOfContainers = value.NumberOfContainers,
                GetCompleteDataSet = completeDataSet
            };
            List <PipelineParameter> parameters = new List <PipelineParameter>();

            foreach (var parameter in value.Parameters)
            {
                AlgorithmParameters algorithmParameter = dataCenterContext.AlgorithmParameters.Find(Guid.Parse(parameter.Id));
                parameters.Add(new PipelineParameter
                {
                    Id                 = Guid.NewGuid(),
                    Pipeline           = pipeline,
                    Value              = parameter.Value,
                    AlgorithmParameter = algorithmParameter
                });
            }
            pipeline.PipelineParameters = parameters;
            ProfilePipeline profilePipeline = new ProfilePipeline
            {
                Pipeline = pipeline,
                Profile  = profile
            };

            dataCenterContext.ProfilePipeline.Add(profilePipeline);
            dataCenterContext.SaveChanges();

            RabbitMqService rabbitMqService = new RabbitMqService();

            rabbitMqService.SendMessage(pipeline.Id + "~" + algorithm.MasterImage);
            for (int i = 0; i < pipeline.NumberOfContainers - 1; i++)
            {
                rabbitMqService.SendMessage(pipeline.Id + "~" + algorithm.SlaveImage);
            }

            return(Ok());
        }