Esempio n. 1
0
            public IHttpContext RepositoryDeploy(IHttpContext context)
            {
                try
                {
                    var payload = JObject.Parse(context.Request.Payload);

                    var repo_url        = payload["repository_url"].Value <string>();
                    var commit          = payload["commit"].Value <string>();
                    var deploy_user     = payload["deploy_user"].Value <string>();
                    var deploy_password = payload["deploy_password"].Value <string>();


                    var job = Scheduler.Deploy(repo_url, deploy_user, deploy_password, igp_topology, mpls_topology);
                    job.Start();
                    CICDJobs.Inc();

                    context.Response.StatusCode  = HttpStatusCode.Ok;
                    context.Response.ContentType = ContentType.JSON;
                    context.Response.SendResponse(JsonConvert.SerializeObject(job));
                }
                catch (Exception ex)
                {
                    context.Response.StatusCode = HttpStatusCode.InternalServerError;
                    context.Response.SendResponse(ex.Message);
                }
                return(context);
            }
Esempio n. 2
0
            public IHttpContext GetRepositoryJobs(IHttpContext context)
            {
                try
                {
                    try
                    {
                        var jobId = context.Request.QueryString["id"];

                        if (jobId != null)
                        {
                            var job = Scheduler.GetCICDJob(new Guid(jobId));

                            context.Response.StatusCode  = HttpStatusCode.Ok;
                            context.Response.ContentType = ContentType.JSON;
                            context.Response.SendResponse(JsonConvert.SerializeObject(job));

                            if (job.Completed)
                            {
                                Scheduler.RemoveCICDJob(job.Id);
                                CICDJobs.Dec();
                            }
                        }
                        else
                        {
                            var jobs = Scheduler.GetCICDJobs();

                            context.Response.StatusCode  = HttpStatusCode.Ok;
                            context.Response.ContentType = ContentType.JSON;
                            context.Response.SendResponse(JsonConvert.SerializeObject(jobs));
                        }
                    }
                    catch (Exception)
                    {
                        context.Response.StatusCode = HttpStatusCode.NotFound;
                        context.Response.SendResponse(string.Empty);
                    }
                }
                catch (Exception ex)
                {
                    context.Response.StatusCode = HttpStatusCode.InternalServerError;
                    context.Response.SendResponse(ex.Message);
                }
                return(context);
            }