From bc0be03603afe9b7bf78a55e62a30bff024b517a Mon Sep 17 00:00:00 2001 From: rick <1450685+LinuxSuRen@users.noreply.github.com> Date: Wed, 17 Mar 2021 16:39:58 +0800 Subject: [PATCH] Fix Pipeline input failed in multi-branch mode Signed-off-by: rick <1450685+LinuxSuRen@users.noreply.github.com> --- go.mod | 2 +- go.sum | 2 +- pkg/controller/pipeline/pipeline_controller.go | 6 +++--- pkg/kapis/devops/v1alpha2/devops.go | 10 +++++++++- pkg/simple/client/devops/jenkins/pipeline.go | 2 +- 5 files changed, 15 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 7f5fb629e..4668515f7 100644 --- a/go.mod +++ b/go.mod @@ -765,4 +765,4 @@ replace ( sigs.k8s.io/yaml => sigs.k8s.io/yaml v1.2.0 sourcegraph.com/sourcegraph/appdash => sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0 vbom.ml/util => vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc -) +) \ No newline at end of file diff --git a/go.sum b/go.sum index 9bab81710..2598de63d 100644 --- a/go.sum +++ b/go.sum @@ -865,4 +865,4 @@ sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc h1:MksmcCZQWAQJCTA5T0jgI/0sJ51AVm4Z41MrmfczEoc= -vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= +vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= \ No newline at end of file diff --git a/pkg/controller/pipeline/pipeline_controller.go b/pkg/controller/pipeline/pipeline_controller.go index 82ff027b9..ad6a8bb7c 100644 --- a/pkg/controller/pipeline/pipeline_controller.go +++ b/pkg/controller/pipeline/pipeline_controller.go @@ -104,9 +104,9 @@ func NewController(client clientset.Interface, devopsInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ AddFunc: v.enqueuePipeline, UpdateFunc: func(oldObj, newObj interface{}) { - old := oldObj.(*devopsv1alpha3.Pipeline) - new := newObj.(*devopsv1alpha3.Pipeline) - if old.ResourceVersion == new.ResourceVersion { + oldPipeline := oldObj.(*devopsv1alpha3.Pipeline) + newPipeline := newObj.(*devopsv1alpha3.Pipeline) + if oldPipeline.ResourceVersion == newPipeline.ResourceVersion { return } v.enqueuePipeline(newObj) diff --git a/pkg/kapis/devops/v1alpha2/devops.go b/pkg/kapis/devops/v1alpha2/devops.go index c8039bd19..d5de97d38 100644 --- a/pkg/kapis/devops/v1alpha2/devops.go +++ b/pkg/kapis/devops/v1alpha2/devops.go @@ -379,10 +379,18 @@ func (h *ProjectPipelineHandler) hasSubmitPermission(req *restful.Request) (hasP runId := req.PathParameter("run") nodeId := req.PathParameter("node") stepId := req.PathParameter("step") + branchName := req.PathParameter("branch") // check if current user can approve this input var res []clientDevOps.NodesDetail - if res, err = h.devopsOperator.GetNodesDetail(pipeParam.ProjectName, pipeParam.Name, runId, httpReq); err == nil { + + if branchName == "" { + res, err = h.devopsOperator.GetNodesDetail(pipeParam.ProjectName, pipeParam.Name, runId, httpReq) + } else { + res, err = h.devopsOperator.GetBranchNodesDetail(pipeParam.ProjectName, pipeParam.Name, branchName, runId, httpReq) + } + + if err == nil { h.approvableCheck(res, parsePipelineParam(req)) for _, node := range res { diff --git a/pkg/simple/client/devops/jenkins/pipeline.go b/pkg/simple/client/devops/jenkins/pipeline.go index 0e68fa545..559f8894f 100644 --- a/pkg/simple/client/devops/jenkins/pipeline.go +++ b/pkg/simple/client/devops/jenkins/pipeline.go @@ -112,7 +112,7 @@ func (p *Pipeline) ListPipelines() (*devops.PipelineList, error) { } klog.Errorf("API '%s' request response code is '%d'", p.Path, jErr.Code) } else { - err = fmt.Errorf("unknow errors happend when coumunicate with Jenkins") + err = fmt.Errorf("unknow errors happend when communicate with Jenkins") } return nil, err } -- GitLab