You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2015/01/03 12:32:01 UTC

[1/3] stratos git commit: Introducing artifact synchronization logic for service grouping functionality

Repository: stratos
Updated Branches:
  refs/heads/master 278382ce5 -> a71a6a005


Introducing artifact synchronization logic for service grouping functionality


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

Branch: refs/heads/master
Commit: a71a6a0051cfbbbf01f51f569c8766f6c87d3efc
Parents: 4a53aea
Author: Imesh Gunaratne <im...@apache.org>
Authored: Sat Jan 3 17:00:54 2015 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Sat Jan 3 17:01:50 2015 +0530

----------------------------------------------------------------------
 .../config/CartridgeAgentConfiguration.java     |   5 +
 .../publisher/CartridgeAgentEventPublisher.java |   1 +
 .../context/CloudControllerContext.java         |   2 +-
 .../cloud/controller/domain/ClusterContext.java |  57 +++-----
 .../cloud/controller/domain/MemberContext.java  |  90 ++++++-------
 .../iaases/kubernetes/KubernetesIaas.java       |   8 +-
 .../iaases/mock/service/MockIaasService.java    |   3 +-
 .../iaases/mock/service/MockMemberContext.java  |   9 +-
 .../mock/service/MockMemberEventPublisher.java  |   1 +
 .../impl/CloudControllerServiceImpl.java        |  58 ++++----
 .../impl/CloudControllerServiceUtil.java        |   2 +-
 .../axiom/CloudControllerContextTest.java       |  38 +++---
 .../live/KubernetesApiClientLiveTest.java       |   2 +-
 .../application/beans/SubscribableInfo.java     |  10 --
 .../internal/ADCManagementServerComponent.java  |  59 +++------
 .../listener/InstanceStatusListener.java        | 109 ---------------
 ...ratosManagerInstanceStatusEventReceiver.java | 132 +++++++++++++++++++
 .../manager/listener/TenantStatusListner.java   |  42 ------
 .../InstanceNotificationPublisher.java          |  23 ++--
 .../repository/RepositoryNotification.java      |  26 ++--
 .../SubscriptionMultiTenantBehaviour.java       |   8 +-
 .../instance/status/InstanceStartedEvent.java   |  15 ++-
 22 files changed, 327 insertions(+), 373 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/a71a6a00/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/config/CartridgeAgentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/config/CartridgeAgentConfiguration.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/config/CartridgeAgentConfiguration.java
