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

[1/4] stratos git commit: Removing UUID and tenantId from KubernetesCluster Bean and Application Bean

Repository: stratos
Updated Branches:
  refs/heads/tenant-isolation 4676e749a -> 6ce6d5470


Removing UUID and tenantId from KubernetesCluster Bean and Application Bean


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/f2080dcb
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/f2080dcb
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/f2080dcb

Branch: refs/heads/tenant-isolation
Commit: f2080dcb4a6d22768615a1e0cc969c1811a66a66
Parents: 464ee1e
Author: Dinithi <di...@wso2.com>
Authored: Fri Aug 7 14:11:18 2015 +0530
Committer: Dinithi <di...@wso2.com>
Committed: Fri Aug 7 14:11:18 2015 +0530

----------------------------------------------------------------------
 .../stratos/cli/RestCommandLineService.java     |  4 +-
 .../beans/application/ApplicationBean.java      | 18 -----
 .../beans/kubernetes/KubernetesClusterBean.java | 18 -----
 .../rest/endpoint/api/StratosApiV41.java        | 70 +++++++++++-------
 .../rest/endpoint/api/StratosApiV41Utils.java   | 78 ++++++++++----------
 .../util/converter/ObjectConverter.java         | 32 ++++----
 6 files changed, 98 insertions(+), 122 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/f2080dcb/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java
