http://git-wip-us.apache.org/repos/asf/stratos/blob/d1bddc40/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
deleted file mode 100644
index 4efed59..0000000
--- 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
+++ /dev/null
@@ -1,1797 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
-
- *  http://www.apache.org/licenses/LICENSE-2.0
-
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package org.apache.stratos.rest.endpoint.services;
-
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.applications.pojo.xsd.ApplicationContext;
-import org.apache.stratos.autoscaler.stub.*;
-import org.apache.stratos.autoscaler.stub.policy.model.DeploymentPolicy;
-import 
org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidCartridgeTypeExceptionException;
-import 
org.apache.stratos.cloud.controller.stub.CloudControllerServiceUnregisteredCartridgeExceptionException;
-import org.apache.stratos.cloud.controller.stub.pojo.CartridgeConfig;
-import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo;
-import org.apache.stratos.cloud.controller.stub.pojo.Properties;
-import org.apache.stratos.cloud.controller.stub.pojo.Property;
-import org.apache.stratos.manager.client.AutoscalerServiceClient;
-import org.apache.stratos.manager.client.CloudControllerServiceClient;
-import 
org.apache.stratos.manager.composite.application.beans.ApplicationDefinition;
-import org.apache.stratos.manager.deploy.cartridge.CartridgeDeploymentManager;
-import org.apache.stratos.manager.deploy.service.Service;
-import org.apache.stratos.manager.deploy.service.ServiceDeploymentManager;
-import org.apache.stratos.manager.dto.Cartridge;
-import org.apache.stratos.manager.dto.SubscriptionInfo;
-import org.apache.stratos.manager.exception.*;
-import org.apache.stratos.manager.grouping.definitions.ServiceGroupDefinition;
-import org.apache.stratos.manager.grouping.manager.ServiceGroupingManager;
-import org.apache.stratos.manager.manager.CartridgeSubscriptionManager;
-import org.apache.stratos.manager.repository.RepositoryNotification;
-import org.apache.stratos.manager.subscription.ApplicationSubscription;
-import org.apache.stratos.manager.subscription.CartridgeSubscription;
-import org.apache.stratos.manager.subscription.DataCartridgeSubscription;
-import org.apache.stratos.manager.subscription.SubscriptionData;
-import 
org.apache.stratos.manager.topology.model.TopologyClusterInformationModel;
-import org.apache.stratos.manager.utils.ApplicationManagementUtil;
-import org.apache.stratos.manager.utils.CartridgeConstants;
-import org.apache.stratos.messaging.domain.applications.Application;
-import org.apache.stratos.messaging.domain.applications.ClusterDataHolder;
-import org.apache.stratos.messaging.domain.applications.Group;
-import org.apache.stratos.messaging.domain.topology.Cluster;
-import org.apache.stratos.messaging.domain.topology.Member;
-import org.apache.stratos.messaging.domain.topology.MemberStatus;
-import 
org.apache.stratos.messaging.message.receiver.applications.ApplicationManager;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
-import org.apache.stratos.messaging.util.Constants;
-import org.apache.stratos.rest.endpoint.bean.ApplicationBean;
-import org.apache.stratos.rest.endpoint.bean.CartridgeInfoBean;
-import org.apache.stratos.rest.endpoint.bean.GroupBean;
-import org.apache.stratos.rest.endpoint.bean.SubscriptionDomainRequest;
-import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.Partition;
-import 
org.apache.stratos.rest.endpoint.bean.autoscaler.partition.PartitionGroup;
-import 
org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.AutoscalePolicy;
-import 
org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean;
-import 
org.apache.stratos.rest.endpoint.bean.cartridge.definition.PersistenceBean;
-import org.apache.stratos.rest.endpoint.bean.cartridge.definition.PropertyBean;
-import 
org.apache.stratos.rest.endpoint.bean.cartridge.definition.ServiceDefinitionBean;
-import org.apache.stratos.rest.endpoint.bean.kubernetes.KubernetesGroup;
-import org.apache.stratos.rest.endpoint.bean.kubernetes.KubernetesHost;
-import org.apache.stratos.rest.endpoint.bean.kubernetes.KubernetesMaster;
-import 
org.apache.stratos.rest.endpoint.bean.repositoryNotificationInfoBean.Payload;
-import 
org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomainBean;
-import org.apache.stratos.rest.endpoint.bean.util.converter.PojoConverter;
-import org.apache.stratos.rest.endpoint.exception.RestAPIException;
-
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
-import java.rmi.RemoteException;
-import java.util.*;
-import java.util.regex.Pattern;
-
-public class ServiceUtils {
-    public static final String IS_VOLUME_REQUIRED = "volume.required";
-    public static final String SHOULD_DELETE_VOLUME = 
"volume.delete.on.unsubscription";
-    public static final String VOLUME_SIZE = "volume.size.gb";
-    public static final String DEVICE_NAME = "volume.device.name";
-    public static final String VOLUME_ID = "volume.id";
-
-    private static Log log = LogFactory.getLog(ServiceUtils.class);
-    private static CartridgeSubscriptionManager cartridgeSubsciptionManager = 
new CartridgeSubscriptionManager();
-    private static ServiceGroupingManager serviceGropingManager = new 
ServiceGroupingManager();
-    private static ServiceDeploymentManager serviceDeploymentManager = new 
ServiceDeploymentManager();
-
-    static void deployCartridge(CartridgeDefinitionBean 
cartridgeDefinitionBean, ConfigurationContext ctxt,
-                                String userName, String tenantDomain) throws 
RestAPIException {
-
-        log.info("Starting to deploy a Cartridge [type] " + 
cartridgeDefinitionBean.type);
-
-        CartridgeConfig cartridgeConfig = 
PojoConverter.populateCartridgeConfigPojo(cartridgeDefinitionBean);
-        if (cartridgeConfig == null) {
-            throw new RestAPIException("Populated CartridgeConfig instance is 
null, cartridge deployment aborted");
-        }
-        try {
-            
CartridgeDeploymentManager.getDeploymentManager(cartridgeDefinitionBean.deployerType).deploy(cartridgeConfig);
-        } catch (ADCException e) {
-            throw new RestAPIException(e.getMessage());
-        }
-        log.info("Successfully deployed Cartridge [type] " + 
cartridgeDefinitionBean.type);
-    }
-
-
-    static void deployApplicationDefinition(ApplicationDefinition 
appDefinition, ConfigurationContext ctxt,
-                                            String userName, String 
tenantDomain)
-            throws RestAPIException {
-
-        // check if an application with same id already exists
-        // check if application with same appId / tenant already exists
-        CartridgeSubscriptionManager subscriptionMgr = new 
CartridgeSubscriptionManager();
-        int tenantId = ApplicationManagementUtil.getTenantId(ctxt);
-        String appId = appDefinition.getApplicationId();
-
-        try {
-            if (subscriptionMgr.getApplicationSubscription(appId, tenantId) != 
null) {
-                String msg = "Duplicate application appId: " + appId + " for 
tenant " + tenantId;
-                throw new RestAPIException(msg);
-            }
-        } catch (ApplicationSubscriptionException e1) {
-            throw new RestAPIException(e1);
-        }
-
-        ApplicationContext applicationContext =
-                
PojoConverter.convertApplicationBeanToApplicationContext(appDefinition);
-        
applicationContext.setTenantId(ApplicationManagementUtil.getTenantId(ctxt));
-        applicationContext.setTenantDomain(tenantDomain);
-        applicationContext.setTeantAdminUsername(userName);
-
-        if (appDefinition.getProperty() != null) {
-            org.apache.stratos.cloud.controller.stub.pojo.Properties 
properties = new Properties();
-            for 
(org.apache.stratos.manager.composite.application.beans.PropertyBean 
propertyBean : appDefinition.getProperty()) {
-                Property property = new Property();
-                property.setName(propertyBean.getName());
-                property.setValue(propertyBean.getValue());
-                properties.addProperties(property);
-            }
-            applicationContext.setProperties(properties);
-        }
-
-        try {
-            
AutoscalerServiceClient.getServiceClient().deployApplication(applicationContext);
-        } catch (AutoScalerServiceApplicationDefinitionExceptionException e) {
-            throw new RestAPIException(e);
-        } catch (RemoteException e) {
-            throw new RestAPIException(e);
-        }
-    }
-
-    static ApplicationSubscription getApplicationSubscriptions(String appId, 
ConfigurationContext ctxt) throws RestAPIException {
-        CartridgeSubscriptionManager subscriptionMgr = new 
CartridgeSubscriptionManager();
-        try {
-            return subscriptionMgr.getApplicationSubscription(appId, 
ApplicationManagementUtil.getTenantId(ctxt));
-        } catch (ApplicationSubscriptionException e) {
-            throw new RestAPIException(e);
-        }
-    }
-
-    static void unDeployApplication(String appId, ConfigurationContext ctxt,
-                                    String userName, String tenantDomain) 
throws RestAPIException {
-
-        try {
-            int tenantId = ApplicationManagementUtil.getTenantId(ctxt);
-            
//CloudControllerServiceClient.getServiceClient().undeployApplicationDefinition(appId,
 tenantId, tenantDomain);
-            
AutoscalerServiceClient.getServiceClient().undeployApplication(appId, tenantId, 
tenantDomain);
-
-        } catch (RemoteException e) {
-            throw new RestAPIException(e);
-        } catch (AutoScalerServiceApplicationDefinitionExceptionException e) {
-            throw new RestAPIException(e);
-        }
-
-    }
-
-    @SuppressWarnings("unused")
-    private static DeploymentPolicy[] intersection(
-            DeploymentPolicy[] cartridgeDepPolicies,
-            DeploymentPolicy[] lbCartridgeDepPolicies) {
-
-        List<DeploymentPolicy> commonPolicies =
-                new ArrayList<DeploymentPolicy>();
-        for (DeploymentPolicy policy1
-                : cartridgeDepPolicies) {
-            for (DeploymentPolicy policy2
-                    : lbCartridgeDepPolicies) {
-                if (policy1.equals(policy2)) {
-                    commonPolicies.add(policy1);
-                }
-            }
-
-        }
-        return commonPolicies.toArray(new DeploymentPolicy[0]);
-    }
-
-    static void undeployCartridge(String cartridgeType) throws 
RestAPIException {
-
-        CloudControllerServiceClient cloudControllerServiceClient = 
getCloudControllerServiceClient();
-        if (cloudControllerServiceClient != null) {
-
-            CartridgeInfo cartridgeInfo = null;
-            try {
-                cartridgeInfo = 
cloudControllerServiceClient.getCartridgeInfo(cartridgeType);
-
-            } catch (RemoteException e) {
-                log.error("Error in getting Cartridge details for type " + 
cartridgeType);
-                throw new RestAPIException(e);
-
-            } catch 
(CloudControllerServiceUnregisteredCartridgeExceptionException e) {
-                log.error("Error in getting Cartridge details for type " + 
cartridgeType);
-                throw new RestAPIException(e);
-            }
-
-            if (cartridgeInfo == null) {
-                String errorMsg = "Cartridge information not found for type " 
+ cartridgeType;
-                log.error(errorMsg);
-                throw new RestAPIException(errorMsg);
-            }
-
-            // check if the service is multi tenant.
-            if (cartridgeInfo.getMultiTenant()) {
-                // check if there are any deployed MT services. If so, should 
not allow to undeploy
-                try {
-                    Service service = 
serviceDeploymentManager.getService(cartridgeType);
-                    if (service != null) {
-                        // not allowed to undeploy!
-                        String errorMsg = "Multi tenant Service already exists 
for " + cartridgeType + ", cannot undeploy";
-                        log.error(errorMsg);
-                        throw new RestAPIException(errorMsg);
-                    } else {
-                        // can undeploy
-                        
undeployCartridgeDefinition(cloudControllerServiceClient, cartridgeType);
-                    }
-
-                } catch (ADCException e) {
-                    log.error("Error in getting MT Service details for type " 
+ cartridgeType);
-                    throw new RestAPIException(e);
-                }
-
-            } else {
-                // if not multi tenant, check if there are any existing 
Subscriptions
-                Collection<CartridgeSubscription> cartridgeSubscriptions =
-                        
cartridgeSubsciptionManager.getCartridgeSubscriptionsForType(cartridgeType);
-                if (cartridgeSubscriptions != null && 
!cartridgeSubscriptions.isEmpty()) {
-                    // not allowed to undeploy!
-                    String errorMsg = "Subscription exists for " + 
cartridgeType + ", cannot undeploy";
-                    log.error(errorMsg);
-                    throw new RestAPIException(errorMsg);
-                } else {
-                    // can undeploy
-                    undeployCartridgeDefinition(cloudControllerServiceClient, 
cartridgeType);
-                }
-            }
-        }
-    }
-
-    private static void 
undeployCartridgeDefinition(CloudControllerServiceClient 
cloudControllerServiceClient,
-                                                    String cartridgeType) 
throws RestAPIException {
-
-        try {
-            
cloudControllerServiceClient.unDeployCartridgeDefinition(cartridgeType);
-
-        } catch (RemoteException e) {
-            log.error(e.getMessage(), e);
-            throw new RestAPIException(e.getMessage(), e);
-
-        } catch (CloudControllerServiceInvalidCartridgeTypeExceptionException 
e) {
-            String msg = 
e.getFaultMessage().getInvalidCartridgeTypeException().getMessage();
-            log.error(msg, e);
-            throw new RestAPIException(msg, e);
-        }
-    }
-
-
-    public static void deployPartition(Partition partitionBean) throws 
RestAPIException {
-
-        //log.info("***** " + cartridgeDefinitionBean.toString() + " *****");
-
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-
-            
org.apache.stratos.cloud.controller.stub.deployment.partition.Partition 
partition =
-                    PojoConverter.convertToCCPartitionPojo(partitionBean);
-
-            try {
-                autoscalerServiceClient.deployPartition(partition);
-            } catch (RemoteException e) {
-                log.error(e.getMessage(), e);
-                throw new RestAPIException(e.getMessage(), e);
-            } catch (AutoScalerServiceInvalidPartitionExceptionException e) {
-                String message = 
e.getFaultMessage().getInvalidPartitionException().getMessage();
-                log.error(message, e);
-                throw new RestAPIException(message, e);
-            }
-
-        }
-    }
-
-    public static void deployAutoscalingPolicy(AutoscalePolicy 
autoscalePolicyBean) throws RestAPIException {
-
-        log.info(String.format("Deploying autoscaling policy: [id] %s", 
autoscalePolicyBean.getId()));
-
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-
-            org.apache.stratos.autoscaler.stub.policy.model.AutoscalePolicy 
autoscalePolicy = PojoConverter.
-                    convertToCCAutoscalerPojo(autoscalePolicyBean);
-
-            try {
-                autoscalerServiceClient
-                        .deployAutoscalingPolicy(autoscalePolicy);
-            } catch (RemoteException e) {
-                log.error(e.getMessage(), e);
-                throw new RestAPIException(e.getMessage(), e);
-            } catch (AutoScalerServiceInvalidPolicyExceptionException e) {
-                String message = e.getFaultMessage()
-                        .getInvalidPolicyException().getMessage();
-                log.error(message, e);
-                throw new RestAPIException(message, e);
-            }
-        }
-    }
-
-    public static void updateAutoscalingPolicy(AutoscalePolicy 
autoscalePolicyBean) throws RestAPIException {
-
-        log.info(String.format("Updating autoscaling policy: [id] %s", 
autoscalePolicyBean.getId()));
-
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-
-            org.apache.stratos.autoscaler.stub.policy.model.AutoscalePolicy 
autoscalePolicy = PojoConverter.
-                    convertToCCAutoscalerPojo(autoscalePolicyBean);
-
-            try {
-                
autoscalerServiceClient.updateAutoscalingPolicy(autoscalePolicy);
-            } catch (RemoteException e) {
-                log.error(e.getMessage(), e);
-                throw new RestAPIException(e.getMessage(), e);
-            } catch (AutoScalerServiceInvalidPolicyExceptionException e) {
-                String message = 
e.getFaultMessage().getInvalidPolicyException().getMessage();
-                log.error(message, e);
-                throw new RestAPIException(message, e);
-            }
-        }
-    }
-
-    public static void deployDeploymentPolicy(
-            
org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy
 deploymentPolicyBean)
