Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
KubeSphere
kubesphere
提交
93db1f98
K
kubesphere
项目概览
KubeSphere
/
kubesphere
通知
144
Star
32
Fork
5
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
2
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kubesphere
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
2
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
93db1f98
编写于
8月 28, 2019
作者:
R
runzexia
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
get devops count by username
Signed-off-by:
N
runzexia
<
runzexia@yunify.com
>
上级
f22e8ea9
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
53 addition
and
1 deletion
+53
-1
pkg/apis/network/v1alpha1/common.go
pkg/apis/network/v1alpha1/common.go
+1
-1
pkg/apis/tenant/v1alpha2/register.go
pkg/apis/tenant/v1alpha2/register.go
+8
-0
pkg/apiserver/tenant/tenant.go
pkg/apiserver/tenant/tenant.go
+13
-0
pkg/models/tenant/devops.go
pkg/models/tenant/devops.go
+31
-0
未找到文件。
pkg/apis/network/v1alpha1/common.go
浏览文件 @
93db1f98
package
v1alpha1
import
(
"kubesphere.io/kubesphere/pkg/apis/network/v1alpha1/numorstring"
corev1
"k8s.io/api/core/v1"
"kubesphere.io/kubesphere/pkg/apis/network/v1alpha1/numorstring"
)
// A Rule encapsulates a set of match criteria and an action. Both selector-based security Policy
...
...
pkg/apis/tenant/v1alpha2/register.go
浏览文件 @
93db1f98
...
...
@@ -134,6 +134,14 @@ func addWebService(c *restful.Container) error {
Returns
(
http
.
StatusOK
,
ok
,
models
.
PageableResponse
{})
.
Doc
(
"List the devops projects for the workspace member"
)
.
Metadata
(
restfulspec
.
KeyOpenAPITags
,
[]
string
{
constants
.
TenantResourcesTag
}))
ws
.
Route
(
ws
.
GET
(
"/devopscount"
)
.
To
(
tenant
.
GetDevOpsProjectsCount
)
.
Param
(
ws
.
PathParameter
(
"member"
,
"workspace member's username"
))
.
Returns
(
http
.
StatusOK
,
ok
,
struct
{
Count
uint32
`json:"count"`
}{})
.
Doc
(
"Get the devops projects count for the member"
)
.
Metadata
(
restfulspec
.
KeyOpenAPITags
,
[]
string
{
constants
.
TenantResourcesTag
}))
ws
.
Route
(
ws
.
POST
(
"/workspaces/{workspace}/devops"
)
.
To
(
tenant
.
CreateDevopsProject
)
.
Param
(
ws
.
PathParameter
(
"workspace"
,
"workspace name"
))
.
...
...
pkg/apiserver/tenant/tenant.go
浏览文件 @
93db1f98
...
...
@@ -244,6 +244,19 @@ func ListDevopsProjects(req *restful.Request, resp *restful.Response) {
resp
.
WriteAsJson
(
result
)
}
func
GetDevOpsProjectsCount
(
req
*
restful
.
Request
,
resp
*
restful
.
Response
)
{
username
:=
req
.
HeaderParameter
(
constants
.
UserNameHeader
)
result
,
err
:=
tenant
.
GetDevOpsProjectsCount
(
username
)
if
err
!=
nil
{
glog
.
Errorf
(
"%+v"
,
err
)
errors
.
ParseSvcErr
(
err
,
resp
)
return
}
resp
.
WriteAsJson
(
struct
{
Count
uint32
`json:"count"`
}{
Count
:
result
})
}
func
DeleteDevopsProject
(
req
*
restful
.
Request
,
resp
*
restful
.
Response
)
{
projectId
:=
req
.
PathParameter
(
"devops"
)
workspaceName
:=
req
.
PathParameter
(
"workspace"
)
...
...
pkg/models/tenant/devops.go
浏览文件 @
93db1f98
...
...
@@ -22,6 +22,7 @@ import (
"github.com/emicklei/go-restful"
"github.com/gocraft/dbr"
"github.com/golang/glog"
"k8s.io/klog"
"kubesphere.io/kubesphere/pkg/db"
"kubesphere.io/kubesphere/pkg/gojenkins"
"kubesphere.io/kubesphere/pkg/gojenkins/utils"
...
...
@@ -105,6 +106,36 @@ func ListDevopsProjects(workspace, username string, conditions *params.Condition
return
&
models
.
PageableResponse
{
Items
:
result
,
TotalCount
:
int
(
count
)},
nil
}
func
GetDevOpsProjectsCount
(
username
string
)
(
uint32
,
error
)
{
dbconn
:=
devops_mysql
.
OpenDatabase
()
query
:=
dbconn
.
Select
(
devops
.
GetColumnsFromStructWithPrefix
(
devops
.
DevOpsProjectTableName
,
devops
.
DevOpsProject
{})
...
)
.
From
(
devops
.
DevOpsProjectTableName
)
var
sqconditions
[]
dbr
.
Builder
switch
username
{
case
devops
.
KS_ADMIN
:
default
:
onCondition
:=
fmt
.
Sprintf
(
"%s = %s"
,
devops
.
DevOpsProjectMembershipProjectIdColumn
,
devops
.
DevOpsProjectIdColumn
)
query
.
Join
(
devops
.
DevOpsProjectMembershipTableName
,
onCondition
)
sqconditions
=
append
(
sqconditions
,
db
.
Eq
(
devops
.
DevOpsProjectMembershipUsernameColumn
,
username
))
sqconditions
=
append
(
sqconditions
,
db
.
Eq
(
devops
.
DevOpsProjectMembershipTableName
+
"."
+
devops
.
StatusColumn
,
devops
.
StatusActive
))
}
sqconditions
=
append
(
sqconditions
,
db
.
Eq
(
devops
.
DevOpsProjectTableName
+
"."
+
devops
.
StatusColumn
,
devops
.
StatusActive
))
if
len
(
sqconditions
)
>
0
{
query
.
Where
(
db
.
And
(
sqconditions
...
))
}
count
,
err
:=
query
.
Count
()
if
err
!=
nil
{
klog
.
Errorf
(
"%+v"
,
err
)
return
0
,
restful
.
NewError
(
http
.
StatusInternalServerError
,
err
.
Error
())
}
return
count
,
nil
}
func
DeleteDevOpsProject
(
projectId
,
username
string
)
error
{
err
:=
devops
.
CheckProjectUserInRole
(
username
,
projectId
,
[]
string
{
devops
.
ProjectOwner
})
if
err
!=
nil
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录