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); }
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); }