You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ga...@apache.org on 2015/08/06 16:05:05 UTC

[2/4] stratos git commit: Remove UUID and TenantId from CartridgeGroupBean

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 <di...@wso2.com>
Authored: Thu Aug 6 14:14:41 2015 +0530
Committer: Dinithi <di...@wso2.com>
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