Update the cartridge group with uuid
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/e0f6286e Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/e0f6286e Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/e0f6286e Branch: refs/heads/tenant-isolation Commit: e0f6286ec3646177e4ac3378467aebe469b040f2 Parents: 5bad93f Author: Gayan Gunarathne <[email protected]> Authored: Wed Jul 8 22:20:09 2015 +0530 Committer: Gayan Gunarathne <[email protected]> Committed: Wed Jul 8 22:20:09 2015 +0530 ---------------------------------------------------------------------- .../autoscaler/registry/RegistryManager.java | 17 +- .../autoscaler/services/AutoscalerService.java | 8 + .../services/impl/AutoscalerServiceImpl.java | 16 +- .../beans/cartridge/CartridgeGroupBean.java | 8 + .../common/client/AutoscalerServiceClient.java | 4 + .../rest/endpoint/api/StratosApiV41.java | 10 +- .../rest/endpoint/api/StratosApiV41Utils.java | 19 +- .../util/converter/ObjectConverter.java | 2 +- .../src/main/resources/AutoscalerService.wsdl | 542 ++++++++++--------- 9 files changed, 362 insertions(+), 264 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/e0f6286e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java index 4dd7c86..1577adb 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java @@ -373,8 +373,8 @@ public class RegistryManager { } } - public boolean serviceGroupExist(String serviceGroupName) { - String resourcePath = AutoscalerConstants.AUTOSCALER_RESOURCE + AutoscalerConstants.SERVICE_GROUP + "/" + serviceGroupName; + public boolean serviceGroupExist(String serviceGroupUuid) { + String resourcePath = AutoscalerConstants.AUTOSCALER_RESOURCE + AutoscalerConstants.SERVICE_GROUP + "/" + serviceGroupUuid; return resourceExist(resourcePath); } @@ -537,10 +537,10 @@ public class RegistryManager { } } - public ServiceGroup getServiceGroup(String name) throws Exception { + public ServiceGroup getServiceGroup(String uuid) throws Exception { try { startTenantFlow(); - String resourcePath = AutoscalerConstants.AUTOSCALER_RESOURCE + AutoscalerConstants.SERVICE_GROUP + "/" + name; + String resourcePath = AutoscalerConstants.AUTOSCALER_RESOURCE + AutoscalerConstants.SERVICE_GROUP + "/" + uuid; Object serializedObj = instance.retrieve(resourcePath); ServiceGroup group = null; if (serializedObj != null) { @@ -561,6 +561,15 @@ public class RegistryManager { } } + public ServiceGroup getServiceGroup(String name,int tenantId) throws Exception { + ServiceGroup[] serviceGroups=getServiceGroups(); + for(ServiceGroup serviceGroup:serviceGroups){ + if(serviceGroup.getName().equals(name)&&(serviceGroup.getTenantId()==tenantId)){ + return serviceGroup; + } + } + return null; + } public ServiceGroup[] getServiceGroups() { try { startTenantFlow(); http://git-wip-us.apache.org/repos/asf/stratos/blob/e0f6286e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java index e703e39..c7e2264 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/AutoscalerService.java @@ -239,6 +239,14 @@ public interface AutoscalerService { */ public ServiceGroup getServiceGroup(String name); + /** + * Get cartridge group by tenant + * @param name + * @param tenantId + * @return + */ + public ServiceGroup getServiceGroupByTenant(String name, int tenantId); + /** * Find cluster id of an application by subscription alias. * http://git-wip-us.apache.org/repos/asf/stratos/blob/e0f6286e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java index 2967368..b6cd3c8 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java @@ -836,17 +836,27 @@ public class AutoscalerServiceImpl implements AutoscalerService { return true; } - public ServiceGroup getServiceGroup(String name) { - if (StringUtils.isEmpty(name)) { + public ServiceGroup getServiceGroup(String uuid) { + if (StringUtils.isEmpty(uuid)) { return null; } try { - return RegistryManager.getInstance().getServiceGroup(name); + return RegistryManager.getInstance().getServiceGroup(uuid); } catch (Exception e) { throw new AutoScalerException("Error occurred while retrieving cartridge group", e); } } + public ServiceGroup getServiceGroupByTenant(String name,int tenantId) { + if (StringUtils.isEmpty(name)) { + return null; + } + try { + return RegistryManager.getInstance().getServiceGroup(name,tenantId); + } catch (Exception e) { + throw new AutoScalerException("Error occurred while retrieving cartridge group", e); + } + } @Override public String findClusterId(String applicationId, String alias) { try { http://git-wip-us.apache.org/repos/asf/stratos/blob/e0f6286e/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/cartridge/CartridgeGroupBean.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/cartridge/CartridgeGroupBean.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/cartridge/CartridgeGroupBean.java index b884e90..90d1f6e 100644 --- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/cartridge/CartridgeGroupBean.java +++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/cartridge/CartridgeGroupBean.java @@ -76,4 +76,12 @@ public class CartridgeGroupBean implements Serializable { public void setTenantId(int tenantId) { this.tenantId = tenantId; } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } } http://git-wip-us.apache.org/repos/asf/stratos/blob/e0f6286e/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java index 8dc2420..4911fd4 100644 --- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java +++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/client/AutoscalerServiceClient.java @@ -184,6 +184,10 @@ public class AutoscalerServiceClient { return stub.getServiceGroup(serviceGroupDefinitionName); } + public ServiceGroup getServiceGroupByTenant(String serviceGroupDefinitionName,int tenantId) throws RemoteException { + return stub.getServiceGroupByTenant(serviceGroupDefinitionName,tenantId); + } + public ServiceGroup[] getServiceGroups() throws RemoteException, AutoscalerServiceAutoScalerExceptionException { return stub.getServiceGroups(); } http://git-wip-us.apache.org/repos/asf/stratos/blob/e0f6286e/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java index 7690818..f54c35c 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java @@ -533,7 +533,8 @@ public class StratosApiV41 extends AbstractApi { CartridgeGroupBean cartridgeGroupBean) throws RestAPIException { try { - StratosApiV41Utils.updateServiceGroup(cartridgeGroupBean); + PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext(); + StratosApiV41Utils.updateServiceGroup(cartridgeGroupBean,carbonContext.getTenantId()); URI url = uriInfo.getAbsolutePathBuilder().path(cartridgeGroupBean.getUuid()).build(); return Response.ok(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS, @@ -564,7 +565,9 @@ public class StratosApiV41 extends AbstractApi { @AuthorizationAction("/permission/admin/stratos/cartridgeGroups/view") public Response getCartridgeGroup( @PathParam("name") String name) throws RestAPIException { - CartridgeGroupBean serviceGroupDefinition = StratosApiV41Utils.getServiceGroupDefinition(name); + + PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext(); + CartridgeGroupBean serviceGroupDefinition = StratosApiV41Utils.getServiceGroupDefinition(name,carbonContext.getTenantId()); if (serviceGroupDefinition != null) { return Response.ok().entity(serviceGroupDefinition).build(); @@ -613,7 +616,8 @@ public class StratosApiV41 extends AbstractApi { public Response removeServiceGroup( @PathParam("name") String name) throws RestAPIException { try { - StratosApiV41Utils.removeServiceGroup(name); + PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext(); + StratosApiV41Utils.removeServiceGroup(name,carbonContext.getTenantId()); } catch (AutoscalerServiceCartridgeGroupNotFoundExceptionException e) { return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean( ResponseMessageBean.ERROR, "Cartridge group not found")).build(); http://git-wip-us.apache.org/repos/asf/stratos/blob/e0f6286e/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java index f117247..c014466 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java @@ -1121,12 +1121,15 @@ public class StratosApiV41Utils { * @param cartridgeGroup * @throws RestAPIException */ - public static void updateServiceGroup(CartridgeGroupBean cartridgeGroup) throws RestAPIException, + public static void updateServiceGroup(CartridgeGroupBean cartridgeGroup,int tenantId) throws RestAPIException, InvalidCartridgeGroupDefinitionException { try { + AutoscalerServiceClient autoscalerServiceClient = AutoscalerServiceClient.getInstance(); + cartridgeGroup.setUuid(autoscalerServiceClient.getServiceGroupByTenant(cartridgeGroup.getName(),tenantId).getUuid()); + cartridgeGroup.setTenantId(tenantId); ServiceGroup serviceGroup = ObjectConverter.convertServiceGroupDefinitionToASStubServiceGroup( cartridgeGroup); - AutoscalerServiceClient autoscalerServiceClient = AutoscalerServiceClient.getInstance(); + StratosManagerServiceClient smServiceClient = getStratosManagerServiceClient(); @@ -1249,7 +1252,7 @@ public class StratosApiV41Utils { * @return GroupBean * @throws RestAPIException */ - public static CartridgeGroupBean getServiceGroupDefinition(String name) throws RestAPIException { + public static CartridgeGroupBean getServiceGroupDefinition(String name,int tenantId) throws RestAPIException { if (log.isDebugEnabled()) { log.debug("Reading cartridge group: [group-name] " + name); @@ -1257,7 +1260,7 @@ public class StratosApiV41Utils { try { AutoscalerServiceClient asServiceClient = AutoscalerServiceClient.getInstance(); - ServiceGroup serviceGroup = asServiceClient.getServiceGroup(name); + ServiceGroup serviceGroup = asServiceClient.getServiceGroupByTenant(name,tenantId); if (serviceGroup == null) { return null; } @@ -1310,7 +1313,7 @@ public class StratosApiV41Utils { * @param name Group Name * @throws RestAPIException */ - public static void removeServiceGroup(String name) throws RestAPIException, AutoscalerServiceCartridgeGroupNotFoundExceptionException { + public static void removeServiceGroup(String name,int tenantId) throws RestAPIException, AutoscalerServiceCartridgeGroupNotFoundExceptionException { if (log.isDebugEnabled()) { log.debug("Removing cartridge group: [name] " + name); @@ -1321,7 +1324,7 @@ public class StratosApiV41Utils { // Check whether cartridge group exists try { - if (asServiceClient.getServiceGroup(name) == null) { + if (asServiceClient.getServiceGroupByTenant(name,tenantId) == null) { String message = "Cartridge group: [group-name] " + name + " cannot be removed since it does not exist"; log.error(message); throw new RestAPIException(message); @@ -1334,9 +1337,9 @@ public class StratosApiV41Utils { throw new RestAPIException(message); } - ServiceGroup serviceGroup = asServiceClient.getServiceGroup(name); + ServiceGroup serviceGroup = asServiceClient.getServiceGroupByTenant(name,tenantId); - asServiceClient.undeployServiceGroupDefinition(name); + asServiceClient.undeployServiceGroupDefinition(serviceGroup.getUuid()); // Remove the dependent cartridges and cartridge groups from Stratos Manager cache // - done after service group has been removed http://git-wip-us.apache.org/repos/asf/stratos/blob/e0f6286e/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java index 341c346..10a0757 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java @@ -1800,7 +1800,7 @@ public class ObjectConverter { List<CartridgeGroupBean> groupsDefinitions = groupBean.getGroups(); List<String> cartridgesDefinitions = groupBean.getCartridges(); - servicegroup.setName(groupBean.getUuid()); + servicegroup.setName(groupBean.getName()); servicegroup.setUuid(groupBean.getUuid()); servicegroup.setTenantId(groupBean.getTenantId());
