diff --git a/pkg/apis/devops/v1alpha2/register.go b/pkg/apis/devops/v1alpha2/register.go index 468b8ab21..c1c1897c4 100644 --- a/pkg/apis/devops/v1alpha2/register.go +++ b/pkg/apis/devops/v1alpha2/register.go @@ -573,9 +573,9 @@ func addWebService(c *restful.Container) error { // match /blue/rest/organizations/jenkins/pipelines/{projectName}/{pipelineName}/branches/{}/runs/ webservice.Route(webservice.POST("/devops/{projectName}/pipelines/{pipelineName}/branches/{branchName}/run"). - To(devopsapi.RunPipeline). + To(devopsapi.RunBranchPipeline). Metadata(restfulspec.KeyOpenAPITags, tags). - Doc("Get pipeline artifacts."). + Doc("Run pipeline."). Reads(devops.RunPayload{}). Param(webservice.PathParameter("projectName", "devops project name")). Param(webservice.PathParameter("pipelineName", "pipeline name")). @@ -583,6 +583,17 @@ func addWebService(c *restful.Container) error { Returns(http.StatusOK, RespOK, devops.QueuedBlueRun{}). Writes(devops.QueuedBlueRun{})) + // match /blue/rest/organizations/jenkins/pipelines/{projectName}/{pipelineName}/runs/ + webservice.Route(webservice.POST("/devops/{projectName}/pipelines/{pipelineName}/run"). + To(devopsapi.RunPipeline). + Metadata(restfulspec.KeyOpenAPITags, tags). + Doc("Run pipeline."). + Reads(devops.RunPayload{}). + Param(webservice.PathParameter("projectName", "devops project name")). + Param(webservice.PathParameter("pipelineName", "pipeline name")). + Returns(http.StatusOK, RespOK, devops.QueuedBlueRun{}). + Writes(devops.QueuedBlueRun{})) + // match /pipeline_status/blue/rest/organizations/jenkins/pipelines/{projectName}/{pipelineName}/branches/{branchName}/runs/{runId}/nodes/?limit= webservice.Route(webservice.GET("/devops/{projectName}/pipelines/{pipelineName}/branches/{branchName}/runs/{runId}/nodes/{nodeId}/steps/status"). To(devopsapi.GetBranchStepsStatus). diff --git a/pkg/apiserver/devops/devops.go b/pkg/apiserver/devops/devops.go index 1a5d2db14..5245e3529 100644 --- a/pkg/apiserver/devops/devops.go +++ b/pkg/apiserver/devops/devops.go @@ -359,12 +359,26 @@ func ScanBranch(req *restful.Request, resp *restful.Response) { resp.Write(res) } -func RunPipeline(req *restful.Request, resp *restful.Response) { +func RunBranchPipeline(req *restful.Request, resp *restful.Response) { projectName := req.PathParameter("projectName") pipelineName := req.PathParameter("pipelineName") branchName := req.PathParameter("branchName") - res, err := devops.RunPipeline(projectName, pipelineName, branchName, req.Request) + res, err := devops.RunBranchPipeline(projectName, pipelineName, branchName, req.Request) + if err != nil { + parseErr(err, resp) + return + } + + resp.Header().Set(restful.HEADER_ContentType, restful.MIME_JSON) + resp.Write(res) +} + +func RunPipeline(req *restful.Request, resp *restful.Response) { + projectName := req.PathParameter("projectName") + pipelineName := req.PathParameter("pipelineName") + + res, err := devops.RunPipeline(projectName, pipelineName, req.Request) if err != nil { parseErr(err, resp) return diff --git a/pkg/models/devops/devops.go b/pkg/models/devops/devops.go index 9d77a3de5..223155537 100644 --- a/pkg/models/devops/devops.go +++ b/pkg/models/devops/devops.go @@ -340,8 +340,21 @@ func ScanBranch(projectName, pipelineName string, req *http.Request) ([]byte, er return resBody, err } -func RunPipeline(projectName, pipelineName, branchName string, req *http.Request) ([]byte, error) { - baseUrl := fmt.Sprintf(jenkins.Server+RunPipelineUrl+req.URL.RawQuery, projectName, pipelineName, branchName) +func RunBranchPipeline(projectName, pipelineName, branchName string, req *http.Request) ([]byte, error) { + baseUrl := fmt.Sprintf(jenkins.Server+RunBranchPipelineUrl+req.URL.RawQuery, projectName, pipelineName, branchName) + log.Infof("Jenkins-url: " + baseUrl) + + res, err := sendJenkinsRequest(baseUrl, req) + if err != nil { + log.Error(err) + return nil, err + } + + return res, err +} + +func RunPipeline(projectName, pipelineName string, req *http.Request) ([]byte, error) { + baseUrl := fmt.Sprintf(jenkins.Server+RunPipelineUrl+req.URL.RawQuery, projectName, pipelineName) log.Infof("Jenkins-url: " + baseUrl) res, err := sendJenkinsRequest(baseUrl, req) diff --git a/pkg/models/devops/urlconfig.go b/pkg/models/devops/urlconfig.go index d5ccdd797..a6df50c5f 100644 --- a/pkg/models/devops/urlconfig.go +++ b/pkg/models/devops/urlconfig.go @@ -23,7 +23,8 @@ const ( GetBranchPipeUrl = "/blue/rest/organizations/jenkins/pipelines/%s/pipelines/%s/branches/%s/" GetPipelineUrl = "/blue/rest/organizations/jenkins/pipelines/%s/%s/" SearchPipelineUrl = "/blue/rest/search/?" - RunPipelineUrl = "/blue/rest/organizations/jenkins/pipelines/%s/%s/branches/%s/runs/" + RunBranchPipelineUrl = "/blue/rest/organizations/jenkins/pipelines/%s/%s/branches/%s/runs/" + RunPipelineUrl = "/blue/rest/organizations/jenkins/pipelines/%s/%s/runs/" GetPipelineRunUrl = "/blue/rest/organizations/jenkins/pipelines/%s/%s/runs/%s/" GetPipeBranchRunUrl = "/blue/rest/organizations/jenkins/pipelines/%s/%s/branches/%s/runs/%s/" SearchPipelineRunUrl = "/blue/rest/organizations/jenkins/pipelines/%s/%s/runs/?"