You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2015/01/26 06:59:02 UTC
[4/8] stratos git commit: Fixed a few issues in validation proceedures
Fixed a few issues in validation proceedures
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/fa0292b3
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/fa0292b3
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/fa0292b3
Branch: refs/heads/master
Commit: fa0292b3d4b5ad02eb36834c59e5ef62c0e14144
Parents: cae97c3
Author: Shiro <sh...@wso2.com>
Authored: Fri Jan 23 20:48:01 2015 +0530
Committer: Shiro <sh...@wso2.com>
Committed: Mon Jan 26 06:20:00 2015 +0530
----------------------------------------------------------------------
.../manager/context/StratosManagerContext.java | 8 +--
.../rest/endpoint/api/StratosApiV41Utils.java | 76 ++++++++++++++------
2 files changed, 57 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/fa0292b3/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/context/StratosManagerContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/context/StratosManagerContext.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/context/StratosManagerContext.java
index 7c6eac5..8841b46 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/context/StratosManagerContext.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/context/StratosManagerContext.java
@@ -40,8 +40,6 @@ import org.wso2.carbon.registry.core.exceptions.RegistryException;
*/
public class StratosManagerContext implements Serializable {
-
-
private static volatile StratosManagerContext instance;
private static final String SM_CARTRIDGE_TYPE_TO_CARTIDGE_GROUPS_MAP = "SM_CARTRIDGE_TYPE_TO_CARTIDGE_GROUPS_MAP";
@@ -191,8 +189,8 @@ public class StratosManagerContext implements Serializable {
}
public boolean isCartridgeIncludedInCartridgeGroups(String cartridgeName) {
- if(cartridgeTypeToApplicationsMap.containsKey(cartridgeName)) {
- if(!cartridgeTypeToApplicationsMap.get(cartridgeName).isEmpty()) {
+ if(cartridgeTypeToCartridgeGroupsMap.containsKey(cartridgeName)) {
+ if(!cartridgeTypeToCartridgeGroupsMap.get(cartridgeName).isEmpty()) {
return true;
}
return false;
@@ -255,7 +253,7 @@ public class StratosManagerContext implements Serializable {
for(String cartridgeGroupName : cartridgeGroupNames) {
Set<String> cartridgeSubGroupNames = null;
if(cartridgeGroupToCartridgeSubGroupsMap.containsKey(cartridgeGroupName)) {
- cartridgeSubGroupNames = cartridgeTypeToCartridgeGroupsMap.get(cartridgeGroupName);
+ cartridgeSubGroupNames = cartridgeGroupToCartridgeSubGroupsMap.get(cartridgeGroupName);
} else {
cartridgeSubGroupNames = new HashSet<String>();
cartridgeGroupToCartridgeSubGroupsMap.put(cartridgeSubGroupName, cartridgeSubGroupNames);
http://git-wip-us.apache.org/repos/asf/stratos/blob/fa0292b3/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 19d8136..6dfc8dd 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
@@ -674,7 +674,9 @@ public class StratosApiV41Utils {
}
List<String> cartridgeTypes = null;
+ String[] cartridgeNames = null;
List<String> groupNames = null;
+ String[] cartridgeGroupNames = null;
// if any cartridges are specified in the group, they should be already deployed
if (serviceGroupDefinition.getCartridges() != null) {
@@ -698,13 +700,18 @@ public class StratosApiV41Utils {
}
CloudControllerServiceClient ccServiceClient = getCloudControllerServiceClient();
-
+
+ cartridgeNames = new String[cartridgeTypes.size()];
+ int i=0;
for (String cartridgeType : cartridgeTypes) {
try {
if (ccServiceClient.getCartridgeInfo(cartridgeType) == null) {
// cartridge is not deployed, can't continue
log.error("invalid cartridge found in cartridge group " + cartridgeType);
throw new RestAPIException("No Cartridge Definition found with type " + cartridgeType);
+ } else {
+ cartridgeNames[i] = cartridgeType;
+ i++;
}
} catch (RemoteException e) {
throw new RestAPIException(e);
@@ -722,8 +729,12 @@ public class StratosApiV41Utils {
List<GroupBean> groupDefinitions = serviceGroupDefinition.getGroups();
groupNames = new ArrayList<String>();
+ cartridgeGroupNames = new String[groupNames.size()];
+ int i=0;
for (GroupBean groupList : groupDefinitions) {
groupNames.add(groupList.getName());
+ cartridgeGroupNames[i] = groupList.getName();
+ i++;
}
Set<String> duplicates = findDuplicates(groupNames);
@@ -748,10 +759,10 @@ public class StratosApiV41Utils {
// Add cartridge group elements to SM cache - done after service group has been added
StratosManagerServiceClient smServiceClient = getStratosManagerServiceClient();
if(cartridgeTypes != null) {
- smServiceClient.addUsedCartridgesInCartridgeGroups(serviceGroupDefinition.getName(), (String[]) cartridgeTypes.toArray());
+ smServiceClient.addUsedCartridgesInCartridgeGroups(serviceGroupDefinition.getName(), cartridgeNames);
}
if(groupNames != null) {
- smServiceClient.addUsedCartridgeGroupsInCartridgeSubGroups(serviceGroupDefinition.getName(), (String[]) groupNames.toArray());
+ smServiceClient.addUsedCartridgeGroupsInCartridgeSubGroups(serviceGroupDefinition.getName(), cartridgeGroupNames);
}
} catch (Exception e) {
@@ -837,6 +848,13 @@ public class StratosApiV41Utils {
AutoscalerServiceClient asServiceClient = getAutoscalerServiceClient();
StratosManagerServiceClient smServiceClient = getStratosManagerServiceClient();
+ // Check whether cartridge group exists
+ if(asServiceClient.getServiceGroup(name) == null) {
+ String message = "Cartridge group: [group-name] " + name + " cannot be removed since it does not exist";
+ log.error(message);
+ throw new RestAPIException(message);
+ }
+
// Validate whether cartridge group can be removed
if(!smServiceClient.canCartirdgeGroupBeRemoved(name)) {
String message = "Cannot remove cartridge group: [group-name] " + name + " since it is used in another cartridge group or an application";
@@ -856,11 +874,17 @@ public class StratosApiV41Utils {
if (serviceGroup.getGroups() != null) {
ServiceGroup[] cartridgeGroups = serviceGroup.getGroups();
- Set<String> cartridgeGroupNames = new HashSet<String>();
+ String[] cartridgeGroupNames = new String[cartridgeGroups.length];
+ int i = 0;
for(ServiceGroup cartridgeGroup : cartridgeGroups) {
- cartridgeGroupNames.add(cartridgeGroup.getName());
+ if(cartridgeGroup != null) {
+ cartridgeGroupNames[i] = cartridgeGroup.getName();
+ i++;
+ } else {
+ break;
+ }
}
- smServiceClient.removeUsedCartridgeGroupsInCartridgeSubGroups(name, (String[]) cartridgeGroupNames.toArray());
+ smServiceClient.removeUsedCartridgeGroupsInCartridgeSubGroups(name, cartridgeGroupNames);
}
} catch (Exception e) {
@@ -914,29 +938,33 @@ public class StratosApiV41Utils {
AutoscalerServiceClient.getInstance().addApplication(applicationContext);
// Add application elements to SM cache - done after application has been added
- Set<String> cartridgeNames;
- Set<String> cartridgeGroupNames;
+ String[] cartridgeNames;
+ String[] cartridgeGroupNames;
StratosManagerServiceClient smServiceClient = getStratosManagerServiceClient();
List<CartridgeReferenceBean> cartridges = appDefinition.getComponents().getCartridges();
if(cartridges != null) {
- cartridgeNames = new HashSet<String>();
+ cartridgeNames = new String[cartridges.size()];
+ int i=0;
for(CartridgeReferenceBean cartridge : cartridges) {
- cartridgeNames.add(cartridge.getType());
+ cartridgeNames[i] = cartridge.getType();
+ i++;
}
- smServiceClient.addUsedCartridgesInApplications(appDefinition.getApplicationId(), (String[]) cartridgeNames.toArray());
+ smServiceClient.addUsedCartridgesInApplications(appDefinition.getApplicationId(), cartridgeNames);
}
List<GroupReferenceBean> cartridgeGroups = appDefinition.getComponents().getGroups();
if(cartridgeGroups != null) {
- cartridgeGroupNames = new HashSet<String>();
+ cartridgeGroupNames = new String[cartridgeGroups.size()];
+ int i=0;
for(GroupReferenceBean cartridgeGroup : cartridgeGroups) {
- cartridgeGroupNames.add(cartridgeGroup.getName());
+ cartridgeGroupNames[i] = cartridgeGroup.getName();
+ i++;
}
- smServiceClient.addUsedCartridgeGroupsInApplications(appDefinition.getApplicationId(), (String[]) cartridgeGroupNames.toArray());
+ smServiceClient.addUsedCartridgeGroupsInApplications(appDefinition.getApplicationId(), cartridgeGroupNames);
}
} catch (AutoscalerServiceApplicationDefinitionExceptionException e) {
@@ -1003,28 +1031,32 @@ public class StratosApiV41Utils {
asServiceClient.deleteApplication(applicationId);
// Remove application elements in SM cache - done after deleting
- Set<String> cartridgeNames;
- Set<String> cartridgeGroupNames;
+ String[] cartridgeNames;
+ String[] cartridgeGroupNames;
StratosManagerServiceClient smServiceClient = getStratosManagerServiceClient();
List<CartridgeReferenceBean> cartridges = application.getComponents().getCartridges();
if(cartridges != null) {
- cartridgeNames = new HashSet<String>();
+ cartridgeNames = new String[cartridges.size()];
+ int i=0;
for(CartridgeReferenceBean cartridge : cartridges) {
- cartridgeNames.add(cartridge.getType());
+ cartridgeNames[i] = cartridge.getType();
+ i++;
}
- smServiceClient.removeUsedCartridgesInApplications(application.getApplicationId(), (String[]) cartridgeNames.toArray());
+ smServiceClient.removeUsedCartridgesInApplications(application.getApplicationId(), cartridgeNames);
}
List<GroupReferenceBean> cartridgeGroups = application.getComponents().getGroups();
if(cartridgeGroups != null) {
- cartridgeGroupNames = new HashSet<String>();
+ cartridgeGroupNames = new String[cartridgeGroups.size()];
+ int i=0;
for(GroupReferenceBean cartridgeGroup : cartridgeGroups) {
- cartridgeGroupNames.add(cartridgeGroup.getName());
+ cartridgeGroupNames[i] = cartridgeGroup.getName();
+ i++;
}
- smServiceClient.removeUsedCartridgeGroupsInApplications(application.getApplicationId(), (String[]) cartridgeGroupNames.toArray());
+ smServiceClient.removeUsedCartridgeGroupsInApplications(application.getApplicationId(), cartridgeGroupNames);
}
} catch (RemoteException e) {