index 1326509..1ae1a79 100644
--- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/config/CartridgeAgentConfiguration.java
+++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/config/CartridgeAgentConfiguration.java
@@ -73,6 +73,7 @@ public class CartridgeAgentConfiguration {
     private String kubernetesClusterId;
     private String instanceId;
     private String clusterInstanceId;
+    private String applicationId;
 
 
     private CartridgeAgentConfiguration() {
@@ -602,4 +603,8 @@ public class CartridgeAgentConfiguration {
     public void setClusterInstanceId(String clusterInstanceId) {
         this.clusterInstanceId = clusterInstanceId;
     }
+
+    public String getApplicationId() {
+        return applicationId;
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/a71a6a00/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/event/publisher/CartridgeAgentEventPublisher.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/event/publisher/CartridgeAgentEventPublisher.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/event/publisher/CartridgeAgentEventPublisher.java
index a47497b..22f4ca2 100644
--- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/event/publisher/CartridgeAgentEventPublisher.java
+++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/event/publisher/CartridgeAgentEventPublisher.java
@@ -49,6 +49,7 @@ public class CartridgeAgentEventPublisher {
 				log.info("Publishing instance started event");
 			}
 			InstanceStartedEvent event = new InstanceStartedEvent(
+					CartridgeAgentConfiguration.getInstance().getApplicationId(),
 					CartridgeAgentConfiguration.getInstance().getServiceName(),
 					CartridgeAgentConfiguration.getInstance().getClusterId(),
 					CartridgeAgentConfiguration.getInstance().getMemberId(),

http://git-wip-us.apache.org/repos/asf/stratos/blob/a71a6a00/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java
index 01bd479..1fc3d85 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java
@@ -367,7 +367,7 @@ public class CloudControllerContext implements Serializable {
         return memberContextList;
     }
 
-    public MemberContext removeMemberContext(String memberId, String clusterId) {
+    public MemberContext removeMemberContext(String clusterId, String memberId) {
         MemberContext removedMemberContext = memberIdToMemberContextMap.get(memberId);
         memberIdToMemberContextMap.remove(memberId);
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/a71a6a00/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/ClusterContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/ClusterContext.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/ClusterContext.java
index fb52685..dd5f43e 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/ClusterContext.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/ClusterContext.java
@@ -33,14 +33,13 @@ import org.apache.stratos.kubernetes.client.model.Service;
 public class ClusterContext implements Serializable{
 
     private static final long serialVersionUID = 4830667953031229223L;
-    // cluster id
-    private String clusterId;
-    // cartridge type
-    private String cartridgeType;
-    // payload as a String
-    private String payload;
-    private String hostName;
-    private boolean isLbCluster;
+
+    private final String applicationId;
+    private final String clusterId;
+    private final String cartridgeType;
+    private final String payload;
+    private final String hostName;
+    private final boolean isLbCluster;
     private boolean isVolumeRequired;
     private Volume[] volumes;
     // timeout in milliseconds - this would be the per member time that CC waits before forcefully terminate instances on an unregistration.
@@ -49,58 +48,42 @@ public class ClusterContext implements Serializable{
     private List<Service> kubernetesServices;
     private String kubernetesClusterId;
 
-    public ClusterContext(String clusterId, String cartridgeType, String payload, String hostName, 
-    		boolean isLbCluster, Properties properties) {
-        this.clusterId = clusterId;
+    public ClusterContext(String applicationId, String cartridgeType, String clusterId, String payload, String hostName,
+                          boolean isLbCluster, Properties properties) {
+
+        this.applicationId = applicationId;
         this.cartridgeType = cartridgeType;
+        this.clusterId = clusterId;
         this.payload = payload;
-        this.setHostName(hostName);
+        this.hostName = hostName;
         this.isLbCluster = isLbCluster;
         this.setProperties(properties);
     }
-    
+
+    public String getApplicationId() {
+        return applicationId;
+    }
+
     public String getClusterId() {
         return clusterId;
     }
-    public void setClusterId(String clusterId) {
-        this.clusterId = clusterId;
-    }
+
     public String getCartridgeType() {
         return cartridgeType;
     }
-    public void setCartridgeType(String cartridgeType) {
-        this.cartridgeType = cartridgeType;
-    }
+
     public String getPayload() {
         return payload;
     }
-    public void setPayload(String payload) {
-        this.payload = payload;
-    }
 
     public String getHostName() {
         return hostName;
     }
 
-    public String findContainerHostName() {
-        if (hostName.indexOf('.') != -1) {
-            hostName = hostName.replace('.', '-');
-        }
-        return hostName;
-    }
-
-    public void setHostName(String hostName) {
-        this.hostName = hostName;
-    }
-
 	public boolean isLbCluster() {
 		return isLbCluster;
 	}
 
-	public void setLbCluster(boolean isLbCluster) {
-		this.isLbCluster = isLbCluster;
-	}
-	
 	public boolean isVolumeRequired() {
 		return isVolumeRequired;
 	}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a71a6a00/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/MemberContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/MemberContext.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/MemberContext.java
index f579f4d..d7acbe2 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/MemberContext.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/MemberContext.java
@@ -34,12 +34,13 @@ public class MemberContext implements Serializable {
 
     private static final long serialVersionUID = -388327475844701869L;
 
+    private final String applicationId;
     // Cartridge type this member belongs to
-    private String cartridgeType;
+    private final String cartridgeType;
     // Cluster id of this member
-    private String clusterId;
+    private final String clusterId;
     // Member id generated by cloud controller
-    private String memberId;
+    private final String memberId;
     // Instance id generated by the IaaS
     private String instanceId;
     // Instance id of the application hierarchy member belongs to
@@ -73,46 +74,33 @@ public class MemberContext implements Serializable {
     private Properties properties;
     private List<NameValuePair> dynamicPayload;
 
-    public MemberContext(String id, String clusterId, Partition partition) {
-        this.memberId = id;
+    public MemberContext(String applicationId, String cartridgeType, String clusterId, String memberId) {
+
+        this.applicationId = applicationId;
+        this.cartridgeType = cartridgeType;
         this.clusterId = clusterId;
-        this.setPartition(partition);
-        init();
-    }
-    
-    public MemberContext() {
-        init();
-    }
-    
-    private void init() {
+        this.memberId = memberId;
+
         this.properties = new Properties();
         this.properties.setProperties(new Property[0]);
     }
+
+    public String getApplicationId() {
+        return applicationId;
+    }
     
     public String getMemberId() {
         return memberId;
     }
 
-    public void setMemberId(String memberId) {
-        this.memberId = memberId;
-    }
-
     public String getClusterId() {
         return clusterId;
     }
 
-    public void setClusterId(String clusterId) {
-        this.clusterId = clusterId;
-    }
-
     public String getCartridgeType() {
         return cartridgeType;
     }
 
-    public void setCartridgeType(String cartridgeType) {
-        this.cartridgeType = cartridgeType;
-    }
-
     public Partition getPartition() {
         return partition;
     }
@@ -205,23 +193,16 @@ public class MemberContext implements Serializable {
 			return false;
 		if (getClass() != obj.getClass())
 			return false;
-		MemberContext other = (MemberContext) obj;
-		if (clusterId == null) {
-			if (other.clusterId != null)
-				return false;
-		} else if (!clusterId.equals(other.clusterId))
-			return false;
-		if (memberId == null) {
-			if (other.memberId != null)
-				return false;
-		} else if (!memberId.equals(other.memberId))
-			return false;
-		if (instanceId == null) {
-			if (other.instanceId != null)
-				return false;
-		} else if (!instanceId.equals(other.instanceId))
-			return false;
-		return true;
+
+        MemberContext other = (MemberContext) obj;
+		if(getApplicationId().equals(other.getApplicationId()) &&
+                getCartridgeType().equals(other.getCartridgeType()) &&
+                getClusterId().equals(other.getClusterId()) &&
+                getMemberId().equals(other.getMemberId()) &&
+                getInstanceId().equals(other.getInstanceId())) {
+            return true;
+        }
+		return false;
 	}
 
 	public String getInstanceId() {
@@ -282,13 +263,22 @@ public class MemberContext implements Serializable {
 
     @Override
     public String toString() {
-        return "MemberContext [memberId=" + memberId + ", instanceId=" + instanceId
-                + ", clusterId=" + clusterId + ", partition=" + partition
-                + ", cartridgeType=" + cartridgeType + ", defaultPrivateIP=" + defaultPrivateIP
-                + ", defaultPublicIP=" + defaultPublicIP + ", allocatedIPs=" + Arrays.toString(allocatedIPs)
-                + ", publicIPs=" + Arrays.toString(publicIPs) + ", privateIPs=" + Arrays.toString(privateIPs)
-                + ", initTime=" + initTime + ", lbClusterId=" + lbClusterId
-                + ", networkPartitionId=" + networkPartitionId + ", instanceMetadata=" + instanceMetadata +
+        return "MemberContext ["
+                + "applicationId=" + applicationId
+                + ", cartridgeType=" + cartridgeType
+                + ", clusterId=" + clusterId
+                + ", memberId=" + memberId
+                + ", instanceId=" + instanceId
+                + ", partition=" + partition
+                + ", defaultPrivateIP=" + defaultPrivateIP
+                + ", defaultPublicIP=" + defaultPublicIP
+                + ", allocatedIPs=" + Arrays.toString(allocatedIPs)
+                + ", publicIPs=" + Arrays.toString(publicIPs)
+                + ", privateIPs=" + Arrays.toString(privateIPs)
+                + ", initTime=" + initTime
+                + ", lbClusterId=" + lbClusterId
+                + ", networkPartitionId=" + networkPartitionId
+                + ", instanceMetadata=" + instanceMetadata +
                 ", properties=" + properties + "]";
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/a71a6a00/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java
index 716d373..556888a 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java
@@ -242,11 +242,10 @@ public class KubernetesIaas extends Iaas {
     }
 
     private MemberContext createNewMemberContext(MemberContext memberContext, Pod pod) {
-        MemberContext newMemberContext = new MemberContext();
-        newMemberContext.setCartridgeType(memberContext.getCartridgeType());
-        newMemberContext.setClusterId(memberContext.getClusterId());
+        MemberContext newMemberContext = new MemberContext(memberContext.getApplicationId(),
+                memberContext.getCartridgeType(), memberContext.getClusterId(), memberContext.getMemberId());
+
         newMemberContext.setClusterInstanceId(memberContext.getClusterInstanceId());
-        newMemberContext.setMemberId(memberContext.getMemberId());
         newMemberContext.setNetworkPartitionId(memberContext.getNetworkPartitionId());
         newMemberContext.setPartition(memberContext.getPartition());
         newMemberContext.setInstanceId(pod.getId());
@@ -256,6 +255,7 @@ public class KubernetesIaas extends Iaas {
         newMemberContext.setPublicIPs(new String[]{pod.getCurrentState().getHost()});
         newMemberContext.setInitTime(memberContext.getInitTime());
         newMemberContext.setProperties(memberContext.getProperties());
+
         return newMemberContext;
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/a71a6a00/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/service/MockIaasService.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/service/MockIaasService.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/service/MockIaasService.java
index 67f82f7..e5b6e13 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/service/MockIaasService.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/service/MockIaasService.java
@@ -106,7 +106,8 @@ public class MockIaasService {
     public MemberContext createInstance(MemberContext memberContext) {
         synchronized (MockIaasService.class) {
             // Create mock member instance
-            MockMemberContext mockMemberContext = new MockMemberContext(memberContext.getCartridgeType(),
+            MockMemberContext mockMemberContext = new MockMemberContext(
+                    memberContext.getApplicationId(), memberContext.getCartridgeType(),
                     memberContext.getClusterId(), memberContext.getMemberId(), memberContext.getInstanceId(),
                     memberContext.getClusterInstanceId(), memberContext.getNetworkPartitionId(),
                     memberContext.getPartition().getId());

http://git-wip-us.apache.org/repos/asf/stratos/blob/a71a6a00/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/service/MockMemberContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/service/MockMemberContext.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/service/MockMemberContext.java
index 48bb3b2..f045746 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/service/MockMemberContext.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/service/MockMemberContext.java
@@ -25,6 +25,8 @@ import java.io.Serializable;
  * Mock member context.
  */
 public class MockMemberContext implements Serializable {
+
+    private final String applicationId;
     private final String serviceName;
     private final String clusterId;
     private final String memberId;
@@ -33,8 +35,9 @@ public class MockMemberContext implements Serializable {
     private final String networkPartitionId;
     private final String partitionId;
 
-    public MockMemberContext(String serviceName, String clusterId, String memberId, String instanceId,
+    public MockMemberContext(String applicationId, String serviceName, String clusterId, String memberId, String instanceId,
                              String clusterInstanceId, String networkPartitionId, String partitionId) {
+        this.applicationId = applicationId;
         this.serviceName = serviceName;
         this.clusterId = clusterId;
         this.memberId = memberId;
@@ -71,4 +74,8 @@ public class MockMemberContext implements Serializable {
     public String getPartitionId() {
         return partitionId;
     }
+
+    public String getApplicationId() {
+        return applicationId;
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/a71a6a00/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/service/MockMemberEventPublisher.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/service/MockMemberEventPublisher.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/service/MockMemberEventPublisher.java
index cb0a6f5..50e6e77 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/service/MockMemberEventPublisher.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/service/MockMemberEventPublisher.java
@@ -41,6 +41,7 @@ public class MockMemberEventPublisher {
             log.info("Publishing instance started event");
         }
         InstanceStartedEvent event = new InstanceStartedEvent(
+                mockMemberContext.getApplicationId(),
                 mockMemberContext.getServiceName(),
                 mockMemberContext.getClusterId(),
                 mockMemberContext.getMemberId(),

http://git-wip-us.apache.org/repos/asf/stratos/blob/a71a6a00/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 0a077aa..30fe391 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
@@ -350,16 +350,15 @@ public class CloudControllerServiceImpl implements CloudControllerService {
             }
 
             // Generate member ID
-            String memberID = generateMemberId(clusterId);
+            String memberId = generateMemberId(clusterId);
 
             // Create member context
-            MemberContext memberContext = createMemberContext(instanceContext);
-            memberContext.setMemberId(memberID);
-            memberContext.setCartridgeType(cartridgeType);
+            String applicationId = clusterContext.getApplicationId();
+            MemberContext memberContext = createMemberContext(applicationId, cartridgeType, memberId, instanceContext);
 
             // Prepare payload
             StringBuilder payload = new StringBuilder(clusterContext.getPayload());
-            addToPayload(payload, "MEMBER_ID", memberID);
+            addToPayload(payload, "MEMBER_ID", memberId);
             addToPayload(payload, "INSTANCE_ID", memberContext.getInstanceId());
             addToPayload(payload, "CLUSTER_INSTANCE_ID", memberContext.getClusterInstanceId());
             addToPayload(payload, "LB_CLUSTER_ID", memberContext.getLbClusterId());
@@ -400,11 +399,11 @@ public class CloudControllerServiceImpl implements CloudControllerService {
             }
 
             // Start instance in a new thread
-            ThreadExecutor exec = ThreadExecutor.getInstance();
+            ThreadExecutor threadExecutor = ThreadExecutor.getInstance();
             if (log.isDebugEnabled()) {
-                log.debug("Cloud Controller is starting the instance creator thread...");
+                log.debug("Starting the instance creator thread...");
             }
-            exec.execute(new InstanceCreator(memberContext, iaasProvider));
+            threadExecutor.execute(new InstanceCreator(memberContext, iaasProvider));
 
             TopologyBuilder.handleMemberCreatedEvent(memberContext);
             return memberContext;
@@ -415,16 +414,18 @@ public class CloudControllerServiceImpl implements CloudControllerService {
         }
     }
 
-    private MemberContext createMemberContext(InstanceContext instanceContext) {
-        MemberContext memberContext = new MemberContext();
-        memberContext.setCartridgeType(instanceContext.getCartridgeType());
-        memberContext.setClusterId(instanceContext.getClusterId());
+    private MemberContext createMemberContext(String applicationId, String cartridgeType, String memberId,
+                                              InstanceContext instanceContext) {
+        MemberContext memberContext = new MemberContext(
+                applicationId, cartridgeType, instanceContext.getClusterId(), memberId);
+
         memberContext.setClusterInstanceId(instanceContext.getClusterInstanceId());
         memberContext.setNetworkPartitionId(instanceContext.getNetworkPartitionId());
         memberContext.setPartition(instanceContext.getPartition());
         memberContext.setInitTime(instanceContext.getInitTime());
         memberContext.setProperties(instanceContext.getProperties());
         memberContext.setInitTime(System.currentTimeMillis());
+
         return memberContext;
     }
 
@@ -1023,31 +1024,28 @@ public class CloudControllerServiceImpl implements CloudControllerService {
             List<Cluster> clusters = new ArrayList<Cluster>();
 
             for (ApplicationClusterContext appClusterCtxt : appClustersContexts) {
-                CloudControllerContext.getInstance().addClusterContext(new ClusterContext(appClusterCtxt.getClusterId(),
-                        appClusterCtxt.getCartridgeType(), appClusterCtxt.getTextPayload(),
-                        appClusterCtxt.getHostName(), appClusterCtxt.isLbCluster(), appClusterCtxt.getProperties()));
-                // create Cluster objects
-                Cluster newCluster = new Cluster(appClusterCtxt.getCartridgeType(), appClusterCtxt.getClusterId(),
+                ClusterContext clusterContext = new ClusterContext(
+                        appId, appClusterCtxt.getCartridgeType(), appClusterCtxt.getClusterId(),
+                        appClusterCtxt.getTextPayload(), appClusterCtxt.getHostName(),
+                        appClusterCtxt.isLbCluster(), appClusterCtxt.getProperties());
+
+                CloudControllerContext.getInstance().addClusterContext(clusterContext);
+
+                // Create cluster object
+                Cluster cluster = new Cluster(appClusterCtxt.getCartridgeType(), appClusterCtxt.getClusterId(),
                         appClusterCtxt.getDeploymentPolicyName(), appClusterCtxt.getAutoscalePolicyName(), appId);
-                newCluster.setLbCluster(false);
-                newCluster.setTenantRange(appClusterCtxt.getTenantRange());
-                //newCluster.setStatus(ClusterStatus.Created, null);
-                newCluster.setHostNames(Arrays.asList(appClusterCtxt.getHostName()));
-                Cartridge cartridge = CloudControllerContext.getInstance().getCartridge(appClusterCtxt.getCartridgeType());
-                // TODO: Fix kubernetes config
-//                if (cartridge.getDeployerType() != null &&
-//                        cartridge.getDeployerType().equals(StratosConstants.KUBERNETES_DEPLOYER_TYPE)) {
-//                    newCluster.setKubernetesCluster(true);
-//                }
+                cluster.setLbCluster(false);
+                cluster.setTenantRange(appClusterCtxt.getTenantRange());
+                cluster.setHostNames(Arrays.asList(appClusterCtxt.getHostName()));
+
                 if (appClusterCtxt.getProperties() != null) {
                     Properties properties = CloudControllerUtil.toJavaUtilProperties(appClusterCtxt.getProperties());
-                    newCluster.setProperties(properties);
+                    cluster.setProperties(properties);
                 }
 
-                clusters.add(newCluster);
+                clusters.add(cluster);
             }
             TopologyBuilder.handleApplicationClustersCreated(appId, clusters);
-
             CloudControllerContext.getInstance().persist();
         } finally {
             if (lock != null) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/a71a6a00/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceUtil.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceUtil.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceUtil.java
index 9fdd77f..4707d30 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceUtil.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceUtil.java
@@ -76,7 +76,7 @@ public class CloudControllerServiceUtil {
                 null);
 
         // Remove member context
-        CloudControllerContext.getInstance().removeMemberContext(memberContext.getMemberId(), memberContext.getClusterId());
+        CloudControllerContext.getInstance().removeMemberContext(memberContext.getClusterId(), memberContext.getMemberId());
 
         // Persist cloud controller context
         CloudControllerContext.getInstance().persist();

http://git-wip-us.apache.org/repos/asf/stratos/blob/a71a6a00/components/org.apache.stratos.cloud.controller/src/test/java/org/apache/cartridge/autoscaler/service/axiom/CloudControllerContextTest.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/test/java/org/apache/cartridge/autoscaler/service/axiom/CloudControllerContextTest.java b/components/org.apache.stratos.cloud.controller/src/test/java/org/apache/cartridge/autoscaler/service/axiom/CloudControllerContextTest.java
index cc7919a..b48055f 100644
--- a/components/org.apache.stratos.cloud.controller/src/test/java/org/apache/cartridge/autoscaler/service/axiom/CloudControllerContextTest.java
+++ b/components/org.apache.stratos.cloud.controller/src/test/java/org/apache/cartridge/autoscaler/service/axiom/CloudControllerContextTest.java
@@ -42,17 +42,20 @@ public class CloudControllerContextTest extends TestCase {
         ServiceReferenceHolder.getInstance().setDistributedObjectProvider(new HazelcastDistributedObjectProvider());
         ServiceReferenceHolder.getInstance().setAxisConfiguration(axisConfiguration);
 
-    	CloudControllerContext context = CloudControllerContext.getInstance();
-    	Thread t1 = new Thread(new MemberAdder(context));
+    	CloudControllerContext cloudControllerContext = CloudControllerContext.getInstance();
+
+		Thread t1 = new Thread(new MemberAdder(cloudControllerContext));
     	t1.start();
     	t1.join();
-    	assertEquals(2, context.getMemberContextsOfClusterId("123").size());
-    	Thread t2 = new Thread(new MemberRemover(context));
+    	assertEquals(2, cloudControllerContext.getMemberContextsOfClusterId("cluster-1").size());
+
+		Thread t2 = new Thread(new MemberRemover(cloudControllerContext));
     	t2.start();
     	t2.join();
-    	assertEquals(1, context.getMemberContextsOfClusterId("123").size());
+    	assertEquals(1, cloudControllerContext.getMemberContextsOfClusterId("cluster-1").size());
     	
     }
+
     class MemberAdder implements Runnable {
     	
     	private CloudControllerContext dataHolder;
@@ -61,33 +64,26 @@ public class CloudControllerContextTest extends TestCase {
     	}
     	@Override
     	public void run() {
-    		MemberContext ctxt1 = new MemberContext();
-    		ctxt1.setMemberId("abc");
-    		ctxt1.setClusterId("123");
-    		MemberContext ctxt2 = new MemberContext();
-    		ctxt2.setMemberId("def");
-    		ctxt2.setClusterId("456");
-    		MemberContext ctxt3 = new MemberContext();
-    		ctxt3.setMemberId("ghi");
-    		ctxt3.setClusterId("123");
+    		MemberContext ctxt1 = new MemberContext("application-1", "cartridge-1", "cluster-1", "member-1");
+    		MemberContext ctxt2 = new MemberContext("application-1", "cartridge-1", "cluster-1", "member-2");
+    		MemberContext ctxt3 = new MemberContext("application-1", "cartridge-1", "cluster-2", "member-3");
     		dataHolder.addMemberContext(ctxt1);
     		dataHolder.addMemberContext(ctxt2);
     		dataHolder.addMemberContext(ctxt3);
     	}
-    	
     }
     
     class MemberRemover implements Runnable {
     	
     	private CloudControllerContext dataHolder;
-    	public MemberRemover(CloudControllerContext data) {
-    		this.dataHolder = data;
+
+		public MemberRemover(CloudControllerContext cloudControllerContext) {
+    		this.dataHolder = cloudControllerContext;
     	}
-    	@Override
+
+		@Override
     	public void run() {
-    		dataHolder.removeMemberContext("ghi", "123");
+    		dataHolder.removeMemberContext("cluster-1", "member-1");
     	}
-    	
     }
-    
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/a71a6a00/components/org.apache.stratos.kubernetes.client/src/test/java/org/apache/stratos/kubernetes/client/live/KubernetesApiClientLiveTest.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.kubernetes.client/src/test/java/org/apache/stratos/kubernetes/client/live/KubernetesApiClientLiveTest.java b/components/org.apache.stratos.kubernetes.client/src/test/java/org/apache/stratos/kubernetes/client/live/KubernetesApiClientLiveTest.java
index 687b08c..b077f87 100644
--- a/components/org.apache.stratos.kubernetes.client/src/test/java/org/apache/stratos/kubernetes/client/live/KubernetesApiClientLiveTest.java
+++ b/components/org.apache.stratos.kubernetes.client/src/test/java/org/apache/stratos/kubernetes/client/live/KubernetesApiClientLiveTest.java
@@ -75,7 +75,7 @@ public class KubernetesApiClientLiveTest extends TestCase{
     }
 
     @AfterClass
-    public void cleanup() {
+    public void tearDown() {
         deleteReplicationControllers();
         deletePods();
         deleteServices();

http://git-wip-us.apache.org/repos/asf/stratos/blob/a71a6a00/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/beans/SubscribableInfo.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/beans/SubscribableInfo.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/beans/SubscribableInfo.java
index 6c784fe..c98233c 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/beans/SubscribableInfo.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/beans/SubscribableInfo.java
@@ -30,25 +30,15 @@ public class SubscribableInfo implements Serializable {
     private static final long serialVersionUID = 8097432440778125606L;
 
 	private String alias;
-
     private String deploymentPolicy;
-
     private String autoscalingPolicy;
-
     private String repoUrl;
-
     private boolean privateRepo;
-
     private String repoUsername;
-
     private int maxMembers;
-
     private int minMembers;
-
     private String repoPassword;
-
     private String[] dependencyAliases;
-    
     private List<PropertyBean> property;
 
     public String getAlias() {

http://git-wip-us.apache.org/repos/asf/stratos/blob/a71a6a00/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/ADCManagementServerComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/ADCManagementServerComponent.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/ADCManagementServerComponent.java
index 305b7ba..ae4a2c2 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/ADCManagementServerComponent.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/ADCManagementServerComponent.java
@@ -21,7 +21,7 @@ package org.apache.stratos.manager.internal;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.common.threading.StratosThreadPool;
-import org.apache.stratos.manager.listener.InstanceStatusListener;
+import org.apache.stratos.manager.listener.StratosManagerInstanceStatusEventReceiver;
 import org.apache.stratos.manager.listener.TenantUserRoleCreator;
 import org.apache.stratos.manager.publisher.TenantEventPublisher;
 import org.apache.stratos.manager.publisher.TenantSynchronizerTaskScheduler;
@@ -30,7 +30,6 @@ import org.apache.stratos.manager.topology.receiver.StratosManagerTopologyEventR
 import org.apache.stratos.manager.utils.CartridgeConfigFileReader;
 import org.apache.stratos.manager.utils.UserRoleCreator;
 import org.apache.stratos.messaging.broker.publish.EventPublisherPool;
-import org.apache.stratos.messaging.broker.subscribe.TopicSubscriber;
 import org.apache.stratos.messaging.util.Util;
 import org.osgi.service.component.ComponentContext;
 import org.wso2.carbon.ntask.core.service.TaskService;
@@ -69,7 +68,9 @@ public class ADCManagementServerComponent {
 	private static final Log log = LogFactory.getLog(ADCManagementServerComponent.class);
 	private static final String IDENTIFIER = "Stratos_manager";
 	private static final int THREAD_POOL_SIZE = 20;
-	private StratosManagerTopologyEventReceiver stratosManagerTopologyEventReceiver;
+
+    private StratosManagerTopologyEventReceiver topologyEventReceiver;
+    private StratosManagerInstanceStatusEventReceiver instanceStatusEventReceiver;
 	private ExecutorService executorService;
 
     protected void activate(ComponentContext componentContext) throws Exception {
@@ -92,13 +93,25 @@ public class ADCManagementServerComponent {
                     org.apache.stratos.common.listeners.TenantMgtListener.class.getName(),
                     tenantEventPublisher, null);
 
-            // Start instance status topic subscriber
             if(log.isDebugEnabled()) {
-                log.debug("Starting instance status topic subscriber...");
+                log.debug("Starting instance status event receiver...");
+            }
+            instanceStatusEventReceiver = new StratosManagerInstanceStatusEventReceiver();
+            instanceStatusEventReceiver.setExecutorService(executorService);
+            instanceStatusEventReceiver.execute();
+            if(log.isInfoEnabled()) {
+                log.info("Instance status event receiver thread started");
             }
-            TopicSubscriber topicSubscriber = new TopicSubscriber(Util.Topics.INSTANCE_STATUS_TOPIC.getTopicName(), new InstanceStatusListener());
-       		executorService.execute(topicSubscriber);
 
+            if(log.isDebugEnabled()) {
+                log.debug("Starting topology event receiver...");
+            }
+            topologyEventReceiver = new StratosManagerTopologyEventReceiver();
+            topologyEventReceiver.setExecutorService(executorService);
+            executorService.execute(topologyEventReceiver);
+            if(log.isInfoEnabled()) {
+                log.info("Topology event receiver thread started");
+            }
 
             RealmService realmService = DataHolder.getRealmService();
             UserRealm realm = realmService.getBootstrapRealm();
@@ -111,38 +124,8 @@ public class ADCManagementServerComponent {
                     org.apache.stratos.common.listeners.TenantMgtListener.class.getName(),
                     tenantUserRoleCreator, null);
 
-            //initializing the topology event subscriber
-            /*TopicSubscriber topologyTopicSubscriber = new TopicSubscriber(Constants.TOPOLOGY_TOPIC);
-            topologyTopicSubscriber.setMessageListener(new TopologyEventListner());
-            Thread topologyTopicSubscriberThread = new Thread(topologyTopicSubscriber);
-            topologyTopicSubscriberThread.start();
-
-            //Starting Topology Receiver
-            TopologyReceiver topologyReceiver = new TopologyReceiver();
-            Thread topologyReceiverThread = new Thread(topologyReceiver);
-            topologyReceiverThread.start();*/
-
-
-            stratosManagerTopologyEventReceiver = new StratosManagerTopologyEventReceiver();
-			stratosManagerTopologyEventReceiver.setExecutorService(executorService);
-			executorService.execute(stratosManagerTopologyEventReceiver);
-
-            log.info("Topology receiver thread started");
-
             // retrieve persisted CartridgeSubscriptions
             new DataInsertionAndRetrievalManager().cachePersistedSubscriptions();
-            
-            //Grouping
-            /*
-            if (log.isDebugEnabled()) {
-            	log.debug("restoring composite applications ...");
-            }
-            new CompositeApplicationManager().restoreCompositeApplications ();
-            
-            if (log.isDebugEnabled()) {
-            	log.debug("done restoring composite applications ...");
-            }
-            */
 
             //Component activated successfully
             log.info("ADC management server component is activated");
@@ -212,6 +195,6 @@ public class ADCManagementServerComponent {
 
 	    executorService.shutdownNow();
         //terminate Stratos Manager Topology Receiver
-        stratosManagerTopologyEventReceiver.terminate();
+        topologyEventReceiver.terminate();
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/a71a6a00/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/listener/InstanceStatusListener.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/listener/InstanceStatusListener.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/listener/InstanceStatusListener.java
deleted file mode 100644
index 66cf652..0000000
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/listener/InstanceStatusListener.java
+++ /dev/null
@@ -1,109 +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.manager.listener;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.manager.publisher.InstanceNotificationPublisher;
-import org.apache.stratos.manager.retriever.DataInsertionAndRetrievalManager;
-import org.apache.stratos.manager.subscription.CartridgeSubscription;
-import org.apache.stratos.messaging.broker.subscribe.MessageListener;
-import org.apache.stratos.messaging.domain.Message;
-import org.apache.stratos.messaging.event.instance.status.InstanceStartedEvent;
-import org.apache.stratos.messaging.util.Util;
-
-import java.util.Set;
-
-public class InstanceStatusListener implements MessageListener {
-
-    private static final Log log = LogFactory.getLog(InstanceStatusListener.class);
-
-    @Override
-    public void messageReceived(Message message) {
-        try {
-            if (log.isInfoEnabled()) {
-                log.info("Instance status message received");
-            }
-
-            String type = message.getEventClassName();
-            if (log.isInfoEnabled()) {
-                log.info(String.format("Event class name: %s ", type));
-            }
-            // If member started event is received publish artifact update
-            // message
-            // To do a git clone
-            if (InstanceStartedEvent.class.getName().equals(type)) {
-                String json = message.getText();
-                InstanceStartedEvent event =
-                        (InstanceStartedEvent) Util.jsonToObject(json,
-                                InstanceStartedEvent.class);
-                String clusterId = event.getClusterId();
-                if (log.isInfoEnabled()) {
-                    log.info("Cluster id: " + clusterId);
-                }
-
-                Set<CartridgeSubscription> cartridgeSubscriptions =
-                        new DataInsertionAndRetrievalManager().getCartridgeSubscriptionForCluster(clusterId);
-                if (cartridgeSubscriptions == null || cartridgeSubscriptions.isEmpty()) {
-                    // No subscriptions, return
-                    if (log.isDebugEnabled()) {
-                        log.debug("No subscription information found for cluster id " +
-                                clusterId);
-                    }
-                    return;
-                }
-
-                for (CartridgeSubscription cartridgeSubscription : cartridgeSubscriptions) {
-                    // We need to send this event for all types, single
-                    // tenant
-                    // and multi tenant.
-                    // In an autoscaling scenario, we need to send this
-                    // event
-                    // for all existing subscriptions for the newly spawned
-                    // instance
-                    // Also in a case of restarting the agent, this event
-                    // needs
-                    // to be sent for all subscriptions for the existing
-                    // instance
-                    if (cartridgeSubscription.getRepository() != null) {
-                        InstanceNotificationPublisher publisher =
-                                new InstanceNotificationPublisher();
-                        publisher.sendArtifactUpdatedEvent(cartridgeSubscription.getRepository(),
-                                clusterId,
-                                String.valueOf(cartridgeSubscription.getSubscriber()
-                                        .getTenantId()));
-
-                    } else {
-                        if (log.isDebugEnabled()) {
-                            log.debug("No repository found for subscription with alias: " +
-                                    cartridgeSubscription.getAlias() + ", type: " +
-                                    cartridgeSubscription.getType() +
-                                    ". Not sending the Artifact Updated event");
-                        }
-                    }
-                }
-
-            }
-        } catch (Exception e) {
-            if (log.isErrorEnabled()) {
-                log.error("Could not process instance status message", e);
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a71a6a00/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/listener/StratosManagerInstanceStatusEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/listener/StratosManagerInstanceStatusEventReceiver.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/listener/StratosManagerInstanceStatusEventReceiver.java
new file mode 100644
index 0000000..00c218d
--- /dev/null
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/listener/StratosManagerInstanceStatusEventReceiver.java
@@ -0,0 +1,132 @@
+/*
+ * 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.manager.listener;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.autoscaler.stub.pojo.ApplicationContext;
+import org.apache.stratos.autoscaler.stub.pojo.CartridgeContext;
+import org.apache.stratos.autoscaler.stub.pojo.SubscribableInfoContext;
+import org.apache.stratos.manager.client.AutoscalerServiceClient;
+import org.apache.stratos.manager.publisher.InstanceNotificationPublisher;
+import org.apache.stratos.messaging.event.Event;
+import org.apache.stratos.messaging.event.instance.status.InstanceStartedEvent;
+import org.apache.stratos.messaging.listener.instance.status.InstanceStartedEventListener;
+import org.apache.stratos.messaging.message.receiver.instance.status.InstanceStatusEventReceiver;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Stratos manager instance status event receiver.
+ */
+public class StratosManagerInstanceStatusEventReceiver extends InstanceStatusEventReceiver {
+
+    private static final Log log = LogFactory.getLog(StratosManagerInstanceStatusEventReceiver.class);
+
+    public StratosManagerInstanceStatusEventReceiver() {
+        addEventListeners();
+    }
+
+    private void addEventListeners() {
+        addEventListener(new InstanceStartedEventListener() {
+            @Override
+            protected void onEvent(Event event) {
+                InstanceStartedEvent instanceStartedEvent = (InstanceStartedEvent) event;
+                if (log.isInfoEnabled()) {
+                    log.info(String.format("Instance started event received: [application-id] %s [cartridge-type] %s " +
+                                    "[member-id] %s", instanceStartedEvent.getApplicationId(),
+                            instanceStartedEvent.getServiceName(), instanceStartedEvent.getMemberId()));
+                }
+
+                try {
+                    String applicationId = instanceStartedEvent.getApplicationId();
+                    String serviceName = instanceStartedEvent.getServiceName();
+                    String clusterId = instanceStartedEvent.getClusterId();
+
+                    if (StringUtils.isBlank(applicationId)) {
+                        throw new RuntimeException("Application id not found in instance started event: " + instanceStartedEvent);
+                    }
+
+                    if (StringUtils.isBlank(serviceName)) {
+                        throw new RuntimeException("Service name not found in instance started event: " + instanceStartedEvent);
+                    }
+
+                    if (StringUtils.isBlank(clusterId)) {
+                        throw new RuntimeException("Cluster id not found in instance started event: " + instanceStartedEvent);
+                    }
+
+                    AutoscalerServiceClient autoscalerServiceClient = AutoscalerServiceClient.getServiceClient();
+                    ApplicationContext applicationContext = autoscalerServiceClient.getApplication(applicationId);
+                    if (applicationContext == null) {
+                        throw new RuntimeException("Application not found: [application-id] " + applicationId);
+                    }
+
+                    List<SubscribableInfoContext> subscribableInfoContexts = findCartridgeContext(applicationContext, serviceName);
+                    if ((subscribableInfoContexts == null) || (subscribableInfoContexts.size() == 0)) {
+                        throw new RuntimeException(String.format("Subscribable information not found: " +
+                                "[application-id] %s [cartridge-type] %s", applicationId, serviceName));
+                    }
+
+                    InstanceNotificationPublisher publisher = new InstanceNotificationPublisher();
+
+                    for(SubscribableInfoContext subscribableInfoContext : subscribableInfoContexts) {
+                        String tenantId = "-1234";
+                        publisher.publishArtifactUpdatedEvent(clusterId, tenantId, subscribableInfoContext.getRepoUrl(), subscribableInfoContext.getRepoUsername(),
+                                subscribableInfoContext.getRepoPassword(), false);
+
+                        if (log.isInfoEnabled()) {
+                            log.info(String.format("Artifact updated event published: [application-id] %s [cartridge-type] %s " +
+                                            "[member-id] %s [subscription-alias] %s [repo-url] %s",
+                                    instanceStartedEvent.getApplicationId(), instanceStartedEvent.getServiceName(),
+                                    instanceStartedEvent.getMemberId(), subscribableInfoContext.getAlias(),
+                                    subscribableInfoContext.getRepoUrl()));
+                        }
+                    }
+                } catch (Exception e) {
+                    String message = "Could not send artifact updated event";
+                    log.error(message, e);
+                }
+            }
+        });
+    }
+
+    /**
+     * Find subscribable info contexts of cartridge type/service name.
+     * @param applicationContext
+     * @param serviceName
+     * @return
+     */
+    private List<SubscribableInfoContext> findCartridgeContext(ApplicationContext applicationContext, String serviceName) {
+        List<SubscribableInfoContext> subscribableInfoContexts = new ArrayList<SubscribableInfoContext>();
+        CartridgeContext[] cartridgeContexts = applicationContext.getComponents().getCartridgeContexts();
+        if (cartridgeContexts != null) {
+            for (CartridgeContext cartridgeContext : cartridgeContexts) {
+                if (cartridgeContext != null) {
+                    if (cartridgeContext.getType().equals(serviceName)) {
+                        subscribableInfoContexts.add(cartridgeContext.getSubscribableInfoContext());
+                    }
+                }
+            }
+        }
+        return subscribableInfoContexts;
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a71a6a00/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/listener/TenantStatusListner.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/listener/TenantStatusListner.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/listener/TenantStatusListner.java
deleted file mode 100644
index 49f8e2f..0000000
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/listener/TenantStatusListner.java
+++ /dev/null
@@ -1,42 +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.manager.listener;
-
-import org.apache.axis2.context.ConfigurationContext;
-import org.wso2.carbon.utils.Axis2ConfigurationContextObserver;
-
-public class TenantStatusListner implements Axis2ConfigurationContextObserver {
-
-    public void creatingConfigurationContext(int i) {
-        //To change body of implemented methods use File | Settings | File Templates.
-    }
-
-    public void createdConfigurationContext(ConfigurationContext configurationContext) {
-
-    }
-
-    public void terminatingConfigurationContext(ConfigurationContext configurationContext) {
-        //To change body of implemented methods use File | Settings | File Templates.
-    }
-
-    public void terminatedConfigurationContext(ConfigurationContext configurationContext) {
-        //To change body of implemented methods use File | Settings | File Templates.
-    }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a71a6a00/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/publisher/InstanceNotificationPublisher.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/publisher/InstanceNotificationPublisher.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/publisher/InstanceNotificationPublisher.java
index 07db6db..aba3cf9 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/publisher/InstanceNotificationPublisher.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/publisher/InstanceNotificationPublisher.java
@@ -47,24 +47,25 @@ public class InstanceNotificationPublisher {
 
 	/**
 	 * Publishing the artifact update event to the instances
-	 * 
-	 * @param repository
+	 *
 	 * @param clusterId
 	 * @param tenantId
+	 * @param repoUrl
+	 * @param repoUsername
+	 * @param repoPassword
+	 * @param isCommitEnabled
 	 */
-	public void sendArtifactUpdatedEvent(Repository repository, String clusterId, String tenantId) {
+	public void publishArtifactUpdatedEvent(String clusterId, String tenantId, String repoUrl, String repoUsername,
+											String repoPassword, boolean isCommitEnabled) {
+
 		ArtifactUpdatedEvent artifactUpdateEvent = new ArtifactUpdatedEvent();
 		artifactUpdateEvent.setClusterId(clusterId);
-		artifactUpdateEvent.setRepoUserName(repository.getUserName());
-		artifactUpdateEvent.setRepoPassword(repository.getPassword());
-		artifactUpdateEvent.setRepoURL(repository.getUrl());
+		artifactUpdateEvent.setRepoUserName(repoUsername);
+		artifactUpdateEvent.setRepoPassword(repoPassword);
+		artifactUpdateEvent.setRepoURL(repoUrl);
 		artifactUpdateEvent.setTenantId(tenantId);
-		artifactUpdateEvent.setCommitEnabled(repository.isCommitEnabled());
+		artifactUpdateEvent.setCommitEnabled(isCommitEnabled);
 
-		log.info(String.format("Publishing artifact updated event: [cluster] %s "
-		                               + "[repo-URL] %s [repo-username] %s [tenant-id] %s",
-		                       clusterId,
-		                       repository.getUrl(), repository.getUserName(), tenantId));
 		publish(artifactUpdateEvent);
 	}
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/a71a6a00/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/repository/RepositoryNotification.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/repository/RepositoryNotification.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/repository/RepositoryNotification.java
index 6f7daf7..1cd8ad9 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/repository/RepositoryNotification.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/repository/RepositoryNotification.java
@@ -54,22 +54,26 @@ public class RepositoryNotification {
     }
     
 	public void updateRepository(CartridgeSubscription cartridgeSubscription) {
-		if (cartridgeSubscription.getRepository() != null) {
+		Repository repository = cartridgeSubscription.getRepository();
+		if (repository != null) {
 			InstanceNotificationPublisher publisher = new InstanceNotificationPublisher();
-			publisher.sendArtifactUpdatedEvent(cartridgeSubscription.getRepository(),
+			publisher.publishArtifactUpdatedEvent(
 					String.valueOf(cartridgeSubscription.getCluster().getClusterDomain()),
-					String.valueOf(cartridgeSubscription.getSubscriber().getTenantId()));
+					String.valueOf(cartridgeSubscription.getSubscriber().getTenantId()),
+					repository.getUrl(),
+					repository.getUserName(),
+					repository.getPassword(),
+					repository.isCommitEnabled());
 
-			if (log.isDebugEnabled()) {
-				log.debug("Git pull request from " + cartridgeSubscription.getRepository()
-						+ "repository, for the tenant "
-						+ String.valueOf(cartridgeSubscription.getSubscriber().getTenantId()));
+			if (log.isInfoEnabled()) {
+				log.info(String.format("Artifact updated event published: %s [cartridge-type] %s " +
+								"%s [subscription-alias] %s [repo-url] %s",
+						cartridgeSubscription.getType(), cartridgeSubscription.getAlias(), repository.getUrl()));
 			}
-
 		} else {
-			if (log.isDebugEnabled()) {
-				log.debug("No repository found for subscription with alias: " + cartridgeSubscription.getAlias()
-						+ ", type: " + cartridgeSubscription.getType() + ". Not sending the Artifact Updated event");
+			if (log.isWarnEnabled()) {
+				log.warn("No repository found for subscription with alias: " + cartridgeSubscription.getAlias()
+						+ ", type: " + cartridgeSubscription.getType() + ". Not sending artifact updated event");
 			}
 		}
 	}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a71a6a00/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionMultiTenantBehaviour.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
index 949bee1..8146209 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
@@ -96,10 +96,10 @@ public class SubscriptionMultiTenantBehaviour extends SubscriptionTenancyBehavio
         if (repository != null) {
 
             // publish the ArtifactUpdated event
-            log.info(" Multitenant --> Publishing Artifact update event -- ");
-            log.info(" Values :  cluster id - " + cluster.getClusterDomain() + "  tenant - " + subscriber.getTenantId());
-            InstanceNotificationPublisher publisher = new InstanceNotificationPublisher();
-            publisher.sendArtifactUpdatedEvent(repository, cluster.getClusterDomain(), String.valueOf(subscriber.getTenantId()));
+            //log.info(" Multitenant --> Publishing Artifact update event -- ");
+            //log.info(" Values :  cluster id - " + cluster.getClusterDomain() + "  tenant - " + subscriber.getTenantId());
+            //InstanceNotificationPublisher publisher = new InstanceNotificationPublisher();
+            //publisher.publishArtifactUpdatedEvent(repository, cluster.getClusterDomain(), String.valueOf(subscriber.getTenantId()));
 
         } else {
             if(log.isDebugEnabled()) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/a71a6a00/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/instance/status/InstanceStartedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/instance/status/InstanceStartedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/instance/status/InstanceStartedEvent.java
index ca62688..8e3a103 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/instance/status/InstanceStartedEvent.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/instance/status/InstanceStartedEvent.java
@@ -27,6 +27,7 @@ import java.io.Serializable;
 public class InstanceStartedEvent extends InstanceStatusEvent implements Serializable {
     private static final long serialVersionUID = 7447068435627208619L;
 
+    private final String applicationId;
     private final String serviceName;
     private final String clusterId;
     private final String memberId;
@@ -35,8 +36,9 @@ public class InstanceStartedEvent extends InstanceStatusEvent implements Seriali
     private final String partitionId;
     private String groupId;
 
-    public InstanceStartedEvent(String serviceName, String clusterId, String memberId,
+    public InstanceStartedEvent(String applicationId, String serviceName, String clusterId, String memberId,
                                 String clusterInstanceId, String networkPartitionId, String partitionId) {
+        this.applicationId = applicationId;
         this.serviceName = serviceName;
         this.clusterId = clusterId;
         this.memberId = memberId;
@@ -45,6 +47,10 @@ public class InstanceStartedEvent extends InstanceStatusEvent implements Seriali
         this.partitionId = partitionId;
     }
 
+    public String getApplicationId() {
+        return applicationId;
+    }
+
     public String getServiceName() {
         return serviceName;
     }
@@ -76,4 +82,11 @@ public class InstanceStartedEvent extends InstanceStatusEvent implements Seriali
     public String getClusterInstanceId() {
         return clusterInstanceId;
     }
+
+    @Override
+    public String toString() {
+        return String.format("[service-name] %s [cluster-id] %s [cluster-instance-id] %s [member-id] %s" +
+                "[network-partition-id] %s [partition-id] %s", getServiceName(), getClusterId(),
+                getClusterInstanceId(), getMemberId(), getNetworkPartitionId(), getPartitionId());
+    }
 }


[2/3] stratos git commit: Updating python agent to read application id and send it in instance started event

Posted by im...@apache.org.
Updating python agent to read application id and send it in instance started event


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

Branch: refs/heads/master
Commit: 4a53aeadc11acf3c1a23dfb1517b6e6eeff65d39
Parents: 0fdef65
Author: Imesh Gunaratne <im...@apache.org>
Authored: Sat Jan 3 13:17:27 2015 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Sat Jan 3 17:01:50 2015 +0530

----------------------------------------------------------------------
 .../cartridgeagent/cartridgeagent/agent.py                       | 2 ++
 .../cartridgeagent/modules/config/cartridgeagentconfiguration.py | 3 +++
 .../cartridgeagent/modules/event/instance/status/events.py       | 4 +++-
 .../cartridgeagent/modules/publisher/cartridgeagentpublisher.py  | 3 ++-
 .../cartridgeagent/modules/util/cartridgeagentconstants.py       | 1 +
 5 files changed, 11 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/4a53aead/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/agent.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/agent.py b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/agent.py
index 5b32449..04e6313 100644
--- a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/agent.py
+++ b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/agent.py
@@ -105,6 +105,8 @@ class CartridgeAgent(threading.Thread):
             self.log.info("No artifact repository found")
             CartridgeAgent.extension_handler.on_instance_activated_event()
             cartridgeagentpublisher.publish_instance_activated_event()
+        else:
+            self.log.info("Artifact repository found, waiting for artifact updated event to checkout artifacts: [repo_url] %s", repo_url)
 
         persistence_mappping_payload = self.cartridge_agent_config.persistence_mappings
         if persistence_mappping_payload is not None:

http://git-wip-us.apache.org/repos/asf/stratos/blob/4a53aead/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/config/cartridgeagentconfiguration.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/config/cartridgeagentconfiguration.py b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/config/cartridgeagentconfiguration.py
index bb28ab1..c0c7249 100644
--- a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/config/cartridgeagentconfiguration.py
+++ b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/config/cartridgeagentconfiguration.py
@@ -35,6 +35,8 @@ class CartridgeAgentConfiguration:
             self.properties = None
             """ :type : ConfigParser.SafeConfigParser """
 
+            self.application_id = None
+            """ :type : str """
             self.service_group = None
             """ :type : str  """
             self.is_clustered = False
@@ -118,6 +120,7 @@ class CartridgeAgentConfiguration:
                 # self.__isClustered = self.payload_params[
                 # cartridgeagentconstants.CLUSTERING] if cartridgeagentconstants.CLUSTERING in self.payload_params else None
 
+                self.application_id = self.read_property(cartridgeagentconstants.APPLICATION_ID)
                 self.service_name = self.read_property(cartridgeagentconstants.SERVICE_NAME)
                 self.cluster_id = self.read_property(cartridgeagentconstants.CLUSTER_ID)
                 self.cluster_instance_id= self.read_property(cartridgeagentconstants.CLUSTER_INSTANCE_ID)

http://git-wip-us.apache.org/repos/asf/stratos/blob/4a53aead/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/event/instance/status/events.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/event/instance/status/events.py b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/event/instance/status/events.py
index 1898155..db35987 100644
--- a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/event/instance/status/events.py
+++ b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/event/instance/status/events.py
@@ -41,8 +41,10 @@ class InstanceActivatedEvent:
 
 
 class InstanceStartedEvent:
-    def __init__(self, service_name, cluster_id, cluster_instance_id, member_id, instance_id,
+    def __init__(self, application_id, service_name, cluster_id, cluster_instance_id, member_id, instance_id,
                  network_partition_id, partition_id):
+        self.applicationId = application_id
+        """ :type : str  """
         self.serviceName = service_name
         """ :type : str  """
         self.clusterId = cluster_id

http://git-wip-us.apache.org/repos/asf/stratos/blob/4a53aead/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/publisher/cartridgeagentpublisher.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/publisher/cartridgeagentpublisher.py b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/publisher/cartridgeagentpublisher.py
index b2f174e..dcdba8c 100644
--- a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/publisher/cartridgeagentpublisher.py
+++ b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/publisher/cartridgeagentpublisher.py
@@ -42,6 +42,7 @@ def publish_instance_started_event():
     if not started:
         log.info("Publishing instance started event")
 
+        application_id = CartridgeAgentConfiguration().application_id
         service_name = CartridgeAgentConfiguration().service_name
         cluster_id = CartridgeAgentConfiguration().cluster_id
         member_id = CartridgeAgentConfiguration().member_id
@@ -50,7 +51,7 @@ def publish_instance_started_event():
         network_partition_id = CartridgeAgentConfiguration().network_partition_id
         partition_id = CartridgeAgentConfiguration().partition_id
 
-        instance_started_event = InstanceStartedEvent(service_name, cluster_id, cluster_instance_id, member_id,
+        instance_started_event = InstanceStartedEvent(application_id, service_name, cluster_id, cluster_instance_id, member_id,
                                                       instance_id, network_partition_id, partition_id)
         publisher = get_publisher(cartridgeagentconstants.INSTANCE_STATUS_TOPIC + cartridgeagentconstants.INSTANCE_STARTED_EVENT)
         publisher.publish(instance_started_event)

http://git-wip-us.apache.org/repos/asf/stratos/blob/4a53aead/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/util/cartridgeagentconstants.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/util/cartridgeagentconstants.py b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/util/cartridgeagentconstants.py
index 68ef5fb..f7ae20b 100644
--- a/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/util/cartridgeagentconstants.py
+++ b/components/org.apache.stratos.python.cartridge.agent/cartridgeagent/cartridgeagent/modules/util/cartridgeagentconstants.py
@@ -23,6 +23,7 @@ MB_PORT = "mb.port"
 
 CARTRIDGE_KEY = "CARTRIDGE_KEY"
 APP_PATH = "APP_PATH"
+APPLICATION_ID = "APPLICATION_ID"
 SERVICE_GROUP = "SERIVCE_GROUP"
 SERVICE_NAME = "SERVICE_NAME"
 CLUSTER_ID = "CLUSTER_ID"


[3/3] stratos git commit: Renaming payload parameter APP_ID to APPLICATION_ID

Posted by im...@apache.org.
Renaming payload parameter APP_ID to APPLICATION_ID


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

Branch: refs/heads/master
Commit: 0fdef65eac1ae8bdacae9cd69a2916db90f6950b
Parents: 278382c
Author: Imesh Gunaratne <im...@apache.org>
Authored: Sat Jan 3 13:09:59 2015 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Sat Jan 3 17:01:50 2015 +0530

----------------------------------------------------------------------
 .../parser/DefaultApplicationParser.java            | 16 +++++++---------
 .../applications/payload/BasicPayloadData.java      | 15 +++++++--------
 .../autoscaler/client/CloudControllerClient.java    |  2 +-
 3 files changed, 15 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/0fdef65e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
index f377743..1aede3b 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java
@@ -240,11 +240,12 @@ public class DefaultApplicationParser implements ApplicationParser {
 
         String alias;
         Properties properties = new Properties();
-        for (SubscribableInfoContext value : subscribableInfoCtxts.values()) {
-            alias = value.getAlias();
-            String username = value.getRepoUsername();
-            String password = value.getRepoPassword();
-            String repoUrl = value.getRepoUrl();
+        for (SubscribableInfoContext subscribableInfoContext : subscribableInfoCtxts.values()) {
+            alias = subscribableInfoContext.getAlias();
+            String username = subscribableInfoContext.getRepoUsername();
+            String password = subscribableInfoContext.getRepoPassword();
+            String repoUrl = subscribableInfoContext.getRepoUrl();
+
             List<Property> propertyList = new ArrayList<Property>();
             if (StringUtils.isNotEmpty(username)) {
                 Property property = new Property();
@@ -258,24 +259,21 @@ public class DefaultApplicationParser implements ApplicationParser {
                 Property property = new Property();
                 property.setName("REPO_PASSWORD");
                 property.setValue(encryptedPassword);
-                //properties.addProperties(property);
                 propertyList.add(property);
-
             }
 
             if (StringUtils.isNotEmpty(repoUrl)) {
                 Property property = new Property();
                 property.setName("REPO_URL");
                 property.setValue(repoUrl);
-                //properties.addProperties(property);
                 propertyList.add(property);
             }
+
             if(propertyList.size() > 0 ) {
                 Property[] properties1 = new Property[propertyList.size()];
                 properties.setProperties(propertyList.toArray(properties1));
                 this.addProperties(alias, properties);
             }
-
         }
 
         if(log.isDebugEnabled()) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/0fdef65e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/BasicPayloadData.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/BasicPayloadData.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/BasicPayloadData.java
index b0e4588..d4feb29 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/BasicPayloadData.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/payload/BasicPayloadData.java
@@ -62,7 +62,7 @@ public class BasicPayloadData implements Serializable {
 
         payloadBuilder = new StringBuilder();
 
-        payloadBuilder.append("APP_ID=" + getAppId());
+        payloadBuilder.append("APPLICATION_ID=" + getAppId());
         payloadBuilder.append(",");
         payloadBuilder.append("GROUP_NAME=" + getGroupName());
         payloadBuilder.append(",");
@@ -82,17 +82,17 @@ public class BasicPayloadData implements Serializable {
         payloadBuilder.append(",");
         payloadBuilder.append("CARTRIDGE_KEY=" + getSubscriptionKey());
         payloadBuilder.append(",");
-        //payloadBuilder.append("DEPLOYMENT=" + getDeployment());
-        //payloadBuilder.append(",");
-        //payloadBuilder.append("APP_PATH=" + getApplicationPath());
-        //payloadBuilder.append(",");
+        payloadBuilder.append("DEPLOYMENT=" + getDeployment());
+        payloadBuilder.append(",");
+        payloadBuilder.append("APPLICATION_PATH=" + getApplicationPath());
+        payloadBuilder.append(",");
         payloadBuilder.append("REPO_URL=" + getGitRepositoryUrl());
         payloadBuilder.append(",");
         payloadBuilder.append("PORTS=" + getPortMappings());
         payloadBuilder.append(",");
         payloadBuilder.append("PROVIDER=" + getProvider());
 
-        //Payload Data exposed as system variables
+        //Payload data exposed as system variables
         payloadBuilder.append(",");
         payloadBuilder.append("PUPPET_IP=" + System.getProperty("puppet.ip"));
         payloadBuilder.append(",");
@@ -103,13 +103,12 @@ public class BasicPayloadData implements Serializable {
         payloadBuilder.append("PUPPET_ENV=" + System.getProperty("puppet.dns.available"));
         payloadBuilder.append(",");
         if(getDependencyAliasesPayloadString() != null){
-            payloadBuilder.append("DEPENDECNY_ALIASES=" + getDependencyAliasesPayloadString());
+            payloadBuilder.append("DEPENDENCY_ALIASES=" + getDependencyAliasesPayloadString());
         }
         payloadBuilder.append(",");
         if(getExportingPropertiesPayloadString() != null){
             payloadBuilder.append("EXPORTING_PROPERTIES=" + getExportingPropertiesPayloadString());
         }
-
     }
 
     public String getServiceName() {

http://git-wip-us.apache.org/repos/asf/stratos/blob/0fdef65e/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java
index d1d9ca7..f7b0de4 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/client/CloudControllerClient.java
@@ -177,7 +177,7 @@ public class CloudControllerClient {
             XMLConfiguration conf = ConfUtil.getInstance(null).getConfiguration();
             long expiryTime = conf.getLong(StratosConstants.OBSOLETED_VM_MEMBER_EXPIRY_TIMEOUT, 86400000);
             if (log.isDebugEnabled()) {
-                log.debug("Member Obsolete Expiry Time is set to: " + expiryTime);
+                log.debug("Member obsolete expiry time is set to: " + expiryTime);
             }
 
             InstanceContext instanceContext = new InstanceContext();