Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
apollo
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
apollo
Commits
ea20fad0
Commit
ea20fad0
authored
Jun 07, 2016
by
lepdou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
用户信息通过dto传递
parent
be118512
Changes
30
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
227 additions
and
166 deletions
+227
-166
apollo-adminservice/src/main/java/com/ctrip/framework/apollo/adminservice/controller/AppController.java
...amework/apollo/adminservice/controller/AppController.java
+4
-8
apollo-adminservice/src/main/java/com/ctrip/framework/apollo/adminservice/controller/AppNamespaceController.java
...pollo/adminservice/controller/AppNamespaceController.java
+3
-8
apollo-adminservice/src/main/java/com/ctrip/framework/apollo/adminservice/controller/ClusterController.java
...ork/apollo/adminservice/controller/ClusterController.java
+6
-10
apollo-adminservice/src/main/java/com/ctrip/framework/apollo/adminservice/controller/ItemController.java
...mework/apollo/adminservice/controller/ItemController.java
+24
-22
apollo-adminservice/src/main/java/com/ctrip/framework/apollo/adminservice/controller/ItemSetController.java
...ork/apollo/adminservice/controller/ItemSetController.java
+2
-4
apollo-adminservice/src/main/java/com/ctrip/framework/apollo/adminservice/controller/NamespaceController.java
...k/apollo/adminservice/controller/NamespaceController.java
+6
-10
apollo-adminservice/src/main/java/com/ctrip/framework/apollo/adminservice/controller/ReleaseController.java
...ork/apollo/adminservice/controller/ReleaseController.java
+2
-4
apollo-adminservice/src/test/java/com/ctrip/framework/apollo/adminservice/controller/ControllerExceptionTest.java
...ollo/adminservice/controller/ControllerExceptionTest.java
+3
-2
apollo-adminservice/src/test/java/com/ctrip/framework/apollo/adminservice/controller/ItemSetControllerTest.java
...apollo/adminservice/controller/ItemSetControllerTest.java
+9
-3
apollo-adminservice/src/test/java/com/ctrip/framework/apollo/adminservice/controller/ReleaseControllerTest.java
...apollo/adminservice/controller/ReleaseControllerTest.java
+2
-3
apollo-biz/src/main/java/com/ctrip/framework/apollo/biz/service/ItemSetService.java
...om/ctrip/framework/apollo/biz/service/ItemSetService.java
+2
-1
apollo-common/src/main/java/com/ctrip/framework/apollo/common/controller/WebMvcConfig.java
...trip/framework/apollo/common/controller/WebMvcConfig.java
+1
-0
apollo-common/src/main/java/com/ctrip/framework/apollo/common/utils/BeanUtils.java
...va/com/ctrip/framework/apollo/common/utils/BeanUtils.java
+1
-2
apollo-core/src/main/java/com/ctrip/framework/apollo/core/dto/AppDTO.java
...main/java/com/ctrip/framework/apollo/core/dto/AppDTO.java
+1
-1
apollo-core/src/main/java/com/ctrip/framework/apollo/core/dto/AppNamespaceDTO.java
.../com/ctrip/framework/apollo/core/dto/AppNamespaceDTO.java
+1
-1
apollo-core/src/main/java/com/ctrip/framework/apollo/core/dto/BaseDTO.java
...ain/java/com/ctrip/framework/apollo/core/dto/BaseDTO.java
+25
-0
apollo-core/src/main/java/com/ctrip/framework/apollo/core/dto/ClusterDTO.java
.../java/com/ctrip/framework/apollo/core/dto/ClusterDTO.java
+1
-1
apollo-core/src/main/java/com/ctrip/framework/apollo/core/dto/ItemChangeSets.java
...a/com/ctrip/framework/apollo/core/dto/ItemChangeSets.java
+1
-1
apollo-core/src/main/java/com/ctrip/framework/apollo/core/dto/ItemDTO.java
...ain/java/com/ctrip/framework/apollo/core/dto/ItemDTO.java
+1
-1
apollo-core/src/main/java/com/ctrip/framework/apollo/core/dto/NamespaceDTO.java
...ava/com/ctrip/framework/apollo/core/dto/NamespaceDTO.java
+1
-1
apollo-core/src/main/java/com/ctrip/framework/apollo/core/dto/ReleaseDTO.java
.../java/com/ctrip/framework/apollo/core/dto/ReleaseDTO.java
+1
-1
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/PortalSettings.java
...ava/com/ctrip/framework/apollo/portal/PortalSettings.java
+3
-3
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/api/API.java
.../main/java/com/ctrip/framework/apollo/portal/api/API.java
+2
-1
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/api/AdminServiceAPI.java
...om/ctrip/framework/apollo/portal/api/AdminServiceAPI.java
+50
-53
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/service/PortalAppService.java
...rip/framework/apollo/portal/service/PortalAppService.java
+12
-0
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/service/PortalConfigService.java
.../framework/apollo/portal/service/PortalConfigService.java
+40
-13
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/service/PortalNamespaceService.java
...amework/apollo/portal/service/PortalNamespaceService.java
+13
-5
apollo-portal/src/main/resources/static/config.html
apollo-portal/src/main/resources/static/config.html
+1
-1
apollo-portal/src/main/resources/static/config/sync.html
apollo-portal/src/main/resources/static/config/sync.html
+5
-3
apollo-portal/src/main/resources/static/scripts/controller/app/ConfigNamespaceController.js
...tatic/scripts/controller/app/ConfigNamespaceController.js
+4
-3
No files found.
apollo-adminservice/src/main/java/com/ctrip/framework/apollo/adminservice/controller/AppController.java
View file @
ea20fad0
...
@@ -4,7 +4,6 @@ import java.util.List;
...
@@ -4,7 +4,6 @@ import java.util.List;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.security.core.userdetails.UserDetails
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
...
@@ -15,7 +14,6 @@ import org.springframework.web.bind.annotation.RestController;
...
@@ -15,7 +14,6 @@ import org.springframework.web.bind.annotation.RestController;
import
com.ctrip.framework.apollo.biz.entity.App
;
import
com.ctrip.framework.apollo.biz.entity.App
;
import
com.ctrip.framework.apollo.biz.service.AdminService
;
import
com.ctrip.framework.apollo.biz.service.AdminService
;
import
com.ctrip.framework.apollo.biz.service.AppService
;
import
com.ctrip.framework.apollo.biz.service.AppService
;
import
com.ctrip.framework.apollo.common.auth.ActiveUser
;
import
com.ctrip.framework.apollo.common.utils.BeanUtils
;
import
com.ctrip.framework.apollo.common.utils.BeanUtils
;
import
com.ctrip.framework.apollo.core.dto.AppDTO
;
import
com.ctrip.framework.apollo.core.dto.AppDTO
;
import
com.ctrip.framework.apollo.core.exception.NotFoundException
;
import
com.ctrip.framework.apollo.core.exception.NotFoundException
;
...
@@ -31,16 +29,14 @@ public class AppController {
...
@@ -31,16 +29,14 @@ public class AppController {
private
AdminService
adminService
;
private
AdminService
adminService
;
@RequestMapping
(
path
=
"/apps"
,
method
=
RequestMethod
.
POST
)
@RequestMapping
(
path
=
"/apps"
,
method
=
RequestMethod
.
POST
)
public
AppDTO
createOrUpdate
(
@RequestBody
AppDTO
dto
,
@ActiveUser
UserDetails
user
)
{
public
AppDTO
createOrUpdate
(
@RequestBody
AppDTO
dto
)
{
App
entity
=
BeanUtils
.
transfrom
(
App
.
class
,
dto
);
App
entity
=
BeanUtils
.
transfrom
(
App
.
class
,
dto
);
App
managedEntity
=
appService
.
findOne
(
entity
.
getAppId
());
App
managedEntity
=
appService
.
findOne
(
entity
.
getAppId
());
if
(
managedEntity
!=
null
)
{
if
(
managedEntity
!=
null
)
{
managedEntity
.
setDataChangeLastModifiedBy
(
user
.
getUsername
());
managedEntity
.
setDataChangeLastModifiedBy
(
entity
.
getDataChangeLastModifiedBy
());
BeanUtils
.
copyEntityProperties
(
entity
,
managedEntity
);
BeanUtils
.
copyEntityProperties
(
entity
,
managedEntity
);
entity
=
appService
.
update
(
managedEntity
);
entity
=
appService
.
update
(
managedEntity
);
}
else
{
}
else
{
entity
.
setDataChangeCreatedBy
(
user
.
getUsername
());
entity
.
setDataChangeLastModifiedBy
(
user
.
getUsername
());
entity
=
adminService
.
createNewApp
(
entity
);
entity
=
adminService
.
createNewApp
(
entity
);
}
}
...
@@ -49,10 +45,10 @@ public class AppController {
...
@@ -49,10 +45,10 @@ public class AppController {
}
}
@RequestMapping
(
path
=
"/apps/{appId}"
,
method
=
RequestMethod
.
DELETE
)
@RequestMapping
(
path
=
"/apps/{appId}"
,
method
=
RequestMethod
.
DELETE
)
public
void
delete
(
@PathVariable
(
"appId"
)
String
appId
,
@
ActiveUser
UserDetails
use
r
)
{
public
void
delete
(
@PathVariable
(
"appId"
)
String
appId
,
@
RequestParam
String
operato
r
)
{
App
entity
=
appService
.
findOne
(
appId
);
App
entity
=
appService
.
findOne
(
appId
);
if
(
entity
==
null
)
throw
new
NotFoundException
(
"app not found for appId "
+
appId
);
if
(
entity
==
null
)
throw
new
NotFoundException
(
"app not found for appId "
+
appId
);
appService
.
delete
(
entity
.
getId
(),
user
.
getUsername
()
);
appService
.
delete
(
entity
.
getId
(),
operator
);
}
}
@RequestMapping
(
"/apps"
)
@RequestMapping
(
"/apps"
)
...
...
apollo-adminservice/src/main/java/com/ctrip/framework/apollo/adminservice/controller/AppNamespaceController.java
View file @
ea20fad0
package
com
.
ctrip
.
framework
.
apollo
.
adminservice
.
controller
;
package
com
.
ctrip
.
framework
.
apollo
.
adminservice
.
controller
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.core.userdetails.UserDetails
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
...
@@ -10,7 +9,6 @@ import org.springframework.web.bind.annotation.RestController;
...
@@ -10,7 +9,6 @@ import org.springframework.web.bind.annotation.RestController;
import
com.ctrip.framework.apollo.biz.entity.AppNamespace
;
import
com.ctrip.framework.apollo.biz.entity.AppNamespace
;
import
com.ctrip.framework.apollo.biz.service.AppNamespaceService
;
import
com.ctrip.framework.apollo.biz.service.AppNamespaceService
;
import
com.ctrip.framework.apollo.common.auth.ActiveUser
;
import
com.ctrip.framework.apollo.common.utils.BeanUtils
;
import
com.ctrip.framework.apollo.common.utils.BeanUtils
;
import
com.ctrip.framework.apollo.core.dto.AppNamespaceDTO
;
import
com.ctrip.framework.apollo.core.dto.AppNamespaceDTO
;
...
@@ -35,20 +33,17 @@ public class AppNamespaceController {
...
@@ -35,20 +33,17 @@ public class AppNamespaceController {
}
}
@RequestMapping
(
value
=
"/apps/{appId}/appnamespaces"
,
method
=
RequestMethod
.
POST
)
@RequestMapping
(
value
=
"/apps/{appId}/appnamespaces"
,
method
=
RequestMethod
.
POST
)
public
AppNamespaceDTO
createOrUpdate
(
@RequestBody
AppNamespaceDTO
appNamespace
,
@ActiveUser
UserDetails
user
){
public
AppNamespaceDTO
createOrUpdate
(
@RequestBody
AppNamespaceDTO
appNamespace
){
AppNamespace
entity
=
BeanUtils
.
transfrom
(
AppNamespace
.
class
,
appNamespace
);
AppNamespace
entity
=
BeanUtils
.
transfrom
(
AppNamespace
.
class
,
appNamespace
);
AppNamespace
managedEntity
=
appNamespaceService
.
findOne
(
entity
.
getAppId
(),
entity
.
getName
());
AppNamespace
managedEntity
=
appNamespaceService
.
findOne
(
entity
.
getAppId
(),
entity
.
getName
());
String
userName
=
user
.
getUsername
();
if
(
managedEntity
!=
null
){
if
(
managedEntity
!=
null
){
managedEntity
.
setDataChangeLastModifiedBy
(
userName
);
managedEntity
.
setDataChangeLastModifiedBy
(
entity
.
getDataChangeLastModifiedBy
()
);
BeanUtils
.
copyEntityProperties
(
entity
,
managedEntity
);
BeanUtils
.
copyEntityProperties
(
entity
,
managedEntity
);
entity
=
appNamespaceService
.
update
(
managedEntity
);
entity
=
appNamespaceService
.
update
(
managedEntity
);
}
else
{
}
else
{
entity
.
setDataChangeLastModifiedBy
(
userName
);
entity
=
appNamespaceService
.
createAppNamespace
(
entity
,
entity
.
getDataChangeCreatedBy
());
entity
.
setDataChangeCreatedBy
(
userName
);
entity
=
appNamespaceService
.
createAppNamespace
(
entity
,
userName
);
}
}
return
BeanUtils
.
transfrom
(
AppNamespaceDTO
.
class
,
entity
);
return
BeanUtils
.
transfrom
(
AppNamespaceDTO
.
class
,
entity
);
...
...
apollo-adminservice/src/main/java/com/ctrip/framework/apollo/adminservice/controller/ClusterController.java
View file @
ea20fad0
...
@@ -3,16 +3,15 @@ package com.ctrip.framework.apollo.adminservice.controller;
...
@@ -3,16 +3,15 @@ package com.ctrip.framework.apollo.adminservice.controller;
import
java.util.List
;
import
java.util.List
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.core.userdetails.UserDetails
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.ctrip.framework.apollo.biz.entity.Cluster
;
import
com.ctrip.framework.apollo.biz.entity.Cluster
;
import
com.ctrip.framework.apollo.biz.service.ClusterService
;
import
com.ctrip.framework.apollo.biz.service.ClusterService
;
import
com.ctrip.framework.apollo.common.auth.ActiveUser
;
import
com.ctrip.framework.apollo.common.utils.BeanUtils
;
import
com.ctrip.framework.apollo.common.utils.BeanUtils
;
import
com.ctrip.framework.apollo.core.dto.ClusterDTO
;
import
com.ctrip.framework.apollo.core.dto.ClusterDTO
;
import
com.ctrip.framework.apollo.core.exception.NotFoundException
;
import
com.ctrip.framework.apollo.core.exception.NotFoundException
;
...
@@ -24,16 +23,13 @@ public class ClusterController {
...
@@ -24,16 +23,13 @@ public class ClusterController {
private
ClusterService
clusterService
;
private
ClusterService
clusterService
;
@RequestMapping
(
path
=
"/apps/{appId}/clusters"
,
method
=
RequestMethod
.
POST
)
@RequestMapping
(
path
=
"/apps/{appId}/clusters"
,
method
=
RequestMethod
.
POST
)
public
ClusterDTO
createOrUpdate
(
@PathVariable
(
"appId"
)
String
appId
,
@RequestBody
ClusterDTO
dto
,
public
ClusterDTO
createOrUpdate
(
@PathVariable
(
"appId"
)
String
appId
,
@RequestBody
ClusterDTO
dto
)
{
@ActiveUser
UserDetails
user
)
{
Cluster
entity
=
BeanUtils
.
transfrom
(
Cluster
.
class
,
dto
);
Cluster
entity
=
BeanUtils
.
transfrom
(
Cluster
.
class
,
dto
);
Cluster
managedEntity
=
clusterService
.
findOne
(
appId
,
entity
.
getName
());
Cluster
managedEntity
=
clusterService
.
findOne
(
appId
,
entity
.
getName
());
if
(
managedEntity
!=
null
)
{
if
(
managedEntity
!=
null
)
{
managedEntity
.
setDataChangeLastModifiedBy
(
user
.
getUsername
());
BeanUtils
.
copyEntityProperties
(
entity
,
managedEntity
);
BeanUtils
.
copyEntityProperties
(
entity
,
managedEntity
);
entity
=
clusterService
.
update
(
managedEntity
);
entity
=
clusterService
.
update
(
managedEntity
);
}
else
{
}
else
{
entity
.
setDataChangeCreatedBy
(
user
.
getUsername
());
entity
=
clusterService
.
save
(
entity
);
entity
=
clusterService
.
save
(
entity
);
}
}
...
@@ -41,13 +37,13 @@ public class ClusterController {
...
@@ -41,13 +37,13 @@ public class ClusterController {
return
dto
;
return
dto
;
}
}
@RequestMapping
(
path
=
"/apps/{appId}/clusters/{clusterName}"
,
method
=
RequestMethod
.
DELETE
)
@RequestMapping
(
path
=
"/apps/{appId}/clusters/{clusterName
:.+
}"
,
method
=
RequestMethod
.
DELETE
)
public
void
delete
(
@PathVariable
(
"appId"
)
String
appId
,
public
void
delete
(
@PathVariable
(
"appId"
)
String
appId
,
@PathVariable
(
"clusterName"
)
String
clusterName
,
@
ActiveUser
UserDetails
use
r
)
{
@PathVariable
(
"clusterName"
)
String
clusterName
,
@
RequestParam
String
operato
r
)
{
Cluster
entity
=
clusterService
.
findOne
(
appId
,
clusterName
);
Cluster
entity
=
clusterService
.
findOne
(
appId
,
clusterName
);
if
(
entity
==
null
)
if
(
entity
==
null
)
throw
new
NotFoundException
(
"cluster not found for clusterName "
+
clusterName
);
throw
new
NotFoundException
(
"cluster not found for clusterName "
+
clusterName
);
clusterService
.
delete
(
entity
.
getId
(),
user
.
getUsername
()
);
clusterService
.
delete
(
entity
.
getId
(),
operator
);
}
}
@RequestMapping
(
"/apps/{appId}/clusters"
)
@RequestMapping
(
"/apps/{appId}/clusters"
)
...
@@ -56,7 +52,7 @@ public class ClusterController {
...
@@ -56,7 +52,7 @@ public class ClusterController {
return
BeanUtils
.
batchTransform
(
ClusterDTO
.
class
,
clusters
);
return
BeanUtils
.
batchTransform
(
ClusterDTO
.
class
,
clusters
);
}
}
@RequestMapping
(
"/apps/{appId}/clusters/{clusterName}"
)
@RequestMapping
(
"/apps/{appId}/clusters/{clusterName
:.+
}"
)
public
ClusterDTO
get
(
@PathVariable
(
"appId"
)
String
appId
,
public
ClusterDTO
get
(
@PathVariable
(
"appId"
)
String
appId
,
@PathVariable
(
"clusterName"
)
String
clusterName
)
{
@PathVariable
(
"clusterName"
)
String
clusterName
)
{
Cluster
cluster
=
clusterService
.
findOne
(
appId
,
clusterName
);
Cluster
cluster
=
clusterService
.
findOne
(
appId
,
clusterName
);
...
...
apollo-adminservice/src/main/java/com/ctrip/framework/apollo/adminservice/controller/ItemController.java
View file @
ea20fad0
...
@@ -4,16 +4,15 @@ import java.util.LinkedList;
...
@@ -4,16 +4,15 @@ import java.util.LinkedList;
import
java.util.List
;
import
java.util.List
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.core.userdetails.UserDetails
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.ctrip.framework.apollo.biz.entity.Item
;
import
com.ctrip.framework.apollo.biz.entity.Item
;
import
com.ctrip.framework.apollo.biz.service.ItemService
;
import
com.ctrip.framework.apollo.biz.service.ItemService
;
import
com.ctrip.framework.apollo.common.auth.ActiveUser
;
import
com.ctrip.framework.apollo.common.utils.BeanUtils
;
import
com.ctrip.framework.apollo.common.utils.BeanUtils
;
import
com.ctrip.framework.apollo.core.dto.ItemDTO
;
import
com.ctrip.framework.apollo.core.dto.ItemDTO
;
import
com.ctrip.framework.apollo.core.exception.NotFoundException
;
import
com.ctrip.framework.apollo.core.exception.NotFoundException
;
...
@@ -26,24 +25,21 @@ public class ItemController {
...
@@ -26,24 +25,21 @@ public class ItemController {
@RequestMapping
(
path
=
"/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/items"
,
method
=
RequestMethod
.
POST
)
@RequestMapping
(
path
=
"/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/items"
,
method
=
RequestMethod
.
POST
)
public
ItemDTO
createOrUpdate
(
@PathVariable
(
"appId"
)
String
appId
,
public
ItemDTO
createOrUpdate
(
@PathVariable
(
"appId"
)
String
appId
,
@PathVariable
(
"clusterName"
)
String
clusterName
,
@PathVariable
(
"clusterName"
)
String
clusterName
,
@PathVariable
(
"namespaceName"
)
String
namespaceName
,
@RequestBody
ItemDTO
dto
,
@PathVariable
(
"namespaceName"
)
String
namespaceName
,
@RequestBody
ItemDTO
dto
)
{
@ActiveUser
UserDetails
user
)
{
Item
entity
=
BeanUtils
.
transfrom
(
Item
.
class
,
dto
);
Item
entity
=
BeanUtils
.
transfrom
(
Item
.
class
,
dto
);
Item
managedEntity
=
itemService
.
findOne
(
appId
,
clusterName
,
namespaceName
,
entity
.
getKey
());
Item
managedEntity
=
itemService
.
findOne
(
appId
,
clusterName
,
namespaceName
,
entity
.
getKey
());
if
(
managedEntity
!=
null
)
{
if
(
managedEntity
!=
null
)
{
managedEntity
.
setDataChangeLastModifiedBy
(
user
.
getUsername
());
BeanUtils
.
copyEntityProperties
(
entity
,
managedEntity
);
BeanUtils
.
copyEntityProperties
(
entity
,
managedEntity
);
entity
=
itemService
.
update
(
managedEntity
);
entity
=
itemService
.
update
(
managedEntity
);
}
else
{
}
else
{
Item
lastItem
=
itemService
.
findLastOne
(
appId
,
clusterName
,
namespaceName
);
Item
lastItem
=
itemService
.
findLastOne
(
appId
,
clusterName
,
namespaceName
);
int
lineNum
=
1
;
int
lineNum
=
1
;
if
(
lastItem
!=
null
){
if
(
lastItem
!=
null
)
{
lineNum
=
lastItem
.
getLineNum
()
+
1
;
Integer
lastItemNum
=
lastItem
.
getLineNum
();
lineNum
=
lastItemNum
==
null
?
1
:
lastItemNum
+
1
;
}
}
entity
.
setLineNum
(
lineNum
);
entity
.
setLineNum
(
lineNum
);
entity
.
setDataChangeCreatedBy
(
user
.
getUsername
());
entity
.
setDataChangeLastModifiedBy
(
user
.
getUsername
());
entity
=
itemService
.
save
(
entity
);
entity
=
itemService
.
save
(
entity
);
}
}
...
@@ -52,20 +48,22 @@ public class ItemController {
...
@@ -52,20 +48,22 @@ public class ItemController {
}
}
@RequestMapping
(
path
=
"/items/{itemId}"
,
method
=
RequestMethod
.
DELETE
)
@RequestMapping
(
path
=
"/items/{itemId}"
,
method
=
RequestMethod
.
DELETE
)
public
void
delete
(
@PathVariable
(
"itemId"
)
long
itemId
,
@
ActiveUser
UserDetails
use
r
)
{
public
void
delete
(
@PathVariable
(
"itemId"
)
long
itemId
,
@
RequestParam
String
operato
r
)
{
Item
entity
=
itemService
.
findOne
(
itemId
);
Item
entity
=
itemService
.
findOne
(
itemId
);
if
(
entity
==
null
)
throw
new
NotFoundException
(
"item not found for itemId "
+
itemId
);
if
(
entity
==
null
)
{
itemService
.
delete
(
entity
.
getId
(),
user
.
getUsername
());
throw
new
NotFoundException
(
"item not found for itemId "
+
itemId
);
}
itemService
.
delete
(
entity
.
getId
(),
operator
);
}
}
@RequestMapping
(
"/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/items"
)
@RequestMapping
(
"/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/items"
)
public
List
<
ItemDTO
>
findItems
(
@PathVariable
(
"appId"
)
String
appId
,
public
List
<
ItemDTO
>
findItems
(
@PathVariable
(
"appId"
)
String
appId
,
@PathVariable
(
"clusterName"
)
String
clusterName
,
@PathVariable
(
"clusterName"
)
String
clusterName
,
@PathVariable
(
"namespaceName"
)
String
namespaceName
)
{
@PathVariable
(
"namespaceName"
)
String
namespaceName
)
{
List
<
Item
>
items
=
itemService
.
findItems
(
appId
,
clusterName
,
namespaceName
);
List
<
Item
>
items
=
itemService
.
findItems
(
appId
,
clusterName
,
namespaceName
);
List
<
ItemDTO
>
itemDTOs
=
new
LinkedList
<>();
List
<
ItemDTO
>
itemDTOs
=
new
LinkedList
<>();
for
(
Item
item
:
items
)
{
for
(
Item
item
:
items
)
{
ItemDTO
itemDTO
=
BeanUtils
.
transfrom
(
ItemDTO
.
class
,
item
);
ItemDTO
itemDTO
=
BeanUtils
.
transfrom
(
ItemDTO
.
class
,
item
);
itemDTO
.
setLastModifiedBy
(
item
.
getDataChangeLastModifiedBy
());
itemDTO
.
setLastModifiedBy
(
item
.
getDataChangeLastModifiedBy
());
itemDTO
.
setLastModifiedTime
(
item
.
getDataChangeLastModifiedTime
());
itemDTO
.
setLastModifiedTime
(
item
.
getDataChangeLastModifiedTime
());
...
@@ -77,17 +75,21 @@ public class ItemController {
...
@@ -77,17 +75,21 @@ public class ItemController {
@RequestMapping
(
"/items/{itemId}"
)
@RequestMapping
(
"/items/{itemId}"
)
public
ItemDTO
get
(
@PathVariable
(
"itemId"
)
long
itemId
)
{
public
ItemDTO
get
(
@PathVariable
(
"itemId"
)
long
itemId
)
{
Item
item
=
itemService
.
findOne
(
itemId
);
Item
item
=
itemService
.
findOne
(
itemId
);
if
(
item
==
null
)
throw
new
NotFoundException
(
"item not found for itemId "
+
itemId
);
if
(
item
==
null
)
{
throw
new
NotFoundException
(
"item not found for itemId "
+
itemId
);
}
return
BeanUtils
.
transfrom
(
ItemDTO
.
class
,
item
);
return
BeanUtils
.
transfrom
(
ItemDTO
.
class
,
item
);
}
}
@RequestMapping
(
"/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/items/{key}"
)
@RequestMapping
(
"/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/items/{key
:.+
}"
)
public
ItemDTO
get
(
@PathVariable
(
"appId"
)
String
appId
,
public
ItemDTO
get
(
@PathVariable
(
"appId"
)
String
appId
,
@PathVariable
(
"clusterName"
)
String
clusterName
,
@PathVariable
(
"clusterName"
)
String
clusterName
,
@PathVariable
(
"namespaceName"
)
String
namespaceName
,
@PathVariable
(
"key"
)
String
key
)
{
@PathVariable
(
"namespaceName"
)
String
namespaceName
,
@PathVariable
(
"key"
)
String
key
)
{
Item
item
=
itemService
.
findOne
(
appId
,
clusterName
,
namespaceName
,
key
);
Item
item
=
itemService
.
findOne
(
appId
,
clusterName
,
namespaceName
,
key
);
if
(
item
==
null
)
throw
new
NotFoundException
(
if
(
item
==
null
)
{
String
.
format
(
"item not found for %s %s %s %s"
,
appId
,
clusterName
,
namespaceName
,
key
));
throw
new
NotFoundException
(
String
.
format
(
"item not found for %s %s %s %s"
,
appId
,
clusterName
,
namespaceName
,
key
));
}
return
BeanUtils
.
transfrom
(
ItemDTO
.
class
,
item
);
return
BeanUtils
.
transfrom
(
ItemDTO
.
class
,
item
);
}
}
}
}
apollo-adminservice/src/main/java/com/ctrip/framework/apollo/adminservice/controller/ItemSetController.java
View file @
ea20fad0
...
@@ -3,14 +3,12 @@ package com.ctrip.framework.apollo.adminservice.controller;
...
@@ -3,14 +3,12 @@ package com.ctrip.framework.apollo.adminservice.controller;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.security.core.userdetails.UserDetails
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.ctrip.framework.apollo.biz.service.ItemSetService
;
import
com.ctrip.framework.apollo.biz.service.ItemSetService
;
import
com.ctrip.framework.apollo.common.auth.ActiveUser
;
import
com.ctrip.framework.apollo.core.dto.ItemChangeSets
;
import
com.ctrip.framework.apollo.core.dto.ItemChangeSets
;
@RestController
@RestController
...
@@ -20,8 +18,8 @@ public class ItemSetController {
...
@@ -20,8 +18,8 @@ public class ItemSetController {
private
ItemSetService
itemSetService
;
private
ItemSetService
itemSetService
;
@RequestMapping
(
path
=
"/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/itemset"
,
method
=
RequestMethod
.
POST
)
@RequestMapping
(
path
=
"/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/itemset"
,
method
=
RequestMethod
.
POST
)
public
ResponseEntity
<
Void
>
create
(
@RequestBody
ItemChangeSets
changeSet
,
@ActiveUser
UserDetails
user
)
{
public
ResponseEntity
<
Void
>
create
(
@RequestBody
ItemChangeSets
changeSet
)
{
itemSetService
.
updateSet
(
changeSet
,
user
.
getUsername
()
);
itemSetService
.
updateSet
(
changeSet
);
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
build
();
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
build
();
}
}
}
}
apollo-adminservice/src/main/java/com/ctrip/framework/apollo/adminservice/controller/NamespaceController.java
View file @
ea20fad0
...
@@ -3,16 +3,15 @@ package com.ctrip.framework.apollo.adminservice.controller;
...
@@ -3,16 +3,15 @@ package com.ctrip.framework.apollo.adminservice.controller;
import
java.util.List
;
import
java.util.List
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.core.userdetails.UserDetails
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.ctrip.framework.apollo.biz.entity.Namespace
;
import
com.ctrip.framework.apollo.biz.entity.Namespace
;
import
com.ctrip.framework.apollo.biz.service.NamespaceService
;
import
com.ctrip.framework.apollo.biz.service.NamespaceService
;
import
com.ctrip.framework.apollo.common.auth.ActiveUser
;
import
com.ctrip.framework.apollo.common.utils.BeanUtils
;
import
com.ctrip.framework.apollo.common.utils.BeanUtils
;
import
com.ctrip.framework.apollo.core.dto.NamespaceDTO
;
import
com.ctrip.framework.apollo.core.dto.NamespaceDTO
;
import
com.ctrip.framework.apollo.core.exception.NotFoundException
;
import
com.ctrip.framework.apollo.core.exception.NotFoundException
;
...
@@ -25,16 +24,13 @@ public class NamespaceController {
...
@@ -25,16 +24,13 @@ public class NamespaceController {
@RequestMapping
(
path
=
"/apps/{appId}/clusters/{clusterName}/namespaces"
,
method
=
RequestMethod
.
POST
)
@RequestMapping
(
path
=
"/apps/{appId}/clusters/{clusterName}/namespaces"
,
method
=
RequestMethod
.
POST
)
public
NamespaceDTO
createOrUpdate
(
@PathVariable
(
"appId"
)
String
appId
,
public
NamespaceDTO
createOrUpdate
(
@PathVariable
(
"appId"
)
String
appId
,
@PathVariable
(
"clusterName"
)
String
clusterName
,
@RequestBody
NamespaceDTO
dto
,
@PathVariable
(
"clusterName"
)
String
clusterName
,
@RequestBody
NamespaceDTO
dto
)
{
@ActiveUser
UserDetails
user
)
{
Namespace
entity
=
BeanUtils
.
transfrom
(
Namespace
.
class
,
dto
);
Namespace
entity
=
BeanUtils
.
transfrom
(
Namespace
.
class
,
dto
);
Namespace
managedEntity
=
namespaceService
.
findOne
(
appId
,
clusterName
,
entity
.
getNamespaceName
());
Namespace
managedEntity
=
namespaceService
.
findOne
(
appId
,
clusterName
,
entity
.
getNamespaceName
());
if
(
managedEntity
!=
null
)
{
if
(
managedEntity
!=
null
)
{
managedEntity
.
setDataChangeLastModifiedBy
(
user
.
getUsername
());
BeanUtils
.
copyEntityProperties
(
entity
,
managedEntity
);
BeanUtils
.
copyEntityProperties
(
entity
,
managedEntity
);
entity
=
namespaceService
.
update
(
managedEntity
);
entity
=
namespaceService
.
update
(
managedEntity
);
}
else
{
}
else
{
entity
.
setDataChangeCreatedBy
(
user
.
getUsername
());
entity
=
namespaceService
.
save
(
entity
);
entity
=
namespaceService
.
save
(
entity
);
}
}
...
@@ -42,14 +38,14 @@ public class NamespaceController {
...
@@ -42,14 +38,14 @@ public class NamespaceController {
return
dto
;
return
dto
;
}
}
@RequestMapping
(
path
=
"/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}"
,
method
=
RequestMethod
.
DELETE
)
@RequestMapping
(
path
=
"/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName
:.+
}"
,
method
=
RequestMethod
.
DELETE
)
public
void
delete
(
@PathVariable
(
"appId"
)
String
appId
,
public
void
delete
(
@PathVariable
(
"appId"
)
String
appId
,
@PathVariable
(
"clusterName"
)
String
clusterName
,
@PathVariable
(
"clusterName"
)
String
clusterName
,
@PathVariable
(
"namespaceName"
)
String
namespaceName
,
@
ActiveUser
UserDetails
use
r
)
{
@PathVariable
(
"namespaceName"
)
String
namespaceName
,
@
RequestParam
String
operato
r
)
{
Namespace
entity
=
namespaceService
.
findOne
(
appId
,
clusterName
,
namespaceName
);
Namespace
entity
=
namespaceService
.
findOne
(
appId
,
clusterName
,
namespaceName
);
if
(
entity
==
null
)
throw
new
NotFoundException
(
if
(
entity
==
null
)
throw
new
NotFoundException
(
String
.
format
(
"namespace not found for %s %s %s"
,
appId
,
clusterName
,
namespaceName
));
String
.
format
(
"namespace not found for %s %s %s"
,
appId
,
clusterName
,
namespaceName
));
namespaceService
.
delete
(
entity
.
getId
(),
user
.
getUsername
()
);
namespaceService
.
delete
(
entity
.
getId
(),
operator
);
}
}
@RequestMapping
(
"/apps/{appId}/clusters/{clusterName}/namespaces"
)
@RequestMapping
(
"/apps/{appId}/clusters/{clusterName}/namespaces"
)
...
@@ -67,7 +63,7 @@ public class NamespaceController {
...
@@ -67,7 +63,7 @@ public class NamespaceController {
return
BeanUtils
.
transfrom
(
NamespaceDTO
.
class
,
namespace
);
return
BeanUtils
.
transfrom
(
NamespaceDTO
.
class
,
namespace
);
}
}
@RequestMapping
(
"/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}"
)
@RequestMapping
(
"/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName
:.+
}"
)
public
NamespaceDTO
get
(
@PathVariable
(
"appId"
)
String
appId
,
public
NamespaceDTO
get
(
@PathVariable
(
"appId"
)
String
appId
,
@PathVariable
(
"clusterName"
)
String
clusterName
,
@PathVariable
(
"clusterName"
)
String
clusterName
,
@PathVariable
(
"namespaceName"
)
String
namespaceName
)
{
@PathVariable
(
"namespaceName"
)
String
namespaceName
)
{
...
...
apollo-adminservice/src/main/java/com/ctrip/framework/apollo/adminservice/controller/ReleaseController.java
View file @
ea20fad0
...
@@ -9,14 +9,12 @@ import com.ctrip.framework.apollo.biz.message.Topics;
...
@@ -9,14 +9,12 @@ import com.ctrip.framework.apollo.biz.message.Topics;
import
com.ctrip.framework.apollo.biz.service.ConfigService
;
import
com.ctrip.framework.apollo.biz.service.ConfigService
;
import
com.ctrip.framework.apollo.biz.service.NamespaceService
;
import
com.ctrip.framework.apollo.biz.service.NamespaceService
;
import
com.ctrip.framework.apollo.biz.service.ReleaseService
;
import
com.ctrip.framework.apollo.biz.service.ReleaseService
;
import
com.ctrip.framework.apollo.common.auth.ActiveUser
;
import
com.ctrip.framework.apollo.common.utils.BeanUtils
;
import
com.ctrip.framework.apollo.common.utils.BeanUtils
;
import
com.ctrip.framework.apollo.core.ConfigConsts
;
import
com.ctrip.framework.apollo.core.ConfigConsts
;
import
com.ctrip.framework.apollo.core.dto.ReleaseDTO
;
import
com.ctrip.framework.apollo.core.dto.ReleaseDTO
;
import
com.ctrip.framework.apollo.core.exception.NotFoundException
;
import
com.ctrip.framework.apollo.core.exception.NotFoundException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.core.userdetails.UserDetails
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestMethod
;
...
@@ -78,13 +76,13 @@ public class ReleaseController {
...
@@ -78,13 +76,13 @@ public class ReleaseController {
@PathVariable
(
"namespaceName"
)
String
namespaceName
,
@PathVariable
(
"namespaceName"
)
String
namespaceName
,
@RequestParam
(
"name"
)
String
name
,
@RequestParam
(
"name"
)
String
name
,
@RequestParam
(
name
=
"comment"
,
required
=
false
)
String
comment
,
@RequestParam
(
name
=
"comment"
,
required
=
false
)
String
comment
,
@
ActiveUser
UserDetails
use
r
)
{
@
RequestParam
(
"operator"
)
String
operato
r
)
{
Namespace
namespace
=
namespaceService
.
findOne
(
appId
,
clusterName
,
namespaceName
);
Namespace
namespace
=
namespaceService
.
findOne
(
appId
,
clusterName
,
namespaceName
);
if
(
namespace
==
null
)
{
if
(
namespace
==
null
)
{
throw
new
NotFoundException
(
String
.
format
(
"Could not find namespace for %s %s %s"
,
appId
,
throw
new
NotFoundException
(
String
.
format
(
"Could not find namespace for %s %s %s"
,
appId
,
clusterName
,
namespaceName
));
clusterName
,
namespaceName
));
}
}
Release
release
=
releaseService
.
buildRelease
(
name
,
comment
,
namespace
,
user
.
getUsername
()
);
Release
release
=
releaseService
.
buildRelease
(
name
,
comment
,
namespace
,
operator
);
messageSender
.
sendMessage
(
assembleKey
(
appId
,
clusterName
,
namespaceName
),
messageSender
.
sendMessage
(
assembleKey
(
appId
,
clusterName
,
namespaceName
),
Topics
.
APOLLO_RELEASE_TOPIC
);
Topics
.
APOLLO_RELEASE_TOPIC
);
return
BeanUtils
.
transfrom
(
ReleaseDTO
.
class
,
release
);
return
BeanUtils
.
transfrom
(
ReleaseDTO
.
class
,
release
);
...
...
apollo-adminservice/src/test/java/com/ctrip/framework/apollo/adminservice/controller/ControllerExceptionTest.java
View file @
ea20fad0
...
@@ -85,8 +85,7 @@ public class ControllerExceptionTest {
...
@@ -85,8 +85,7 @@ public class ControllerExceptionTest {
when
(
adminService
.
createNewApp
(
any
(
App
.
class
)))
when
(
adminService
.
createNewApp
(
any
(
App
.
class
)))
.
thenThrow
(
new
ServiceException
(
"create app failed"
));
.
thenThrow
(
new
ServiceException
(
"create app failed"
));
UserDetails
user
=
new
User
(
"user"
,
""
,
new
ArrayList
<
GrantedAuthority
>());
appController
.
createOrUpdate
(
dto
);
appController
.
createOrUpdate
(
dto
,
user
);
}
}
private
AppDTO
generateSampleDTOData
()
{
private
AppDTO
generateSampleDTOData
()
{
...
@@ -95,6 +94,8 @@ public class ControllerExceptionTest {
...
@@ -95,6 +94,8 @@ public class ControllerExceptionTest {
dto
.
setName
(
"someName"
);
dto
.
setName
(
"someName"
);
dto
.
setOwnerName
(
"someOwner"
);
dto
.
setOwnerName
(
"someOwner"
);
dto
.
setOwnerEmail
(
"someOwner@ctrip.com"
);
dto
.
setOwnerEmail
(
"someOwner@ctrip.com"
);
dto
.
setDataChangeLastModifiedBy
(
"test"
);
dto
.
setDataChangeCreatedBy
(
"test"
);
return
dto
;
return
dto
;
}
}
}
}
apollo-adminservice/src/test/java/com/ctrip/framework/apollo/adminservice/controller/ItemSetControllerTest.java
View file @
ea20fad0
...
@@ -46,6 +46,7 @@ public class ItemSetControllerTest extends AbstractControllerTest {
...
@@ -46,6 +46,7 @@ public class ItemSetControllerTest extends AbstractControllerTest {
Assert
.
assertEquals
(
"application"
,
namespace
.
getNamespaceName
());
Assert
.
assertEquals
(
"application"
,
namespace
.
getNamespaceName
());
ItemChangeSets
itemSet
=
new
ItemChangeSets
();
ItemChangeSets
itemSet
=
new
ItemChangeSets
();
itemSet
.
setDataChangeLastModifiedBy
(
"created"
);
RestTemplate
createdTemplate
=
new
TestRestTemplate
(
"created"
,
""
);
RestTemplate
createdTemplate
=
new
TestRestTemplate
(
"created"
,
""
);
createdTemplate
.
setMessageConverters
(
restTemplate
.
getMessageConverters
());
createdTemplate
.
setMessageConverters
(
restTemplate
.
getMessageConverters
());
...
@@ -94,6 +95,7 @@ public class ItemSetControllerTest extends AbstractControllerTest {
...
@@ -94,6 +95,7 @@ public class ItemSetControllerTest extends AbstractControllerTest {
Assert
.
assertEquals
(
"application"
,
namespace
.
getNamespaceName
());
Assert
.
assertEquals
(
"application"
,
namespace
.
getNamespaceName
());
ItemChangeSets
createChangeSet
=
new
ItemChangeSets
();
ItemChangeSets
createChangeSet
=
new
ItemChangeSets
();
createChangeSet
.
setDataChangeLastModifiedBy
(
"created"
);
RestTemplate
createdRestTemplate
=
new
TestRestTemplate
(
"created"
,
""
);
RestTemplate
createdRestTemplate
=
new
TestRestTemplate
(
"created"
,
""
);
createdRestTemplate
.
setMessageConverters
(
restTemplate
.
getMessageConverters
());
createdRestTemplate
.
setMessageConverters
(
restTemplate
.
getMessageConverters
());
...
@@ -118,20 +120,22 @@ public class ItemSetControllerTest extends AbstractControllerTest {
...
@@ -118,20 +120,22 @@ public class ItemSetControllerTest extends AbstractControllerTest {
+
cluster
.
getName
()
+
"/namespaces/"
+
namespace
.
getNamespaceName
()
+
"/items"
,
+
cluster
.
getName
()
+
"/namespaces/"
+
namespace
.
getNamespaceName
()
+
"/items"
,
ItemDTO
[].
class
);
ItemDTO
[].
class
);
ItemChangeSets
udpateChangeSet
=
new
ItemChangeSets
();
ItemChangeSets
updateChangeSet
=
new
ItemChangeSets
();
updateChangeSet
.
setDataChangeLastModifiedBy
(
"updated"
);
RestTemplate
updatedRestTemplate
=
new
TestRestTemplate
(
"updated"
,
""
);
RestTemplate
updatedRestTemplate
=
new
TestRestTemplate
(
"updated"
,
""
);
updatedRestTemplate
.
setMessageConverters
(
restTemplate
.
getMessageConverters
());
updatedRestTemplate
.
setMessageConverters
(
restTemplate
.
getMessageConverters
());
int
updatedSize
=
2
;
int
updatedSize
=
2
;
for
(
int
i
=
0
;
i
<
updatedSize
;
i
++)
{
for
(
int
i
=
0
;
i
<
updatedSize
;
i
++)
{
items
[
i
].
setValue
(
"updated_value_"
+
i
);
items
[
i
].
setValue
(
"updated_value_"
+
i
);
u
dp
ateChangeSet
.
addUpdateItem
(
items
[
i
]);
u
pd
ateChangeSet
.
addUpdateItem
(
items
[
i
]);
}
}
response
=
updatedRestTemplate
.
postForEntity
(
response
=
updatedRestTemplate
.
postForEntity
(
"http://localhost:"
+
port
+
"/apps/"
+
app
.
getAppId
()
+
"/clusters/"
+
cluster
.
getName
()
"http://localhost:"
+
port
+
"/apps/"
+
app
.
getAppId
()
+
"/clusters/"
+
cluster
.
getName
()
+
"/namespaces/"
+
namespace
.
getNamespaceName
()
+
"/itemset"
,
+
"/namespaces/"
+
namespace
.
getNamespaceName
()
+
"/itemset"
,
u
dp
ateChangeSet
,
Void
.
class
);
u
pd
ateChangeSet
,
Void
.
class
);
Assert
.
assertEquals
(
HttpStatus
.
OK
,
response
.
getStatusCode
());
Assert
.
assertEquals
(
HttpStatus
.
OK
,
response
.
getStatusCode
());
List
<
Item
>
savedItems
=
itemRepository
.
findByNamespaceIdOrderByLineNumAsc
(
namespace
.
getId
());
List
<
Item
>
savedItems
=
itemRepository
.
findByNamespaceIdOrderByLineNumAsc
(
namespace
.
getId
());
Assert
.
assertEquals
(
createdSize
,
savedItems
.
size
());
Assert
.
assertEquals
(
createdSize
,
savedItems
.
size
());
...
@@ -165,6 +169,7 @@ public class ItemSetControllerTest extends AbstractControllerTest {
...
@@ -165,6 +169,7 @@ public class ItemSetControllerTest extends AbstractControllerTest {
Assert
.
assertEquals
(
"application"
,
namespace
.
getNamespaceName
());
Assert
.
assertEquals
(
"application"
,
namespace
.
getNamespaceName
());
ItemChangeSets
createChangeSet
=
new
ItemChangeSets
();
ItemChangeSets
createChangeSet
=
new
ItemChangeSets
();
createChangeSet
.
setDataChangeLastModifiedBy
(
"created"
);
RestTemplate
createdTemplate
=
new
TestRestTemplate
(
"created"
,
""
);
RestTemplate
createdTemplate
=
new
TestRestTemplate
(
"created"
,
""
);
createdTemplate
.
setMessageConverters
(
restTemplate
.
getMessageConverters
());
createdTemplate
.
setMessageConverters
(
restTemplate
.
getMessageConverters
());
...
@@ -190,6 +195,7 @@ public class ItemSetControllerTest extends AbstractControllerTest {
...
@@ -190,6 +195,7 @@ public class ItemSetControllerTest extends AbstractControllerTest {
ItemDTO
[].
class
);
ItemDTO
[].
class
);
ItemChangeSets
deleteChangeSet
=
new
ItemChangeSets
();
ItemChangeSets
deleteChangeSet
=
new
ItemChangeSets
();
deleteChangeSet
.
setDataChangeLastModifiedBy
(
"deleted"
);
RestTemplate
deletedTemplate
=
new
TestRestTemplate
(
"deleted"
,
""
);
RestTemplate
deletedTemplate
=
new
TestRestTemplate
(
"deleted"
,
""
);
deletedTemplate
.
setMessageConverters
(
restTemplate
.
getMessageConverters
());
deletedTemplate
.
setMessageConverters
(
restTemplate
.
getMessageConverters
());
...
...
apollo-adminservice/src/test/java/com/ctrip/framework/apollo/adminservice/controller/ReleaseControllerTest.java
View file @
ea20fad0
...
@@ -76,6 +76,7 @@ public class ReleaseControllerTest extends AbstractControllerTest {
...
@@ -76,6 +76,7 @@ public class ReleaseControllerTest extends AbstractControllerTest {
MultiValueMap
<
String
,
String
>
parameters
=
new
LinkedMultiValueMap
<
String
,
String
>();
MultiValueMap
<
String
,
String
>
parameters
=
new
LinkedMultiValueMap
<
String
,
String
>();
parameters
.
add
(
"name"
,
"someReleaseName"
);
parameters
.
add
(
"name"
,
"someReleaseName"
);
parameters
.
add
(
"comment"
,
"someComment"
);
parameters
.
add
(
"comment"
,
"someComment"
);
parameters
.
add
(
"operator"
,
"test"
);
HttpEntity
<
MultiValueMap
<
String
,
String
>>
entity
=
HttpEntity
<
MultiValueMap
<
String
,
String
>>
entity
=
new
HttpEntity
<
MultiValueMap
<
String
,
String
>>(
parameters
,
headers
);
new
HttpEntity
<
MultiValueMap
<
String
,
String
>>(
parameters
,
headers
);
ResponseEntity
<
ReleaseDTO
>
response
=
restTemplate
.
postForEntity
(
ResponseEntity
<
ReleaseDTO
>
response
=
restTemplate
.
postForEntity
(
...
@@ -111,7 +112,6 @@ public class ReleaseControllerTest extends AbstractControllerTest {
...
@@ -111,7 +112,6 @@ public class ReleaseControllerTest extends AbstractControllerTest {
ReleaseService
someReleaseService
=
mock
(
ReleaseService
.
class
);
ReleaseService
someReleaseService
=
mock
(
ReleaseService
.
class
);
MessageSender
someMessageSender
=
mock
(
MessageSender
.
class
);
MessageSender
someMessageSender
=
mock
(
MessageSender
.
class
);
Namespace
someNamespace
=
mock
(
Namespace
.
class
);
Namespace
someNamespace
=
mock
(
Namespace
.
class
);
UserDetails
someUser
=
mock
(
UserDetails
.
class
);
ReleaseController
releaseController
=
new
ReleaseController
();
ReleaseController
releaseController
=
new
ReleaseController
();
ReflectionTestUtils
.
setField
(
releaseController
,
"releaseService"
,
someReleaseService
);
ReflectionTestUtils
.
setField
(
releaseController
,
"releaseService"
,
someReleaseService
);
...
@@ -120,10 +120,9 @@ public class ReleaseControllerTest extends AbstractControllerTest {
...
@@ -120,10 +120,9 @@ public class ReleaseControllerTest extends AbstractControllerTest {
when
(
someNamespaceService
.
findOne
(
someAppId
,
someCluster
,
someNamespaceName
))
when
(
someNamespaceService
.
findOne
(
someAppId
,
someCluster
,
someNamespaceName
))
.
thenReturn
(
someNamespace
);
.
thenReturn
(
someNamespace
);
when
(
someUser
.
getUsername
()).
thenReturn
(
someUserName
);
releaseController
releaseController
.
buildRelease
(
someAppId
,
someCluster
,
someNamespaceName
,
someName
,
someComment
,
someUser
);
.
buildRelease
(
someAppId
,
someCluster
,
someNamespaceName
,
someName
,
someComment
,
"test"
);
verify
(
someMessageSender
,
times
(
1
))
verify
(
someMessageSender
,
times
(
1
))
.
sendMessage
(
Joiner
.
on
(
ConfigConsts
.
CLUSTER_NAMESPACE_SEPARATOR
)
.
sendMessage
(
Joiner
.
on
(
ConfigConsts
.
CLUSTER_NAMESPACE_SEPARATOR
)
...
...
apollo-biz/src/main/java/com/ctrip/framework/apollo/biz/service/ItemSetService.java
View file @
ea20fad0
...
@@ -21,7 +21,8 @@ public class ItemSetService {
...
@@ -21,7 +21,8 @@ public class ItemSetService {
private
AuditService
auditService
;
private
AuditService
auditService
;
@Transactional
@Transactional
public
void
updateSet
(
ItemChangeSets
changeSet
,
String
owner
)
{
public
void
updateSet
(
ItemChangeSets
changeSet
)
{
String
owner
=
changeSet
.
getDataChangeLastModifiedBy
();
if
(
changeSet
.
getCreateItems
()
!=
null
)
{
if
(
changeSet
.
getCreateItems
()
!=
null
)
{
for
(
ItemDTO
item
:
changeSet
.
getCreateItems
())
{
for
(
ItemDTO
item
:
changeSet
.
getCreateItems
())
{
Item
entity
=
BeanUtils
.
transfrom
(
Item
.
class
,
item
);
Item
entity
=
BeanUtils
.
transfrom
(
Item
.
class
,
item
);
...
...
apollo-common/src/main/java/com/ctrip/framework/apollo/common/controller/WebMvcConfig.java
View file @
ea20fad0
...
@@ -24,6 +24,7 @@ public class WebMvcConfig extends WebMvcConfigurerAdapter {
...
@@ -24,6 +24,7 @@ public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Override
@Override
public
void
configureContentNegotiation
(
ContentNegotiationConfigurer
configurer
)
{
public
void
configureContentNegotiation
(
ContentNegotiationConfigurer
configurer
)
{
configurer
.
favorPathExtension
(
false
);
configurer
.
ignoreAcceptHeader
(
true
).
defaultContentType
(
MediaType
.
APPLICATION_JSON
);
configurer
.
ignoreAcceptHeader
(
true
).
defaultContentType
(
MediaType
.
APPLICATION_JSON
);
}
}
...
...
apollo-common/src/main/java/com/ctrip/framework/apollo/common/utils/BeanUtils.java
View file @
ea20fad0
...
@@ -226,6 +226,5 @@ public class BeanUtils {
...
@@ -226,6 +226,5 @@ public class BeanUtils {
org
.
springframework
.
beans
.
BeanUtils
.
copyProperties
(
source
,
target
,
COPY_IGNORED_PROPERTIES
);
org
.
springframework
.
beans
.
BeanUtils
.
copyProperties
(
source
,
target
,
COPY_IGNORED_PROPERTIES
);
}
}
private
static
final
String
[]
COPY_IGNORED_PROPERTIES
=
{
"id"
,
"dataChangeCreatedBy"
,
private
static
final
String
[]
COPY_IGNORED_PROPERTIES
=
{
"id"
,
"dataChangeCreatedTime"
,
"dataChangeLastModifiedTime"
};
"dataChangeCreatedTime"
,
"dataChangeLastModifiedBy"
,
"dataChangeLastModifiedTime"
};
}
}
apollo-core/src/main/java/com/ctrip/framework/apollo/core/dto/AppDTO.java
View file @
ea20fad0
package
com
.
ctrip
.
framework
.
apollo
.
core
.
dto
;
package
com
.
ctrip
.
framework
.
apollo
.
core
.
dto
;
public
class
AppDTO
{
public
class
AppDTO
extends
BaseDTO
{
private
long
id
;
private
long
id
;
...
...
apollo-core/src/main/java/com/ctrip/framework/apollo/core/dto/AppNamespaceDTO.java
View file @
ea20fad0
package
com
.
ctrip
.
framework
.
apollo
.
core
.
dto
;
package
com
.
ctrip
.
framework
.
apollo
.
core
.
dto
;
public
class
AppNamespaceDTO
{
public
class
AppNamespaceDTO
extends
BaseDTO
{
private
long
id
;
private
long
id
;
private
String
name
;
private
String
name
;
...
...
apollo-core/src/main/java/com/ctrip/framework/apollo/core/dto/BaseDTO.java
0 → 100644
View file @
ea20fad0
package
com
.
ctrip
.
framework
.
apollo
.
core
.
dto
;
public
class
BaseDTO
{
protected
String
dataChangeCreatedBy
;
protected
String
dataChangeLastModifiedBy
;
public
String
getDataChangeCreatedBy
()
{
return
dataChangeCreatedBy
;
}
public
void
setDataChangeCreatedBy
(
String
dataChangeCreatedBy
)
{
this
.
dataChangeCreatedBy
=
dataChangeCreatedBy
;
}
public
String
getDataChangeLastModifiedBy
()
{
return
dataChangeLastModifiedBy
;
}
public
void
setDataChangeLastModifiedBy
(
String
dataChangeLastModifiedBy
)
{
this
.
dataChangeLastModifiedBy
=
dataChangeLastModifiedBy
;
}
}
apollo-core/src/main/java/com/ctrip/framework/apollo/core/dto/ClusterDTO.java
View file @
ea20fad0
package
com
.
ctrip
.
framework
.
apollo
.
core
.
dto
;
package
com
.
ctrip
.
framework
.
apollo
.
core
.
dto
;
public
class
ClusterDTO
{
public
class
ClusterDTO
extends
BaseDTO
{
private
long
id
;
private
long
id
;
...
...
apollo-core/src/main/java/com/ctrip/framework/apollo/core/dto/ItemChangeSets.java
View file @
ea20fad0
...
@@ -6,7 +6,7 @@ import java.util.List;
...
@@ -6,7 +6,7 @@ import java.util.List;
/**
/**
* storage cud result
* storage cud result
*/
*/
public
class
ItemChangeSets
{
public
class
ItemChangeSets
extends
BaseDTO
{
private
List
<
ItemDTO
>
createItems
=
new
LinkedList
<>();
private
List
<
ItemDTO
>
createItems
=
new
LinkedList
<>();
private
List
<
ItemDTO
>
updateItems
=
new
LinkedList
<>();
private
List
<
ItemDTO
>
updateItems
=
new
LinkedList
<>();
...
...
apollo-core/src/main/java/com/ctrip/framework/apollo/core/dto/ItemDTO.java
View file @
ea20fad0
...
@@ -2,7 +2,7 @@ package com.ctrip.framework.apollo.core.dto;
...
@@ -2,7 +2,7 @@ package com.ctrip.framework.apollo.core.dto;
import
java.util.Date
;
import
java.util.Date
;
public
class
ItemDTO
{
public
class
ItemDTO
extends
BaseDTO
{
private
long
id
;
private
long
id
;
...
...
apollo-core/src/main/java/com/ctrip/framework/apollo/core/dto/NamespaceDTO.java
View file @
ea20fad0
package
com
.
ctrip
.
framework
.
apollo
.
core
.
dto
;
package
com
.
ctrip
.
framework
.
apollo
.
core
.
dto
;
public
class
NamespaceDTO
{
public
class
NamespaceDTO
extends
BaseDTO
{
private
long
id
;
private
long
id
;
private
String
appId
;
private
String
appId
;
...
...
apollo-core/src/main/java/com/ctrip/framework/apollo/core/dto/ReleaseDTO.java
View file @
ea20fad0
package
com
.
ctrip
.
framework
.
apollo
.
core
.
dto
;
package
com
.
ctrip
.
framework
.
apollo
.
core
.
dto
;
public
class
ReleaseDTO
{
public
class
ReleaseDTO
extends
BaseDTO
{
private
long
id
;
private
long
id
;
private
String
releaseKey
;
private
String
releaseKey
;
...
...
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/PortalSettings.java
View file @
ea20fad0
...
@@ -73,9 +73,9 @@ public class PortalSettings {
...
@@ -73,9 +73,9 @@ public class PortalSettings {
healthCheckService
=
Executors
.
newScheduledThreadPool
(
1
);
healthCheckService
=
Executors
.
newScheduledThreadPool
(
1
);
healthCheckService
//
healthCheckService
.
scheduleWithFixedDelay
(
new
HealthCheckTask
(
applicationContext
),
1000
,
HEALTH_CHECK_INTERVAL
,
//
.scheduleWithFixedDelay(new HealthCheckTask(applicationContext), 1000, HEALTH_CHECK_INTERVAL,
TimeUnit
.
MILLISECONDS
);
//
TimeUnit.MILLISECONDS);
}
}
...
...
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/api/API.java
View file @
ea20fad0
...
@@ -25,6 +25,7 @@ public class API {
...
@@ -25,6 +25,7 @@ public class API {
}
}
public
String
getAdminServiceHost
(
Env
env
)
{
public
String
getAdminServiceHost
(
Env
env
)
{
return
serviceLocator
.
getServiceAddress
(
env
).
getHomepageUrl
();
return
"http://localhost:8090"
;
// return serviceLocator.getServiceAddress(env).getHomepageUrl();
}
}
}
}
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/api/AdminServiceAPI.java
View file @
ea20fad0
...
@@ -27,9 +27,9 @@ import java.util.List;
...
@@ -27,9 +27,9 @@ import java.util.List;
public
class
AdminServiceAPI
{
public
class
AdminServiceAPI
{
@Service
@Service
public
static
class
HealthAPI
extends
API
{
public
static
class
HealthAPI
extends
API
{
public
Health
health
(
Env
env
){
public
Health
health
(
Env
env
)
{
return
restTemplate
.
getForObject
(
getAdminServiceHost
(
env
)
+
"/health"
,
Health
.
class
);
return
restTemplate
.
getForObject
(
getAdminServiceHost
(
env
)
+
"/health"
,
Health
.
class
);
}
}
}
}
...
@@ -37,20 +37,18 @@ public class AdminServiceAPI {
...
@@ -37,20 +37,18 @@ public class AdminServiceAPI {
@Service
@Service
public
static
class
AppAPI
extends
API
{
public
static
class
AppAPI
extends
API
{
public
static
String
APP_API
=
"/apps"
;
public
List
<
AppDTO
>
findApps
(
Env
env
)
{
public
List
<
AppDTO
>
findApps
(
Env
env
)
{
AppDTO
[]
appDTOs
=
AppDTO
[]
appDTOs
=
restTemplate
.
getForObject
(
getAdminServiceHost
(
env
)
+
APP_API
,
AppDTO
[].
class
);
restTemplate
.
getForObject
(
"{host}/apps"
,
AppDTO
[].
class
,
getAdminServiceHost
(
env
)
);
return
Arrays
.
asList
(
appDTOs
);
return
Arrays
.
asList
(
appDTOs
);
}
}
public
AppDTO
loadApp
(
Env
env
,
String
appId
){
public
AppDTO
loadApp
(
Env
env
,
String
appId
)
{
return
restTemplate
.
getForObject
(
getAdminServiceHost
(
env
)
+
APP_API
+
"/"
+
appId
,
AppDTO
.
class
);
return
restTemplate
.
getForObject
(
"{host}/apps/{appId}"
,
AppDTO
.
class
,
getAdminServiceHost
(
env
),
appId
);
}
}
public
AppDTO
createApp
(
Env
env
,
AppDTO
app
)
{
public
AppDTO
createApp
(
Env
env
,
AppDTO
app
)
{
return
restTemplate
.
postForEntity
(
getAdminServiceHost
(
env
)
+
APP_API
,
app
,
AppDTO
.
class
)
return
restTemplate
.
postForEntity
(
"{host}/apps"
,
app
,
AppDTO
.
class
,
getAdminServiceHost
(
env
)
)
.
getBody
();
.
getBody
();
}
}
}
}
...
@@ -60,38 +58,36 @@ public class AdminServiceAPI {
...
@@ -60,38 +58,36 @@ public class AdminServiceAPI {
public
static
class
NamespaceAPI
extends
API
{
public
static
class
NamespaceAPI
extends
API
{
public
List
<
NamespaceDTO
>
findNamespaceByCluster
(
String
appId
,
Env
env
,
String
clusterName
)
{
public
List
<
NamespaceDTO
>
findNamespaceByCluster
(
String
appId
,
Env
env
,
String
clusterName
)
{
NamespaceDTO
[]
namespaceDTOs
=
restTemplate
.
getForObject
(
NamespaceDTO
[]
namespaceDTOs
=
restTemplate
.
getForObject
(
"{host}/apps/{appId}/clusters/{clusterName}/namespaces"
,
getAdminServiceHost
(
env
)
NamespaceDTO
[].
class
,
getAdminServiceHost
(
env
),
appId
,
+
String
.
format
(
"apps/%s/clusters/%s/namespaces"
,
appId
,
clusterName
),
clusterName
);
NamespaceDTO
[].
class
);
return
Arrays
.
asList
(
namespaceDTOs
);
return
Arrays
.
asList
(
namespaceDTOs
);
}
}
public
NamespaceDTO
loadNamespace
(
String
appId
,
Env
env
,
String
clusterName
,
public
NamespaceDTO
loadNamespace
(
String
appId
,
Env
env
,
String
clusterName
,
String
namespaceName
)
{
String
namespaceName
)
{
return
restTemplate
.
getForObject
(
getAdminServiceHost
(
env
)
NamespaceDTO
dto
=
restTemplate
.
getForObject
(
"{host}/apps/{appId}/clusters/{clusterName}/namespaces/"
+
namespaceName
,
+
String
.
format
(
"apps/%s/clusters/%s/namespaces/%s"
,
appId
,
clusterName
,
namespaceName
),
NamespaceDTO
.
class
,
getAdminServiceHost
(
env
),
appId
,
clusterName
);
NamespaceDTO
.
class
)
;
return
dto
;
}
}
public
List
<
AppNamespaceDTO
>
findPublicAppNamespaces
(
Env
env
){
public
List
<
AppNamespaceDTO
>
findPublicAppNamespaces
(
Env
env
)
{
AppNamespaceDTO
[]
appNamespaceDTOs
=
restTemplate
.
getForObject
(
AppNamespaceDTO
[]
getAdminServiceHost
(
env
)+
"appnamespaces/public"
,
appNamespaceDTOs
=
AppNamespaceDTO
[].
class
);
restTemplate
.
getForObject
(
"{host}/appnamespaces/public"
,
AppNamespaceDTO
[].
class
,
getAdminServiceHost
(
env
));
return
Arrays
.
asList
(
appNamespaceDTOs
);
return
Arrays
.
asList
(
appNamespaceDTOs
);
}
}
public
NamespaceDTO
createNamespace
(
Env
env
,
NamespaceDTO
namespace
)
{
public
NamespaceDTO
createNamespace
(
Env
env
,
NamespaceDTO
namespace
)
{
return
restTemplate
.
postForEntity
(
getAdminServiceHost
(
env
)
+
return
restTemplate
String
.
format
(
"/apps/%s/clusters/%s/namespaces"
,
namespace
.
getAppId
(),
.
postForEntity
(
"{host}/apps/{appId}/clusters/{clusterName}/namespaces"
,
namespace
,
NamespaceDTO
.
class
,
namespace
.
getClusterName
()),
namespace
,
NamespaceDTO
.
class
)
getAdminServiceHost
(
env
),
namespace
.
getAppId
(),
namespace
.
getClusterName
()).
getBody
();
.
getBody
();
}
}
public
AppNamespaceDTO
createAppNamespace
(
Env
env
,
AppNamespaceDTO
appNamespace
)
{
public
AppNamespaceDTO
createOrUpdate
(
Env
env
,
AppNamespaceDTO
appNamespace
)
{
return
restTemplate
.
postForEntity
(
getAdminServiceHost
(
env
)
+
return
restTemplate
.
postForEntity
(
"{host}/apps/{appId}/appnamespaces"
,
appNamespace
,
AppNamespaceDTO
.
class
,
String
.
format
(
"/apps/%s/appnamespaces"
,
appNamespace
.
getAppId
()),
appNamespace
,
AppNamespaceDTO
.
class
)
getAdminServiceHost
(
env
),
appNamespace
.
getAppId
()).
getBody
();
.
getBody
();
}
}
}
}
...
@@ -102,28 +98,27 @@ public class AdminServiceAPI {
...
@@ -102,28 +98,27 @@ public class AdminServiceAPI {
public
List
<
ItemDTO
>
findItems
(
String
appId
,
Env
env
,
String
clusterName
,
String
namespace
)
{
public
List
<
ItemDTO
>
findItems
(
String
appId
,
Env
env
,
String
clusterName
,
String
namespace
)
{
ItemDTO
[]
itemDTOs
=
ItemDTO
[]
itemDTOs
=
restTemplate
restTemplate
.
getForObject
(
.
getForObject
(
"{host}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/items"
,
getAdminServiceHost
(
env
)
+
String
.
format
(
ItemDTO
[].
class
,
"apps/%s/clusters/%s/namespaces/%s/items"
,
appId
,
clusterName
,
namespace
),
getAdminServiceHost
(
env
),
appId
,
clusterName
,
namespace
);
ItemDTO
[].
class
);
return
Arrays
.
asList
(
itemDTOs
);
return
Arrays
.
asList
(
itemDTOs
);
}
}
public
void
updateItems
(
String
appId
,
Env
env
,
String
clusterName
,
String
namespace
,
public
void
updateItems
(
String
appId
,
Env
env
,
String
clusterName
,
String
namespace
,
ItemChangeSets
changeSets
)
{
ItemChangeSets
changeSets
)
{
restTemplate
.
postForEntity
(
getAdminServiceHost
(
env
)
+
String
restTemplate
.
postForEntity
(
"{host}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/itemset"
,
.
format
(
"apps/%s/clusters/%s/namespaces/%s/itemset"
,
appId
,
clusterName
,
namespace
),
changeSets
,
Void
.
class
,
getAdminServiceHost
(
env
),
appId
,
clusterName
,
namespace
);
changeSets
,
Void
.
class
);
}
}
public
ItemDTO
createOrUpdateItem
(
String
appId
,
Env
env
,
String
clusterName
,
String
namespace
,
ItemDTO
item
){
public
ItemDTO
createOrUpdateItem
(
String
appId
,
Env
env
,
String
clusterName
,
String
namespace
,
ItemDTO
item
)
{
return
restTemplate
.
postForEntity
(
getAdminServiceHost
(
env
)
+
String
return
restTemplate
.
postForEntity
(
"{host}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/items"
,
.
format
(
"apps/%s/clusters/%s/namespaces/%s/items"
,
appId
,
clusterName
,
namespace
),
item
,
ItemDTO
.
class
,
getAdminServiceHost
(
env
),
appId
,
clusterName
,
namespace
)
item
,
ItemDTO
.
class
)
.
getBody
();
.
getBody
();
}
}
public
void
deleteItem
(
Env
env
,
long
itemId
){
public
void
deleteItem
(
Env
env
,
long
itemId
,
String
operator
)
{
restTemplate
.
delete
(
getAdminServiceHost
(
env
)
+
"items/"
+
itemId
);
restTemplate
.
delete
(
"{host}/items/{itemId}?operator={operator}"
,
getAdminServiceHost
(
env
),
itemId
,
operator
);
}
}
}
}
...
@@ -131,8 +126,8 @@ public class AdminServiceAPI {
...
@@ -131,8 +126,8 @@ public class AdminServiceAPI {
public
static
class
ClusterAPI
extends
API
{
public
static
class
ClusterAPI
extends
API
{
public
List
<
ClusterDTO
>
findClustersByApp
(
String
appId
,
Env
env
)
{
public
List
<
ClusterDTO
>
findClustersByApp
(
String
appId
,
Env
env
)
{
ClusterDTO
[]
clusterDTOs
=
restTemplate
.
getForObject
(
ClusterDTO
[]
clusterDTOs
=
restTemplate
.
getForObject
(
"{host}/apps/{appId}/clusters"
,
ClusterDTO
[].
class
,
getAdminServiceHost
(
env
)
+
String
.
format
(
"apps/%s/clusters"
,
appId
),
ClusterDTO
[].
class
);
getAdminServiceHost
(
env
),
appId
);
return
Arrays
.
asList
(
clusterDTOs
);
return
Arrays
.
asList
(
clusterDTOs
);
}
}
}
}
...
@@ -142,29 +137,31 @@ public class AdminServiceAPI {
...
@@ -142,29 +137,31 @@ public class AdminServiceAPI {
public
ReleaseDTO
loadLatestRelease
(
String
appId
,
Env
env
,
String
clusterName
,
public
ReleaseDTO
loadLatestRelease
(
String
appId
,
Env
env
,
String
clusterName
,
String
namespace
)
{
String
namespace
)
{
ReleaseDTO
releaseDTO
=
restTemplate
.
getForObject
(
ReleaseDTO
getAdminServiceHost
(
env
)
+
String
.
format
(
releaseDTO
=
"apps/%s/clusters/%s/namespaces/%s/releases/latest"
,
appId
,
clusterName
,
namespace
),
restTemplate
ReleaseDTO
.
class
);
.
getForObject
(
"{host}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/releases/latest"
,
ReleaseDTO
.
class
,
getAdminServiceHost
(
env
),
appId
,
clusterName
,
namespace
);
return
releaseDTO
;
return
releaseDTO
;
}
}
public
ReleaseDTO
release
(
String
appId
,
Env
env
,
String
clusterName
,
String
namespace
,
public
ReleaseDTO
release
(
String
appId
,
Env
env
,
String
clusterName
,
String
namespace
,
String
releaseBy
,
String
comment
)
{
String
releaseBy
,
String
comment
,
String
operator
)
{
HttpHeaders
headers
=
new
HttpHeaders
();
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
setContentType
(
MediaType
.
APPLICATION_FORM_URLENCODED
);
headers
.
setContentType
(
MediaType
.
APPLICATION_FORM_URLENCODED
);
MultiValueMap
<
String
,
String
>
parameters
=
new
LinkedMultiValueMap
<
String
,
String
>();
MultiValueMap
<
String
,
String
>
parameters
=
new
LinkedMultiValueMap
<
String
,
String
>();
parameters
.
add
(
"name"
,
releaseBy
);
parameters
.
add
(
"name"
,
releaseBy
);
parameters
.
add
(
"comment"
,
comment
);
parameters
.
add
(
"comment"
,
comment
);
parameters
.
add
(
"operator"
,
operator
);
HttpEntity
<
MultiValueMap
<
String
,
String
>>
entity
=
HttpEntity
<
MultiValueMap
<
String
,
String
>>
entity
=
new
HttpEntity
<
MultiValueMap
<
String
,
String
>>(
parameters
,
headers
);
new
HttpEntity
<
MultiValueMap
<
String
,
String
>>(
parameters
,
headers
);
ResponseEntity
<
ReleaseDTO
>
response
=
ResponseEntity
<
ReleaseDTO
>
response
=
restTemplate
restTemplate
.
postForEntity
(
.
postForEntity
(
"{host}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/releases"
,
entity
,
getAdminServiceHost
(
env
)
+
String
.
format
(
ReleaseDTO
.
class
,
"apps/%s/clusters/%s/namespaces/%s/releases"
,
appId
,
clusterName
,
namespace
),
getAdminServiceHost
(
env
),
appId
,
clusterName
,
namespace
);
entity
,
ReleaseDTO
.
class
);
return
response
.
getBody
();
return
response
.
getBody
();
}
}
}
}
}
}
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/service/PortalAppService.java
View file @
ea20fad0
...
@@ -17,6 +17,7 @@ import com.ctrip.framework.apollo.core.exception.BadRequestException;
...
@@ -17,6 +17,7 @@ import com.ctrip.framework.apollo.core.exception.BadRequestException;
import
com.ctrip.framework.apollo.core.exception.ServiceException
;
import
com.ctrip.framework.apollo.core.exception.ServiceException
;
import
com.ctrip.framework.apollo.portal.PortalSettings
;
import
com.ctrip.framework.apollo.portal.PortalSettings
;
import
com.ctrip.framework.apollo.portal.api.AdminServiceAPI
;
import
com.ctrip.framework.apollo.portal.api.AdminServiceAPI
;
import
com.ctrip.framework.apollo.portal.auth.UserInfoHolder
;
import
com.ctrip.framework.apollo.portal.entity.vo.EnvClusterInfo
;
import
com.ctrip.framework.apollo.portal.entity.vo.EnvClusterInfo
;
@Service
@Service
...
@@ -24,6 +25,9 @@ public class PortalAppService {
...
@@ -24,6 +25,9 @@ public class PortalAppService {
private
Logger
logger
=
LoggerFactory
.
getLogger
(
PortalAppService
.
class
);
private
Logger
logger
=
LoggerFactory
.
getLogger
(
PortalAppService
.
class
);
@Autowired
private
UserInfoHolder
userInfoHolder
;
@Autowired
@Autowired
private
PortalClusterService
clusterService
;
private
PortalClusterService
clusterService
;
...
@@ -71,6 +75,7 @@ public class PortalAppService {
...
@@ -71,6 +75,7 @@ public class PortalAppService {
}
}
public
void
createAppInAllEnvs
(
AppDTO
app
)
{
public
void
createAppInAllEnvs
(
AppDTO
app
)
{
enrichUserInfo
(
app
);
List
<
Env
>
envs
=
portalSettings
.
getActiveEnvs
();
List
<
Env
>
envs
=
portalSettings
.
getActiveEnvs
();
for
(
Env
env
:
envs
)
{
for
(
Env
env
:
envs
)
{
try
{
try
{
...
@@ -83,6 +88,7 @@ public class PortalAppService {
...
@@ -83,6 +88,7 @@ public class PortalAppService {
}
}
public
void
createApp
(
Env
env
,
AppDTO
app
)
{
public
void
createApp
(
Env
env
,
AppDTO
app
)
{
enrichUserInfo
(
app
);
try
{
try
{
appAPI
.
createApp
(
env
,
app
);
appAPI
.
createApp
(
env
,
app
);
}
catch
(
HttpStatusCodeException
e
)
{
}
catch
(
HttpStatusCodeException
e
)
{
...
@@ -91,6 +97,12 @@ public class PortalAppService {
...
@@ -91,6 +97,12 @@ public class PortalAppService {
}
}
}
}
private
void
enrichUserInfo
(
AppDTO
app
){
String
username
=
userInfoHolder
.
getUser
().
getUsername
();
app
.
setDataChangeCreatedBy
(
username
);
app
.
setDataChangeLastModifiedBy
(
username
);
}
public
EnvClusterInfo
createEnvNavNode
(
Env
env
,
String
appId
){
public
EnvClusterInfo
createEnvNavNode
(
Env
env
,
String
appId
){
EnvClusterInfo
node
=
new
EnvClusterInfo
(
env
);
EnvClusterInfo
node
=
new
EnvClusterInfo
(
env
);
node
.
setClusters
(
clusterService
.
findClusters
(
env
,
appId
));
node
.
setClusters
(
clusterService
.
findClusters
(
env
,
appId
));
...
...
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/service/PortalConfigService.java
View file @
ea20fad0
...
@@ -17,7 +17,9 @@ import com.ctrip.framework.apollo.core.dto.ReleaseDTO;
...
@@ -17,7 +17,9 @@ import com.ctrip.framework.apollo.core.dto.ReleaseDTO;
import
com.ctrip.framework.apollo.core.exception.BadRequestException
;
import
com.ctrip.framework.apollo.core.exception.BadRequestException
;
import
com.ctrip.framework.apollo.core.exception.NotFoundException
;
import
com.ctrip.framework.apollo.core.exception.NotFoundException
;
import
com.ctrip.framework.apollo.core.exception.ServiceException
;
import
com.ctrip.framework.apollo.core.exception.ServiceException
;
import
com.ctrip.framework.apollo.core.utils.StringUtils
;
import
com.ctrip.framework.apollo.portal.api.AdminServiceAPI
;
import
com.ctrip.framework.apollo.portal.api.AdminServiceAPI
;
import
com.ctrip.framework.apollo.portal.auth.UserInfoHolder
;
import
com.ctrip.framework.apollo.portal.entity.vo.ItemDiffs
;
import
com.ctrip.framework.apollo.portal.entity.vo.ItemDiffs
;
import
com.ctrip.framework.apollo.portal.entity.vo.NamespaceIdentifer
;
import
com.ctrip.framework.apollo.portal.entity.vo.NamespaceIdentifer
;
import
com.ctrip.framework.apollo.portal.entity.form.NamespaceTextModel
;
import
com.ctrip.framework.apollo.portal.entity.form.NamespaceTextModel
;
...
@@ -33,13 +35,14 @@ public class PortalConfigService {
...
@@ -33,13 +35,14 @@ public class PortalConfigService {
private
Logger
logger
=
LoggerFactory
.
getLogger
(
PortalConfigService
.
class
);
private
Logger
logger
=
LoggerFactory
.
getLogger
(
PortalConfigService
.
class
);
@Autowired
private
UserInfoHolder
userInfoHolder
;
@Autowired
@Autowired
private
AdminServiceAPI
.
NamespaceAPI
namespaceAPI
;
private
AdminServiceAPI
.
NamespaceAPI
namespaceAPI
;
@Autowired
@Autowired
private
AdminServiceAPI
.
ItemAPI
itemAPI
;
private
AdminServiceAPI
.
ItemAPI
itemAPI
;
@Autowired
@Autowired
private
AdminServiceAPI
.
ReleaseAPI
releaseAPI
;
private
AdminServiceAPI
.
ReleaseAPI
releaseAPI
;
@Autowired
@Autowired
private
ConfigTextResolver
resolver
;
private
ConfigTextResolver
resolver
;
...
@@ -62,7 +65,9 @@ public class PortalConfigService {
...
@@ -62,7 +65,9 @@ public class PortalConfigService {
if
(
changeSets
.
isEmpty
())
{
if
(
changeSets
.
isEmpty
())
{
return
;
return
;
}
}
try
{
try
{
changeSets
.
setDataChangeLastModifiedBy
(
userInfoHolder
.
getUser
().
getUsername
());
itemAPI
.
updateItems
(
appId
,
env
,
clusterName
,
namespaceName
,
changeSets
);
itemAPI
.
updateItems
(
appId
,
env
,
clusterName
,
namespaceName
,
changeSets
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
logger
.
error
(
"itemAPI.updateItems error. appId{},env:{},clusterName:{},namespaceName:{}"
,
appId
,
env
,
clusterName
,
logger
.
error
(
"itemAPI.updateItems error. appId{},env:{},clusterName:{},namespaceName:{}"
,
appId
,
env
,
clusterName
,
...
@@ -72,41 +77,49 @@ public class PortalConfigService {
...
@@ -72,41 +77,49 @@ public class PortalConfigService {
}
}
public
ItemDTO
createOrUpdateItem
(
String
appId
,
Env
env
,
String
clusterName
,
String
namespaceName
,
ItemDTO
item
){
public
ItemDTO
createOrUpdateItem
(
String
appId
,
Env
env
,
String
clusterName
,
String
namespaceName
,
ItemDTO
item
)
{
NamespaceDTO
namespace
=
namespaceAPI
.
loadNamespace
(
appId
,
env
,
clusterName
,
namespaceName
);
NamespaceDTO
namespace
=
namespaceAPI
.
loadNamespace
(
appId
,
env
,
clusterName
,
namespaceName
);
if
(
namespace
==
null
){
if
(
namespace
==
null
)
{
throw
new
BadRequestException
(
throw
new
BadRequestException
(
"namespace:"
+
namespaceName
+
" not exist in env:"
+
env
+
", cluster:"
+
clusterName
);
"namespace:"
+
namespaceName
+
" not exist in env:"
+
env
+
", cluster:"
+
clusterName
);
}
}
String
username
=
userInfoHolder
.
getUser
().
getUsername
();
if
(
StringUtils
.
isEmpty
(
item
.
getDataChangeCreatedBy
()))
{
item
.
setDataChangeCreatedBy
(
username
);
}
item
.
setDataChangeLastModifiedBy
(
username
);
item
.
setNamespaceId
(
namespace
.
getId
());
item
.
setNamespaceId
(
namespace
.
getId
());
return
itemAPI
.
createOrUpdateItem
(
appId
,
env
,
clusterName
,
namespaceName
,
item
);
return
itemAPI
.
createOrUpdateItem
(
appId
,
env
,
clusterName
,
namespaceName
,
item
);
}
}
public
void
deleteItem
(
Env
env
,
long
itemId
){
public
void
deleteItem
(
Env
env
,
long
itemId
)
{
itemAPI
.
deleteItem
(
env
,
itemId
);
itemAPI
.
deleteItem
(
env
,
itemId
,
userInfoHolder
.
getUser
().
getUsername
()
);
}
}
/**
/**
* createRelease config items
* createRelease config items
*/
*/
public
ReleaseDTO
createRelease
(
NamespaceReleaseModel
model
)
{
public
ReleaseDTO
createRelease
(
NamespaceReleaseModel
model
)
{
return
releaseAPI
.
release
(
model
.
getAppId
(),
model
.
getEnv
(),
model
.
getClusterName
(),
return
releaseAPI
.
release
(
model
.
getAppId
(),
model
.
getEnv
(),
model
.
getClusterName
(),
model
.
getNamespaceName
(),
model
.
getReleaseBy
(),
model
.
getReleaseComment
());
model
.
getNamespaceName
(),
model
.
getReleaseBy
(),
model
.
getReleaseComment
()
,
userInfoHolder
.
getUser
().
getUsername
());
}
}
public
List
<
ItemDTO
>
findItems
(
String
appId
,
Env
env
,
String
clusterName
,
String
namespaceName
)
{
public
List
<
ItemDTO
>
findItems
(
String
appId
,
Env
env
,
String
clusterName
,
String
namespaceName
)
{
return
itemAPI
.
findItems
(
appId
,
env
,
clusterName
,
namespaceName
);
return
itemAPI
.
findItems
(
appId
,
env
,
clusterName
,
namespaceName
);
}
}
public
void
syncItems
(
List
<
NamespaceIdentifer
>
comparedNamespaces
,
List
<
ItemDTO
>
sourceItems
){
public
void
syncItems
(
List
<
NamespaceIdentifer
>
comparedNamespaces
,
List
<
ItemDTO
>
sourceItems
)
{
List
<
ItemDiffs
>
itemDiffs
=
compare
(
comparedNamespaces
,
sourceItems
);
List
<
ItemDiffs
>
itemDiffs
=
compare
(
comparedNamespaces
,
sourceItems
);
for
(
ItemDiffs
itemDiff
:
itemDiffs
)
{
for
(
ItemDiffs
itemDiff
:
itemDiffs
)
{
NamespaceIdentifer
namespaceIdentifer
=
itemDiff
.
getNamespace
();
NamespaceIdentifer
namespaceIdentifer
=
itemDiff
.
getNamespace
();
ItemChangeSets
changeSets
=
itemDiff
.
getDiffs
();
changeSets
.
setDataChangeLastModifiedBy
(
userInfoHolder
.
getUser
().
getUsername
());
try
{
try
{
itemAPI
itemAPI
.
updateItems
(
namespaceIdentifer
.
getAppId
(),
namespaceIdentifer
.
getEnv
(),
.
updateItems
(
namespaceIdentifer
.
getAppId
(),
namespaceIdentifer
.
getEnv
(),
namespaceIdentifer
.
getClusterName
(),
namespaceIdentifer
.
getClusterName
(),
namespaceIdentifer
.
getNamespaceName
(),
itemDiff
.
getDiffs
()
);
namespaceIdentifer
.
getNamespaceName
(),
changeSets
);
}
catch
(
HttpClientErrorException
e
)
{
}
catch
(
HttpClientErrorException
e
)
{
logger
.
error
(
"sync items error. namespace:{}"
,
namespaceIdentifer
);
logger
.
error
(
"sync items error. namespace:{}"
,
namespaceIdentifer
);
throw
new
ServiceException
(
String
.
format
(
"sync item error. env:%s, clusterName:%s"
,
namespaceIdentifer
.
getEnv
(),
throw
new
ServiceException
(
String
.
format
(
"sync item error. env:%s, clusterName:%s"
,
namespaceIdentifer
.
getEnv
(),
...
@@ -147,7 +160,7 @@ public class PortalConfigService {
...
@@ -147,7 +160,7 @@ public class PortalConfigService {
return
namespaceDTO
.
getId
();
return
namespaceDTO
.
getId
();
}
}
private
ItemChangeSets
parseChangeSets
(
NamespaceIdentifer
namespace
,
List
<
ItemDTO
>
sourceItems
){
private
ItemChangeSets
parseChangeSets
(
NamespaceIdentifer
namespace
,
List
<
ItemDTO
>
sourceItems
)
{
ItemChangeSets
changeSets
=
new
ItemChangeSets
();
ItemChangeSets
changeSets
=
new
ItemChangeSets
();
List
<
ItemDTO
>
List
<
ItemDTO
>
targetItems
=
targetItems
=
...
@@ -175,8 +188,7 @@ public class PortalConfigService {
...
@@ -175,8 +188,7 @@ public class PortalConfigService {
changeSets
.
addCreateItem
(
buildItem
(
namespaceId
,
++
maxLineNum
,
sourceItem
));
changeSets
.
addCreateItem
(
buildItem
(
namespaceId
,
++
maxLineNum
,
sourceItem
));
}
else
if
(!
sourceValue
.
equals
(
targetItem
.
getValue
())
||
!
sourceComment
}
else
if
(
isModified
(
sourceValue
,
targetItem
.
getValue
(),
sourceComment
,
targetItem
.
getComment
()))
{
//modified items
.
equals
(
targetItem
.
getComment
()))
{
//modified items
targetItem
.
setValue
(
sourceValue
);
targetItem
.
setValue
(
sourceValue
);
targetItem
.
setComment
(
sourceComment
);
targetItem
.
setComment
(
sourceComment
);
changeSets
.
addUpdateItem
(
targetItem
);
changeSets
.
addUpdateItem
(
targetItem
);
...
@@ -194,4 +206,19 @@ public class PortalConfigService {
...
@@ -194,4 +206,19 @@ public class PortalConfigService {
createdItem
.
setNamespaceId
(
namespaceId
);
createdItem
.
setNamespaceId
(
namespaceId
);
return
createdItem
;
return
createdItem
;
}
}
private
boolean
isModified
(
String
sourceValue
,
String
targetValue
,
String
sourceComment
,
String
targetComment
)
{
if
(!
sourceValue
.
equals
(
targetValue
))
{
return
true
;
}
if
(
sourceComment
==
null
)
{
return
!
StringUtils
.
isEmpty
(
targetComment
);
}
else
if
(
targetComment
!=
null
)
{
return
!
sourceComment
.
equals
(
targetComment
);
}
else
{
return
false
;
}
}
}
}
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/service/PortalNamespaceService.java
View file @
ea20fad0
...
@@ -8,10 +8,10 @@ import com.ctrip.framework.apollo.core.dto.ItemDTO;
...
@@ -8,10 +8,10 @@ import com.ctrip.framework.apollo.core.dto.ItemDTO;
import
com.ctrip.framework.apollo.core.dto.NamespaceDTO
;
import
com.ctrip.framework.apollo.core.dto.NamespaceDTO
;
import
com.ctrip.framework.apollo.core.dto.ReleaseDTO
;
import
com.ctrip.framework.apollo.core.dto.ReleaseDTO
;
import
com.ctrip.framework.apollo.core.enums.Env
;
import
com.ctrip.framework.apollo.core.enums.Env
;
import
com.ctrip.framework.apollo.core.exception.NotFoundException
;
import
com.ctrip.framework.apollo.core.utils.StringUtils
;
import
com.ctrip.framework.apollo.core.utils.StringUtils
;
import
com.ctrip.framework.apollo.portal.PortalSettings
;
import
com.ctrip.framework.apollo.portal.PortalSettings
;
import
com.ctrip.framework.apollo.portal.api.AdminServiceAPI
;
import
com.ctrip.framework.apollo.portal.api.AdminServiceAPI
;
import
com.ctrip.framework.apollo.portal.auth.UserInfoHolder
;
import
com.ctrip.framework.apollo.portal.entity.vo.NamespaceVO
;
import
com.ctrip.framework.apollo.portal.entity.vo.NamespaceVO
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
...
@@ -33,15 +33,14 @@ public class PortalNamespaceService {
...
@@ -33,15 +33,14 @@ public class PortalNamespaceService {
private
Logger
logger
=
LoggerFactory
.
getLogger
(
PortalNamespaceService
.
class
);
private
Logger
logger
=
LoggerFactory
.
getLogger
(
PortalNamespaceService
.
class
);
@Autowired
private
UserInfoHolder
userInfoHolder
;
@Autowired
@Autowired
private
AdminServiceAPI
.
ItemAPI
itemAPI
;
private
AdminServiceAPI
.
ItemAPI
itemAPI
;
@Autowired
@Autowired
private
AdminServiceAPI
.
ReleaseAPI
releaseAPI
;
private
AdminServiceAPI
.
ReleaseAPI
releaseAPI
;
@Autowired
@Autowired
private
AdminServiceAPI
.
NamespaceAPI
namespaceAPI
;
private
AdminServiceAPI
.
NamespaceAPI
namespaceAPI
;
@Autowired
@Autowired
private
PortalSettings
portalSettings
;
private
PortalSettings
portalSettings
;
...
@@ -53,13 +52,22 @@ public class PortalNamespaceService {
...
@@ -53,13 +52,22 @@ public class PortalNamespaceService {
}
}
public
NamespaceDTO
createNamespace
(
Env
env
,
NamespaceDTO
namespace
)
{
public
NamespaceDTO
createNamespace
(
Env
env
,
NamespaceDTO
namespace
)
{
if
(
StringUtils
.
isEmpty
(
namespace
.
getDataChangeCreatedBy
())){
namespace
.
setDataChangeCreatedBy
(
userInfoHolder
.
getUser
().
getUsername
());
}
namespace
.
setDataChangeLastModifiedBy
(
userInfoHolder
.
getUser
().
getUsername
());
return
namespaceAPI
.
createNamespace
(
env
,
namespace
);
return
namespaceAPI
.
createNamespace
(
env
,
namespace
);
}
}
public
void
createAppNamespace
(
AppNamespaceDTO
appNamespace
)
{
public
void
createAppNamespace
(
AppNamespaceDTO
appNamespace
)
{
String
operator
=
userInfoHolder
.
getUser
().
getUsername
();
if
(
StringUtils
.
isEmpty
(
appNamespace
.
getDataChangeCreatedBy
())){
appNamespace
.
setDataChangeCreatedBy
(
operator
);
}
appNamespace
.
setDataChangeLastModifiedBy
(
operator
);
for
(
Env
env
:
portalSettings
.
getActiveEnvs
())
{
for
(
Env
env
:
portalSettings
.
getActiveEnvs
())
{
try
{
try
{
namespaceAPI
.
create
AppNamespac
e
(
env
,
appNamespace
);
namespaceAPI
.
create
OrUpdat
e
(
env
,
appNamespace
);
}
catch
(
HttpStatusCodeException
e
)
{
}
catch
(
HttpStatusCodeException
e
)
{
logger
.
error
(
ExceptionUtils
.
toString
(
e
));
logger
.
error
(
ExceptionUtils
.
toString
(
e
));
throw
e
;
throw
e
;
...
...
apollo-portal/src/main/resources/static/config.html
View file @
ea20fad0
...
@@ -278,7 +278,7 @@
...
@@ -278,7 +278,7 @@
<span
class=
"glyphicon glyphicon-eye-open"
aria-hidden=
"true"
<span
class=
"glyphicon glyphicon-eye-open"
aria-hidden=
"true"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"查看"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"查看"
data-toggle=
"modal"
data-target=
"#itemModal"
data-toggle=
"modal"
data-target=
"#itemModal"
ng-click=
"retrieveItem(config.item, config.oldValue)"
>
ng-click=
"retrieveItem(
namespace,
config.item, config.oldValue)"
>
</span>
</span>
<span
class=
"glyphicon glyphicon-edit"
aria-hidden=
"true"
<span
class=
"glyphicon glyphicon-edit"
aria-hidden=
"true"
...
...
apollo-portal/src/main/resources/static/config/sync.html
View file @
ea20fad0
...
@@ -128,7 +128,7 @@
...
@@ -128,7 +128,7 @@
</div>
</div>
<div
class=
"row"
style=
"margin-top: 10px;"
ng-show=
"diff.diffs.updateItems.length > 0"
>
<div
class=
"row"
style=
"margin-top: 10px;"
ng-show=
"diff.diffs.updateItems.length > 0"
>
<div
class=
"form-horizontal"
>
<div
class=
"form-horizontal"
>
<label
class=
"col-sm-2 control-label"
>
更新
的配置
</label>
<label
class=
"col-sm-2 control-label"
>
修改
的配置
</label>
<div
class=
"col-sm-9"
>
<div
class=
"col-sm-9"
>
<table
class=
"table table-bordered table-striped table-hover"
>
<table
class=
"table table-bordered table-striped table-hover"
>
<thead>
<thead>
...
@@ -169,6 +169,9 @@
...
@@ -169,6 +169,9 @@
<div
ng-include=
"'../views/common/footer.html'"
></div>
<div
ng-include=
"'../views/common/footer.html'"
></div>
<!-- jquery.js -->
<script
src=
"../vendor/jquery.min.js"
type=
"text/javascript"
></script>
<!--angular-->
<!--angular-->
<script
src=
"../vendor/angular/angular.min.js"
></script>
<script
src=
"../vendor/angular/angular.min.js"
></script>
<script
src=
"../vendor/angular/angular-route.min.js"
></script>
<script
src=
"../vendor/angular/angular-route.min.js"
></script>
...
@@ -176,8 +179,7 @@
...
@@ -176,8 +179,7 @@
<script
src=
"../vendor/angular/angular-toastr-1.4.1.tpls.min.js"
></script>
<script
src=
"../vendor/angular/angular-toastr-1.4.1.tpls.min.js"
></script>
<script
src=
"../vendor/angular/loading-bar.min.js"
></script>
<script
src=
"../vendor/angular/loading-bar.min.js"
></script>
<!-- jquery.js -->
<script
src=
"vendor/jquery.min.js"
type=
"text/javascript"
></script>
<!-- bootstrap.js -->
<!-- bootstrap.js -->
<script
src=
"../vendor/bootstrap/js/bootstrap.min.js"
type=
"text/javascript"
></script>
<script
src=
"../vendor/bootstrap/js/bootstrap.min.js"
type=
"text/javascript"
></script>
...
...
apollo-portal/src/main/resources/static/scripts/controller/app/ConfigNamespaceController.js
View file @
ea20fad0
...
@@ -170,10 +170,11 @@ application_module.controller("ConfigNamespaceController",
...
@@ -170,10 +170,11 @@ application_module.controller("ConfigNamespaceController",
$scope
.
tableViewOperType
=
''
,
$scope
.
item
=
{};
$scope
.
tableViewOperType
=
''
,
$scope
.
item
=
{};
//查看配置
//查看配置
$scope
.
retrieveItem
=
function
(
item
,
oldValue
)
{
$scope
.
retrieveItem
=
function
(
namespace
,
item
,
oldValue
)
{
switchTableViewOperType
(
TABLE_VIEW_OPER_TYPE
.
RETRIEVE
);
switchTableViewOperType
(
TABLE_VIEW_OPER_TYPE
.
RETRIEVE
);
$scope
.
item
=
item
;
$scope
.
item
=
item
;
$scope
.
item
.
oldValue
=
oldValue
;
$scope
.
item
.
oldValue
=
oldValue
;
toOperationNamespaceName
=
namespace
.
namespace
.
namespaceName
;
};
};
var
toDeleteItemId
=
0
;
var
toDeleteItemId
=
0
;
...
@@ -234,8 +235,8 @@ application_module.controller("ConfigNamespaceController",
...
@@ -234,8 +235,8 @@ application_module.controller("ConfigNamespaceController",
toOperationNamespaceName
,
toOperationNamespaceName
,
$scope
.
item
).
then
(
$scope
.
item
).
then
(
function
(
result
)
{
function
(
result
)
{
toastr
.
success
(
"
[
"
+
cluster
.
env
+
"
,
"
+
cluster
.
name
+
"
]
"
,
toastr
.
success
(
cluster
.
env
+
"
,
"
+
$scope
.
item
.
key
,
"
创建
成功
"
);
"
添加
成功
"
);
itemModal
.
modal
(
'
hide
'
);
itemModal
.
modal
(
'
hide
'
);
$rootScope
.
refreshNamespaces
(
namespace_view_type
.
TABLE
);
$rootScope
.
refreshNamespaces
(
namespace_view_type
.
TABLE
);
},
function
(
result
)
{
},
function
(
result
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment