Esempio n. 1
0
        public async Task <ResourceGroup> ActivateJenkinsResource(JenkinsTemplate template, TryWebsitesIdentity userIdentity, string anonymousUserName)
        {
            return(await ActivateResourceGroup(userIdentity, AppService.Jenkins, DeploymentType.CsmDeploy, async (resourceGroup, inProgressOperation) =>
            {
                SimpleTrace.Analytics.Information(AnalyticsEvents.UserCreatedSiteWithLanguageAndTemplateName,
                                                  userIdentity.Name, template, resourceGroup);
                SimpleTrace.TraceInformation("{0}; {1}; {2}; {3}; {4}; {5}; {6}",
                                             AnalyticsEvents.OldUserCreatedSiteWithLanguageAndTemplateName, userIdentity.Name,
                                             "Jenkins", template.Name, resourceGroup.ResourceUniqueId, AppService.Jenkins.ToString(), anonymousUserName);
                SimpleTrace.UserCreatedApp(userIdentity, template, resourceGroup, AppService.Jenkins);

                var csmTemplateString = string.Empty;

                using (var reader = new StreamReader(template.CsmTemplateFilePath))
                {
                    csmTemplateString = await reader.ReadToEndAsync();
                }

                csmTemplateString = csmTemplateString.Replace("{{jenkinsPassword}}", SimpleSettings.TryDevOpsVMPassword);

                await inProgressOperation.CreateDeployment(JsonConvert.DeserializeObject <JToken>(csmTemplateString), block: true);

                // After a deployment, we have no idea what changes happened in the resource group
                // we should reload it.
                // TODO: consider reloading the resourceGroup along with the deployment itself.
                await resourceGroup.Load(loadJenkinsResources: true);

                resourceGroup.IsRbacEnabled = false;
                return resourceGroup;
            }));
        }
 public JobTemplateEditor(JenkinsTemplate Template, Sentinel Sentinel)
 {
     InitializeComponent();
     this.template = Template;
     this.sentinel = Sentinel;
     LoadTemplate();
 }
Esempio n. 3
0
 public BranchSelector(JenkinsTemplate Template, Sentinel Sentinel)
 {
     InitializeComponent();
     this.template             = Template;
     this.sentinel             = Sentinel;
     list_branches.ItemsSource = new List <string> {
         "master", "19.5.2rc", "19.10.0rc", "19.5.1rc", "19.5.0rc"
     };
     list_branches.SelectedIndex = 0;
 }
Esempio n. 4
0
        public void StartNewJobFromTemplate(JenkinsTemplate Template, string JobName)
        {
            JenkinsJob  newJob = new JenkinsJob(JobName, Template.JobUrl, false, lastIndex + 1);
            WorkflowJob job    = GetJobReport(newJob) as WorkflowJob;
            int         lastBuildNumberOfJob = job.lastBuild.number;

            string          jobInputParams = GetJsonInput(Template.GetInput());
            HttpWebResponse response       = client.Post(Template.BuildJobUrl, jobInputParams);
            string          location       = response.Headers["Location"];

            Threading.Thread adder = new Threading.Thread(() =>
            {
                int numOfMaxTrial = 20;
                int lastNumber    = lastBuildNumberOfJob;
                do
                {
                    Threading.Thread.Sleep(2000);
                    WorkflowJob report = GetJobReport(newJob) as WorkflowJob;
                    if (report != null)
                    {
                        lastNumber = report.lastBuild.number;
                    }
                    numOfMaxTrial--;
                }while (lastBuildNumberOfJob == lastNumber && numOfMaxTrial > 0);

                newJob.IsTemporary       = true;
                newJob.RemoveIfCompleted = true;
                newJob.NotifySettings    = new NotifySettings()
                {
                    NotifyWhenBuildIsComplete = true
                };
                newJob.JobUrl = String.Format("{0}/{1}", newJob.JobUrl, lastNumber);
                AddNewJob(newJob);
            });
            adder.Start();
        }