Update the references with uuid
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/bf5d0baa Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/bf5d0baa Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/bf5d0baa Branch: refs/heads/tenant-isolation Commit: bf5d0baac0ba87eff04ad428cefe2ea3818ff3ed Parents: 474ba3a Author: Gayan Gunarathne <[email protected]> Authored: Fri Jul 10 22:59:33 2015 +0530 Committer: Gayan Gunarathne <[email protected]> Committed: Fri Jul 10 22:59:33 2015 +0530 ---------------------------------------------------------------------- .../monitor/cluster/ClusterMonitor.java | 13 ++++++--- .../autoscaler/rule/RuleTasksDelegator.java | 28 ++++++++++++++++---- .../processor/group/GroupStatusProcessor.java | 2 +- .../rest/endpoint/api/StratosApiV41.java | 4 +-- .../rest/endpoint/api/StratosApiV41Utils.java | 14 +++++----- .../tests/SampleApplicationsTest.java | 18 ++++++++++--- 6 files changed, 58 insertions(+), 21 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/bf5d0baa/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java index 309fe12..711abf4 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java @@ -1354,9 +1354,16 @@ public class ClusterMonitor extends Monitor { if (StringUtils.isBlank(networkPartitionId)) { throw new RuntimeException("Network partition id is null"); } - ClusterLevelNetworkPartitionContext networkPartitionContext = - clusterLevelNetworkPartitionContextMap.get(networkPartitionId); - if (networkPartitionContext == null) { + ClusterLevelNetworkPartitionContext networkPartitionContext = + null; + try { + networkPartitionContext = + clusterLevelNetworkPartitionContextMap.get( + CloudControllerServiceClient.getInstance().getNetworkPartition(networkPartitionId).getId()); + } catch (RemoteException e) { + log.error("Error while retrieving network partition", e); + } + if (networkPartitionContext == null) { throw new RuntimeException("Network partition context not found: [network-partition-id] " + networkPartitionId); } http://git-wip-us.apache.org/repos/asf/stratos/blob/bf5d0baa/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java index 51443a1..d1a6f72 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java @@ -36,9 +36,12 @@ import org.apache.stratos.autoscaler.context.partition.network.ClusterLevelNetwo import org.apache.stratos.autoscaler.event.publisher.InstanceNotificationPublisher; import org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitor; import org.apache.stratos.cloud.controller.stub.domain.MemberContext; +import org.apache.stratos.cloud.controller.stub.domain.NetworkPartition; import org.apache.stratos.common.client.CloudControllerServiceClient; import org.apache.stratos.common.constants.StratosConstants; +import java.rmi.RemoteException; + /** * This will have utility methods that need to be executed from rule file... */ @@ -181,6 +184,13 @@ public class RuleTasksDelegator { try { String nwPartitionId = clusterMonitorPartitionContext.getNetworkPartitionId(); + String nwPartitionUuid=null; + NetworkPartition[] networkPartitionList= CloudControllerServiceClient.getInstance().getNetworkPartitions(); + for(int i=0;i<networkPartitionList.length;i++){ + if(networkPartitionList[i].getId().equals(nwPartitionId)){ + nwPartitionUuid=networkPartitionList[i].getUuid(); + } + } // Calculate accumulation of minimum counts of all the partition of current network partition int minimumCountOfNetworkPartition; @@ -196,10 +206,11 @@ public class RuleTasksDelegator { MemberContext memberContext = AutoscalerCloudControllerClient.getInstance() .startInstance(clusterMonitorPartitionContext.getPartition(), - clusterId, - clusterInstanceId, clusterMonitorPartitionContext.getNetworkPartitionId(), - isPrimary, - minimumCountOfNetworkPartition); + clusterId, + clusterInstanceId, + nwPartitionUuid, + isPrimary, + minimumCountOfNetworkPartition); if (memberContext != null) { ClusterLevelPartitionContext partitionContext = clusterInstanceContext. getPartitionCtxt(clusterMonitorPartitionContext.getPartitionId()); @@ -251,7 +262,14 @@ public class RuleTasksDelegator { } //Notify parent for checking scaling dependencies ClusterMonitor clusterMonitor = AutoscalerContext.getInstance().getClusterMonitor(clusterId); - clusterMonitor.sendScalingDownBeyondMinEvent(networkPartitionId, instanceId); + String networkPartition= null; + try { + networkPartition = + CloudControllerServiceClient.getInstance().getNetworkPartition(networkPartitionId).getId(); + } catch (RemoteException e) { + log.error("Error while retrieving the network partition"); + } + clusterMonitor.sendScalingDownBeyondMinEvent(networkPartition, instanceId); } public void delegateTerminate(ClusterLevelPartitionContext clusterMonitorPartitionContext, String memberId) { http://git-wip-us.apache.org/repos/asf/stratos/blob/bf5d0baa/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessor.java index e4ae474..4a51f61 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessor.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessor.java @@ -99,7 +99,7 @@ public abstract class GroupStatusProcessor extends StatusProcessor { ClusterStatus status, String instanceId) { boolean clusterStat = false; for (Map.Entry<String, ClusterDataHolder> clusterDataHolderEntry : clusterData.entrySet()) { - String serviceName = clusterDataHolderEntry.getValue().getServiceType(); + String serviceName = clusterDataHolderEntry.getValue().getServiceUuid(); String clusterId = clusterDataHolderEntry.getValue().getClusterId(); TopologyManager.acquireReadLockForCluster(serviceName, clusterId); try { http://git-wip-us.apache.org/repos/asf/stratos/blob/bf5d0baa/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 b973d8e..bfb304a 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 @@ -1325,8 +1325,8 @@ public class StratosApiV41 extends AbstractApi { public Response getApplicationRuntime( @PathParam("applicationId") String applicationId) throws RestAPIException { - - ApplicationInfoBean applicationRuntime = StratosApiV41Utils.getApplicationRuntime(applicationId); + PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext(); + ApplicationInfoBean applicationRuntime = StratosApiV41Utils.getApplicationRuntime(applicationId,carbonContext.getTenantId()); if (applicationRuntime == null) { return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean( ResponseMessageBean.ERROR, "Application runtime not found")).build(); http://git-wip-us.apache.org/repos/asf/stratos/blob/bf5d0baa/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 72ac6b0..2728778 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 @@ -1984,14 +1984,16 @@ public class StratosApiV41Utils { * @param applicationId Application Id * @return ApplicationInfoBean */ - public static ApplicationInfoBean getApplicationRuntime(String applicationId) + public static ApplicationInfoBean getApplicationRuntime(String applicationId,int tenantId) throws RestAPIException { ApplicationInfoBean applicationBean = null; ApplicationContext applicationContext = null; + String applicationUuid=null; //Checking whether application is in deployed mode try { + applicationUuid=getAutoscalerServiceClient().getApplicationByTenant(applicationId,tenantId).getApplicationUuid(); applicationContext = getAutoscalerServiceClient(). - getApplication(applicationId); + getApplication(applicationUuid); } catch (RemoteException e) { String message = "Could not get application definition: [application-id] " + applicationId; log.error(message, e); @@ -2005,8 +2007,8 @@ public class StratosApiV41Utils { } try { - ApplicationManager.acquireReadLockForApplication(applicationId); - Application application = ApplicationManager.getApplications().getApplication(applicationId); + ApplicationManager.acquireReadLockForApplication(applicationUuid); + Application application = ApplicationManager.getApplications().getApplication(applicationUuid); if (application.getInstanceContextCount() > 0 || (applicationContext != null && applicationContext.getStatus().equals("Deployed"))) { @@ -2021,7 +2023,7 @@ public class StratosApiV41Utils { } } } finally { - ApplicationManager.releaseReadLockForApplication(applicationId); + ApplicationManager.releaseReadLockForApplication(applicationUuid); } return applicationBean; @@ -2063,7 +2065,7 @@ public class StratosApiV41Utils { for (Map.Entry<String, ClusterDataHolder> entry : topLevelClusterDataMap.entrySet()) { ClusterDataHolder clusterDataHolder = entry.getValue(); String clusterId = clusterDataHolder.getClusterId(); - String serviceType = clusterDataHolder.getServiceType(); + String serviceType = clusterDataHolder.getServiceUuid(); try { TopologyManager.acquireReadLockForCluster(serviceType, clusterId); Cluster cluster = TopologyManager.getTopology().getService(serviceType).getCluster(clusterId); http://git-wip-us.apache.org/repos/asf/stratos/blob/bf5d0baa/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 47384eb..941a1ac 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 @@ -25,6 +25,7 @@ import org.apache.commons.exec.PumpStreamHandler; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.stratos.common.client.AutoscalerServiceClient; import org.apache.stratos.common.threading.StratosThreadPool; import org.apache.stratos.messaging.domain.application.Application; import org.apache.stratos.messaging.domain.application.ApplicationStatus; @@ -35,6 +36,7 @@ import org.testng.annotations.Test; import java.io.ByteArrayOutputStream; import java.io.File; +import java.rmi.RemoteException; import java.util.concurrent.ExecutorService; import static junit.framework.Assert.*; @@ -71,10 +73,18 @@ public class SampleApplicationsTest extends StratosTestServerManager { } private void runApplicationTest(String applicationFolderName, String applicationId) { - executeCommand(getApplicationsPath() + "/" + applicationFolderName + "/scripts/mock/deploy.sh"); - assertApplicationActivation(applicationId); - executeCommand(getApplicationsPath() + "/" + applicationFolderName + "/scripts/mock/undeploy.sh"); - assertApplicationNotExists(applicationId); + String applicationUuid= null; + try { + applicationUuid = + AutoscalerServiceClient.getInstance().getApplicationByTenant(applicationId,-1234).getApplicationUuid(); + log.info("Integration test application uuid"+applicationUuid); + } catch (RemoteException e) { + log.error(e); + } + executeCommand(getApplicationsPath() + "/" + applicationFolderName + "/scripts/mock/deploy.sh"); + assertApplicationActivation(applicationUuid); + //executeCommand(getApplicationsPath() + "/" + applicationFolderName + "/scripts/mock/undeploy.sh"); + //assertApplicationNotExists(applicationUuid); } /**
