From 6cddb02d12ede270855d76393fbe5a5e28467039 Mon Sep 17 00:00:00 2001 From: Vishanth Date: Wed, 13 May 2015 21:54:07 +0530 Subject: [PATCH 1/6] Adding api method for updating cartridge group --- .../autoscaler/registry/RegistryManager.java | 23 + .../services/AutoscalerService.java | 9 + .../services/impl/AutoscalerServiceImpl.java | 54 ++ .../client/AutoscalerServiceClient.java | 5 + .../rest/endpoint/api/StratosApiV41.java | 34 ++ .../rest/endpoint/api/StratosApiV41Utils.java | 88 +++ .../src/main/resources/AutoscalerService.wsdl | 556 ++++++++++-------- 7 files changed, 520 insertions(+), 249 deletions(-) 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 2a64f2596e..61a73acdde 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 @@ -25,6 +25,7 @@ import org.apache.stratos.autoscaler.algorithms.networkpartition.NetworkPartitionAlgorithmContext; import org.apache.stratos.autoscaler.applications.pojo.ApplicationContext; import org.apache.stratos.autoscaler.exception.AutoScalerException; +import org.apache.stratos.autoscaler.exception.application.InvalidServiceGroupException; import org.apache.stratos.autoscaler.pojo.ServiceGroup; import org.apache.stratos.autoscaler.pojo.policy.autoscale.AutoscalePolicy; import org.apache.stratos.autoscaler.pojo.policy.deployment.ApplicationPolicy; @@ -348,6 +349,28 @@ public void persistServiceGroup(ServiceGroup servicegroup) { } } + + public void updateServiceGroup(ServiceGroup serviceGroup) throws InvalidServiceGroupException { + try { + if (serviceGroup == null || StringUtils.isEmpty(serviceGroup.getName())) { + throw new IllegalArgumentException("Cartridge group or group name cannot be null"); + } + if (getServiceGroup(serviceGroup.getName()) == null) { + throw new InvalidServiceGroupException(String.format("Cartridge group does not exist: " + + "[cartridge-group] %s", serviceGroup.getName())); + } + + persistServiceGroup(serviceGroup); + + if (log.isDebugEnabled()) { + log.debug(String.format("Updated cartridge group: [group-name] %s", serviceGroup.getName())); + } + } catch (Exception e) { + log.error((String.format("Unable to update cartridge group [group-name] %s", + serviceGroup.getName())), e); + } + } + public boolean serviceGroupExist(String serviceGroupName) { String resourcePath = AutoscalerConstants.AUTOSCALER_RESOURCE + AutoscalerConstants.SERVICE_GROUP + "/" + serviceGroupName; return resourceExist(resourcePath); 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 9aa9e6a2d3..05ceac654c 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 @@ -200,6 +200,15 @@ public boolean updateApplicationPolicy(ApplicationPolicy applicationPolicy) */ public boolean addServiceGroup(ServiceGroup servicegroup) throws InvalidServiceGroupException; + /** + * Update a cartridge group + * + * @param serviceGroup + * @return + * @throws InvalidServiceGroupException + */ + public boolean updateServiceGroup(ServiceGroup serviceGroup) throws InvalidServiceGroupException; + /** * Remove a cartridge group * 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 4d2e3bf01f..248b2a4968 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 @@ -655,6 +655,60 @@ public boolean addServiceGroup(ServiceGroup servicegroup) throws InvalidServiceG return true; } + public boolean updateServiceGroup(ServiceGroup cartridgeGroup) throws InvalidServiceGroupException { + + if (cartridgeGroup == null || StringUtils.isEmpty(cartridgeGroup.getName())) { + String msg = "Cartridge group cannot be null or service name cannot be empty."; + log.error(msg); + throw new IllegalArgumentException(msg); + } + + if (log.isInfoEnabled()) { + log.info(String.format("Updating cartridge group: [group-name] %s", cartridgeGroup.getName())); + } + + String groupName = cartridgeGroup.getName(); + if (!RegistryManager.getInstance().serviceGroupExist(groupName)) { + throw new InvalidServiceGroupException(String.format("Cartridge group does not exist: [cartridge-group] %s", + cartridgeGroup.getName())); + } + + Dependencies dependencies = cartridgeGroup.getDependencies(); + if (dependencies != null) { + String[] startupOrders = dependencies.getStartupOrders(); + AutoscalerUtil.validateStartupOrders(groupName, startupOrders); + + if (log.isDebugEnabled()) { + log.debug("StartupOrders " + Arrays.toString(startupOrders)); + + if (startupOrders != null) { + log.debug("StartupOrder:size " + startupOrders.length); + } else { + log.debug("StartupOrder: is null"); + } + } + + String[] scalingDependents = dependencies.getScalingDependants(); + AutoscalerUtil.validateScalingDependencies(groupName, scalingDependents); + + if (log.isDebugEnabled()) { + log.debug("ScalingDependent " + Arrays.toString(scalingDependents)); + + if (scalingDependents != null) { + log.debug("ScalingDependents:size " + scalingDependents.length); + } else { + log.debug("ScalingDependent: is null"); + } + } + } + + RegistryManager.getInstance().updateServiceGroup(cartridgeGroup); + if (log.isInfoEnabled()) { + log.info(String.format("Cartridge group successfully updated: [group-name] %s", cartridgeGroup.getName())); + } + return true; + } + @Override public boolean removeServiceGroup(String groupName) throws CartridgeGroupNotFoundException { try { 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 c9c8750e1d..ccc89d6908 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 @@ -185,6 +185,11 @@ public void addServiceGroup(ServiceGroup serviceGroup) throws AutoscalerServiceI stub.addServiceGroup(serviceGroup); } + public void updateServiceGroup(ServiceGroup serviceGroup) throws AutoscalerServiceInvalidServiceGroupExceptionException, + RemoteException { + stub.updateServiceGroup(serviceGroup); + } + public void removeServiceGroup(String groupName) throws RemoteException, AutoscalerServiceCartridgeGroupNotFoundExceptionException { stub.removeServiceGroup(groupName); 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 70824659de..3c5b5a0372 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 @@ -21,6 +21,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.stub.*; +import org.apache.stratos.autoscaler.stub.exception.InvalidServiceGroupException; import org.apache.stratos.cloud.controller.stub.*; import org.apache.stratos.common.beans.*; import org.apache.stratos.common.beans.application.ApplicationBean; @@ -466,6 +467,39 @@ public Response addServiceGroup( } } + /** + * Updates a cartridge group + * + * @param cartridgeGroup cartridge group definition + * @return 200 if network partition is successfully updated + * @throws RestAPIException + */ + @PUT + @Path("/cartridgeGroups") + @Produces("application/json") + @Consumes("application/json") + @AuthorizationAction("/permission/protected/manage/updateServiceGroup") + public Response updateServiceGroup( + GroupBean cartridgeGroup) throws RestAPIException { + + try { + StratosApiV41Utils.updateServiceGroup(cartridgeGroup); + URI url = uriInfo.getAbsolutePathBuilder().path(cartridgeGroup.getName()).build(); + + return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS, + String.format("Cartridge group updated successfully: [cartridge-group] %s", + cartridgeGroup.getName()))).build(); + + } catch (InvalidCartridgeGroupDefinitionException e) { + return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean( + ResponseMessageBean.ERROR, "Invalid cartridge group definition")).build(); + } catch (RestAPIException e) { + return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean( + ResponseMessageBean.ERROR, "Cartridge group not found")).build(); + } + } + + /** * Gets the cartridge group definition. * 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 ff2c08c68a..ab798c7ffd 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 @@ -25,6 +25,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.stratos.autoscaler.stub.*; import org.apache.stratos.autoscaler.stub.deployment.policy.ApplicationPolicy; +import org.apache.stratos.autoscaler.stub.exception.InvalidServiceGroupException; import org.apache.stratos.autoscaler.stub.pojo.ApplicationContext; import org.apache.stratos.autoscaler.stub.pojo.ServiceGroup; import org.apache.stratos.cloud.controller.stub.*; @@ -1070,6 +1071,93 @@ public static void addServiceGroup(GroupBean serviceGroupDefinition) } } + /** + * Update a cartridge group + * + * @param cartridgeGroup + * @throws RestAPIException + */ + public static void updateServiceGroup(GroupBean cartridgeGroup) throws RestAPIException, + InvalidCartridgeGroupDefinitionException { + try { + ServiceGroup serviceGroup = ObjectConverter.convertServiceGroupDefinitionToASStubServiceGroup( + cartridgeGroup); + AutoscalerServiceClient autoscalerServiceClient = AutoscalerServiceClient.getInstance(); + + StratosManagerServiceClient smServiceClient = getStratosManagerServiceClient(); + + // Validate whether cartridge group can be updated + if (!smServiceClient.canCartirdgeGroupBeRemoved(cartridgeGroup.getName())) { + String message = "Cannot update cartridge group: [group-name] " + cartridgeGroup.getName() + + " since it is used in another cartridge group or an application"; + log.error(message); + throw new RestAPIException(message); + } + + //validate the group definition to check if cartridges duplicate in any groups defined + validateCartridgeDuplicationInGroupDefinition(cartridgeGroup); + + //validate the group definition to check if groups duplicate in any groups and + //validate the group definition to check for cyclic group behaviour + validateGroupDuplicationInGroupDefinition(cartridgeGroup); + + List cartridgesBeforeUpdating = new ArrayList(); + List cartridgesAfterUpdating = new ArrayList(); + + ServiceGroup serviceGroupToBeUpdated = autoscalerServiceClient.getServiceGroup(cartridgeGroup.getName()); + findCartridgesInServiceGroup(serviceGroupToBeUpdated, cartridgesBeforeUpdating); + findCartridgesInGroupBean(cartridgeGroup, cartridgesAfterUpdating); + + List cartridgesToRemove = cartridgesBeforeUpdating; + List cartridgesToAdd = cartridgesAfterUpdating; + + if ((cartridgesBeforeUpdating != null) || (!cartridgesBeforeUpdating.isEmpty()) || + (cartridgesAfterUpdating != null) || (!cartridgesAfterUpdating.isEmpty())) { + + for (String before : cartridgesBeforeUpdating) { + for (String after : cartridgesAfterUpdating) { + if (before.equals(after)) { + cartridgesToRemove.remove(after); + cartridgesToAdd.remove(after); + } + } + } + } + + // Add cartridge group elements to SM cache - done after cartridge group has been updated + if (cartridgesToAdd != null || !cartridgesToAdd.isEmpty()) { + smServiceClient.addUsedCartridgesInCartridgeGroups(cartridgeGroup.getName(), + cartridgesToAdd.toArray(new String[cartridgesToRemove.size()])); + } + + // Remove cartridge group elements from SM cache - done after cartridge group has been updated + if (cartridgesToRemove != null || !cartridgesToRemove.isEmpty()) { + smServiceClient.removeUsedCartridgesInCartridgeGroups(cartridgeGroup.getName(), + cartridgesToRemove.toArray(new String[cartridgesToRemove.size()])); + } + + if (serviceGroup != null) { + autoscalerServiceClient.updateServiceGroup( + ObjectConverter.convertServiceGroupDefinitionToASStubServiceGroup(cartridgeGroup)); + } + + } catch (RemoteException e) { + String message = String.format("Could not update cartridge group: [group-name] %s,", + cartridgeGroup.getName()); + log.error(message); + throw new RestAPIException(message, e); + } catch (AutoscalerServiceInvalidServiceGroupExceptionException e) { + String message = String.format("Autoscaler invalid cartridge group definition: [group-name] %s", + cartridgeGroup.getName()); + log.error(message); + throw new InvalidCartridgeGroupDefinitionException(message, e); + } catch (ServiceGroupDefinitionException e) { + String message = String.format("Invalid cartridge group definition: [group-name] %s", cartridgeGroup.getName()); + log.error(message); + throw new InvalidCartridgeGroupDefinitionException(message, e); + } + } + /** * returns any duplicates in a List * diff --git a/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoscalerService.wsdl b/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoscalerService.wsdl index 870f7a7aaa..e8a2ac5b43 100644 --- a/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoscalerService.wsdl +++ b/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoscalerService.wsdl @@ -1,10 +1,10 @@ - + - + - + @@ -21,7 +21,7 @@ - + @@ -33,17 +33,17 @@ - + - + - + @@ -52,10 +52,10 @@ - - - - + + + + @@ -66,8 +66,8 @@ - - + + @@ -75,7 +75,7 @@ - + @@ -94,21 +94,21 @@ - + - + - - + + @@ -130,9 +130,9 @@ - + - + @@ -143,8 +143,8 @@ - - + + @@ -156,564 +156,578 @@ - + + - - - - - + + + - + + - + - + - + - + - + - + - + - + - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + - + - + - + + + - + - + - + - + + + - + - + - + - + - + - + - + + - + - + - + + - - - - - - + - + - + - + - + - + + - + - + - + - + - + - + - + - + - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + - + - + - + - + - + - + - + - + - + - + - - - + - + - + - + - + - + - + + + + + + - - + - + - + - + - - + - + - + - + - + - - + - + - + - + - + - + - + - + - + - - + - + - + - + + + + + + - + - + - + - + - + - + - + - + - + + + + + + - + - + - + - + - + - + @@ -721,13 +735,13 @@ - + - + @@ -736,18 +750,18 @@ - + - + - + @@ -758,23 +772,23 @@ - + - + - + - + @@ -783,7 +797,7 @@ - + @@ -793,41 +807,41 @@ - + - - - - - - - - - - - - + - + + + + + + + + + + + + @@ -835,7 +849,7 @@ - + @@ -845,17 +859,17 @@ - - - - - - + + + + + + @@ -915,6 +929,15 @@ + + + + + + + + + @@ -978,9 +1001,6 @@ - - - @@ -1086,18 +1106,18 @@ - - - - - - + + + + + + @@ -1132,6 +1152,11 @@ + + + + + @@ -1246,15 +1271,15 @@ + + + + - - - - @@ -1336,6 +1361,18 @@ + + + + + + + + + + + + @@ -1609,26 +1646,26 @@ - - + + + + + - - + + - - - @@ -1711,6 +1748,18 @@ + + + + + + + + + + + + @@ -1984,26 +2033,26 @@ - - + + + + + - - + + - - - @@ -2071,6 +2120,15 @@ + + + + + + + + + @@ -2278,8 +2336,8 @@ - - + + @@ -2287,8 +2345,8 @@ - - + + From 833f3609b842b0cd30066d252db709923b847ecc Mon Sep 17 00:00:00 2001 From: Vishanth Date: Thu, 14 May 2015 00:15:08 +0530 Subject: [PATCH 2/6] Fixing the exception --- .../stratos/autoscaler/registry/RegistryManager.java | 8 +++++--- .../services/impl/AutoscalerServiceImpl.java | 10 +++++++++- 2 files changed, 14 insertions(+), 4 deletions(-) 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 61a73acdde..e16d3f5584 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 @@ -350,7 +350,7 @@ public void persistServiceGroup(ServiceGroup servicegroup) { } - public void updateServiceGroup(ServiceGroup serviceGroup) throws InvalidServiceGroupException { + public void updateServiceGroup(ServiceGroup serviceGroup) throws InvalidServiceGroupException, RegistryException { try { if (serviceGroup == null || StringUtils.isEmpty(serviceGroup.getName())) { throw new IllegalArgumentException("Cartridge group or group name cannot be null"); @@ -366,8 +366,10 @@ public void updateServiceGroup(ServiceGroup serviceGroup) throws InvalidServiceG log.debug(String.format("Updated cartridge group: [group-name] %s", serviceGroup.getName())); } } catch (Exception e) { - log.error((String.format("Unable to update cartridge group [group-name] %s", - serviceGroup.getName())), e); + String message = (String.format("Unable to update cartridge group [group-name] %s", + serviceGroup.getName())); + log.error(message, e); + throw new RegistryException(message, e); } } 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 248b2a4968..cd7e7dc5a9 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 @@ -702,7 +702,15 @@ public boolean updateServiceGroup(ServiceGroup cartridgeGroup) throws InvalidSer } } - RegistryManager.getInstance().updateServiceGroup(cartridgeGroup); + try { + RegistryManager.getInstance().updateServiceGroup(cartridgeGroup); + } catch (org.wso2.carbon.registry.core.exceptions.RegistryException e) { + String message = (String.format("Cannot update cartridge group: [group-name] %s", + cartridgeGroup.getName())); + throw new RuntimeException(message, e); + } + + if (log.isInfoEnabled()) { log.info(String.format("Cartridge group successfully updated: [group-name] %s", cartridgeGroup.getName())); } From eb656c1ecf209f54ce291123f4dca3eb580792ae Mon Sep 17 00:00:00 2001 From: Vishanth Date: Thu, 14 May 2015 10:31:21 +0530 Subject: [PATCH 3/6] Fixes --- .../rest/endpoint/api/StratosApiV41Utils.java | 59 ++++++++++--------- 1 file changed, 30 insertions(+), 29 deletions(-) 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 ab798c7ffd..26cb87e83d 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 @@ -1101,44 +1101,45 @@ public static void updateServiceGroup(GroupBean cartridgeGroup) throws RestAPIEx //validate the group definition to check for cyclic group behaviour validateGroupDuplicationInGroupDefinition(cartridgeGroup); - List cartridgesBeforeUpdating = new ArrayList(); - List cartridgesAfterUpdating = new ArrayList(); + if (serviceGroup != null) { + autoscalerServiceClient.updateServiceGroup( + ObjectConverter.convertServiceGroupDefinitionToASStubServiceGroup(cartridgeGroup)); + + List cartridgesBeforeUpdating = new ArrayList(); + List cartridgesAfterUpdating = new ArrayList(); - ServiceGroup serviceGroupToBeUpdated = autoscalerServiceClient.getServiceGroup(cartridgeGroup.getName()); - findCartridgesInServiceGroup(serviceGroupToBeUpdated, cartridgesBeforeUpdating); - findCartridgesInGroupBean(cartridgeGroup, cartridgesAfterUpdating); + ServiceGroup serviceGroupToBeUpdated = autoscalerServiceClient.getServiceGroup(cartridgeGroup.getName()); + findCartridgesInServiceGroup(serviceGroupToBeUpdated, cartridgesBeforeUpdating); + findCartridgesInGroupBean(cartridgeGroup, cartridgesAfterUpdating); - List cartridgesToRemove = cartridgesBeforeUpdating; - List cartridgesToAdd = cartridgesAfterUpdating; - if ((cartridgesBeforeUpdating != null) || (!cartridgesBeforeUpdating.isEmpty()) || - (cartridgesAfterUpdating != null) || (!cartridgesAfterUpdating.isEmpty())) { + List cartridgesToRemove = cartridgesBeforeUpdating; + List cartridgesToAdd = cartridgesAfterUpdating; - for (String before : cartridgesBeforeUpdating) { - for (String after : cartridgesAfterUpdating) { - if (before.equals(after)) { - cartridgesToRemove.remove(after); - cartridgesToAdd.remove(after); + if ((cartridgesBeforeUpdating != null) || (!cartridgesBeforeUpdating.isEmpty()) || + (cartridgesAfterUpdating != null) || (!cartridgesAfterUpdating.isEmpty())) { + + for (String before : cartridgesBeforeUpdating) { + for (String after : cartridgesAfterUpdating) { + if (before.equals(after)) { + cartridgesToRemove.remove(after); + cartridgesToAdd.remove(after); + } } } } - } - - // Add cartridge group elements to SM cache - done after cartridge group has been updated - if (cartridgesToAdd != null || !cartridgesToAdd.isEmpty()) { - smServiceClient.addUsedCartridgesInCartridgeGroups(cartridgeGroup.getName(), - cartridgesToAdd.toArray(new String[cartridgesToRemove.size()])); - } - // Remove cartridge group elements from SM cache - done after cartridge group has been updated - if (cartridgesToRemove != null || !cartridgesToRemove.isEmpty()) { - smServiceClient.removeUsedCartridgesInCartridgeGroups(cartridgeGroup.getName(), - cartridgesToRemove.toArray(new String[cartridgesToRemove.size()])); - } + // Add cartridge group elements to SM cache - done after cartridge group has been updated + if (cartridgesToAdd != null || !cartridgesToAdd.isEmpty()) { + smServiceClient.addUsedCartridgesInCartridgeGroups(cartridgeGroup.getName(), + cartridgesToAdd.toArray(new String[cartridgesToRemove.size()])); + } - if (serviceGroup != null) { - autoscalerServiceClient.updateServiceGroup( - ObjectConverter.convertServiceGroupDefinitionToASStubServiceGroup(cartridgeGroup)); + // Remove cartridge group elements from SM cache - done after cartridge group has been updated + if (cartridgesToRemove != null || !cartridgesToRemove.isEmpty()) { + smServiceClient.removeUsedCartridgesInCartridgeGroups(cartridgeGroup.getName(), + cartridgesToRemove.toArray(new String[cartridgesToRemove.size()])); + } } } catch (RemoteException e) { From 0a25877d9b679f9ffecac4be9aa1e0c75cd52a2e Mon Sep 17 00:00:00 2001 From: Vishanth Date: Thu, 14 May 2015 12:26:37 +0530 Subject: [PATCH 4/6] Resolving conflicts in wsdl --- .../src/main/resources/AutoscalerService.wsdl | 1020 ++++------------- 1 file changed, 233 insertions(+), 787 deletions(-) diff --git a/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoscalerService.wsdl b/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoscalerService.wsdl index 036ccb292d..4bb8d872d5 100644 --- a/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoscalerService.wsdl +++ b/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoscalerService.wsdl @@ -1,20 +1,10 @@ -<<<<<<< HEAD - + - + - -======= - - - - - - - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + @@ -31,11 +21,7 @@ -<<<<<<< HEAD - -======= - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + @@ -47,29 +33,17 @@ -<<<<<<< HEAD - -======= - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + -<<<<<<< HEAD - - - - - -======= - + - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + @@ -78,17 +52,10 @@ -<<<<<<< HEAD - - - - -======= - - - - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + + + + @@ -99,13 +66,8 @@ -<<<<<<< HEAD - - -======= - - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + + @@ -113,11 +75,7 @@ -<<<<<<< HEAD - -======= - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + @@ -136,34 +94,21 @@ -<<<<<<< HEAD - -======= - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + -<<<<<<< HEAD - -======= - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + -<<<<<<< HEAD - - -======= - - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + + @@ -185,15 +130,9 @@ -<<<<<<< HEAD - - - -======= - + - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + @@ -204,13 +143,8 @@ -<<<<<<< HEAD - - -======= - - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + + @@ -222,139 +156,69 @@ -<<<<<<< HEAD - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -======= - - - + - - - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + - + - + -<<<<<<< HEAD - -======= - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + -<<<<<<< HEAD -======= - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a -<<<<<<< HEAD - -======= - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + -<<<<<<< HEAD - -======= - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + -<<<<<<< HEAD - -======= - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + -<<<<<<< HEAD -======= - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a -<<<<<<< HEAD -======= - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a @@ -365,564 +229,204 @@ - - - -<<<<<<< HEAD - -======= - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a - - - - - - -<<<<<<< HEAD - -======= - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a - - - - - - - - - - - + - + - + - + -<<<<<<< HEAD - -======= - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + - + -<<<<<<< HEAD - -======= - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + - + - + - + - + - + -<<<<<<< HEAD - + - + - + - + - -======= - - - - - - - - - - - - + - + - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + - + -<<<<<<< HEAD - + - + - - -======= - - - - - - - - - - - - - - - - - - - - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a - - - - - - -<<<<<<< HEAD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -======= - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + -<<<<<<< HEAD - - - - - - - - - - - - - - - -======= - + - + - + - - + - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + -<<<<<<< HEAD - - - - - - - - - -======= - - - - - - - - - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a - - - - - - -<<<<<<< HEAD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -======= - - - - - - - - + - - - - + - + - + - - - - - - - - - - - - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a - - - + -<<<<<<< HEAD - + - + - + - - - - - - - - + - + - + - - - - - - - - -======= - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a - - - - - - -<<<<<<< HEAD - - - - - - - - - - - + - + - - - - - - - - - - - - - - - -======= - - - - - - - - + - + - + - + - + - + - + @@ -935,364 +439,329 @@ ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a - + -<<<<<<< HEAD - + - + + + - + - + - -======= - + - + - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + - + -<<<<<<< HEAD - + - + - -======= - + - + - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + - + -<<<<<<< HEAD - + - + - + - + - -======= - + - + - + - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + - - - + -<<<<<<< HEAD - + - + - + - + - -======= - + - + - + - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + - + -<<<<<<< HEAD - + - + - + - + - + + + - + - + - + - + + - + - + - + + - -======= - + - + + + - + - + - + - + + - + - + - + - + - + - + - + - + + - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + - + -<<<<<<< HEAD - + - + + + - + - + - + - + - + - + - -======= - + - + - + - + - + - + - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + - + - + - + -<<<<<<< HEAD - -======= - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a - + - - - -<<<<<<< HEAD - -======= - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a - - + -<<<<<<< HEAD - + - - -======= - + + + + - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + -<<<<<<< HEAD - -======= - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a - + + @@ -1301,12 +770,7 @@ -<<<<<<< HEAD - - -======= - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + @@ -1316,12 +780,12 @@ - + - + @@ -1330,11 +794,7 @@ -<<<<<<< HEAD - -======= - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + @@ -1344,49 +804,41 @@ - + + + + + + + + + + + + -<<<<<<< HEAD - -======= - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + -<<<<<<< HEAD - -======= - ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a + - - - - - - - - - - - @@ -1394,10 +846,7 @@ - - - - + @@ -1407,20 +856,17 @@ + + + + + + -<<<<<<< HEAD - - - -======= ->>>>>>> 977bf9404ebd2107d13cb716fc758adbf9ad3f5a - - - @@ -1657,18 +1103,18 @@ - - - - - - + + + + + + @@ -1822,15 +1268,15 @@ - - - - + + + + @@ -2197,26 +1643,26 @@ - - + + - - - - - + + + + + @@ -2584,26 +2030,26 @@ - - + + - - - - - + + + + + @@ -2887,8 +2333,8 @@ - - + + @@ -2896,8 +2342,8 @@ - - + + From b6e8ef509aa31b67e19404b46aabb36b40227d23 Mon Sep 17 00:00:00 2001 From: Vishanth Date: Thu, 14 May 2015 15:33:18 +0530 Subject: [PATCH 5/6] Fixing the update cartridge group --- .../rest/endpoint/api/StratosApiV41Utils.java | 52 +++++++++++++------ 1 file changed, 36 insertions(+), 16 deletions(-) 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 14b16fd7ee..012b1b355b 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 @@ -1112,36 +1112,56 @@ public static void updateServiceGroup(GroupBean cartridgeGroup) throws RestAPIEx findCartridgesInServiceGroup(serviceGroupToBeUpdated, cartridgesBeforeUpdating); findCartridgesInGroupBean(cartridgeGroup, cartridgesAfterUpdating); + List cartridgesToRemove = new ArrayList(); + List cartridgesToAdd = new ArrayList(); - List cartridgesToRemove = cartridgesBeforeUpdating; - List cartridgesToAdd = cartridgesAfterUpdating; + if (cartridgesBeforeUpdating != null) { + if (!cartridgesBeforeUpdating.isEmpty()) { + cartridgesToRemove.addAll(cartridgesBeforeUpdating); + } + } - if ((cartridgesBeforeUpdating != null) || (!cartridgesBeforeUpdating.isEmpty()) || - (cartridgesAfterUpdating != null) || (!cartridgesAfterUpdating.isEmpty())) { + if (cartridgesAfterUpdating != null) { + if (!cartridgesAfterUpdating.isEmpty()) { + cartridgesToAdd.addAll(cartridgesAfterUpdating); + } + } - for (String before : cartridgesBeforeUpdating) { - for (String after : cartridgesAfterUpdating) { - if (before.equals(after)) { - cartridgesToRemove.remove(after); - cartridgesToAdd.remove(after); + if ((cartridgesBeforeUpdating != null) && (cartridgesAfterUpdating != null)) { + if ((!cartridgesBeforeUpdating.isEmpty()) && (!cartridgesAfterUpdating.isEmpty())) { + for (String before : cartridgesBeforeUpdating) { + for (String after : cartridgesAfterUpdating) { + if (before.toLowerCase().equals(after.toLowerCase())) { + if (cartridgesToRemove.contains(after)) { + cartridgesToRemove.remove(after); + } + if (cartridgesToAdd.contains(after)) { + cartridgesToAdd.remove(after); + } + } } } } } // Add cartridge group elements to SM cache - done after cartridge group has been updated - if (cartridgesToAdd != null || !cartridgesToAdd.isEmpty()) { - smServiceClient.addUsedCartridgesInCartridgeGroups(cartridgeGroup.getName(), - cartridgesToAdd.toArray(new String[cartridgesToRemove.size()])); + if (cartridgesToAdd != null) { + if (!cartridgesToAdd.isEmpty()) { + { + smServiceClient.addUsedCartridgesInCartridgeGroups(cartridgeGroup.getName(), + cartridgesToAdd.toArray(new String[cartridgesToRemove.size()])); + } + } } // Remove cartridge group elements from SM cache - done after cartridge group has been updated - if (cartridgesToRemove != null || !cartridgesToRemove.isEmpty()) { - smServiceClient.removeUsedCartridgesInCartridgeGroups(cartridgeGroup.getName(), - cartridgesToRemove.toArray(new String[cartridgesToRemove.size()])); + if (cartridgesToRemove != null) { + if (!cartridgesToRemove.isEmpty()) { + smServiceClient.removeUsedCartridgesInCartridgeGroups(cartridgeGroup.getName(), + cartridgesToRemove.toArray(new String[cartridgesToRemove.size()])); + } } } - } catch (RemoteException e) { String message = String.format("Could not update cartridge group: [group-name] %s,", cartridgeGroup.getName()); From 390e4ff43de897e2287023987aff1e402c6ed7dd Mon Sep 17 00:00:00 2001 From: Vishanth Date: Thu, 14 May 2015 16:04:07 +0530 Subject: [PATCH 6/6] Updating wsdl --- .../src/main/resources/AutoscalerService.wsdl | 825 +++++------------- 1 file changed, 237 insertions(+), 588 deletions(-) diff --git a/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoscalerService.wsdl b/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoscalerService.wsdl index a177b51072..34454dddd3 100644 --- a/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoscalerService.wsdl +++ b/service-stubs/org.apache.stratos.autoscaler.service.stub/src/main/resources/AutoscalerService.wsdl @@ -1,16 +1,10 @@ -<<<<<<< HEAD - + - -======= - - - ->>>>>>> upstream/master + - + @@ -27,7 +21,7 @@ - + @@ -39,25 +33,17 @@ -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + - + @@ -66,17 +52,10 @@ -<<<<<<< HEAD - - - - -======= - - - - ->>>>>>> upstream/master + + + + @@ -87,13 +66,8 @@ -<<<<<<< HEAD - - -======= - - ->>>>>>> upstream/master + + @@ -101,11 +75,7 @@ -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + @@ -124,34 +94,21 @@ -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + -<<<<<<< HEAD - - -======= - - ->>>>>>> upstream/master + + @@ -173,15 +130,9 @@ -<<<<<<< HEAD - - - -======= - + - ->>>>>>> upstream/master + @@ -192,8 +143,8 @@ - - + + @@ -205,514 +156,354 @@ -<<<<<<< HEAD - -======= - - - ->>>>>>> upstream/master - - - - - + + + + + + + + + + + + + + + + + + + + - + + -<<<<<<< HEAD - -======= - - - - - - - - - - - - - - - + + + + + - + - + - + - + - + - - - + - + - + - ->>>>>>> upstream/master + - + - + -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + - + -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + - + -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + - + -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + - + -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + - + -<<<<<<< HEAD -======= - ->>>>>>> upstream/master - + -<<<<<<< HEAD -======= - ->>>>>>> upstream/master - + - - - - - - + -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + - + -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + + - + - + - + - + + - + - + - + -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + - + -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + + - + - - - - - - - - + -<<<<<<< HEAD - -======= - + - + - + - + - - - - - - - - - - - - - + - + + - + - + - + - + - + - ->>>>>>> upstream/master + - + -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + - + -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + - + - + - + -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + - + -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + - + - - - - - - - - -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master - - - - + -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + - + - + - + - + - + - + -<<<<<<< HEAD - - - - - - - - -======= - ->>>>>>> upstream/master - - - - - - - - - - - - - - - - - - - + - + - + -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + -<<<<<<< HEAD -======= - - - - ->>>>>>> upstream/master - + -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + -<<<<<<< HEAD -======= - ->>>>>>> upstream/master @@ -726,7 +517,7 @@ - + @@ -737,18 +528,14 @@ -<<<<<<< HEAD - + -======= - ->>>>>>> upstream/master @@ -758,349 +545,223 @@ - + - + -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + - + -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + - + - + - - - - - - + - + - + - + - + -<<<<<<< HEAD - - - - - - - - + - - - + - + - + - + - + - + - + - + - - - - - - - - - + - + - + - - + - + - - - - - - - - - - - - - - - - -======= - + - ->>>>>>> upstream/master - - - - - - -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + - + -<<<<<<< HEAD - + - + - + - - + - + - + - -======= - + - - - + - + - + - ->>>>>>> upstream/master + - + -<<<<<<< HEAD - + - + - + - + - -======= - ->>>>>>> upstream/master + - + - + - -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master - + - + - + - + -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + - + - + - + -<<<<<<< HEAD -======= - ->>>>>>> upstream/master -<<<<<<< HEAD - - - -======= - - - - - - - - - ->>>>>>> upstream/master - - - - - - - - - - - - - - - - -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + -<<<<<<< HEAD - - -======= - - ->>>>>>> upstream/master + + @@ -1109,11 +770,7 @@ -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + @@ -1123,12 +780,12 @@ - + - + @@ -1137,7 +794,7 @@ - + @@ -1147,49 +804,41 @@ - + - - - - - - - - - - - -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + -<<<<<<< HEAD - -======= - ->>>>>>> upstream/master + + + + + + + + + + + + @@ -1197,7 +846,7 @@ - + @@ -1207,17 +856,17 @@ - - - - - - + + + + + + @@ -1355,18 +1004,18 @@ - - - - - - + + + + + + @@ -1551,14 +1200,14 @@ - - - - + + + + @@ -1832,8 +1481,8 @@ - - + + @@ -1841,8 +1490,8 @@ - - + + @@ -2219,8 +1868,8 @@ - - + + @@ -2228,8 +1877,8 @@ - - + + @@ -2558,8 +2207,8 @@ - - + + @@ -2567,8 +2216,8 @@ - - + +