Remove UUID and TenantId from CartridgeGroupBean
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/203d8933 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/203d8933 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/203d8933 Branch: refs/heads/tenant-isolation Commit: 203d8933d6189d18ba8404e3a959493e1469a270 Parents: 5a0a5f6 Author: Dinithi <[email protected]> Authored: Thu Aug 6 14:14:41 2015 +0530 Committer: Dinithi <[email protected]> Committed: Thu Aug 6 14:14:41 2015 +0530 ---------------------------------------------------------------------- .../autoscaler/registry/RegistryManager.java | 2 +- .../stratos/cli/RestCommandLineService.java | 2 +- .../beans/cartridge/CartridgeGroupBean.java | 18 - .../rest/endpoint/api/StratosApiV41.java | 22 +- .../rest/endpoint/api/StratosApiV41Utils.java | 78 +- .../util/converter/ObjectConverter.java | 10 +- .../src/main/resources/AutoscalerService.wsdl | 838 +++++++++---------- 7 files changed, 482 insertions(+), 488 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/203d8933/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 4ccdb05..b7e659e 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 @@ -645,7 +645,7 @@ public class RegistryManager { policyID; delete(resourcePath); if (log.isDebugEnabled()) { - log.debug(String.format("Autoscaler policy deleted from registry: [id]", policyID)); + log.debug(String.format("Autoscaler policy deleted from registry: %s [id]", policyID)); } } finally { endTenantFlow(); http://git-wip-us.apache.org/repos/asf/stratos/blob/203d8933/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java index 03abca1..140959b 100644 --- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java +++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java @@ -387,7 +387,7 @@ public class RestCommandLineService { RowMapper<CartridgeGroupBean> cartridgeGroupMapper = new RowMapper<CartridgeGroupBean>() { public String[] getData(CartridgeGroupBean cartridgeGroup) { String[] data = new String[3]; - data[0] = cartridgeGroup.getUuid(); + data[0] = cartridgeGroup.getName(); data[1] = cartridgeGroup.getCartridges() == null ? "" : String.valueOf(cartridgeGroup.getCartridges().size()); data[2] = cartridgeGroup.getGroups() == null ? "0" : String.valueOf(cartridgeGroup.getGroups().size()); return data; http://git-wip-us.apache.org/repos/asf/stratos/blob/203d8933/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 90d1f6e..d14fd53 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 @@ -30,20 +30,10 @@ public class CartridgeGroupBean implements Serializable { private static final long serialVersionUID = 4696832597498594267L; - private String uuid; private String name; private List<CartridgeGroupBean> groups; private List<String> cartridges; private DependencyBean dependencies; - private int tenantId; - - public String getUuid() { - return uuid; - } - - public void setUuid(String uuid) { - this.uuid = uuid; - } public List<String> getCartridges() { return cartridges; @@ -69,14 +59,6 @@ public class CartridgeGroupBean implements Serializable { this.groups = groups; } - public int getTenantId() { - return tenantId; - } - - public void setTenantId(int tenantId) { - this.tenantId = tenantId; - } - public String getName() { return name; } http://git-wip-us.apache.org/repos/asf/stratos/blob/203d8933/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 37ff9fb..baa06c6 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 @@ -495,15 +495,15 @@ public class StratosApiV41 extends AbstractApi { CartridgeGroupBean cartridgeGroupBean) throws RestAPIException { PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext(); - cartridgeGroupBean.setUuid(UUID.randomUUID().toString()); - cartridgeGroupBean.setTenantId(carbonContext.getTenantId()); + String cartrideGroupUuid= UUID.randomUUID().toString(); + int tenantId = carbonContext.getTenantId(); try { - StratosApiV41Utils.addCartridgeGroup(cartridgeGroupBean); - URI url = uriInfo.getAbsolutePathBuilder().path(cartridgeGroupBean.getUuid()).build(); - + StratosApiV41Utils.addCartridgeGroup(cartridgeGroupBean, cartrideGroupUuid, tenantId); + URI url = uriInfo.getAbsolutePathBuilder().path(cartridgeGroupBean.getName()).build(); return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS, - String.format("Cartridge Group added successfully: [cartridge-group-uuid] %s [cartridge-group-name] %s [tenant-id] %d", - cartridgeGroupBean.getUuid(),cartridgeGroupBean.getName(),cartridgeGroupBean.getTenantId()))).build(); + String.format("Cartridge Group added successfully: [cartridge-group-uuid] %s " + + "[cartridge-group-name] %s [tenant-id] %d", cartrideGroupUuid, + cartridgeGroupBean.getName(), tenantId))).build(); } catch (InvalidCartridgeGroupDefinitionException e) { return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean( ResponseMessageBean.ERROR, e.getMessage())).build(); @@ -536,12 +536,12 @@ public class StratosApiV41 extends AbstractApi { try { PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext(); - StratosApiV41Utils.updateServiceGroup(cartridgeGroupBean,carbonContext.getTenantId()); - URI url = uriInfo.getAbsolutePathBuilder().path(cartridgeGroupBean.getUuid()).build(); + StratosApiV41Utils.updateServiceGroup(cartridgeGroupBean, carbonContext.getTenantId()); + URI url = uriInfo.getAbsolutePathBuilder().path(cartridgeGroupBean.getName()).build(); return Response.ok(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS, - String.format("Cartridge group updated successfully: [cartridge-group-uuid] %s [cartridge-group-name] %s [tenant-id] %d", - cartridgeGroupBean.getUuid(),cartridgeGroupBean.getName(),cartridgeGroupBean.getTenantId()))).build(); + String.format("Cartridge group updated successfully: [cartridge-group-uuid] %s", + cartridgeGroupBean.getName()))).build(); } catch (InvalidCartridgeGroupDefinitionException e) { return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean( http://git-wip-us.apache.org/repos/asf/stratos/blob/203d8933/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 a183d26..b825d14 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 @@ -1006,7 +1006,8 @@ public class StratosApiV41Utils { * @throws InvalidCartridgeGroupDefinitionException * @throws RestAPIException */ - public static void addCartridgeGroup(CartridgeGroupBean serviceGroupDefinition) + public static void addCartridgeGroup(CartridgeGroupBean serviceGroupDefinition, String cartridgeGroupUuid, + int tenantId) throws InvalidCartridgeGroupDefinitionException, ServiceGroupDefinitionException, RestAPIException, CloudControllerServiceCartridgeNotFoundExceptionException, AutoscalerServiceInvalidServiceGroupExceptionException { @@ -1021,7 +1022,7 @@ public class StratosApiV41Utils { String[] cartridgeGroupNames; if (log.isDebugEnabled()) { - log.debug("Checking cartridges in cartridge group " + serviceGroupDefinition.getUuid()); + log.debug("Checking cartridges in cartridge group " + cartridgeGroupUuid); } findCartridgesInGroupBean(serviceGroupDefinition, cartridgeTypes); @@ -1031,7 +1032,15 @@ public class StratosApiV41Utils { //validate the group definition to check if groups duplicate in any groups and //validate the group definition to check for cyclic group behaviour - validateGroupDuplicationInGroupDefinition(serviceGroupDefinition); + + try { + validateGroupDuplicationInGroupDefinition(serviceGroupDefinition); + } catch (RemoteException e) { + String message = "Error while validating group duplications in cartridge group: " + cartridgeGroupUuid; + log.error(message, e); + throw new RestAPIException(message, e); + } + CloudControllerServiceClient ccServiceClient = getCloudControllerServiceClient(); @@ -1039,7 +1048,7 @@ public class StratosApiV41Utils { int j = 0; for (String cartridgeType : cartridgeTypes) { try { - Cartridge cartridge = ccServiceClient.getCartridgeByTenant(cartridgeType,serviceGroupDefinition.getTenantId()); + Cartridge cartridge = ccServiceClient.getCartridgeByTenant(cartridgeType, tenantId); if (cartridge == null) { // cartridge is not deployed, can't continue log.error("Invalid cartridge found in cartridge group " + cartridgeType); @@ -1049,7 +1058,7 @@ public class StratosApiV41Utils { j++; } } catch (RemoteException e) { - String message = "Could not add the cartridge group: " + serviceGroupDefinition.getUuid(); + String message = "Could not add the cartridge group: " + cartridgeGroupUuid; log.error(message, e); throw new RestAPIException(message, e); } @@ -1059,7 +1068,7 @@ public class StratosApiV41Utils { // if any sub groups are specified in the group, they should be already deployed if (serviceGroupDefinition.getGroups() != null) { if (log.isDebugEnabled()) { - log.debug("checking subGroups in cartridge group " + serviceGroupDefinition.getUuid()); + log.debug("checking subGroups in cartridge group " + cartridgeGroupUuid); } List<CartridgeGroupBean> groupDefinitions = serviceGroupDefinition.getGroups(); @@ -1067,8 +1076,8 @@ public class StratosApiV41Utils { cartridgeGroupNames = new String[groupDefinitions.size()]; int i = 0; for (CartridgeGroupBean groupList : groupDefinitions) { - groupNames.add(groupList.getUuid()); - cartridgeGroupNames[i] = groupList.getUuid(); + groupNames.add(groupList.getName()); + cartridgeGroupNames[i] = groupList.getName(); i++; } @@ -1088,7 +1097,7 @@ public class StratosApiV41Utils { } ServiceGroup serviceGroup = ObjectConverter.convertServiceGroupDefinitionToASStubServiceGroup( - serviceGroupDefinition); + serviceGroupDefinition, tenantId); AutoscalerServiceClient asServiceClient = getAutoscalerServiceClient(); try { @@ -1099,7 +1108,7 @@ public class StratosApiV41Utils { } catch (RemoteException e) { String message = String.format("Could not add the cartridge group: [cartridge-group-id] %s " + - "[cartridge-group-name] %s ", serviceGroupDefinition.getUuid(), serviceGroupDefinition.getName()); + "[cartridge-group-name] %s ", serviceGroup.getUuid(), serviceGroupDefinition.getName()); log.error(message, e); throw new RestAPIException(message, e); } @@ -1116,19 +1125,17 @@ public class StratosApiV41Utils { try { AutoscalerServiceClient autoscalerServiceClient = AutoscalerServiceClient.getInstance(); ServiceGroup existingServiceGroup =autoscalerServiceClient.getServiceGroupByTenant(cartridgeGroup.getName(), tenantId); - cartridgeGroup.setUuid(existingServiceGroup.getUuid()); - cartridgeGroup.setTenantId(tenantId); ServiceGroup serviceGroup = ObjectConverter.convertServiceGroupDefinitionToASStubServiceGroup( - cartridgeGroup); + cartridgeGroup, tenantId); StratosManagerServiceClient smServiceClient = getStratosManagerServiceClient(); // Validate whether cartridge group can be updated - if (!smServiceClient.canCartirdgeGroupBeRemoved(cartridgeGroup.getUuid())) { + if (!smServiceClient.canCartirdgeGroupBeRemoved(existingServiceGroup.getUuid())) { String message = String.format("Cannot update cartridge group: [cartridge-group-uuid] %s " + "[cartridge-group-name] %s since it is used in another cartridge group or an application", - cartridgeGroup.getUuid(), cartridgeGroup.getName()); + existingServiceGroup.getUuid(), cartridgeGroup.getName()); log.error(message); throw new RestAPIException(message); @@ -1143,12 +1150,12 @@ public class StratosApiV41Utils { if (serviceGroup != null) { autoscalerServiceClient.updateServiceGroup( - ObjectConverter.convertServiceGroupDefinitionToASStubServiceGroup(cartridgeGroup)); + ObjectConverter.convertServiceGroupDefinitionToASStubServiceGroup(cartridgeGroup, tenantId)); List<String> cartridgesBeforeUpdating = new ArrayList<String>(); List<String> cartridgesAfterUpdating = new ArrayList<String>(); - ServiceGroup serviceGroupToBeUpdated = autoscalerServiceClient.getServiceGroup(cartridgeGroup.getUuid()); + ServiceGroup serviceGroupToBeUpdated = autoscalerServiceClient.getServiceGroup(serviceGroup.getUuid()); findCartridgesInServiceGroup(serviceGroupToBeUpdated, cartridgesBeforeUpdating); findCartridgesInGroupBean(cartridgeGroup, cartridgesAfterUpdating); @@ -1188,7 +1195,7 @@ public class StratosApiV41Utils { if (cartridgesToAdd != null) { if (!cartridgesToAdd.isEmpty()) { { - smServiceClient.addUsedCartridgesInCartridgeGroups(cartridgeGroup.getUuid(), + smServiceClient.addUsedCartridgesInCartridgeGroups(existingServiceGroup.getUuid(), cartridgesToAdd.toArray(new String[cartridgesToRemove.size()])); } } @@ -1197,7 +1204,7 @@ public class StratosApiV41Utils { // Remove cartridge group elements from SM cache - done after cartridge group has been updated if (cartridgesToRemove != null) { if (!cartridgesToRemove.isEmpty()) { - smServiceClient.removeUsedCartridgesInCartridgeGroups(cartridgeGroup.getUuid(), + smServiceClient.removeUsedCartridgesInCartridgeGroups(existingServiceGroup.getUuid(), cartridgesToRemove.toArray(new String[cartridgesToRemove.size()])); } } @@ -3745,37 +3752,42 @@ public class StratosApiV41Utils { * @throws InvalidCartridgeGroupDefinitionException */ private static void validateGroupDuplicationInGroupDefinition(CartridgeGroupBean groupBean) - throws InvalidCartridgeGroupDefinitionException { - validateGroupDuplicationInGroupDefinition(groupBean, new ArrayList<String>()); + throws InvalidCartridgeGroupDefinitionException, RemoteException { + AutoscalerServiceClient autoscalerServiceClient = AutoscalerServiceClient.getInstance(); + PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext(); + ServiceGroup serviceGroup = autoscalerServiceClient.getServiceGroupByTenant(groupBean.getName(), + + carbonContext.getTenantId()); + validateGroupDuplicationInGroupDefinition(serviceGroup, new ArrayList<String>()); } /** * This is to validate the group duplication in the group definition recursively for group within groups * - * @param groupBean - cartridge group definition + * @param serviceGroup - cartridge group definition * @param parentGroups - list of string which holds the parent group names (all parents in the hierarchy) * @throws InvalidCartridgeGroupDefinitionException - throws when the group definition is invalid */ - private static void validateGroupDuplicationInGroupDefinition(CartridgeGroupBean groupBean, List<String> parentGroups) + private static void validateGroupDuplicationInGroupDefinition(ServiceGroup serviceGroup, List<String> parentGroups) throws InvalidCartridgeGroupDefinitionException { - if (groupBean == null) { + if (serviceGroup == null) { return; } List<String> groups = new ArrayList<String>(); - parentGroups.add(groupBean.getUuid()); - if (groupBean.getGroups() != null) { - if (!groupBean.getGroups().isEmpty()) { - for (CartridgeGroupBean g : groupBean.getGroups()) { - groups.add(g.getName()); + parentGroups.add(serviceGroup.getUuid()); + + if (serviceGroup.getGroups() != null) { + for (ServiceGroup group : serviceGroup.getGroups()) { + if (group != null) { + groups.add(group.getUuid()); } - validateGroupDuplicationInGroup(groups, parentGroups); } + validateGroupDuplicationInGroup(groups, parentGroups); } - if (groupBean.getGroups() != null) { + if (serviceGroup.getGroups() != null) { //Recursive because to check groups inside groups - for (CartridgeGroupBean group : groupBean.getGroups()) { + for (ServiceGroup group : serviceGroup.getGroups()) { validateGroupDuplicationInGroupDefinition(group, parentGroups); - parentGroups.remove(group.getName()); + parentGroups.remove(serviceGroup.getUuid()); } } } http://git-wip-us.apache.org/repos/asf/stratos/blob/203d8933/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 b730d1b..2fce76b 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 @@ -1847,7 +1847,8 @@ public class ObjectConverter { return carbonTenantInfoBean; } - public static ServiceGroup convertServiceGroupDefinitionToASStubServiceGroup(CartridgeGroupBean groupBean) + public static ServiceGroup convertServiceGroupDefinitionToASStubServiceGroup(CartridgeGroupBean groupBean, + int tenantId) throws ServiceGroupDefinitionException { if (groupBean == null) { @@ -1860,7 +1861,7 @@ public class ObjectConverter { servicegroup.setName(groupBean.getName()); servicegroup.setUuid(UUID.randomUUID().toString()); - servicegroup.setTenantId(groupBean.getTenantId()); + servicegroup.setTenantId(tenantId); if (groupsDefinitions == null) { groupsDefinitions = new ArrayList<CartridgeGroupBean>(0); @@ -1875,7 +1876,7 @@ public class ObjectConverter { int i = 0; for (CartridgeGroupBean groupDefinition : groupsDefinitions) { - subGroups[i] = convertServiceGroupDefinitionToASStubServiceGroup(groupDefinition); + subGroups[i] = convertServiceGroupDefinitionToASStubServiceGroup(groupDefinition, tenantId); ++i; } @@ -1927,7 +1928,6 @@ public class ObjectConverter { } CartridgeGroupBean serviceGroupDefinition = new CartridgeGroupBean(); - serviceGroupDefinition.setUuid(serviceGroup.getUuid()); serviceGroupDefinition.setName(serviceGroup.getName()); String[] cartridges = serviceGroup.getCartridges(); ServiceGroup[] groups = serviceGroup.getGroups(); @@ -2235,4 +2235,4 @@ public class ObjectConverter { return iaasProviderInfoBean; } -} +} \ No newline at end of file
