Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
superrain51
apollo
提交
e2c8c9ca
apollo
项目概览
superrain51
/
apollo
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
apollo
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e2c8c9ca
编写于
1月 22, 2017
作者:
J
Jason Song
提交者:
GitHub
1月 22, 2017
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #527 from lepdou/check_namespace
check namespace and branch exist when update gray rules
上级
b86e7543
bf4cd7dc
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
45 addition
and
4 deletion
+45
-4
apollo-adminservice/src/main/java/com/ctrip/framework/apollo/adminservice/controller/NamespaceBranchController.java
...lo/adminservice/controller/NamespaceBranchController.java
+45
-4
未找到文件。
apollo-adminservice/src/main/java/com/ctrip/framework/apollo/adminservice/controller/NamespaceBranchController.java
浏览文件 @
e2c8c9ca
...
...
@@ -5,10 +5,12 @@ import com.ctrip.framework.apollo.biz.entity.Namespace;
import
com.ctrip.framework.apollo.biz.message.MessageSender
;
import
com.ctrip.framework.apollo.biz.message.Topics
;
import
com.ctrip.framework.apollo.biz.service.NamespaceBranchService
;
import
com.ctrip.framework.apollo.biz.service.NamespaceService
;
import
com.ctrip.framework.apollo.biz.utils.ReleaseMessageKeyGenerator
;
import
com.ctrip.framework.apollo.common.constants.NamespaceBranchStatus
;
import
com.ctrip.framework.apollo.common.dto.GrayReleaseRuleDTO
;
import
com.ctrip.framework.apollo.common.dto.NamespaceDTO
;
import
com.ctrip.framework.apollo.common.exception.BadRequestException
;
import
com.ctrip.framework.apollo.common.utils.BeanUtils
;
import
com.ctrip.framework.apollo.common.utils.GrayReleaseRuleItemTransformer
;
...
...
@@ -27,6 +29,8 @@ public class NamespaceBranchController {
private
MessageSender
messageSender
;
@Autowired
private
NamespaceBranchService
namespaceBranchService
;
@Autowired
private
NamespaceService
namespaceService
;
@RequestMapping
(
value
=
"/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/branches"
,
method
=
RequestMethod
.
POST
)
...
...
@@ -35,14 +39,22 @@ public class NamespaceBranchController {
@PathVariable
String
namespaceName
,
@RequestParam
(
"operator"
)
String
operator
)
{
checkNamespace
(
appId
,
clusterName
,
namespaceName
);
Namespace
createdBranch
=
namespaceBranchService
.
createBranch
(
appId
,
clusterName
,
namespaceName
,
operator
);
return
BeanUtils
.
transfrom
(
NamespaceDTO
.
class
,
createdBranch
);
}
@RequestMapping
(
"/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/branches/{branchName}/rules"
)
@RequestMapping
(
value
=
"/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/branches/{branchName}/rules"
,
method
=
RequestMethod
.
GET
)
public
GrayReleaseRuleDTO
findBranchGrayRules
(
@PathVariable
String
appId
,
@PathVariable
String
clusterName
,
@PathVariable
String
namespaceName
,
@PathVariable
String
branchName
)
{
checkBranch
(
appId
,
clusterName
,
namespaceName
,
branchName
);
GrayReleaseRule
rules
=
namespaceBranchService
.
findBranchGrayRules
(
appId
,
clusterName
,
namespaceName
,
branchName
);
if
(
rules
==
null
)
{
return
null
;
...
...
@@ -63,6 +75,8 @@ public class NamespaceBranchController {
@PathVariable
String
namespaceName
,
@PathVariable
String
branchName
,
@RequestBody
GrayReleaseRuleDTO
newRuleDto
)
{
checkBranch
(
appId
,
clusterName
,
namespaceName
,
branchName
);
GrayReleaseRule
newRules
=
BeanUtils
.
transfrom
(
GrayReleaseRule
.
class
,
newRuleDto
);
newRules
.
setRules
(
GrayReleaseRuleItemTransformer
.
batchTransformToJSON
(
newRuleDto
.
getRuleItems
()));
newRules
.
setBranchStatus
(
NamespaceBranchStatus
.
ACTIVE
);
...
...
@@ -78,17 +92,22 @@ public class NamespaceBranchController {
@PathVariable
String
namespaceName
,
@PathVariable
String
branchName
,
@RequestParam
(
"operator"
)
String
operator
)
{
namespaceBranchService
.
deleteBranch
(
appId
,
clusterName
,
namespaceName
,
branchName
,
NamespaceBranchStatus
.
DELETED
,
operator
);
checkBranch
(
appId
,
clusterName
,
namespaceName
,
branchName
);
namespaceBranchService
.
deleteBranch
(
appId
,
clusterName
,
namespaceName
,
branchName
,
NamespaceBranchStatus
.
DELETED
,
operator
);
messageSender
.
sendMessage
(
ReleaseMessageKeyGenerator
.
generate
(
appId
,
clusterName
,
namespaceName
),
Topics
.
APOLLO_RELEASE_TOPIC
);
Topics
.
APOLLO_RELEASE_TOPIC
);
}
@RequestMapping
(
"/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/branches"
)
@RequestMapping
(
value
=
"/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/branches"
,
method
=
RequestMethod
.
GET
)
public
NamespaceDTO
loadNamespaceBranch
(
@PathVariable
String
appId
,
@PathVariable
String
clusterName
,
@PathVariable
String
namespaceName
)
{
checkNamespace
(
appId
,
clusterName
,
namespaceName
);
Namespace
childNamespace
=
namespaceBranchService
.
findBranch
(
appId
,
clusterName
,
namespaceName
);
if
(
childNamespace
==
null
)
{
return
null
;
...
...
@@ -97,5 +116,27 @@ public class NamespaceBranchController {
return
BeanUtils
.
transfrom
(
NamespaceDTO
.
class
,
childNamespace
);
}
private
void
checkBranch
(
String
appId
,
String
clusterName
,
String
namespaceName
,
String
branchName
)
{
//1. check parent namespace
checkNamespace
(
appId
,
clusterName
,
namespaceName
);
//2. check child namespace
Namespace
childNamespace
=
namespaceService
.
findOne
(
appId
,
branchName
,
namespaceName
);
if
(
childNamespace
==
null
)
{
throw
new
BadRequestException
(
String
.
format
(
"Namespace's branch not exist. AppId = %s, ClusterName = %s, "
+
"NamespaceName = %s, BranchName = %s"
,
appId
,
clusterName
,
namespaceName
,
branchName
));
}
}
private
void
checkNamespace
(
String
appId
,
String
clusterName
,
String
namespaceName
)
{
Namespace
parentNamespace
=
namespaceService
.
findOne
(
appId
,
clusterName
,
namespaceName
);
if
(
parentNamespace
==
null
)
{
throw
new
BadRequestException
(
String
.
format
(
"Namespace not exist. AppId = %s, ClusterName = %s, NamespaceName = %s"
,
appId
,
clusterName
,
namespaceName
));
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录