index 140959b..a06cb3b 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java
@@ -990,7 +990,7 @@ public class RestCommandLineService {
             RowMapper<ApplicationBean> rowMapper = new RowMapper<ApplicationBean>() {
                 public String[] getData(ApplicationBean applicationDefinition) {
                     String[] data = new String[3];
-                    data[0] = applicationDefinition.getApplicationUuid();
+                    data[0] = applicationDefinition.getApplicationId();
                     data[1] = applicationDefinition.getAlias();
                     data[2] = applicationDefinition.getStatus();
                     return data;
@@ -1146,7 +1146,7 @@ public class RestCommandLineService {
                 RowMapper<KubernetesClusterBean> partitionMapper = new RowMapper<KubernetesClusterBean>() {
                     public String[] getData(KubernetesClusterBean kubernetesCluster) {
                         String[] data = new String[2];
-                        data[0] = kubernetesCluster.getClusterUuid();
+                        data[0] = kubernetesCluster.getClusterId();
                         data[1] = kubernetesCluster.getDescription();
                         return data;
                     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/f2080dcb/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/ApplicationBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/ApplicationBean.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/ApplicationBean.java
index 8c08dc9..f6e6745 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/ApplicationBean.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/application/ApplicationBean.java
@@ -30,7 +30,6 @@ public class ApplicationBean implements Serializable {
 
     private static final long serialVersionUID = -2829206180707597651L;
 
-    private String applicationUuid;
 	private String applicationId;
     private boolean multiTenant;
     private String name;
@@ -39,15 +38,6 @@ public class ApplicationBean implements Serializable {
     private String status;
     private ComponentBean components;
     private List<PropertyBean> property;
-	private int tenantId;
-
-    public String getApplicationUuid() {
-        return applicationUuid;
-    }
-
-    public void setApplicationUuid(String applicationUuid) {
-        this.applicationUuid = applicationUuid;
-    }
 
     public boolean isMultiTenant() {
         return multiTenant;
@@ -105,14 +95,6 @@ public class ApplicationBean implements Serializable {
         this.property = property;
     }
 
-	public int getTenantId() {
-		return tenantId;
-	}
-
-	public void setTenantId(int tenantId) {
-		this.tenantId = tenantId;
-	}
-
 	public String getApplicationId() {
 		return applicationId;
 	}

http://git-wip-us.apache.org/repos/asf/stratos/blob/f2080dcb/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/kubernetes/KubernetesClusterBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/kubernetes/KubernetesClusterBean.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/kubernetes/KubernetesClusterBean.java
index cc930da..53e292a 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/kubernetes/KubernetesClusterBean.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/kubernetes/KubernetesClusterBean.java
@@ -27,22 +27,12 @@ import java.util.List;
 @XmlRootElement
 public class KubernetesClusterBean {
 
-    private String clusterUuid;
 	private String clusterId;
     private String description;
     private List<KubernetesHostBean> kubernetesHosts;
     private KubernetesMasterBean kubernetesMaster;
     private PortRangeBean portRange;
     private List<PropertyBean> property;
-	private int tenantId;
-
-    public String getClusterUuid() {
-        return clusterUuid;
-    }
-
-    public void setClusterUuid(String clusterUuid) {
-        this.clusterUuid = clusterUuid;
-    }
 
     public List<KubernetesHostBean> getKubernetesHosts() {
         return kubernetesHosts;
@@ -91,12 +81,4 @@ public class KubernetesClusterBean {
 	public void setClusterId(String clusterId) {
 		this.clusterId = clusterId;
 	}
-
-	public int getTenantId() {
-		return tenantId;
-	}
-
-	public void setTenantId(int tenantId) {
-		this.tenantId = tenantId;
-	}
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/f2080dcb/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
index f0d9bc8..fe548d4 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,7 +21,9 @@ package org.apache.stratos.rest.endpoint.api;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.stub.*;
+import org.apache.stratos.autoscaler.stub.pojo.ApplicationContext;
 import org.apache.stratos.cloud.controller.stub.*;
+import org.apache.stratos.cloud.controller.stub.domain.kubernetes.KubernetesCluster;
 import org.apache.stratos.common.beans.IaasProviderInfoBean;
 import org.apache.stratos.common.beans.ResponseMessageBean;
 import org.apache.stratos.common.beans.TenantInfoBean;
@@ -44,6 +46,8 @@ import org.apache.stratos.common.beans.policy.deployment.ApplicationPolicyBean;
 import org.apache.stratos.common.beans.policy.deployment.DeploymentPolicyBean;
 import org.apache.stratos.common.beans.topology.ApplicationInfoBean;
 import org.apache.stratos.common.beans.topology.ClusterBean;
+import org.apache.stratos.common.client.AutoscalerServiceClient;
+import org.apache.stratos.common.client.CloudControllerServiceClient;
 import org.apache.stratos.common.exception.InvalidEmailException;
 import org.apache.stratos.manager.service.stub.StratosManagerServiceApplicationSignUpExceptionException;
 import org.apache.stratos.manager.service.stub.StratosManagerServiceDomainMappingExceptionException;
@@ -780,16 +784,14 @@ public class StratosApiV41 extends AbstractApi {
     public Response addApplication(ApplicationBean applicationDefinition) throws RestAPIException {
         try {
             PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext();
-            applicationDefinition.setTenantId(carbonContext.getTenantId());
-            applicationDefinition.setApplicationUuid(UUID.randomUUID().toString());
-            StratosApiV41Utils.addApplication(applicationDefinition, getConfigContext(),
+            int tenantId = carbonContext.getTenantId();
+            String applicationUuid = UUID.randomUUID().toString();
+            StratosApiV41Utils.addApplication(applicationDefinition, applicationUuid, tenantId, getConfigContext(),
                     getUsername(), getTenantDomain());
 
-
-            URI url = uriInfo.getAbsolutePathBuilder().path(applicationDefinition.getApplicationUuid()).build();
+            URI url = uriInfo.getAbsolutePathBuilder().path(applicationUuid).build();
             return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
-                    String.format("Application added successfully: [application] %s",
-                            applicationDefinition.getApplicationUuid()))).build();
+                    String.format("Application added successfully: [application] %s", applicationUuid))).build();
         } catch (ApplicationAlreadyExistException e) {
             return Response.status(Response.Status.CONFLICT).entity(new ResponseMessageBean(
                     ResponseMessageBean.ERROR, "Application already exists")).build();
@@ -823,12 +825,17 @@ public class StratosApiV41 extends AbstractApi {
     public Response updateApplication(ApplicationBean applicationDefinition) throws RestAPIException {
 
         try {
-            StratosApiV41Utils.updateApplication(applicationDefinition, getConfigContext(),
-                    getUsername(), getTenantDomain());
-            URI url = uriInfo.getAbsolutePathBuilder().path(applicationDefinition.getApplicationUuid()).build();
+            PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext();
+            ApplicationContext applicationContext = AutoscalerServiceClient.getInstance().getApplicationByTenant
+                    (applicationDefinition.getApplicationId(), carbonContext.getTenantId());
+            StratosApiV41Utils.updateApplication(applicationDefinition, applicationContext.getApplicationUuid(),
+                    carbonContext.getTenantId(), getConfigContext(), getUsername(), getTenantDomain());
+            URI url = uriInfo.getAbsolutePathBuilder().path(applicationContext.getApplicationUuid()).build();
             return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                     String.format("Application updated successfully: [application] %s",
-                            applicationDefinition.getApplicationUuid()))).build();
+                            applicationContext.getApplicationUuid()))).build();
+        } catch (RemoteException e) {
+            throw new RestAPIException(e.getMessage());
         } catch (AutoscalerServiceCartridgeNotFoundExceptionException e) {
             String backendErrorMessage = e.getFaultMessage().getCartridgeNotFoundException().
                     getMessage();
@@ -840,7 +847,6 @@ public class StratosApiV41 extends AbstractApi {
             return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
                     ResponseMessageBean.ERROR, backendErrorMessage)).build();
         }
-
     }
 
     /**
@@ -1287,7 +1293,8 @@ public class StratosApiV41 extends AbstractApi {
             @PathParam("applicationId") String applicationId, @QueryParam("force") @DefaultValue("false") boolean force)
             throws RestAPIException {
 	    PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext();
-        ApplicationBean applicationDefinition = StratosApiV41Utils.getApplication(applicationId,carbonContext.getTenantId());
+        ApplicationBean applicationDefinition = StratosApiV41Utils.getApplication(applicationId,
+                carbonContext.getTenantId());
         if (applicationDefinition == null) {
             String message = String.format("Application does not exist [application-id] %s", applicationId);
             log.error(message);
@@ -1301,7 +1308,15 @@ public class StratosApiV41 extends AbstractApi {
             return Response.status(Response.Status.CONFLICT).entity(new ResponseMessageBean(
                     ResponseMessageBean.ERROR, message)).build();
         }
-        StratosApiV41Utils.undeployApplication(applicationDefinition.getApplicationUuid(), force);
+
+        ApplicationContext applicationContext = null;
+        try {
+            applicationContext = AutoscalerServiceClient.getInstance().getApplicationByTenant(applicationId,
+                    carbonContext.getTenantId());
+        } catch (RemoteException e) {
+            throw new RestAPIException(e.getMessage());
+        }
+        StratosApiV41Utils.undeployApplication(applicationContext.getApplicationUuid(), force);
         return Response.accepted().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                 String.format("Application undeploy process started successfully: [application-id] %s", applicationId))).build();
     }
@@ -1904,15 +1919,13 @@ public class StratosApiV41 extends AbstractApi {
 
         try {
             PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext();
-            kubernetesCluster.setTenantId(carbonContext.getTenantId());
-            kubernetesCluster.setClusterUuid(UUID.randomUUID().toString());
-            StratosApiV41Utils.addKubernetesCluster(kubernetesCluster);
-            URI url = uriInfo.getAbsolutePathBuilder().path(kubernetesCluster.getClusterUuid()).build();
+            int tenantId = carbonContext.getTenantId();
+            String kubernetesClusterUuid = UUID.randomUUID().toString();
+            StratosApiV41Utils.addKubernetesCluster(kubernetesCluster, kubernetesClusterUuid, tenantId);
+            URI url = uriInfo.getAbsolutePathBuilder().path(kubernetesClusterUuid).build();
             return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                     String.format("Kubernetes cluster added successfully: [kub-host-cluster] %s",
-                            kubernetesCluster.getClusterUuid()))).build();
-        } catch (RestAPIException e) {
-            throw e;
+                            kubernetesClusterUuid))).build();
         } catch (CloudControllerServiceKubernetesClusterAlreadyExistsExceptionException e) {
             return Response.status(Response.Status.CONFLICT).entity(new ResponseMessageBean(
                     ResponseMessageBean.ERROR, "Kubernetes cluster already exists")).build();
@@ -1925,7 +1938,7 @@ public class StratosApiV41 extends AbstractApi {
     /**
      * Update kubernetes host cluster.
      *
-     * @param kubernetesCluster the kubernetes cluster
+     * @param kubernetesClusterBean the kubernetes cluster
      * @return 200 if the kubernetes cluster is successfully updated
      * @throws RestAPIException the rest api exception
      */
@@ -1935,18 +1948,21 @@ public class StratosApiV41 extends AbstractApi {
     @Consumes("application/json")
     @AuthorizationAction("/permission/admin/stratos/kubernetesClusters/manage")
     public Response updateKubernetesCluster(
-            KubernetesClusterBean kubernetesCluster) throws RestAPIException {
+            KubernetesClusterBean kubernetesClusterBean) throws RestAPIException {
 
         try {
             PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext();
-            kubernetesCluster.setTenantId(carbonContext.getTenantId());
-            StratosApiV41Utils.updateKubernetesCluster(kubernetesCluster);
+            KubernetesCluster kubernetesCluster = CloudControllerServiceClient.getInstance().getKubernetesClusterByTenantId
+                    (kubernetesClusterBean
+                    .getClusterId(), carbonContext.getTenantId());
+            StratosApiV41Utils.updateKubernetesCluster(kubernetesClusterBean, kubernetesCluster.getClusterUuid(),
+                    kubernetesCluster.getTenantId());
             URI url = uriInfo.getAbsolutePathBuilder().path(kubernetesCluster.getClusterUuid()).build();
             return Response.ok(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                     String.format("Kubernetes cluster updated successfully: [kub-host-cluster] %s",
                             kubernetesCluster.getClusterUuid()))).build();
-        } catch (RestAPIException e) {
-            throw e;
+        } catch (RemoteException e) {
+            throw new RestAPIException(e.getMessage());
         } catch (CloudControllerServiceInvalidKubernetesClusterExceptionException e) {
             return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
                     ResponseMessageBean.ERROR, "Kubernetes cluster is invalid")).build();

http://git-wip-us.apache.org/repos/asf/stratos/blob/f2080dcb/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
index d9934b3..543dd44 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
@@ -32,6 +32,7 @@ import org.apache.stratos.autoscaler.stub.pojo.ServiceGroup;
 import org.apache.stratos.cloud.controller.stub.*;
 import org.apache.stratos.cloud.controller.stub.domain.Cartridge;
 import org.apache.stratos.cloud.controller.stub.domain.NetworkPartition;
+import org.apache.stratos.cloud.controller.stub.domain.kubernetes.KubernetesCluster;
 import org.apache.stratos.common.beans.IaasProviderInfoBean;
 import org.apache.stratos.common.beans.PropertyBean;
 import org.apache.stratos.common.beans.TenantInfoBean;
@@ -109,6 +110,7 @@ public class StratosApiV41Utils {
     public static final String APPLICATION_STATUS_DEPLOYED = "Deployed";
     public static final String APPLICATION_STATUS_CREATED = "Created";
     public static final String APPLICATION_STATUS_UNDEPLOYING = "Undeploying";
+    public static final int SUPER_TENANT_ID = -1234;
 
     private static final Log log = LogFactory.getLog(StratosApiV41Utils.class);
 
@@ -1441,7 +1443,8 @@ public class StratosApiV41Utils {
      * @param tenantDomain  Tenant Domain
      * @throws RestAPIException
      */
-    public static void addApplication(ApplicationBean appDefinition, ConfigurationContext ctxt, String userName,
+    public static void addApplication(ApplicationBean appDefinition, String applicationUuid, int tenantId,
+                                      ConfigurationContext ctxt, String userName,
                                       String tenantDomain) throws RestAPIException,
             AutoscalerServiceCartridgeNotFoundExceptionException,
             AutoscalerServiceCartridgeGroupNotFoundExceptionException {
@@ -1453,9 +1456,9 @@ public class StratosApiV41Utils {
         }
         // check if an application with same id already exists
         try {
-            if (AutoscalerServiceClient.getInstance().existApplication(appDefinition.getApplicationId(),appDefinition.getTenantId())) {
+            if (AutoscalerServiceClient.getInstance().existApplication(appDefinition.getApplicationId(), tenantId)) {
                 String msg = String.format("Application already exists: [application-uuid] %s [application-name] %s",
-                        appDefinition.getApplicationUuid(), appDefinition.getName());
+                        applicationUuid, appDefinition.getName());
                 throw new RestAPIException(msg);
             }
         } catch (RemoteException e) {
@@ -1469,7 +1472,7 @@ public class StratosApiV41Utils {
 
 
         ApplicationContext applicationContext = ObjectConverter.convertApplicationDefinitionToStubApplicationContext(
-                appDefinition);
+                appDefinition, applicationUuid, tenantId);
         applicationContext.setTenantId(ApplicationManagementUtil.getTenantId(ctxt));
         applicationContext.setTenantDomain(tenantDomain);
         applicationContext.setTenantAdminUsername(userName);
@@ -1492,12 +1495,9 @@ public class StratosApiV41Utils {
             List<String> usedCartridgeGroups = new ArrayList<String>();
             findCartridgesAndGroupsInApplication(appDefinition, usedCartridges, usedCartridgeGroups);
             StratosManagerServiceClient smServiceClient = getStratosManagerServiceClient();
-            smServiceClient.addUsedCartridgesInApplications(
-                    appDefinition.getApplicationUuid(),
+            smServiceClient.addUsedCartridgesInApplications(applicationUuid,
                     usedCartridges.toArray(new String[usedCartridges.size()]));
-
-            smServiceClient.addUsedCartridgeGroupsInApplications(
-                    appDefinition.getApplicationUuid(),
+            smServiceClient.addUsedCartridgeGroupsInApplications(applicationUuid,
                     usedCartridgeGroups.toArray(new String[usedCartridgeGroups.size()]));
 
         } catch (AutoscalerServiceApplicationDefinitionExceptionException e) {
@@ -1517,11 +1517,11 @@ public class StratosApiV41Utils {
      * @param tenantDomain  Tenant Domain
      * @throws RestAPIException
      */
-    public static void updateApplication(ApplicationBean appDefinition, ConfigurationContext ctxt,
-                                         String userName, String tenantDomain)
+    public static void updateApplication(ApplicationBean appDefinition, String applicationUuid, int tenantId,
+                                         ConfigurationContext ctxt, String userName, String tenantDomain)
             throws RestAPIException, AutoscalerServiceCartridgeNotFoundExceptionException, AutoscalerServiceCartridgeGroupNotFoundExceptionException {
 
-        if (StringUtils.isBlank(appDefinition.getApplicationUuid())) {
+        if (StringUtils.isBlank(applicationUuid)) {
             String message = "Please specify the application name";
             log.error(message);
             throw new RestAPIException(message);
@@ -1530,7 +1530,7 @@ public class StratosApiV41Utils {
         validateApplication(appDefinition);
 
         ApplicationContext applicationContext = ObjectConverter.convertApplicationDefinitionToStubApplicationContext(
-                appDefinition);
+                appDefinition, applicationUuid, tenantId);
         applicationContext.setTenantId(ApplicationManagementUtil.getTenantId(ctxt));
         applicationContext.setTenantDomain(tenantDomain);
         applicationContext.setTenantAdminUsername(userName);
@@ -1889,25 +1889,26 @@ public class StratosApiV41Utils {
             PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext();
             AutoscalerServiceClient asServiceClient = getAutoscalerServiceClient();
 
-            ApplicationContext asApplication = asServiceClient.getApplicationByTenant(applicationId,carbonContext.getTenantId());
+            ApplicationContext asApplication = asServiceClient.getApplicationByTenant(applicationId,
+                    carbonContext.getTenantId());
 
             log.info(String.format("Starting to remove application: [application-uuid %s [application-id] %s",
                     asApplication.getApplicationUuid(), applicationId));
 
             ApplicationBean application = ObjectConverter.convertStubApplicationContextToApplicationDefinition(
                     asApplication);
-            asServiceClient.deleteApplication(application.getApplicationUuid());
+            asServiceClient.deleteApplication(asApplication.getApplicationUuid());
 
             List<String> usedCartridges = new ArrayList<String>();
             List<String> usedCartridgeGroups = new ArrayList<String>();
             findCartridgesAndGroupsInApplication(application, usedCartridges, usedCartridgeGroups);
             StratosManagerServiceClient smServiceClient = getStratosManagerServiceClient();
             smServiceClient.removeUsedCartridgesInApplications(
-                    application.getApplicationUuid(),
+                    asApplication.getApplicationUuid(),
                     usedCartridges.toArray(new String[usedCartridges.size()]));
 
             smServiceClient.removeUsedCartridgeGroupsInApplications(
-                    application.getApplicationUuid(),
+                    asApplication.getApplicationUuid(),
                     usedCartridgeGroups.toArray(new String[usedCartridgeGroups.size()]));
 
         } catch (RemoteException e) {
@@ -2161,14 +2162,15 @@ public class StratosApiV41Utils {
      * @return add status
      * @throws RestAPIException
      */
-    public static boolean addKubernetesCluster(KubernetesClusterBean kubernetesClusterBean) throws RestAPIException,
+    public static boolean addKubernetesCluster(KubernetesClusterBean kubernetesClusterBean,
+                                               String kubernetesClusterUuid, int tenantId) throws RestAPIException,
             CloudControllerServiceInvalidKubernetesClusterExceptionException,
             CloudControllerServiceKubernetesClusterAlreadyExistsExceptionException {
 
         CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
         if (cloudControllerServiceClient != null) {
             org.apache.stratos.cloud.controller.stub.domain.kubernetes.KubernetesCluster kubernetesCluster =
-                    ObjectConverter.convertToCCKubernetesClusterPojo(kubernetesClusterBean);
+                    ObjectConverter.convertToCCKubernetesClusterPojo(kubernetesClusterBean, kubernetesClusterUuid, tenantId);
 
             try {
                 return cloudControllerServiceClient.deployKubernetesCluster(kubernetesCluster);
@@ -2188,13 +2190,15 @@ public class StratosApiV41Utils {
      * @return add status
      * @throws RestAPIException
      */
-    public static boolean updateKubernetesCluster(KubernetesClusterBean kubernetesClusterBean) throws RestAPIException,
+    public static boolean updateKubernetesCluster(KubernetesClusterBean kubernetesClusterBean,
+                                                  String kubernetesClusterUuid, int tenantId) throws RestAPIException,
             CloudControllerServiceInvalidKubernetesClusterExceptionException {
 
         CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
         if (cloudControllerServiceClient != null) {
             org.apache.stratos.cloud.controller.stub.domain.kubernetes.KubernetesCluster kubernetesCluster =
-                    ObjectConverter.convertToCCKubernetesClusterPojo(kubernetesClusterBean);
+                    ObjectConverter.convertToCCKubernetesClusterPojo(kubernetesClusterBean, kubernetesClusterUuid,
+                            tenantId);
 
             try {
                 return cloudControllerServiceClient.updateKubernetesCluster(kubernetesCluster);
@@ -2313,19 +2317,16 @@ public class StratosApiV41Utils {
     public static KubernetesClusterBean getKubernetesCluster(String kubernetesClusterId) throws RestAPIException {
 
         CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
+        PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext();
         if (cloudControllerServiceClient != null) {
             try {
-                org.apache.stratos.cloud.controller.stub.domain.kubernetes.KubernetesCluster
-                        kubernetesCluster = cloudControllerServiceClient.getKubernetesCluster(kubernetesClusterId);
+                KubernetesCluster kubernetesCluster = cloudControllerServiceClient.getKubernetesClusterByTenantId
+                        (kubernetesClusterId, carbonContext.getTenantId());
                 return ObjectConverter.convertStubKubernetesClusterToKubernetesCluster(kubernetesCluster);
 
             } catch (RemoteException e) {
                 log.error(e.getMessage(), e);
                 throw new RestAPIException(e.getMessage(), e);
-            } catch (CloudControllerServiceNonExistingKubernetesClusterExceptionException e) {
-                String message = e.getFaultMessage().getNonExistingKubernetesClusterException().getMessage();
-                log.error(message);
-                throw new RestAPIException(message, e);
             }
         }
         return null;
@@ -2488,16 +2489,16 @@ public class StratosApiV41Utils {
 
 	    //multi tenant application can be added by only the super tenant.Hence passing the super tenant id to retrieve
 	    // the application
-        ApplicationBean applicationBean = getApplication(applicationId,-1234);
-	    Application application = ApplicationManager.getApplications().getApplicationByTenant(applicationId, -1234);
+        ApplicationBean applicationBean = getApplication(applicationId, SUPER_TENANT_ID);
+	    Application application = ApplicationManager.getApplications().getApplicationByTenant(applicationId, SUPER_TENANT_ID);
 
         if ((applicationBean == null) || (application == null)) {
             throw new RestAPIException("Application not found: [application-id] " + applicationId);
         }
 
         if (!APPLICATION_STATUS_DEPLOYED.equals(applicationBean.getStatus())) {
-            throw new RestAPIException(String.format("Application has not been deployed: [application-uuid] %s " +
-                    "[application-id] %s ", applicationBean.getApplicationUuid(), applicationId));
+            throw new RestAPIException(String.format("Application has not been deployed: [application-id] %s ",
+                    applicationId));
         }
 
         if (!applicationBean.isMultiTenant()) {
@@ -2510,8 +2511,7 @@ public class StratosApiV41Utils {
 
         try {
             if (log.isInfoEnabled()) {
-                log.info(String.format("Adding applicationBean signup: [application-uuid] %s [application-id] %s",
-                        applicationBean.getApplicationUuid(), applicationId));
+                log.info(String.format("Adding applicationBean signup: [application-id] %s", applicationId));
             }
 
             int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
@@ -2531,19 +2531,17 @@ public class StratosApiV41Utils {
             serviceClient.addApplicationSignUp(applicationSignUp);
 
             if (log.isInfoEnabled()) {
-                log.info(String.format("Application signup added successfully: [application-uuid] %s [application-id]" +
-                                " %s [tenant-id] %d",
-                        applicationBean.getApplicationUuid(), applicationId, tenantId));
+                log.info(String.format("Application signup added successfully: [application-id]" +
+                                " %s [tenant-id] %d", applicationId, tenantId));
             }
 
             serviceClient.notifyArtifactUpdatedEventForSignUp(applicationId, tenantId);
             if (log.isInfoEnabled()) {
-                log.info(String.format("Artifact updated event sent: [application-uuid] %s [application-id] %s " +
-                        "[tenant-id] %d", applicationBean.getApplicationUuid(), applicationId, tenantId));
+                log.info(String.format("Artifact updated event sent: [application-id] %s " +
+                        "[tenant-id] %d", applicationId, tenantId));
             }
         } catch (Exception e) {
-            String message = String.format("Error in applicationBean signup: [application-uuid] %s [application-id] " +
-                    "%s", applicationBean.getApplicationUuid(), applicationId);
+            String message = String.format("Error in applicationBean signup: [application-id] %s", applicationId);
             log.error(message, e);
             throw new RestAPIException(message, e);
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/f2080dcb/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
index 861fd20..f1726a1 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
@@ -939,22 +939,23 @@ public class ObjectConverter {
     }
 
     public static org.apache.stratos.cloud.controller.stub.domain.kubernetes.KubernetesCluster
-    convertToCCKubernetesClusterPojo(KubernetesClusterBean kubernetesClusterBean) throws RestAPIException {
+    convertToCCKubernetesClusterPojo(KubernetesClusterBean kubernetesClusterBean, String kubernetesClusterUuid,
+                                     int tenantId) throws RestAPIException {
 
         org.apache.stratos.cloud.controller.stub.domain.kubernetes.KubernetesCluster kubernetesCluster = new
                 org.apache.stratos.cloud.controller.stub.domain.kubernetes.KubernetesCluster();
 
-        kubernetesCluster.setClusterUuid(kubernetesClusterBean.getClusterUuid());
+        kubernetesCluster.setClusterUuid(kubernetesClusterUuid);
         kubernetesCluster.setClusterId(kubernetesClusterBean.getClusterId());
         kubernetesCluster.setDescription(kubernetesClusterBean.getDescription());
         kubernetesCluster.setKubernetesMaster(convertStubKubernetesMasterToKubernetesMaster(
-                kubernetesClusterBean.getKubernetesMaster(),kubernetesClusterBean.getTenantId()));
+                kubernetesClusterBean.getKubernetesMaster(), tenantId));
         kubernetesCluster.setPortRange(convertPortRangeToStubPortRange(kubernetesClusterBean.getPortRange()));
         kubernetesCluster.setKubernetesHosts(convertToASKubernetesHostsPojo(kubernetesClusterBean.getKubernetesHosts(),
-                kubernetesClusterBean.getTenantId()));
+                tenantId));
         kubernetesCluster.setProperties((convertPropertyBeansToCCStubProperties(kubernetesClusterBean.getProperty(),
-                kubernetesClusterBean.getTenantId())));
-        kubernetesCluster.setTenantId(kubernetesClusterBean.getTenantId());
+                tenantId)));
+        kubernetesCluster.setTenantId(tenantId);
 
         return kubernetesCluster;
     }
@@ -1045,7 +1046,7 @@ public class ObjectConverter {
             return null;
         }
         KubernetesClusterBean kubernetesClusterBean = new KubernetesClusterBean();
-        kubernetesClusterBean.setClusterUuid(kubernetesCluster.getClusterId());
+        kubernetesClusterBean.setClusterId(kubernetesCluster.getClusterId());
         kubernetesClusterBean.setDescription(kubernetesCluster.getDescription());
         kubernetesClusterBean.setPortRange(convertStubPortRangeToPortRange(kubernetesCluster.getPortRange()));
         kubernetesClusterBean.setKubernetesHosts(convertStubKubernetesHostsToKubernetesHosts(kubernetesCluster.getKubernetesHosts()));
@@ -1132,18 +1133,18 @@ public class ObjectConverter {
     }
 
     public static ApplicationContext convertApplicationDefinitionToStubApplicationContext(
-            ApplicationBean applicationDefinition) throws RestAPIException {
+            ApplicationBean applicationDefinition, String applicationUuid, int tenantId) throws RestAPIException {
 
         org.apache.stratos.autoscaler.stub.pojo.ApplicationContext applicationContext =
                 new org.apache.stratos.autoscaler.stub.pojo.ApplicationContext();
-        applicationContext.setApplicationUuid(applicationDefinition.getApplicationUuid());
+        applicationContext.setApplicationUuid(applicationUuid);
         applicationContext.setApplicationId(applicationDefinition.getApplicationId());
         applicationContext.setAlias(applicationDefinition.getAlias());
         applicationContext.setMultiTenant(applicationDefinition.isMultiTenant());
         applicationContext.setName(applicationDefinition.getName());
         applicationContext.setDescription(applicationDefinition.getDescription());
         applicationContext.setStatus(applicationDefinition.getStatus());
-        applicationContext.setTenantId(applicationDefinition.getTenantId());
+        applicationContext.setTenantId(tenantId);
 
         // convert and set components
         if (applicationDefinition.getComponents() != null) {
@@ -1154,7 +1155,7 @@ public class ObjectConverter {
             if (applicationDefinition.getComponents().getGroups() != null) {
                 componentContext.setGroupContexts(
                         convertGroupDefinitionsToStubGroupContexts(applicationDefinition.getComponents().getGroups(),
-                                applicationDefinition.getTenantId()));
+                                tenantId));
             }
             // top level dependency information
             if (applicationDefinition.getComponents().getDependencies() != null) {
@@ -1164,7 +1165,7 @@ public class ObjectConverter {
             // top level cartridge context information
             if (applicationDefinition.getComponents().getCartridges() != null) {
                 componentContext.setCartridgeContexts(convertCartridgeReferenceBeansToStubCartridgeContexts
-                        (applicationDefinition.getComponents().getCartridges(), applicationDefinition.getTenantId()));
+                        (applicationDefinition.getComponents().getCartridges(), tenantId));
             }
             applicationContext.setComponents(componentContext);
         }
@@ -1178,14 +1179,12 @@ public class ObjectConverter {
         }
 
         ApplicationBean applicationDefinition = new ApplicationBean();
-        applicationDefinition.setApplicationUuid(applicationContext.getApplicationUuid());
         applicationDefinition.setApplicationId(applicationContext.getApplicationId());
         applicationDefinition.setAlias(applicationContext.getAlias());
         applicationDefinition.setMultiTenant(applicationContext.getMultiTenant());
         applicationDefinition.setName(applicationContext.getName());
         applicationDefinition.setDescription(applicationContext.getDescription());
         applicationDefinition.setStatus(applicationContext.getStatus());
-        applicationDefinition.setApplicationUuid(applicationContext.getApplicationUuid());
         // convert and set components
         if (applicationContext.getComponents() != null) {
             applicationDefinition.setComponents(new ComponentBean());
@@ -1536,7 +1535,6 @@ public class ObjectConverter {
         return prop;
     }
 
-
     private static DependencyContext convertDependencyDefinitionsToDependencyContexts(DependencyBean dependencyBean) {
         if (dependencyBean == null) {
             return null;
@@ -1734,8 +1732,8 @@ public class ObjectConverter {
         }
 
         ApplicationInfoBean applicationBean = new ApplicationInfoBean();
-        applicationBean.setId(application.getUniqueIdentifier());
-        applicationBean.setName(application.getId());
+        applicationBean.setId(application.getId());
+        applicationBean.setName(application.getName());
         applicationBean.setStatus(application.getStatus().name());
         applicationBean.setDescription(application.getDescription());
         applicationBean.setTenantDomain(application.getTenantDomain());


[2/4] stratos git commit: Fixing issues in Integration tests

Posted by ga...@apache.org.
Fixing issues in Integration tests


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/d04e3e97
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/d04e3e97
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/d04e3e97

Branch: refs/heads/tenant-isolation
Commit: d04e3e97b223297782b2b65b2120b07356801a9e
Parents: f2080dc
Author: Dinithi <di...@wso2.com>
Authored: Fri Aug 7 17:36:17 2015 +0530
Committer: Dinithi <di...@wso2.com>
Committed: Fri Aug 7 17:36:17 2015 +0530

----------------------------------------------------------------------
 .../impl/CloudControllerServiceImpl.java        |  2 -
 .../rest/endpoint/api/StratosApiV41Utils.java   | 22 +++---
 .../tests/SampleApplicationsTest.java           | 73 ++++++++++----------
 3 files changed, 45 insertions(+), 52 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/d04e3e97/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
index 0cd124d..a5d761e 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
@@ -798,7 +798,6 @@ public class CloudControllerServiceImpl implements CloudControllerService {
     public Cartridge[] getCartridgesByTenant(int tenantId) {
 
         Collection<Cartridge> allCartridges = CloudControllerContext.getInstance().getCartridges();
-        log.info("---------------------------- All cartridges: "+ allCartridges);
         List<Cartridge> cartridges = new ArrayList<Cartridge>();
         if (allCartridges == null || allCartridges.size() == 0) {
             log.info("No registered Cartridge found for [tenant-id]" + tenantId);
@@ -813,7 +812,6 @@ public class CloudControllerServiceImpl implements CloudControllerService {
             }
         }
 
-        log.info("---------------------------- Cartridges for tenant: "+ cartridges);
         return cartridges.toArray(new Cartridge[cartridges.size()]);
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/d04e3e97/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
index 543dd44..d69fab2 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
@@ -1026,7 +1026,7 @@ public class StratosApiV41Utils {
         }
 
         List<String> cartridgeTypes = new ArrayList<String>();
-        String[] cartridgeUuids = null;
+        String[] cartridgeUuids;
         List<String> groupNames;
         String[] cartridgeGroupNames;
 
@@ -1332,7 +1332,7 @@ public class StratosApiV41Utils {
         if (log.isDebugEnabled()) {
             log.debug(String.format("Removing cartridge group: [cartridge-group-name] %s [tenant-id] %d " ,name,tenantId));
         }
-        String serviceGroupUuid = null;
+        String serviceGroupUuid;
         // Check whether cartridge group exists
         try {
 
@@ -1670,11 +1670,7 @@ public class StratosApiV41Utils {
 
                 // Validate top level group deployment policy with cartridges
                 if (group.getCartridges() != null) {
-                    if (group.getDeploymentPolicy() != null) {
-                        groupParentHasDeploymentPolicy = true;
-                    } else {
-                        groupParentHasDeploymentPolicy = false;
-                    }
+                    groupParentHasDeploymentPolicy = group.getDeploymentPolicy() != null;
                     validateCartridgesForDeploymentPolicy(group.getCartridges(), groupParentHasDeploymentPolicy);
                 }
 
@@ -1740,7 +1736,7 @@ public class StratosApiV41Utils {
                                                   Collection<CartridgeGroupReferenceBean> groups, boolean hasDeploymentPolicy)
             throws RestAPIException {
 
-        boolean groupHasDeploymentPolicy = false;
+        boolean groupHasDeploymentPolicy;
 
         for (CartridgeGroupReferenceBean group : groups) {
             if (groupsSet.get(group.getAlias()) != null) {
@@ -2007,8 +2003,8 @@ public class StratosApiV41Utils {
     public static ApplicationInfoBean getApplicationRuntime(String applicationId,int tenantId)
             throws RestAPIException {
         ApplicationInfoBean applicationBean = null;
-        ApplicationContext applicationContext = null;
-        String applicationUuid=null;
+        ApplicationContext applicationContext;
+        String applicationUuid;
         //Checking whether application is in deployed mode
         try {
             applicationUuid=getAutoscalerServiceClient().getApplicationByTenant(applicationId,tenantId).getApplicationUuid();
@@ -2029,13 +2025,13 @@ public class StratosApiV41Utils {
         try {
             ApplicationManager.acquireReadLockForApplication(applicationUuid);
             Application application = ApplicationManager.getApplications().getApplication(applicationUuid);
+            if (application == null) {
+                return null;
+            }
             if (application.getInstanceContextCount() > 0
                     || (applicationContext != null &&
                     applicationContext.getStatus().equals("Deployed"))) {
 
-                if (application == null) {
-                    return null;
-                }
                 applicationBean = ObjectConverter.convertApplicationToApplicationInstanceBean(application);
                 for (ApplicationInstanceBean instanceBean : applicationBean.getApplicationInstances()) {
                     addClustersInstancesToApplicationInstanceBean(instanceBean, application);

http://git-wip-us.apache.org/repos/asf/stratos/blob/d04e3e97/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/SampleApplicationsTest.java
----------------------------------------------------------------------
diff --git a/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/SampleApplicationsTest.java b/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/SampleApplicationsTest.java
index 3b89161..ecd91fc 100644
--- a/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/SampleApplicationsTest.java
+++ b/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/SampleApplicationsTest.java
@@ -442,13 +442,13 @@ public class SampleApplicationsTest extends StratosTestServerManager {
             assertEquals(deployed, true);
 
             //Application active handling
-            assertApplicationActivation(bean.getApplicationUuid());
+            assertApplicationActivation("g-sc-G123-1", -1234);
 
             //Group active handling
-            assertGroupActivation(bean.getApplicationUuid());
+            assertGroupActivation("g-sc-G123-1", -1234);
 
             //Cluster active handling
-            assertClusterActivation(bean.getApplicationUuid());
+            assertClusterActivation("g-sc-G123-1", -1234);
 
             //Updating application
           /*  boolean updated = applicationTest.updateApplication("g-sc-G123-1.json",
@@ -481,7 +481,7 @@ public class SampleApplicationsTest extends StratosTestServerManager {
                     restClient);
             assertEquals(unDeployed, true);
 
-            assertApplicationUndeploy(bean.getApplicationUuid());
+            assertApplicationUndeploy("g-sc-G123-1", -1234);
 
             boolean removed = applicationTest.removeApplication("g-sc-G123-1", endpoint,
                     restClient);
@@ -773,7 +773,7 @@ public class SampleApplicationsTest extends StratosTestServerManager {
 
     private void runApplicationTest(String applicationFolderName, String applicationId) {
         executeCommand(getApplicationsPath() + "/" + applicationFolderName + "/scripts/mock/deploy.sh");
-        assertApplicationActivation(applicationId);
+        assertApplicationActivation(applicationId, -1234);
         executeCommand(getApplicationsPath() + "/" + applicationFolderName + "/scripts/mock/undeploy.sh");
         assertApplicationNotExists(applicationId);
     }
@@ -825,35 +825,35 @@ public class SampleApplicationsTest extends StratosTestServerManager {
     /**
      * Assert application activation
      *
-     * @param applicationUuid
+     * @param applicationId
      */
-    private void assertApplicationActivation(String applicationUuid) {
+    private void assertApplicationActivation(String applicationId, int tenantId) {
         long startTime = System.currentTimeMillis();
-        Application application = ApplicationManager.getApplications().getApplication(applicationUuid);
+        Application application = ApplicationManager.getApplications().getApplicationByTenant(applicationId, tenantId);
         while (!((application != null) && (application.getStatus() == ApplicationStatus.Active))) {
             try {
                 Thread.sleep(1000);
             } catch (InterruptedException ignore) {
             }
-            application = ApplicationManager.getApplications().getApplication(applicationUuid);
+            application = ApplicationManager.getApplications().getApplicationByTenant(applicationId, tenantId);
             if ((System.currentTimeMillis() - startTime) > APPLICATION_ACTIVATION_TIMEOUT) {
                 break;
             }
         }
-        assertNotNull(String.format("Application is not found: [application-id] %s", applicationUuid), application);
-        assertEquals(String.format("Application status did not change to active: [application-id] %s", applicationUuid),
+        assertNotNull(String.format("Application is not found: [application-id] %s", application.getId()), application);
+        assertEquals(String.format("Application status did not change to active: [application-id] %s", application.getId()),
                 ApplicationStatus.Active, application.getStatus());
     }
 
     /**
      * Assert application activation
      *
-     * @param applicationUuid
+     * @param applicationId
      */
-    private void assertGroupActivation(String applicationUuid) {
-        Application application = ApplicationManager.getApplications().getApplication(applicationUuid);
+    private void assertGroupActivation(String applicationId, int tenantId) {
+        Application application = ApplicationManager.getApplications().getApplicationByTenant(applicationId, tenantId);
         assertNotNull(String.format("Application is not found: [application-id] %s",
-                applicationUuid), application);
+                applicationId), application);
 
         Collection<Group> groups = application.getAllGroupsRecursively();
         for(Group group : groups) {
@@ -864,12 +864,12 @@ public class SampleApplicationsTest extends StratosTestServerManager {
     /**
      * Assert application activation
      *
-     * @param applicationUuid
+     * @param applicationId
      */
-    private void assertClusterActivation(String applicationUuid) {
-        Application application = ApplicationManager.getApplications().getApplication(applicationUuid);
+    private void assertClusterActivation(String applicationId, int tenantId) {
+        Application application = ApplicationManager.getApplications().getApplicationByTenant(applicationId, tenantId);
         assertNotNull(String.format("Application is not found: [application-id] %s",
-                applicationUuid), application);
+                applicationId), application);
 
         Set<ClusterDataHolder> clusterDataHolderSet = application.getClusterDataRecursively();
         for(ClusterDataHolder clusterDataHolder : clusterDataHolderSet) {
@@ -877,11 +877,11 @@ public class SampleApplicationsTest extends StratosTestServerManager {
             String clusterId = clusterDataHolder.getClusterId();
             Service service = TopologyManager.getTopology().getService(serviceUuid);
             assertNotNull(String.format("Service is not found: [application-id] %s [service] %s",
-                    applicationUuid, serviceUuid), service);
+                    applicationId, serviceUuid), service);
 
             Cluster cluster = service.getCluster(clusterId);
             assertNotNull(String.format("Cluster is not found: [application-id] %s [service] %s [cluster-id] %s",
-                    applicationUuid, serviceUuid, clusterId), cluster);
+                    applicationId, serviceUuid, clusterId), cluster);
             boolean clusterActive = false;
 
             for (ClusterInstance instance : cluster.getInstanceIdToInstanceContextMap().values()) {
@@ -911,16 +911,16 @@ public class SampleApplicationsTest extends StratosTestServerManager {
     /**
      * Assert application activation
      *
-     * @param applicationUuid
+     * @param applicationId
      */
-    private void assertApplicationUndeploy(String applicationUuid) {
+    private void assertApplicationUndeploy(String applicationId, int tenantId) {
         long startTime = System.currentTimeMillis();
-        Application application = ApplicationManager.getApplications().getApplication(applicationUuid);
+        Application application = ApplicationManager.getApplications().getApplicationByTenant(applicationId, tenantId);
         ApplicationContext applicationContext = null;
         try {
-            applicationContext = AutoscalerServiceClient.getInstance().getApplication(applicationUuid);
+            applicationContext = AutoscalerServiceClient.getInstance().getApplicationByTenant(applicationId, tenantId);
         } catch (RemoteException e) {
-            log.error("Error while getting the application context for [application] " + applicationUuid);
+            log.error("Error while getting the application context for [application] " + applicationId);
         }
         while (((application != null) && application.getInstanceContextCount() > 0) ||
                 (applicationContext == null || applicationContext.getStatus().equals(APPLICATION_STATUS_UNDEPLOYING))) {
@@ -928,41 +928,40 @@ public class SampleApplicationsTest extends StratosTestServerManager {
                 Thread.sleep(1000);
             } catch (InterruptedException ignore) {
             }
-            application = ApplicationManager.getApplications().getApplication(applicationUuid);
+            application = ApplicationManager.getApplications().getApplicationByTenant(applicationId, tenantId);
             try {
-                applicationContext = AutoscalerServiceClient.getInstance().getApplication(applicationUuid);
+                applicationContext = AutoscalerServiceClient.getInstance().getApplicationByTenant(applicationId, tenantId);
             } catch (RemoteException e) {
-                log.error("Error while getting the application context for [application] " + applicationUuid);
+                log.error("Error while getting the application context for [application] " + applicationId);
             }
             if ((System.currentTimeMillis() - startTime) > APPLICATION_ACTIVATION_TIMEOUT) {
                 break;
             }
         }
 
-        assertNotNull(String.format("Application is not found: [application-id] %s",
-                applicationUuid), application);
-        assertNotNull(String.format("Application Context is not found: [application-id] %s",
-                applicationUuid), applicationContext);
+        assertNotNull(String.format("Application is not found: [application-id] %s", applicationId), application);
+        assertNotNull(String.format("Application Context is not found: [application-id] %s", applicationId),
+                applicationContext);
 
         //Force undeployment after the graceful deployment
         if (application.getInstanceContextCount() > 0 ||
                 applicationContext.getStatus().equals(APPLICATION_STATUS_UNDEPLOYING)) {
-            log.info("Force undeployment is going to start for the [application] " + applicationUuid);
+            log.info("Force undeployment is going to start for the [application] " + applicationId);
 
-            applicationTest.forceUndeployApplication(applicationUuid, endpoint, restClient);
+            applicationTest.forceUndeployApplication(applicationId, endpoint, restClient);
             while (application.getInstanceContextCount() > 0 ||
                     applicationContext.getStatus().equals(APPLICATION_STATUS_UNDEPLOYING)) {
                 try {
                     Thread.sleep(1000);
                 } catch (InterruptedException ignore) {
                 }
-                application = ApplicationManager.getApplications().getApplication(applicationUuid);
+                application = ApplicationManager.getApplications().getApplicationByTenant(applicationId, tenantId);
                 if ((System.currentTimeMillis() - startTime) > APPLICATION_ACTIVATION_TIMEOUT) {
                     break;
                 }
             }
         }
-        assertEquals(String.format("Application status did not change to Created: [application-id] %s", applicationUuid),
+        assertEquals(String.format("Application status did not change to Created: [application-id] %s", applicationId),
                 APPLICATION_STATUS_CREATED, applicationContext.getStatus());
 
     }


[3/4] stratos git commit: Merge with pr 421

Posted by ga...@apache.org.
Merge with pr 421


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/d2137f4e
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/d2137f4e
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/d2137f4e

Branch: refs/heads/tenant-isolation
Commit: d2137f4e03e9e8ebc5d4b65e6b44a14a30f63f90
Parents: 4676e74 d04e3e9
Author: Gayan Gunarathne <ga...@wso2.com>
Authored: Sun Aug 9 18:26:05 2015 +0530
Committer: Gayan Gunarathne <ga...@wso2.com>
Committed: Sun Aug 9 18:26:05 2015 +0530

----------------------------------------------------------------------
 .../stratos/cli/RestCommandLineService.java     |   4 +-
 .../impl/CloudControllerServiceImpl.java        |   2 -
 .../beans/application/ApplicationBean.java      |  18 ---
 .../beans/kubernetes/KubernetesClusterBean.java |  18 ---
 .../rest/endpoint/api/StratosApiV41.java        |  70 +++++----
 .../rest/endpoint/api/StratosApiV41Utils.java   | 141 +++++++++----------
 .../util/converter/ObjectConverter.java         |  26 ++--
 .../tests/SampleApplicationsTest.java           |  89 ++++++------
 8 files changed, 169 insertions(+), 199 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/d2137f4e/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/stratos/blob/d2137f4e/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/stratos/blob/d2137f4e/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/SampleApplicationsTest.java
----------------------------------------------------------------------
diff --cc products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/SampleApplicationsTest.java
index 9ba0e84,ecd91fc..747ba80
--- a/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/SampleApplicationsTest.java
+++ b/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/SampleApplicationsTest.java
@@@ -165,14 -165,14 +165,14 @@@ public class SampleApplicationsTest ext
                      restClient);
              assertEquals(bean.getName(), "G1");
  
-             boolean updated = cartridgeGroupTest.updateCartridgeGroup("cartrdige-nested.json",
 -        /*    boolean updated = cartridgeGroupTest.updateCartridgeGroup("cartrdige-nested.json",
++           boolean updated = cartridgeGroupTest.updateCartridgeGroup("cartrdige-nested.json",
                      endpoint, restClient);
              assertEquals(updated, true);
              CartridgeGroupBean updatedBean = cartridgeGroupTest.getCartridgeGroup("G1", endpoint,
                      restClient);
 -            assertEquals(updatedBean.getName(), "G1");    */
 -
 +            assertEquals(updatedBean.getName(), "G1");
- 
-          /*   boolean removedC1 = cartridgeTest.removeCartridge("c1", endpoint,
++            /*
+             boolean removedC1 = cartridgeTest.removeCartridge("c1", endpoint,
                      restClient);
              assertEquals(removedC1, false);
  
@@@ -279,7 -279,7 +279,8 @@@
              assertEquals(bean.getComponents().getGroups().get(0).getGroups().get(0).getGroups().get(0).getCartridges().get(0).getType(), "c3");
              assertEquals(bean.getComponents().getGroups().get(0).getGroups().get(0).getGroups().get(0).getCartridges().get(0).getCartridgeMin(), 1);
              assertEquals(bean.getComponents().getGroups().get(0).getGroups().get(0).getGroups().get(0).getCartridges().get(0).getCartridgeMax(), 2);
 -            /*
 +
++
              boolean updated = applicationTest.updateApplication("g-sc-G123-1.json",
                      endpoint, restClient);
              assertEquals(updated, true);
@@@ -442,16 -442,16 +443,17 @@@
              assertEquals(deployed, true);
  
              //Application active handling
-             assertApplicationActivation(bean.getApplicationUuid());
+             assertApplicationActivation("g-sc-G123-1", -1234);
  
              //Group active handling
-             assertGroupActivation(bean.getApplicationUuid());
+             assertGroupActivation("g-sc-G123-1", -1234);
  
              //Cluster active handling
-             assertClusterActivation(bean.getApplicationUuid());
+             assertClusterActivation("g-sc-G123-1", -1234);
+ 
 +
              //Updating application
 -          /*  boolean updated = applicationTest.updateApplication("g-sc-G123-1.json",
 +            boolean updated = applicationTest.updateApplication("g-sc-G123-1.json",
                      endpoint, restClient);
              assertEquals(updated, true);
  
@@@ -459,8 -459,8 +461,8 @@@
              ApplicationBean updatedBean = applicationTest.getApplication("g-sc-G123-1", endpoint,
                      restClient);
              assertEquals(updatedBean.getApplicationId(), "g-sc-G123-1");
-             /*
-             boolean removedGroup = cartridgeGroupTest.removeCartridgeGroup("G1", endpoint,
+ 
 -            boolean removedGroup = cartridgeGroupTest.removeCartridgeGroup("G1", endpoint,
++         /*   boolean removedGroup = cartridgeGroupTest.removeCartridgeGroup("G1", endpoint,
                      restClient);
              assertEquals(removedGroup, false);
  
@@@ -974,7 -973,7 +975,7 @@@
       */
      private void assertGroupInstanceCount(String applicationName, String groupAlias, int count) {
          long startTime = System.currentTimeMillis();
--        Application application = ApplicationManager.getApplications().getApplication(applicationName);
++        Application application = ApplicationManager.getApplications().getApplicationByTenant(applicationName,-1234);
          if (application != null) {
              Group group = application.getGroupRecursively(groupAlias);
              while (group.getInstanceContextCount() != count) {


[4/4] stratos git commit: Update cartridge group

Posted by ga...@apache.org.
Update cartridge group


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/6ce6d547
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/6ce6d547
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/6ce6d547

Branch: refs/heads/tenant-isolation
Commit: 6ce6d54703892ecd471b62a526e127b6ea682128
Parents: d2137f4
Author: Gayan Gunarathne <ga...@wso2.com>
Authored: Sun Aug 9 18:49:14 2015 +0530
Committer: Gayan Gunarathne <ga...@wso2.com>
Committed: Sun Aug 9 18:49:14 2015 +0530

----------------------------------------------------------------------
 .../rest/endpoint/api/StratosApiV41Utils.java     | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/6ce6d547/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
index cd88624..aa4239d 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
@@ -1034,7 +1034,7 @@ public class StratosApiV41Utils {
             log.debug("Checking cartridges in cartridge group " + cartridgeGroupUuid);
         }
 
-        findCartridgesInGroupBean(serviceGroupDefinition, cartridgeTypes);
+
 
         //validate the group definition to check if cartridges duplicate in any groups defined
         validateCartridgeDuplicationInGroupDefinition(serviceGroupDefinition);
@@ -1107,7 +1107,7 @@ public class StratosApiV41Utils {
 
         ServiceGroup serviceGroup = ObjectConverter.convertServiceGroupDefinitionToASStubServiceGroup(
                 serviceGroupDefinition,UUID.randomUUID().toString(), tenantId);
-
+        findCartridgesInGroupBean(serviceGroup, cartridgeTypes);
         AutoscalerServiceClient asServiceClient = getAutoscalerServiceClient();
         try {
             asServiceClient.addServiceGroup(serviceGroup);
@@ -1155,15 +1155,15 @@ public class StratosApiV41Utils {
             validateGroupDuplicationInGroupDefinition(cartridgeGroup);
 
             if (existingServiceGroup != null) {
-                autoscalerServiceClient.updateServiceGroup(
-                        ObjectConverter.convertServiceGroupDefinitionToASStubServiceGroup(cartridgeGroup,existingServiceGroup.getUuid(), tenantId));
+                ServiceGroup serviceGroup= ObjectConverter.convertServiceGroupDefinitionToASStubServiceGroup(cartridgeGroup, existingServiceGroup.getUuid(), tenantId);
+                autoscalerServiceClient.updateServiceGroup(serviceGroup);
 
                 List<String> cartridgesBeforeUpdating = new ArrayList<String>();
                 List<String> cartridgesAfterUpdating = new ArrayList<String>();
 
                 ServiceGroup serviceGroupToBeUpdated = autoscalerServiceClient.getServiceGroup(existingServiceGroup.getUuid());
                 findCartridgesInServiceGroup(serviceGroupToBeUpdated, cartridgesBeforeUpdating);
-                findCartridgesInGroupBean(cartridgeGroup, cartridgesAfterUpdating);
+                findCartridgesInGroupBean(serviceGroup, cartridgesAfterUpdating);
 
                 List<String> cartridgesToRemove = new ArrayList<String>();
                 List<String> cartridgesToAdd = new ArrayList<String>();
@@ -1388,7 +1388,7 @@ public class StratosApiV41Utils {
             for (String cartridgeName : serviceGroup.getCartridges()) {
                 cartridgeUuid = CloudControllerServiceClient.getInstance().getCartridgeByTenant(cartridgeName,
                         carbonContext.getTenantId()).getUuid();
-                if (cartridgeName != null && (!cartridgeNames.contains(cartridgeUuid))) {
+                if (cartridgeName != null && (!cartridgeNames.contains(cartridgeName))) {
 
                     cartridgeNames.add(cartridgeUuid);
                 }
@@ -1408,7 +1408,7 @@ public class StratosApiV41Utils {
      * @param groupBean  groupBean
      * @param cartridges List of cartridges
      */
-    private static void findCartridgesInGroupBean(CartridgeGroupBean groupBean, List<String> cartridges) {
+    private static void findCartridgesInGroupBean(ServiceGroup groupBean, List<String> cartridges) {
 
         if (groupBean == null || cartridges == null) {
             return;
@@ -1417,13 +1417,13 @@ public class StratosApiV41Utils {
         if (groupBean.getCartridges() != null) {
             for (String cartridge : groupBean.getCartridges()) {
                 if (!cartridges.contains(cartridge)) {
-                    cartridges.add(cartridge);
+                    cartridges.add(groupBean.getUuid());
                 }
             }
         }
 
         if (groupBean.getGroups() != null) {
-            for (CartridgeGroupBean seGroup : groupBean.getGroups()) {
+            for (ServiceGroup seGroup : groupBean.getGroups()) {
                 findCartridgesInGroupBean(seGroup, cartridges);
             }
         }