-            throws RestAPIException {
-
-        log.info(String.format("Deploying deployment policy: [id] %s", 
deploymentPolicyBean.getId()));
-
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-
-            org.apache.stratos.autoscaler.stub.policy.model.DeploymentPolicy 
deploymentPolicy =
-                    
PojoConverter.convetToCCDeploymentPolicyPojo(deploymentPolicyBean);
-
-            try {
-                
autoscalerServiceClient.deployDeploymentPolicy(deploymentPolicy);
-            } catch (RemoteException e) {
-                log.error(e.getMessage(), e);
-                throw new RestAPIException(e.getMessage(), e);
-            } catch (AutoScalerServiceInvalidPolicyExceptionException e) {
-                String message = 
e.getFaultMessage().getInvalidPolicyException().getMessage();
-                log.error(message, e);
-                throw new RestAPIException(message, e);
-            }
-
-        }
-    }
-
-    public static void updateDeploymentPolicy(
-            
org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy
 deploymentPolicyBean)
-            throws RestAPIException {
-
-        log.info(String.format("Updating deployment policy: [id] %s", 
deploymentPolicyBean.getId()));
-
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-
-            org.apache.stratos.autoscaler.stub.policy.model.DeploymentPolicy 
deploymentPolicy =
-                    
PojoConverter.convetToCCDeploymentPolicyPojo(deploymentPolicyBean);
-
-
-            try {
-                
autoscalerServiceClient.updateDeploymentPolicy(deploymentPolicy);
-            } catch (RemoteException e) {
-                log.error(e.getMessage(), e);
-                throw new RestAPIException(e.getMessage(), e);
-            } catch (AutoScalerServiceInvalidPolicyExceptionException e) {
-                String message = 
e.getFaultMessage().getInvalidPolicyException().getMessage();
-                log.error(message, e);
-                throw new RestAPIException(message, e);
-            }
-        }
-    }
-
-    private static CloudControllerServiceClient 
getCloudControllerServiceClient() throws RestAPIException {
-
-        try {
-            return CloudControllerServiceClient.getServiceClient();
-
-        } catch (AxisFault axisFault) {
-            String errorMsg = "Error while getting 
CloudControllerServiceClient instance to connect to the "
-                    + "Cloud Controller. Cause: " + axisFault.getMessage();
-            log.error(errorMsg, axisFault);
-            throw new RestAPIException(errorMsg, axisFault);
-        }
-    }
-
-    public static Partition[] getAvailablePartitions() throws RestAPIException 
{
-
-        
org.apache.stratos.cloud.controller.stub.deployment.partition.Partition[] 
partitions = null;
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-            try {
-                partitions = autoscalerServiceClient.getAvailablePartitions();
-
-            } catch (RemoteException e) {
-                String errorMsg = "Error while getting available partitions. 
Cause : " + e.getMessage();
-                log.error(errorMsg, e);
-                throw new RestAPIException(errorMsg, e);
-            }
-        }
-
-        return PojoConverter.populatePartitionPojos(partitions);
-    }
-
-    public static Partition[] getPartitionsOfDeploymentPolicy(String 
deploymentPolicyId)
-            throws RestAPIException {
-
-        
org.apache.stratos.cloud.controller.stub.deployment.partition.Partition[] 
partitions = null;
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-            try {
-                partitions =
-                        
autoscalerServiceClient.getPartitionsOfDeploymentPolicy(deploymentPolicyId);
-
-            } catch (RemoteException e) {
-                String errorMsg = "Error while getting available partitions 
for deployment policy id " +
-                        deploymentPolicyId + ". Cause: " + e.getMessage();
-                log.error(errorMsg, e);
-                throw new RestAPIException(errorMsg, e);
-            }
-        }
-
-        return PojoConverter.populatePartitionPojos(partitions);
-    }
-
-    public static Partition[]
-    getPartitionsOfGroup(String deploymentPolicyId, String groupId) throws 
RestAPIException {
-
-        
org.apache.stratos.cloud.controller.stub.deployment.partition.Partition[] 
partitions = null;
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-            try {
-                partitions =
-                        
autoscalerServiceClient.getPartitionsOfGroup(deploymentPolicyId, groupId);
-
-            } catch (RemoteException e) {
-                String errorMsg = "Error while getting available partitions 
for deployment policy id " + deploymentPolicyId +
-                        ", group id " + groupId + ". Cause: " + e.getMessage();
-                log.error(errorMsg, e);
-                throw new RestAPIException(errorMsg, e);
-            }
-        }
-
-        return PojoConverter.populatePartitionPojos(partitions);
-    }
-
-    public static Partition getPartition(String partitionId) throws 
RestAPIException {
-
-        
org.apache.stratos.cloud.controller.stub.deployment.partition.Partition 
partition = null;
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-            try {
-                partition = autoscalerServiceClient.getPartition(partitionId);
-
-            } catch (RemoteException e) {
-                String errorMsg = "Error while getting partition for id " + 
partitionId + ". Cause: " + e.getMessage();
-                log.error(errorMsg, e);
-                throw new RestAPIException(errorMsg, e);
-            }
-        }
-
-        return PojoConverter.populatePartitionPojo(partition);
-    }
-
-    private static AutoscalerServiceClient getAutoscalerServiceClient() throws 
RestAPIException {
-
-        try {
-            return AutoscalerServiceClient.getServiceClient();
-
-        } catch (AxisFault axisFault) {
-            String errorMsg = "Error while getting AutoscalerServiceClient 
instance to connect to the "
-                    + "Autoscaler. Cause: " + axisFault.getMessage();
-            log.error(errorMsg, axisFault);
-            throw new RestAPIException(errorMsg, axisFault);
-        }
-    }
-
-    public static AutoscalePolicy[] getAutoScalePolicies() throws 
RestAPIException {
-
-        org.apache.stratos.autoscaler.stub.policy.model.AutoscalePolicy[] 
autoscalePolicies = null;
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-            try {
-                autoscalePolicies = 
autoscalerServiceClient.getAutoScalePolicies();
-
-            } catch (RemoteException e) {
-                String errorMsg = "Error while getting available autoscaling 
policies. Cause : " + e.getMessage();
-                log.error(errorMsg, e);
-                throw new RestAPIException(errorMsg, e);
-            }
-        }
-        return PojoConverter.populateAutoscalePojos(autoscalePolicies);
-    }
-
-    public static AutoscalePolicy getAutoScalePolicy(String autoscalePolicyId) 
throws RestAPIException {
-
-        org.apache.stratos.autoscaler.stub.policy.model.AutoscalePolicy 
autoscalePolicy = null;
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-            try {
-                autoscalePolicy = 
autoscalerServiceClient.getAutoScalePolicy(autoscalePolicyId);
-
-            } catch (RemoteException e) {
-                String errorMsg = "Error while getting information for 
autoscaling policy with id " +
-                        autoscalePolicyId + ".  Cause: " + e.getMessage();
-                log.error(errorMsg, e);
-                throw new RestAPIException(errorMsg, e);
-            }
-        }
-
-        return PojoConverter.populateAutoscalePojo(autoscalePolicy);
-    }
-
-    public static 
org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy[]
-    getDeploymentPolicies() throws RestAPIException {
-
-        DeploymentPolicy[] deploymentPolicies = null;
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-            try {
-                deploymentPolicies = 
autoscalerServiceClient.getDeploymentPolicies();
-            } catch (RemoteException e) {
-                String errorMsg = "Error getting available deployment 
policies. Cause : " + e.getMessage();
-                log.error(errorMsg, e);
-                throw new RestAPIException(errorMsg, e);
-            }
-        }
-
-
-        return PojoConverter.populateDeploymentPolicyPojos(deploymentPolicies);
-    }
-
-    public static 
org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy[]
-    getDeploymentPolicies(String cartridgeType) throws RestAPIException {
-
-        DeploymentPolicy[] deploymentPolicies = null;
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-            try {
-                deploymentPolicies = 
autoscalerServiceClient.getDeploymentPolicies(cartridgeType);
-
-            } catch (RemoteException e) {
-                String errorMsg = "Error while getting available deployment 
policies for cartridge type " +
-                        cartridgeType + ". Cause: " + e.getMessage();
-                log.error(errorMsg, e);
-                throw new RestAPIException(errorMsg, e);
-            }
-        }
-
-        if (deploymentPolicies.length == 0) {
-            String errorMsg = "Cannot find any matching deployment policy for 
Cartridge [type] " + cartridgeType;
-            log.error(errorMsg);
-            throw new RestAPIException(errorMsg);
-        }
-
-        return PojoConverter.populateDeploymentPolicyPojos(deploymentPolicies);
-    }
-
-    public static 
org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy
-    getDeploymentPolicy(String deploymentPolicyId) throws RestAPIException {
-
-        DeploymentPolicy deploymentPolicy = null;
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-            try {
-                deploymentPolicy = 
autoscalerServiceClient.getDeploymentPolicy(deploymentPolicyId);
-
-            } catch (RemoteException e) {
-                String errorMsg = "Error while getting deployment policy with 
id " +
-                        deploymentPolicyId + ". Cause: " + e.getMessage();
-                log.error(errorMsg, e);
-                throw new RestAPIException(errorMsg, e);
-            }
-        }
-
-        if (deploymentPolicy == null) {
-            String errorMsg = "Cannot find a matching deployment policy for 
[id] " + deploymentPolicyId;
-            log.error(errorMsg);
-            throw new RestAPIException(errorMsg);
-        }
-
-        return PojoConverter.populateDeploymentPolicyPojo(deploymentPolicy);
-    }
-
-    public static PartitionGroup[] getPartitionGroups(String 
deploymentPolicyId)
-            throws RestAPIException {
-
-        org.apache.stratos.autoscaler.stub.partition.PartitionGroup[] 
partitionGroups = null;
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-            try {
-                partitionGroups = 
autoscalerServiceClient.getPartitionGroups(deploymentPolicyId);
-
-            } catch (RemoteException e) {
-                String errorMsg = "Error getting available partition groups 
for deployment policy id "
-                        + deploymentPolicyId + ". Cause: " + e.getMessage();
-                log.error(errorMsg, e);
-                throw new RestAPIException(errorMsg, e);
-            }
-        }
-
-        return PojoConverter.populatePartitionGroupPojos(partitionGroups);
-    }
-
-    static Cartridge getAvailableCartridgeInfo(String cartridgeType, Boolean 
multiTenant, ConfigurationContext configurationContext) throws RestAPIException 
{
-        List<Cartridge> cartridges = getAvailableCartridges(null, multiTenant, 
configurationContext);
-        for (Cartridge cartridge : cartridges) {
-            if (cartridge.getCartridgeType().equals(cartridgeType)) {
-                return cartridge;
-            }
-        }
-        String msg = "Unavailable cartridge type: " + cartridgeType;
-        log.error(msg);
-        throw new RestAPIException(msg);
-    }
-
-    static List<Cartridge> getAvailableLbCartridges(Boolean multiTenant,
-                                                    ConfigurationContext 
configurationContext) throws RestAPIException {
-        List<Cartridge> cartridges = getAvailableCartridges(null, multiTenant,
-                configurationContext);
-        List<Cartridge> lbCartridges = new ArrayList<Cartridge>();
-        for (Cartridge cartridge : cartridges) {
-            if (cartridge.isLoadBalancer()) {
-                lbCartridges.add(cartridge);
-            }
-        }
-
-               /*if(lbCartridges == null || lbCartridges.isEmpty()) {
-            String msg = "Load balancer Cartridges are not available.";
-               log.error(msg);
-               throw new RestAPIException(msg) ;
-               }*/
-        return lbCartridges;
-    }
-
-    static List<Cartridge> getAvailableCartridges(String 
cartridgeSearchString, Boolean multiTenant, ConfigurationContext 
configurationContext) throws RestAPIException {
-        List<Cartridge> cartridges = new ArrayList<Cartridge>();
-
-        if (log.isDebugEnabled()) {
-            log.debug("Getting available cartridges. Search String: " + 
cartridgeSearchString + ", Multi-Tenant: " + multiTenant);
-        }
-
-        boolean allowMultipleSubscription = new Boolean(
-                
System.getProperty(CartridgeConstants.FEATURE_MULTI_TENANT_MULTIPLE_SUBSCRIPTION_ENABLED));
-
-        try {
-            Pattern searchPattern = 
getSearchStringPattern(cartridgeSearchString);
-
-            String[] availableCartridges = 
CloudControllerServiceClient.getServiceClient().getRegisteredCartridges();
-
-            if (availableCartridges != null) {
-                for (String cartridgeType : availableCartridges) {
-                    CartridgeInfo cartridgeInfo = null;
-                    try {
-                        cartridgeInfo = 
CloudControllerServiceClient.getServiceClient().getCartridgeInfo(cartridgeType);
-                    } catch (Exception e) {
-                        if (log.isWarnEnabled()) {
-                            log.warn("Error when calling getCartridgeInfo for 
" + cartridgeType + ", Error: "
-                                    + e.getMessage());
-                        }
-                    }
-                    if (cartridgeInfo == null) {
-                        // This cannot happen. But continue
-                        if (log.isDebugEnabled()) {
-                            log.debug("Cartridge Info not found: " + 
cartridgeType);
-                        }
-                        continue;
-                    }
-
-                    if (multiTenant != null && !multiTenant && 
cartridgeInfo.getMultiTenant()) {
-                        // Need only Single-Tenant cartridges
-                        continue;
-                    } else if (multiTenant != null && multiTenant && 
!cartridgeInfo.getMultiTenant()) {
-                        // Need only Multi-Tenant cartridges
-                        continue;
-                    }
-
-                    if (!ServiceUtils.cartridgeMatches(cartridgeInfo, 
searchPattern)) {
-                        continue;
-                    }
-
-                    Cartridge cartridge = new Cartridge();
-                    cartridge.setCartridgeType(cartridgeType);
-                    cartridge.setProvider(cartridgeInfo.getProvider());
-                    cartridge.setDisplayName(cartridgeInfo.getDisplayName());
-                    cartridge.setDescription(cartridgeInfo.getDescription());
-                    cartridge.setVersion(cartridgeInfo.getVersion());
-                    cartridge.setMultiTenant(cartridgeInfo.getMultiTenant());
-                    cartridge.setHostName(cartridgeInfo.getHostName());
-                    
cartridge.setDefaultAutoscalingPolicy(cartridgeInfo.getDefaultAutoscalingPolicy());
-                    
cartridge.setDefaultDeploymentPolicy(cartridgeInfo.getDefaultDeploymentPolicy());
-                    //cartridge.setStatus(CartridgeConstants.NOT_SUBSCRIBED);
-                    cartridge.setCartridgeAlias("-");
-                    cartridge.setPersistence(cartridgeInfo.getPersistence());
-                    cartridge.setServiceGroup(cartridgeInfo.getServiceGroup());
-
-                    if (cartridgeInfo.getProperties() != null) {
-                        for (Property property : 
cartridgeInfo.getProperties()) {
-                            if (property.getName().equals("load.balancer")) {
-                                cartridge.setLoadBalancer(true);
-                            }
-                        }
-                    }
-                    //cartridge.setActiveInstances(0);
-                    cartridges.add(cartridge);
-
-
-                    if (cartridgeInfo.getMultiTenant() && 
!allowMultipleSubscription) {
-                        // If the cartridge is multi-tenant. We should not let 
users
-                        // createSubscription twice.
-                        if (isAlreadySubscribed(cartridgeType,
-                                
ApplicationManagementUtil.getTenantId(configurationContext))) {
-                            if (log.isDebugEnabled()) {
-                                log.debug("Already subscribed to " + 
cartridgeType
-                                        + ". This multi-tenant cartridge will 
not be available to createSubscription");
-                            }
-                            
//cartridge.setStatus(CartridgeConstants.SUBSCRIBED);
-                        }
-                    }
-                }
-            } else {
-                if (log.isDebugEnabled()) {
-                    log.debug("There are no available cartridges");
-                }
-            }
-        } catch (Exception e) {
-            String msg = "Error while getting available cartridges. Cause: " + 
e.getMessage();
-            log.error(msg, e);
-            throw new RestAPIException(msg, e);
-        }
-
-        Collections.sort(cartridges);
-
-        if (log.isDebugEnabled()) {
-            log.debug("Returning available cartridges " + cartridges.size());
-        }
-
-        return cartridges;
-    }
-
-    private static boolean isAlreadySubscribed(String cartridgeType,
-                                               int tenantId) {
-
-        Collection<CartridgeSubscription> subscriptionList = 
CartridgeSubscriptionManager.isCartridgeSubscribed(tenantId, cartridgeType);
-        if (subscriptionList == null || subscriptionList.isEmpty()) {
-            return false;
-        } else {
-            return true;
-        }
-    }
-
-    public static List<ServiceDefinitionBean> getdeployedServiceInformation() 
throws RestAPIException {
-
-        Collection<Service> services = null;
-
-        try {
-            services = serviceDeploymentManager.getServices();
-
-        } catch (ADCException e) {
-            String msg = "Unable to get deployed service information. Cause: " 
+ e.getMessage();
-            log.error(msg, e);
-            throw new RestAPIException(msg, e);
-        }
-
-        if (services != null && !services.isEmpty()) {
-            return PojoConverter.convertToServiceDefinitionBeans(services);
-        }
-
-        return null;
-    }
-
-    public static ServiceDefinitionBean getDeployedServiceInformation(String 
type) throws RestAPIException {
-
-        Service service = null;
-
-        try {
-            service = serviceDeploymentManager.getService(type);
-
-        } catch (ADCException e) {
-            String msg = "Unable to get deployed service information for 
[type]: " + type + ". Cause: " + e.getMessage();
-            log.error(msg, e);
-            throw new RestAPIException(msg, e);
-        }
-
-        if (service == null) {
-            return null;
-        } else {
-            return PojoConverter.convertToServiceDefinitionBean(service);
-        }
-    }
-
-    public static List<Cartridge> 
getActiveDeployedServiceInformation(ConfigurationContext configurationContext) 
throws RestAPIException {
-
-        Collection<Service> services = null;
-
-        try {
-            services = serviceDeploymentManager.getServices();
-
-        } catch (ADCException e) {
-            String msg = "Unable to get deployed service information. Cause: " 
+ e.getMessage();
-            log.error(msg, e);
-            throw new RestAPIException(msg, e);
-        }
-
-        List<Cartridge> availableMultitenantCartridges = new 
ArrayList<Cartridge>();
-        int tenantId = 
ApplicationManagementUtil.getTenantId(configurationContext);
-        //getting the services for the tenantId
-        for (Service service : services) {
-            String tenantRange = service.getTenantRange();
-            if (tenantRange.equals(Constants.TENANT_RANGE_ALL)) {
-                //check whether any active instances found for this service in 
the Topology
-
-                Cluster cluster = 
TopologyManager.getTopology().getService(service.getType()).
-                        getCluster(service.getClusterId());
-                boolean activeMemberFound = false;
-                for (Member member : cluster.getMembers()) {
-                    if (member.isActive()) {
-                        activeMemberFound = true;
-                        break;
-                    }
-                }
-                if (activeMemberFound) {
-                    
availableMultitenantCartridges.add(getAvailableCartridgeInfo(null, true, 
configurationContext));
-                }
-            } else {
-                //TODO have to check for the serivces which has correct tenant 
range
-            }
-        }
-        
-               /*if (availableMultitenantCartridges.isEmpty()) {
-            String msg = "Cannot find any active deployed service for tenant 
[id] "+tenantId;
-                       log.error(msg);
-                       throw new RestAPIException(msg);
-               }*/
-
-        return availableMultitenantCartridges;
-    }
-
-
-    static List<Cartridge> getSubscriptions(String cartridgeSearchString, 
String serviceGroup, ConfigurationContext configurationContext) throws 
RestAPIException {
-        List<Cartridge> cartridges = new ArrayList<Cartridge>();
-
-        if (log.isDebugEnabled()) {
-            log.debug("Getting subscribed cartridges. Search String: " + 
cartridgeSearchString);
-        }
-
-        try {
-            Pattern searchPattern = 
getSearchStringPattern(cartridgeSearchString);
-
-            Collection<CartridgeSubscription> subscriptions = 
CartridgeSubscriptionManager.getCartridgeSubscriptions(ApplicationManagementUtil.
-                    getTenantId(configurationContext), null);
-
-            if (subscriptions != null && !subscriptions.isEmpty()) {
-
-                for (CartridgeSubscription subscription : subscriptions) {
-
-                    if (!cartridgeMatches(subscription.getCartridgeInfo(), 
subscription, searchPattern)) {
-                        continue;
-                    }
-                    Cartridge cartridge = 
getCartridgeFromSubscription(subscription);
-                    if (cartridge == null) {
-                        continue;
-                    }
-                    Cluster cluster = 
TopologyClusterInformationModel.getInstance().getCluster(ApplicationManagementUtil.getTenantId(configurationContext)
-                            , cartridge.getCartridgeType(), 
cartridge.getCartridgeAlias());
-                    String cartridgeStatus = "Inactive";
-                    int activeMemberCount = 0;
-                    if (cluster != null) {
-                        Collection<Member> members = cluster.getMembers();
-                        for (Member member : members) {
-                            if (member.isActive()) {
-                                cartridgeStatus = "Active";
-                                activeMemberCount++;
-                            }
-                        }
-                    }
-                    cartridge.setActiveInstances(activeMemberCount);
-                    cartridge.setStatus(cartridgeStatus);
-
-                    // Ignoring the LB cartridges since they are not shown to 
the user.
-                    if (cartridge.isLoadBalancer())
-                        continue;
-                    if (StringUtils.isNotEmpty(serviceGroup)) {
-                        if (cartridge.getServiceGroup() != null && 
serviceGroup.equals(cartridge.getServiceGroup())) {
-                            cartridges.add(cartridge);
-                        }
-                    } else {
-                        cartridges.add(cartridge);
-                    }
-                }
-            } else {
-                if (log.isDebugEnabled()) {
-                    log.debug("There are no subscribed cartridges");
-                }
-            }
-        } catch (Exception e) {
-            String msg = "Error while getting subscribed cartridges. Cause: " 
+ e.getMessage();
-            log.error(msg, e);
-            throw new RestAPIException(msg, e);
-        }
-
-        Collections.sort(cartridges);
-
-        if (log.isDebugEnabled()) {
-            log.debug("Returning subscribed cartridges " + cartridges.size());
-        }
-        
-        /*if(cartridges.isEmpty()) {
-            String msg = "Cannot find any subscribed Cartridge, matching the 
given string: "+cartridgeSearchString;
-            log.error(msg);
-            throw new RestAPIException(msg);
-        }*/
-
-        return cartridges;
-    }
-
-
-    static Cartridge getSubscription(String cartridgeAlias, 
ConfigurationContext configurationContext) throws RestAPIException {
-
-        Cartridge cartridge = 
getCartridgeFromSubscription(CartridgeSubscriptionManager.getCartridgeSubscription(ApplicationManagementUtil.
-                getTenantId(configurationContext), cartridgeAlias));
-
-        if (cartridge == null) {
-            String message = "Unregistered [alias]: " + cartridgeAlias + "! 
Please enter a valid alias.";
-            log.error(message);
-            throw new RestAPIException(Response.Status.NOT_FOUND, message);
-        }
-        Cluster cluster = 
TopologyClusterInformationModel.getInstance().getCluster(ApplicationManagementUtil.getTenantId(configurationContext)
-                , cartridge.getCartridgeType(), cartridge.getCartridgeAlias());
-        String cartridgeStatus = "Inactive";
-        int activeMemberCount = 0;
-
-        // cluster might not be created yet, so need to check
-        if (cluster != null) {
-            Collection<Member> members = cluster.getMembers();
-            if (members != null) {
-                for (Member member : members) {
-                    if (member.isActive()) {
-                        cartridgeStatus = "Active";
-                        activeMemberCount++;
-                    }
-                }
-            }
-        }
-
-        cartridge.setActiveInstances(activeMemberCount);
-        cartridge.setStatus(cartridgeStatus);
-        return cartridge;
-
-    }
-
-    static int getActiveInstances(String cartridgeType, String cartridgeAlias, 
ConfigurationContext configurationContext) throws RestAPIException {
-        int noOfActiveInstances = 0;
-        Cluster cluster = 
TopologyClusterInformationModel.getInstance().getCluster(ApplicationManagementUtil.getTenantId(configurationContext)
-                , cartridgeType, cartridgeAlias);
-
-        if (cluster == null) {
-            String message = "No Cluster found for cartridge [type] " + 
cartridgeType + ", [alias] " + cartridgeAlias;
-            log.error(message);
-            throw new RestAPIException(message);
-        }
-
-        for (Member member : cluster.getMembers()) {
-            if (member.getStatus().toString().equals(MemberStatus.Activated)) {
-                noOfActiveInstances++;
-            }
-        }
-        return noOfActiveInstances;
-    }
-
-    private static Cartridge 
getCartridgeFromSubscription(CartridgeSubscription subscription) throws 
RestAPIException {
-
-        if (subscription == null) {
-            return null;
-        }
-        try {
-            Cartridge cartridge = new Cartridge();
-            cartridge.setCartridgeType(subscription.getCartridgeInfo()
-                    .getType());
-            cartridge.setMultiTenant(subscription.getCartridgeInfo()
-                    .getMultiTenant());
-            cartridge
-                    
.setProvider(subscription.getCartridgeInfo().getProvider());
-            cartridge.setVersion(subscription.getCartridgeInfo().getVersion());
-            cartridge.setDescription(subscription.getCartridgeInfo()
-                    .getDescription());
-            cartridge.setDisplayName(subscription.getCartridgeInfo()
-                    .getDisplayName());
-            cartridge.setCartridgeAlias(subscription.getAlias());
-            cartridge.setHostName(subscription.getHostName());
-            cartridge.setMappedDomain(subscription.getMappedDomain());
-            if (subscription.getRepository() != null) {
-                cartridge.setRepoURL(subscription.getRepository().getUrl());
-            }
-
-            if (subscription instanceof DataCartridgeSubscription) {
-                DataCartridgeSubscription dataCartridgeSubscription = 
(DataCartridgeSubscription) subscription;
-                cartridge.setDbHost(dataCartridgeSubscription.getDBHost());
-                cartridge.setDbUserName(dataCartridgeSubscription
-                        .getDBUsername());
-                cartridge
-                        
.setPassword(dataCartridgeSubscription.getDBPassword());
-            }
-
-            if (subscription.getLbClusterId() != null
-                    && !subscription.getLbClusterId().isEmpty()) {
-                cartridge.setLbClusterId(subscription.getLbClusterId());
-            }
-
-            cartridge.setClusterId(subscription.getClusterDomain());
-            cartridge.setStatus(subscription.getSubscriptionStatus());
-            cartridge.setPortMappings(subscription.getCartridgeInfo()
-                    .getPortMappings());
-
-            if (subscription.getCartridgeInfo().getProperties() != null) {
-                for (Property property : 
subscription.getCartridgeInfo().getProperties()) {
-                    if (property.getName().equals("load.balancer")) {
-                        cartridge.setLoadBalancer(true);
-                    }
-                }
-            }
-            if (subscription.getCartridgeInfo().getServiceGroup() != null) {
-                
cartridge.setServiceGroup(subscription.getCartridgeInfo().getServiceGroup());
-            }
-            return cartridge;
-
-        } catch (Exception e) {
-            String msg = "Unable to extract the Cartridge from subscription. 
Cause: " + e.getMessage();
-            log.error(msg);
-            throw new RestAPIException(msg);
-        }
-
-    }
-
-    static Pattern getSearchStringPattern(String searchString) {
-        if (log.isDebugEnabled()) {
-            log.debug("Creating search pattern for " + searchString);
-        }
-        if (searchString != null) {
-            // Copied from 
org.wso2.carbon.webapp.mgt.WebappAdmin.doesWebappSatisfySearchString(WebApplication,
 String)
-            String regex = searchString.toLowerCase().replace("..?", 
".?").replace("..*", ".*").replaceAll("\\?", ".?")
-                    .replaceAll("\\*", ".*?");
-            if (log.isDebugEnabled()) {
-                log.debug("Created regex: " + regex + " for search string " + 
searchString);
-            }
-
-            Pattern pattern = Pattern.compile(regex);
-            return pattern;
-        }
-        return null;
-    }
-
-    static boolean cartridgeMatches(CartridgeInfo cartridgeInfo, Pattern 
pattern) {
-        if (pattern != null) {
-            boolean matches = false;
-            if (cartridgeInfo.getDisplayName() != null) {
-                matches = 
pattern.matcher(cartridgeInfo.getDisplayName().toLowerCase()).find();
-            }
-            if (!matches && cartridgeInfo.getDescription() != null) {
-                matches = 
pattern.matcher(cartridgeInfo.getDescription().toLowerCase()).find();
-            }
-            return matches;
-        }
-        return true;
-    }
-
-    static boolean cartridgeMatches(CartridgeInfo cartridgeInfo, 
CartridgeSubscription cartridgeSubscription, Pattern pattern) {
-        if (pattern != null) {
-            boolean matches = false;
-            if (cartridgeInfo.getDisplayName() != null) {
-                matches = 
pattern.matcher(cartridgeInfo.getDisplayName().toLowerCase()).find();
-            }
-            if (!matches && cartridgeInfo.getDescription() != null) {
-                matches = 
pattern.matcher(cartridgeInfo.getDescription().toLowerCase()).find();
-            }
-            if (!matches && cartridgeSubscription.getType() != null) {
-                matches = 
pattern.matcher(cartridgeSubscription.getType().toLowerCase()).find();
-            }
-            if (!matches && cartridgeSubscription.getAlias() != null) {
-                matches = 
pattern.matcher(cartridgeSubscription.getAlias().toLowerCase()).find();
-            }
-            return matches;
-        }
-        return true;
-    }
-
-    public static CartridgeSubscription getCartridgeSubscription(String alias, 
ConfigurationContext configurationContext) {
-        return 
CartridgeSubscriptionManager.getCartridgeSubscription(ApplicationManagementUtil.getTenantId(configurationContext),
 alias);
-    }
-
-    static SubscriptionInfo subscribe(CartridgeInfoBean cartridgeInfoBean, 
ConfigurationContext configurationContext, String tenantUsername, String 
tenantDomain)
-            throws RestAPIException {
-
-        SubscriptionData subscriptionData = new SubscriptionData();
-        
subscriptionData.setCartridgeType(cartridgeInfoBean.getCartridgeType());
-        
subscriptionData.setCartridgeAlias(cartridgeInfoBean.getAlias().trim());
-        
subscriptionData.setAutoscalingPolicyName(cartridgeInfoBean.getAutoscalePolicy());
-        
subscriptionData.setDeploymentPolicyName(cartridgeInfoBean.getDeploymentPolicy());
-        subscriptionData.setTenantDomain(tenantDomain);
-        
subscriptionData.setTenantId(ApplicationManagementUtil.getTenantId(configurationContext));
-        subscriptionData.setTenantAdminUsername(tenantUsername);
-        subscriptionData.setRepositoryType("git");
-        subscriptionData.setRepositoryURL(cartridgeInfoBean.getRepoURL());
-        
subscriptionData.setRepositoryUsername(cartridgeInfoBean.getRepoUsername());
-        
subscriptionData.setRepositoryPassword(cartridgeInfoBean.getRepoPassword());
-        
subscriptionData.setCommitsEnabled(cartridgeInfoBean.isCommitsEnabled());
-        subscriptionData.setServiceGroup(cartridgeInfoBean.getServiceGroup());
-
-        PersistenceBean persistenceBean = cartridgeInfoBean.getPersistence();
-        if (persistenceBean != null) {
-            
subscriptionData.setPersistence(PojoConverter.getPersistence(persistenceBean));
-        }
-        if (cartridgeInfoBean.getProperty() != null) {
-            
subscriptionData.setProperties(PojoConverter.getProperties(cartridgeInfoBean.getProperty()));
-        }
-
-        /*
-        if (cartridgeInfoBean.isPersistanceRequired()) {
-        if (cartridgeInfoBean.getPersistence() != null) {
-            // Add persistence related properties to PersistenceContext
-            PersistenceContext persistenceContext = new PersistenceContext();
-            
persistenceContext.setPersistanceRequiredProperty(IS_VOLUME_REQUIRED, 
String.valueOf(cartridgeInfoBean.isPersistanceRequired()));
-            persistenceContext.setSizeProperty(VOLUME_SIZE, 
cartridgeInfoBean.getSize());
-            
persistenceContext.setDeleteOnTerminationProperty(SHOULD_DELETE_VOLUME, 
String.valueOf(cartridgeInfoBean.isRemoveOnTermination()));
-            if(cartridgeInfoBean.getVolumeId() != null) {
-                persistenceContext.setVolumeIdProperty(VOLUME_ID, 
String.valueOf(cartridgeInfoBean.getVolumeId()));
-            }
-            subscriptionData.setPersistanceCtxt(persistenceContext);
-        }
-        */
-        //subscribe
-        SubscriptionInfo subscriptionInfo = null;
-        try {
-            subscriptionInfo = 
CartridgeSubscriptionManager.subscribeToCartridgeWithProperties(subscriptionData);
-        } catch (Exception e) {
-            throw new RestAPIException(e.getMessage(), e);
-        }
-
-        return subscriptionInfo;
-    }
-
-    public static org.apache.stratos.rest.endpoint.bean.topology.Cluster 
getCluster(String cartridgeType, String subscriptionAlias, ConfigurationContext 
configurationContext) throws RestAPIException {
-
-        Cluster cluster = 
TopologyClusterInformationModel.getInstance().getCluster(ApplicationManagementUtil.getTenantId(configurationContext)
-                , cartridgeType, subscriptionAlias);
-        if (cluster == null) {
-            throw new RestAPIException("No matching cluster found for 
[cartridge type]: " + cartridgeType + " [alias] " + subscriptionAlias);
-        } else {
-            return PojoConverter.populateClusterPojos(cluster);
-        }
-    }
-
-    public static org.apache.stratos.rest.endpoint.bean.topology.Cluster[] 
getClustersForTenant(ConfigurationContext configurationContext) {
-
-        Set<Cluster> clusterSet = 
TopologyClusterInformationModel.getInstance().getClusters(ApplicationManagementUtil.
-                getTenantId(configurationContext), null);
-        ArrayList<org.apache.stratos.rest.endpoint.bean.topology.Cluster> 
clusters =
-                new 
ArrayList<org.apache.stratos.rest.endpoint.bean.topology.Cluster>();
-        for (Cluster cluster : clusterSet) {
-            clusters.add(PojoConverter.populateClusterPojos(cluster));
-        }
-        org.apache.stratos.rest.endpoint.bean.topology.Cluster[] arrCluster =
-                new 
org.apache.stratos.rest.endpoint.bean.topology.Cluster[clusters.size()];
-        arrCluster = clusters.toArray(arrCluster);
-        return arrCluster;
-
-    }
-
-    public static org.apache.stratos.rest.endpoint.bean.topology.Cluster[] 
getClustersForTenantAndCartridgeType(ConfigurationContext configurationContext,
-                                                                               
                                 String cartridgeType) {
-
-        Set<Cluster> clusterSet = 
TopologyClusterInformationModel.getInstance().getClusters(ApplicationManagementUtil.
-                getTenantId(configurationContext), cartridgeType);
-        List<org.apache.stratos.rest.endpoint.bean.topology.Cluster> clusters =
-                new 
ArrayList<org.apache.stratos.rest.endpoint.bean.topology.Cluster>();
-        for (Cluster cluster : clusterSet) {
-            clusters.add(PojoConverter.populateClusterPojos(cluster));
-        }
-        org.apache.stratos.rest.endpoint.bean.topology.Cluster[] arrCluster =
-                new 
org.apache.stratos.rest.endpoint.bean.topology.Cluster[clusters.size()];
-        arrCluster = clusters.toArray(arrCluster);
-        return arrCluster;
-
-    }
-
-    public static org.apache.stratos.rest.endpoint.bean.topology.Cluster[] 
getClustersForCartridgeType(String cartridgeType) {
-
-        Set<Cluster> clusterSet = TopologyClusterInformationModel
-                .getInstance()
-                .getClusters(cartridgeType);
-        List<org.apache.stratos.rest.endpoint.bean.topology.Cluster> clusters 
= new ArrayList<org.apache.stratos.rest.endpoint.bean.topology.Cluster>();
-        for (Cluster cluster : clusterSet) {
-            clusters.add(PojoConverter.populateClusterPojos(cluster));
-        }
-        org.apache.stratos.rest.endpoint.bean.topology.Cluster[] arrCluster = 
new org.apache.stratos.rest.endpoint.bean.topology.Cluster[clusters
-                .size()];
-        arrCluster = clusters.toArray(arrCluster);
-        return arrCluster;
-
-    }
-
-    // return the cluster id for the lb. This is a temp fix.
-    /*private static String subscribeToLb(String cartridgeType, String 
loadBalancedCartridgeType, String lbAlias,
-        String defaultAutoscalingPolicy, String deploymentPolicy,
-        ConfigurationContext configurationContext, String userName, String 
tenantDomain, Property[] props) throws ADCException {
-
-        CartridgeSubscription cartridgeSubscription;
-
-        try {
-            if(log.isDebugEnabled()) {
-                log.debug("Subscribing to a load balancer [cartridge] 
"+cartridgeType+" [alias] "+lbAlias);
-            }
-
-            SubscriptionData subscriptionData = new SubscriptionData();
-            subscriptionData.setCartridgeType(cartridgeType);
-            subscriptionData.setCartridgeAlias(lbAlias.trim());
-            
subscriptionData.setAutoscalingPolicyName(defaultAutoscalingPolicy);
-            subscriptionData.setDeploymentPolicyName(deploymentPolicy);
-            subscriptionData.setTenantDomain(tenantDomain);
-            
subscriptionData.setTenantId(ApplicationManagementUtil.getTenantId(configurationContext));
-            subscriptionData.setTenantAdminUsername(userName);
-            subscriptionData.setRepositoryType("git");
-            //subscriptionData.setPayloadProperties(props);
-            subscriptionData.setPrivateRepository(false);
-
-            cartridgeSubscription =
-                    
cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(subscriptionData);
-
-            //set a payload parameter to indicate the load balanced cartridge 
type
-            
cartridgeSubscription.getPayloadData().add("LOAD_BALANCED_SERVICE_TYPE", 
loadBalancedCartridgeType);
-
-            Properties lbProperties = new Properties();
-            lbProperties.setPayloadProperties(props);
-            
cartridgeSubsciptionManager.registerCartridgeSubscription(cartridgeSubscription,
 lbProperties);
-            
-            if(log.isDebugEnabled()) {
-                log.debug("Successfully subscribed to a load balancer 
[cartridge] "+cartridgeType+" [alias] "+lbAlias);
-            }
-        } catch (Exception e) {
-            String msg = "Error while subscribing to load balancer cartridge 
[type] "+cartridgeType+". Cause: "+e.getMessage();
-            log.error(msg, e);
-            throw new ADCException(msg, e);
-        }
-
-        return cartridgeSubscription.getClusterDomain();
-    } */
-
-    static void unsubscribe(String alias, String tenantDomain) throws 
RestAPIException {
-
-        try {
-            cartridgeSubsciptionManager.unsubscribeFromCartridge(tenantDomain, 
alias);
-
-        } catch (ADCException e) {
-            String msg = "Failed to unsubscribe from [alias] " + alias + ". 
Cause: " + e.getMessage();
-            log.error(msg, e);
-            throw new RestAPIException(msg, e);
-
-        } catch (NotSubscribedException e) {
-            log.error(e.getMessage(), e);
-            throw new RestAPIException(e.getMessage(), e);
-        }
-    }
-
-    /**
-     * Super tenant will deploy multitenant service.
-     * <p/>
-     * get domain , subdomain as well..
-     *
-     * @param clusterDomain
-     * @param clusterSubdomain
-     */
-    static void deployService(String cartridgeType, String alias, String 
autoscalingPolicy, String deploymentPolicy,
-                              String tenantDomain, String tenantUsername, int 
tenantId, String clusterDomain, String clusterSubdomain, String tenantRange, 
boolean isPublic) throws RestAPIException {
-        log.info("Deploying service..");
-        try {
-            serviceDeploymentManager.deployService(cartridgeType, 
autoscalingPolicy, deploymentPolicy, tenantId, tenantRange, tenantDomain, 
tenantUsername, isPublic);
-
-        } catch (Exception e) {
-            String msg = String.format("Failed to deploy the Service 
[Cartridge type] %s [alias] %s . Cause: %s", cartridgeType, alias, 
e.getMessage());
-            log.error(msg, e);
-            throw new RestAPIException(msg, e);
-        }
-    }
-
-    static void undeployService(String serviceType) throws RestAPIException, 
ServiceDoesNotExistException {
-
-        try {
-            serviceDeploymentManager.undeployService(serviceType);
-        } catch (ServiceDoesNotExistException ex) {
-            throw ex;
-        } catch (Exception e) {
-            String msg = "Failed to undeploy service cluster definition of 
type " + serviceType + " Cause: " + e.getMessage();
-            log.error(msg, e);
-            throw new RestAPIException(msg, e);
-        }
-    }
-
-    static void getGitRepositoryNotification(Payload payload) throws 
RestAPIException {
-        try {
-
-            RepositoryNotification repoNotification = new 
RepositoryNotification();
-            
repoNotification.updateRepository(payload.getRepository().getUrl());
-
-        } catch (Exception e) {
-            String msg = "Failed to get git repository notifications. Cause : 
" + e.getMessage();
-            log.error(msg, e);
-            throw new RestAPIException(msg, e);
-        }
-    }
-
-    static void synchronizeRepository(CartridgeSubscription 
cartridgeSubscription) throws RestAPIException {
-        try {
-            RepositoryNotification repoNotification = new 
RepositoryNotification();
-            repoNotification.updateRepository(cartridgeSubscription);
-        } catch (Exception e) {
-            String msg = "Failed to get git repository notifications. Cause : 
" + e.getMessage();
-            log.error(msg, e);
-            throw new RestAPIException(msg, e);
-        }
-    }
-
-    public static void addSubscriptionDomains(ConfigurationContext 
configurationContext, String cartridgeType,
-                                              String subscriptionAlias,
-                                              SubscriptionDomainRequest 
request)
-            throws RestAPIException {
-        try {
-            int tenantId = 
ApplicationManagementUtil.getTenantId(configurationContext);
-
-            for 
(org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomainBean
 subscriptionDomain : request.domains) {
-                boolean isDomainExists = 
isSubscriptionDomainExists(configurationContext, cartridgeType, 
subscriptionAlias, subscriptionDomain.domainName);
-                if (isDomainExists) {
-                    String message = "Subscription domain " + 
subscriptionDomain.domainName + " exists";
-                    throw new RestAPIException(Status.INTERNAL_SERVER_ERROR, 
message);
-                }
-            }
-
-            for 
(org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomainBean
 subscriptionDomain : request.domains) {
-
-                CartridgeSubscriptionManager.addSubscriptionDomain(tenantId, 
subscriptionAlias,
-                        subscriptionDomain.domainName, 
subscriptionDomain.applicationContext);
-            }
-        } catch (Exception e) {
-            log.error(e.getMessage(), e);
-            throw new RestAPIException(e.getMessage(), e);
-        }
-    }
-
-    public static boolean isSubscriptionDomainExists(ConfigurationContext 
configurationContext, String cartridgeType,
-                                                     String subscriptionAlias, 
String domain) throws RestAPIException {
-        try {
-            int tenantId = 
ApplicationManagementUtil.getTenantId(configurationContext);
-            SubscriptionDomainBean subscriptionDomain = 
PojoConverter.populateSubscriptionDomainPojo(CartridgeSubscriptionManager.getSubscriptionDomain(tenantId,
-                    subscriptionAlias, domain));
-
-            if (subscriptionDomain.domainName != null) {
-                return true;
-            } else {
-                return false;
-            }
-        } catch (Exception e) {
-            log.error(e.getMessage(), e);
-            throw new RestAPIException(e.getMessage(), e);
-        }
-
-    }
-
-    public static List<SubscriptionDomainBean> 
getSubscriptionDomains(ConfigurationContext configurationContext, String 
cartridgeType,
-                                                                      String 
subscriptionAlias) throws RestAPIException {
-        try {
-            int tenantId = 
ApplicationManagementUtil.getTenantId(configurationContext);
-            return 
PojoConverter.populateSubscriptionDomainPojos(CartridgeSubscriptionManager.getSubscriptionDomains(tenantId,
 subscriptionAlias));
-        } catch (Exception e) {
-            log.error(e.getMessage(), e);
-            throw new RestAPIException(e.getMessage(), e);
-        }
-    }
-
-    public static SubscriptionDomainBean 
getSubscriptionDomain(ConfigurationContext configurationContext, String 
cartridgeType,
-                                                               String 
subscriptionAlias, String domain) throws RestAPIException {
-        try {
-            int tenantId = ApplicationManagementUtil
-                    .getTenantId(configurationContext);
-            SubscriptionDomainBean subscriptionDomain = 
PojoConverter.populateSubscriptionDomainPojo(CartridgeSubscriptionManager.getSubscriptionDomain(tenantId,
-                    subscriptionAlias, domain));
-
-            if (subscriptionDomain == null) {
-                String message = "Could not find a subscription [domain] " + 
domain + " for Cartridge [type] "
-                        + cartridgeType + " and [alias] " + subscriptionAlias;
-                log.error(message);
-                throw new RestAPIException(Status.NOT_FOUND, message);
-            }
-
-            return subscriptionDomain;
-
-        } catch (Exception e) {
-            log.error(e.getMessage(), e);
-            throw new RestAPIException(e.getMessage(), e);
-        }
-    }
-
-    public static void removeSubscriptionDomain(ConfigurationContext 
configurationContext, String cartridgeType,
-                                                String subscriptionAlias, 
String domain) throws RestAPIException, DomainMappingExistsException {
-        try {
-            int tenantId = 
ApplicationManagementUtil.getTenantId(configurationContext);
-            CartridgeSubscriptionManager.removeSubscriptionDomain(tenantId, 
subscriptionAlias, domain);
-        } catch (Exception e) {
-            log.error(e.getMessage(), e);
-            throw new RestAPIException(e.getMessage(), e);
-        }
-
-    }
-
-    static void deployServiceGroupDefinition(ServiceGroupDefinition 
serviceGroupDefinition) throws RestAPIException {
-
-        try {
-            
serviceGropingManager.deployServiceGroupDefinition(serviceGroupDefinition);
-
-        } catch (InvalidServiceGroupException e) {
-            throw new RestAPIException(e);
-        } catch (ServiceGroupDefinitioException e) {
-            throw new RestAPIException(e);
-        } catch (ADCException e) {
-            throw new RestAPIException(e);
-        } catch (CloudControllerServiceUnregisteredCartridgeExceptionException 
e) {
-            throw new RestAPIException(e);
-        }
-
-        log.info("Successfully deployed the Service Group Definition with name 
" + serviceGroupDefinition.getName());
-    }
-
-    static ServiceGroupDefinition getServiceGroupDefinition(String 
serviceGroupDefinitionName) throws RestAPIException {
-
-        try {
-            return 
serviceGropingManager.getServiceGroupDefinition(serviceGroupDefinitionName);
-
-        } catch (ServiceGroupDefinitioException e) {
-            throw new RestAPIException(e);
-        } catch (ADCException e) {
-            throw new RestAPIException(e);
-        }
-    }
-
-    static void undeployServiceGroupDefinition(String 
serviceGroupDefinitionName) throws RestAPIException {
-
-        try {
-            
serviceGropingManager.undeployServiceGroupDefinition(serviceGroupDefinitionName);
-
-        } catch (ServiceGroupDefinitioException e) {
-            throw new RestAPIException(e);
-        } catch (ADCException e) {
-            throw new RestAPIException(e);
-        }
-
-        log.info("Successfully undeployed the Service Group Definition with 
name " + serviceGroupDefinitionName);
-    }
-
-    public static ApplicationBean getApplicationInfo(String applicationId, 
ConfigurationContext configContext) {
-        ApplicationBean applicationBean = null;
-        try {
-            ApplicationManager.acquireReadLockForApplication(applicationId);
-            Application application = 
ApplicationManager.getApplications().getApplication(applicationId);
-            if (application == null) {
-                return null;
-            }
-            applicationBean = PojoConverter.applicationToBean(application);
-
-            Map<String, ClusterDataHolder> topLevelClusterDataMap = 
application.getClusterDataMap();
-            for (Map.Entry<String, ClusterDataHolder> entry : 
topLevelClusterDataMap.entrySet()) {
-                ClusterDataHolder clusterDataHolder = entry.getValue();
-                String clusterId = clusterDataHolder.getClusterId();
-                String serviceType = clusterDataHolder.getServiceType();
-                TopologyManager.acquireReadLockForCluster(serviceType, 
clusterId);
-                Cluster topLevelCluster;
-
-                try {
-                    TopologyManager.acquireReadLockForCluster(serviceType, 
clusterId);
-                    topLevelCluster = 
TopologyManager.getTopology().getService(serviceType).getCluster(clusterId);
-                } finally {
-                    TopologyManager.releaseReadLockForCluster(serviceType, 
clusterId);
-                }
-                
applicationBean.clusters.add(PojoConverter.populateClusterPojos(topLevelCluster));
-            }
-
-            Collection<Group> groups = application.getGroups();
-            for (Group group : groups) {
-                GroupBean groupBean = PojoConverter.toGroupBean(group);
-                setSubGroups(group, groupBean);
-                applicationBean.addGroup(groupBean);
-            }
-        } finally {
-            ApplicationManager.releaseReadLockForApplication(applicationId);
-        }
-
-
-        return applicationBean;
-    }
-
-    private static void setSubGroups(Group group, GroupBean groupBean) {
-        Collection<Group> subgroups = group.getGroups();
-        addClustersToGroupBean(group, groupBean);
-        for (Group subGroup : subgroups) {
-            GroupBean subGroupBean = PojoConverter.toGroupBean(subGroup);
-
-            setSubGroups(subGroup, subGroupBean);
-            groupBean.addGroup(subGroupBean);
-        }
-    }
-
-    private static void addClustersToGroupBean(Group group, GroupBean 
groupBean) {
-        Map<String, ClusterDataHolder> clustersDatamap = 
group.getClusterDataMap();
-        for (Map.Entry<String, ClusterDataHolder> x : 
clustersDatamap.entrySet()) {
-            String alias = x.getKey();
-            ClusterDataHolder clusterHolder = x.getValue();
-            Cluster topLevelCluster = 
TopologyManager.getTopology().getService(clusterHolder.getServiceType()).getCluster(clusterHolder.getClusterId());
-            
groupBean.addCluster(PojoConverter.populateClusterPojos(topLevelCluster));
-        }
-    }
-
-
-    public static boolean deployKubernetesGroup(KubernetesGroup 
kubernetesGroupBean) throws RestAPIException {
-
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-            org.apache.stratos.autoscaler.stub.kubernetes.KubernetesGroup 
kubernetesGroup =
-                    
PojoConverter.convertToASKubernetesGroupPojo(kubernetesGroupBean);
-
-            try {
-                return 
autoscalerServiceClient.deployKubernetesGroup(kubernetesGroup);
-            } catch (RemoteException e) {
-                log.error(e.getMessage(), e);
-                throw new RestAPIException(e.getMessage(), e);
-            } catch (AutoScalerServiceInvalidKubernetesGroupExceptionException 
e) {
-                String message = 
e.getFaultMessage().getInvalidKubernetesGroupException().getMessage();
-                log.error(message, e);
-                throw new RestAPIException(message, e);
-            }
-        }
-        return false;
-    }
-
-    public static boolean deployKubernetesHost(String kubernetesGroupId, 
KubernetesHost kubernetesHostBean)
-            throws RestAPIException {
-
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-            org.apache.stratos.autoscaler.stub.kubernetes.KubernetesHost 
kubernetesHost =
-                    
PojoConverter.convertToASKubernetesHostPojo(kubernetesHostBean);
-
-            try {
-                return 
autoscalerServiceClient.deployKubernetesHost(kubernetesGroupId, kubernetesHost);
-            } catch (RemoteException e) {
-                log.error(e.getMessage(), e);
-                throw new RestAPIException(e.getMessage(), e);
-            } catch (AutoScalerServiceInvalidKubernetesHostExceptionException 
e) {
-                String message = 
e.getFaultMessage().getInvalidKubernetesHostException().getMessage();
-                log.error(message, e);
-                throw new RestAPIException(message, e);
-            } catch 
(AutoScalerServiceNonExistingKubernetesGroupExceptionException e) {
-                String message = 
e.getFaultMessage().getNonExistingKubernetesGroupException().getMessage();
-                log.error(message, e);
-                throw new RestAPIException(message, e);
-            }
-        }
-        return false;
-    }
-
-    public static boolean updateKubernetesMaster(KubernetesMaster 
kubernetesMasterBean) throws RestAPIException {
-
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-            org.apache.stratos.autoscaler.stub.kubernetes.KubernetesMaster 
kubernetesMaster =
-                    
PojoConverter.convertToASKubernetesMasterPojo(kubernetesMasterBean);
-
-            try {
-                return 
autoscalerServiceClient.updateKubernetesMaster(kubernetesMaster);
-            } catch (RemoteException e) {
-                log.error(e.getMessage(), e);
-                throw new RestAPIException(e.getMessage(), e);
-            } catch 
(AutoScalerServiceInvalidKubernetesMasterExceptionException e) {
-                String message = 
e.getFaultMessage().getInvalidKubernetesMasterException().getMessage();
-                log.error(message, e);
-                throw new RestAPIException(message, e);
-            } catch 
(AutoScalerServiceNonExistingKubernetesMasterExceptionException e) {
-                String message = 
e.getFaultMessage().getNonExistingKubernetesMasterException().getMessage();
-                log.error(message, e);
-                throw new RestAPIException(message, e);
-            }
-        }
-        return false;
-    }
-
-    public static KubernetesGroup[] getAvailableKubernetesGroups() throws 
RestAPIException {
-
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-            try {
-                org.apache.stratos.autoscaler.stub.kubernetes.KubernetesGroup[]
-                        kubernetesGroups = 
autoscalerServiceClient.getAvailableKubernetesGroups();
-                return 
PojoConverter.populateKubernetesGroupsPojo(kubernetesGroups);
-
-            } catch (RemoteException e) {
-                log.error(e.getMessage(), e);
-                throw new RestAPIException(e.getMessage(), e);
-            }
-        }
-        return null;
-    }
-
-    public static KubernetesGroup getKubernetesGroup(String kubernetesGroupId) 
throws RestAPIException {
-
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-            try {
-                org.apache.stratos.autoscaler.stub.kubernetes.KubernetesGroup
-                        kubernetesGroup = 
autoscalerServiceClient.getKubernetesGroup(kubernetesGroupId);
-                return 
PojoConverter.populateKubernetesGroupPojo(kubernetesGroup);
-
-            } catch (RemoteException e) {
-                log.error(e.getMessage(), e);
-                throw new RestAPIException(e.getMessage(), e);
-            } catch 
(AutoScalerServiceNonExistingKubernetesGroupExceptionException e) {
-                String message = 
e.getFaultMessage().getNonExistingKubernetesGroupException().getMessage();
-                log.error(message, e);
-                throw new RestAPIException(message, e);
-            }
-        }
-        return null;
-    }
-
-    public static boolean undeployKubernetesGroup(String kubernetesGroupId) 
throws RestAPIException {
-
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-            try {
-                return 
autoscalerServiceClient.undeployKubernetesGroup(kubernetesGroupId);
-
-            } catch (RemoteException e) {
-                log.error(e.getMessage(), e);
-                throw new RestAPIException(e.getMessage(), e);
-            } catch 
(AutoScalerServiceNonExistingKubernetesGroupExceptionException e) {
-                String message = 
e.getFaultMessage().getNonExistingKubernetesGroupException().getMessage();
-                log.error(message, e);
-                throw new RestAPIException(message, e);
-            }
-        }
-        return false;
-    }
-
-    public static boolean undeployKubernetesHost(String kubernetesHostId) 
throws RestAPIException {
-
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-            try {
-                return 
autoscalerServiceClient.undeployKubernetesHost(kubernetesHostId);
-
-            } catch (RemoteException e) {
-                log.error(e.getMessage(), e);
-                throw new RestAPIException(e.getMessage(), e);
-            } catch 
(AutoScalerServiceNonExistingKubernetesHostExceptionException e) {
-                String message = 
e.getFaultMessage().getNonExistingKubernetesHostException().getMessage();
-                log.error(message, e);
-                throw new RestAPIException(message, e);
-            }
-        }
-        return false;
-    }
-
-    public static KubernetesHost[] getKubernetesHosts(String 
kubernetesGroupId) throws RestAPIException {
-
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-            try {
-                org.apache.stratos.autoscaler.stub.kubernetes.KubernetesHost[]
-                        kubernetesHosts = 
autoscalerServiceClient.getKubernetesHosts(kubernetesGroupId);
-
-                List<KubernetesHost> arrayList = 
PojoConverter.populateKubernetesHostsPojo(kubernetesHosts);
-                KubernetesHost[] array = new KubernetesHost[arrayList.size()];
-                array = arrayList.toArray(array);
-                return array;
-            } catch (RemoteException e) {
-                log.error(e.getMessage(), e);
-                throw new RestAPIException(e.getMessage(), e);
-            } catch 
(AutoScalerServiceNonExistingKubernetesGroupExceptionException e) {
-                String message = 
e.getFaultMessage().getNonExistingKubernetesGroupException().getMessage();
-                log.error(message, e);
-                throw new RestAPIException(message, e);
-            }
-        }
-        return null;
-    }
-
-    public static KubernetesMaster getKubernetesMaster(String 
kubernetesGroupId) throws RestAPIException {
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-            try {
-                org.apache.stratos.autoscaler.stub.kubernetes.KubernetesMaster
-                        kubernetesMaster = 
autoscalerServiceClient.getKubernetesMaster(kubernetesGroupId);
-                return 
PojoConverter.populateKubernetesMasterPojo(kubernetesMaster);
-
-            } catch (RemoteException e) {
-                log.error(e.getMessage(), e);
-                throw new RestAPIException(e.getMessage(), e);
-            } catch 
(AutoScalerServiceNonExistingKubernetesGroupExceptionException e) {
-                String message = 
e.getFaultMessage().getNonExistingKubernetesGroupException().getMessage();
-                log.error(message, e);
-                throw new RestAPIException(message, e);
-            }
-        }
-        return null;
-    }
-
-    public static boolean updateKubernetesHost(KubernetesHost 
kubernetesHostBean) throws RestAPIException {
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-            org.apache.stratos.autoscaler.stub.kubernetes.KubernetesHost 
kubernetesHost =
-                    
PojoConverter.convertToASKubernetesHostPojo(kubernetesHostBean);
-            try {
-                return 
autoscalerServiceClient.updateKubernetesHost(kubernetesHost);
-            } catch (RemoteException e) {
-                log.error(e.getMessage(), e);
-                throw new RestAPIException(e.getMessage(), e);
-            } catch (AutoScalerServiceInvalidKubernetesHostExceptionException 
e) {
-                String message = 
e.getFaultMessage().getInvalidKubernetesHostException().getMessage();
-                log.error(message, e);
-                throw new RestAPIException(message, e);
-            } catch 
(AutoScalerServiceNonExistingKubernetesHostExceptionException e) {
-                String message = 
e.getFaultMessage().getNonExistingKubernetesHostException().getMessage();
-                log.error(message, e);
-                throw new RestAPIException(message, e);
-            }
-        }
-        return false;
-    }
-
-    public static void updateSubscriptionProperties(ConfigurationContext 
context, String alias, List<PropertyBean> property) throws RestAPIException {
-        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
-        if (autoscalerServiceClient != null) {
-            try {
-                Cluster cluster = 
TopologyClusterInformationModel.getInstance().getCluster(ApplicationManagementUtil.getTenantId(context)
-                        , alias);
-                if (cluster == null) {
-                    throw new RestAPIException("No matching cluster found for 
[alias] " + alias);
-                }
-                if (property != null) {
-                    
autoscalerServiceClient.updateClusterMonitor(cluster.getClusterId(), 
PojoConverter.getProperties(property));
-                }
-            } catch (AutoScalerServiceInvalidArgumentExceptionException e) {
-                String message = 
e.getFaultMessage().getInvalidArgumentException().getMessage();
-                log.error(message, e);
-                throw new RestAPIException(message, e);
-            } catch (RemoteException e) {
-                String msg = "Error while connecting to Autoscaler Service. " 
+ e.getMessage();
-                log.error(msg, e);
-                throw new RestAPIException(e.getMessage(), e);
-            }
-        }
-
-    }
-}

Reply via email to