add credential usage hander
Signed-off-by: runzexia <runzexia@yunify.com>
This commit is contained in:
@@ -20,6 +20,7 @@ package v1alpha2
|
||||
import (
|
||||
"github.com/emicklei/go-restful"
|
||||
log "k8s.io/klog"
|
||||
"kubesphere.io/kubesphere/pkg/api"
|
||||
"kubesphere.io/kubesphere/pkg/models/devops"
|
||||
"net/http"
|
||||
"strings"
|
||||
@@ -622,6 +623,20 @@ func (h *ProjectPipelineHandler) ToJson(req *restful.Request, resp *restful.Resp
|
||||
resp.WriteAsJson(res)
|
||||
}
|
||||
|
||||
func (h *ProjectPipelineHandler) GetProjectCredentialUsage(req *restful.Request, resp *restful.Response) {
|
||||
projectId := req.PathParameter("devops")
|
||||
credentialId := req.PathParameter("credential")
|
||||
response, err := h.projectCredentialGetter.GetProjectCredentialUsage(projectId, credentialId)
|
||||
if err != nil {
|
||||
log.Errorf("%+v", err)
|
||||
api.HandleInternalError(resp, nil, err)
|
||||
return
|
||||
}
|
||||
resp.WriteAsJson(response)
|
||||
return
|
||||
|
||||
}
|
||||
|
||||
func parseErr(err error, resp *restful.Response) {
|
||||
log.Error(err)
|
||||
if jErr, ok := err.(*devops.JkError); ok {
|
||||
|
||||
@@ -11,9 +11,10 @@ import (
|
||||
)
|
||||
|
||||
type ProjectPipelineHandler struct {
|
||||
projectMemberOperator devops.ProjectMemberOperator
|
||||
devopsOperator devops.DevopsOperator
|
||||
projectOperator devops.ProjectOperator
|
||||
projectMemberOperator devops.ProjectMemberOperator
|
||||
devopsOperator devops.DevopsOperator
|
||||
projectOperator devops.ProjectOperator
|
||||
projectCredentialGetter devops.ProjectCredentialGetter
|
||||
}
|
||||
|
||||
type PipelineSonarHandler struct {
|
||||
@@ -23,9 +24,10 @@ type PipelineSonarHandler struct {
|
||||
|
||||
func NewProjectPipelineHandler(devopsClient devopsClient.Interface, dbClient *mysql.Database) ProjectPipelineHandler {
|
||||
return ProjectPipelineHandler{
|
||||
projectMemberOperator: devops.NewProjectMemberOperator(devopsClient, dbClient),
|
||||
devopsOperator: devops.NewDevopsOperator(devopsClient),
|
||||
projectOperator: devops.NewProjectOperator(dbClient),
|
||||
projectMemberOperator: devops.NewProjectMemberOperator(devopsClient, dbClient),
|
||||
devopsOperator: devops.NewDevopsOperator(devopsClient),
|
||||
projectOperator: devops.NewProjectOperator(dbClient),
|
||||
projectCredentialGetter: devops.NewProjectCredentialOperator(devopsClient),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -80,6 +80,7 @@ func AddToContainer(c *restful.Container, devopsClient devops.Interface,
|
||||
|
||||
if projectPipleineEnable {
|
||||
projectPipelineHander := NewProjectPipelineHandler(devopsClient, dbClient)
|
||||
|
||||
webservice.Route(webservice.GET("/devops/{devops}").
|
||||
To(projectPipelineHander.GetDevOpsProjectHandler).
|
||||
Doc("Get the specified DevOps Project").
|
||||
@@ -156,6 +157,14 @@ func AddToContainer(c *restful.Container, devopsClient devops.Interface,
|
||||
Param(webservice.PathParameter("member", "member's username, e.g. admin")).
|
||||
Writes(devops.ProjectMembership{}))
|
||||
|
||||
webservice.Route(webservice.GET("/devops/{devops}/credentials/{credential}/usage").
|
||||
To(projectPipelineHander.GetProjectCredentialUsage).
|
||||
Doc("Get the specified credential usage of the DevOps project").
|
||||
Metadata(restfulspec.KeyOpenAPITags, []string{constants.DevOpsProjectCredentialTag}).
|
||||
Param(webservice.PathParameter("devops", "DevOps project's ID, e.g. project-RRRRAzLBlLEm")).
|
||||
Param(webservice.PathParameter("credential", "credential's ID, e.g. dockerhub-id")).
|
||||
Returns(http.StatusOK, RespOK, devops.Credential{}))
|
||||
|
||||
// match Jenkisn api "/blue/rest/organizations/jenkins/pipelines/{devops}/{pipeline}"
|
||||
webservice.Route(webservice.GET("/devops/{devops}/pipelines/{pipeline}").
|
||||
To(projectPipelineHander.GetPipeline).
|
||||
|
||||
29
pkg/models/devops/project_credential_handler.go
Normal file
29
pkg/models/devops/project_credential_handler.go
Normal file
@@ -0,0 +1,29 @@
|
||||
package devops
|
||||
|
||||
import (
|
||||
"k8s.io/klog"
|
||||
"kubesphere.io/kubesphere/pkg/simple/client/devops"
|
||||
)
|
||||
|
||||
type ProjectCredentialGetter interface {
|
||||
GetProjectCredentialUsage(projectId, credentialId string) (*devops.Credential, error)
|
||||
}
|
||||
|
||||
type projectCredentialGetter struct {
|
||||
devopsClient devops.Interface
|
||||
}
|
||||
|
||||
// GetProjectCredentialUsage get the usage of Credential
|
||||
func (o *projectCredentialGetter) GetProjectCredentialUsage(projectId, credentialId string) (*devops.Credential, error) {
|
||||
credential, err := o.devopsClient.GetCredentialInProject(projectId,
|
||||
credentialId)
|
||||
if err != nil {
|
||||
klog.Errorf("%+v", err)
|
||||
return nil, err
|
||||
}
|
||||
return credential, nil
|
||||
}
|
||||
|
||||
func NewProjectCredentialOperator(devopsClient devops.Interface) ProjectCredentialGetter {
|
||||
return &projectCredentialGetter{devopsClient: devopsClient}
|
||||
}
|
||||
@@ -51,7 +51,5 @@ type CredentialOperator interface {
|
||||
|
||||
GetCredentialInProject(projectId, id string) (*Credential, error)
|
||||
|
||||
GetCredentialsInProject(projectId string) ([]*Credential, error)
|
||||
|
||||
DeleteCredentialInProject(projectId, id string) (string, error)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user