Repository: stratos
Updated Branches:
  refs/heads/master 23e2a7580 -> 371a2f384


Adding load balancing ip type enumeration and updating load balancer common 
topology receiver


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

Branch: refs/heads/master
Commit: 371a2f384ff19e8129002c49603700638306af4c
Parents: 23e2a75
Author: Imesh Gunaratne <[email protected]>
Authored: Fri Mar 6 19:33:30 2015 +0530
Committer: Imesh Gunaratne <[email protected]>
Committed: Fri Mar 6 19:33:30 2015 +0530

----------------------------------------------------------------------
 .../agent/test/JavaCartridgeAgentTest.java      |   5 +-
 .../cloud/controller/domain/Cartridge.java      |   7 +-
 .../domain/CartridgeInstanceData.java           | 120 -------------------
 .../cloud/controller/domain/MemberContext.java  |  11 ++
 .../publisher/TopologyEventPublisher.java       |   1 +
 .../messaging/topology/TopologyBuilder.java     |   3 +-
 .../impl/CloudControllerServiceImpl.java        |   9 +-
 .../controller/util/CloudControllerUtil.java    |   8 +-
 .../common/domain/LoadBalancingIPType.java      |  27 +++++
 ...LoadBalancerCommonTopologyEventReceiver.java |  32 +++--
 .../messaging/domain/topology/Member.java       |  11 +-
 .../event/topology/MemberCreatedEvent.java      |  15 ++-
 .../topology/MemberCreatedMessageProcessor.java |   2 +-
 .../test/PythonCartridgeAgentTest.java          |   5 +-
 samples/cartridges/kubernetes/php.json          |   3 +-
 samples/cartridges/kubernetes/tomcat.json       |   3 +-
 16 files changed, 116 insertions(+), 146 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.cartridge.agent/src/test/java/org/apache/stratos/cartridge/agent/test/JavaCartridgeAgentTest.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cartridge.agent/src/test/java/org/apache/stratos/cartridge/agent/test/JavaCartridgeAgentTest.java
 
b/components/org.apache.stratos.cartridge.agent/src/test/java/org/apache/stratos/cartridge/agent/test/JavaCartridgeAgentTest.java
index c077536..9e38656 100644
--- 
a/components/org.apache.stratos.cartridge.agent/src/test/java/org/apache/stratos/cartridge/agent/test/JavaCartridgeAgentTest.java
+++ 
b/components/org.apache.stratos.cartridge.agent/src/test/java/org/apache/stratos/cartridge/agent/test/JavaCartridgeAgentTest.java
@@ -27,6 +27,7 @@ import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.domain.LoadBalancingIPType;
 import org.apache.stratos.common.threading.StratosThreadPool;
 import org.apache.stratos.messaging.broker.publish.EventPublisher;
 import org.apache.stratos.messaging.broker.publish.EventPublisherPool;
@@ -443,7 +444,9 @@ public class JavaCartridgeAgentTest {
         service.addCluster(cluster);
 
         Member member = new Member(service.getServiceName(), 
cluster.getClusterId(), MEMBER_ID,
-                CLUSTER_INSTANCE_ID, NETWORK_PARTITION_ID, PARTITION_ID, 
System.currentTimeMillis());
+                CLUSTER_INSTANCE_ID, NETWORK_PARTITION_ID, PARTITION_ID, 
LoadBalancingIPType.Private,
+                System.currentTimeMillis());
+
         member.setDefaultPrivateIP("10.0.0.1");
         member.setDefaultPublicIP("20.0.0.1");
         Properties properties = new Properties();

http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/Cartridge.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/Cartridge.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/Cartridge.java
index 29542eb..9b6160d 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/Cartridge.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/Cartridge.java
@@ -21,6 +21,7 @@ package org.apache.stratos.cloud.controller.domain;
 import org.apache.commons.lang.builder.HashCodeBuilder;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.domain.LoadBalancingIPType;
 
 import java.io.Serializable;
 import java.util.*;
@@ -47,7 +48,7 @@ public class Cartridge implements Serializable{
     private List<PortMapping> portMappings;
     private Persistence persistence;
     private List<AppType> appTypeMappings;
-    private String loadBalancingIPType;
+    private LoadBalancingIPType loadBalancingIPType;
        private String[] metadataKeys;
 
     /**
@@ -344,11 +345,11 @@ public class Cartridge implements Serializable{
                this.metadataKeys = metadataKeys;
        }
 
-    public String getLoadBalancingIPType() {
+    public LoadBalancingIPType getLoadBalancingIPType() {
         return loadBalancingIPType;
     }
 
-    public void setLoadBalancingIPType(String loadBalancingIPType) {
+    public void setLoadBalancingIPType(LoadBalancingIPType 
loadBalancingIPType) {
         this.loadBalancingIPType = loadBalancingIPType;
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/CartridgeInstanceData.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/CartridgeInstanceData.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/CartridgeInstanceData.java
deleted file mode 100644
index 695d4bd..0000000
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/CartridgeInstanceData.java
+++ /dev/null
@@ -1,120 +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.cloud.controller.domain;
-
-import org.jclouds.compute.domain.NodeMetadata;
-
-/**
- * This class holds the data to be published to BAM.
- */
-public class CartridgeInstanceData {
-
-    // Cartridge type
-    private String type;
-    
-    private String nodeId;
-    
-    private String domain;
-    
-    private String iaas;
-    
-    private String status;
-    
-    private String tenantRange;
-    
-    private String alias;
-    
-    private boolean isMultiTenant;
-    
-    private NodeMetadata metaData;
-
-    public String getType() {
-        return type;
-    }
-
-    public void setType(String type) {
-        this.type = type;
-    }
-
-    public String getNodeId() {
-        return nodeId;
-    }
-
-    public void setNodeId(String nodeId) {
-        this.nodeId = nodeId;
-    }
-
-    public String getDomain() {
-        return domain;
-    }
-
-    public void setDomain(String domain) {
-        this.domain = domain;
-    }
-
-    public String getIaas() {
-        return iaas;
-    }
-
-    public void setIaas(String iaas) {
-        this.iaas = iaas;
-    }
-
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
-
-    public NodeMetadata getMetaData() {
-        return metaData;
-    }
-
-    public void setMetaData(NodeMetadata metaData) {
-        this.metaData = metaData;
-    }
-
-    public String getTenantRange() {
-        return tenantRange;
-    }
-
-    public void setTenantRange(String tenantRange) {
-        this.tenantRange = tenantRange;
-    }
-
-    public boolean isMultiTenant() {
-        return isMultiTenant;
-    }
-
-    public void setMultiTenant(boolean isMultiTenant) {
-        this.isMultiTenant = isMultiTenant;
-    }
-
-    public String getAlias() {
-        return alias;
-    }
-
-    public void setAlias(String alias) {
-        this.alias = alias;
-    }
-    
-    
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/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 df2f990..2388e99 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
@@ -20,6 +20,7 @@ package org.apache.stratos.cloud.controller.domain;
 
 import org.apache.stratos.common.Properties;
 import org.apache.stratos.common.Property;
+import org.apache.stratos.common.domain.LoadBalancingIPType;
 import org.apache.stratos.common.domain.NameValuePair;
 
 import java.io.Serializable;
@@ -74,6 +75,7 @@ public class MemberContext implements Serializable {
     private NameValuePair[] dynamicPayload;
     private String kubernetesPodId;
     private String kubernetesPodLabel;
+    private LoadBalancingIPType loadBalancingIPType;
 
     public MemberContext(String applicationId, String cartridgeType, String 
clusterId, String memberId) {
 
@@ -278,6 +280,14 @@ public class MemberContext implements Serializable {
         return kubernetesPodLabel;
     }
 
+    public LoadBalancingIPType getLoadBalancingIPType() {
+        return loadBalancingIPType;
+    }
+
+    public void setLoadBalancingIPType(LoadBalancingIPType 
loadBalancingIPType) {
+        this.loadBalancingIPType = loadBalancingIPType;
+    }
+
     @Override
     public String toString() {
         return "MemberContext ["
@@ -297,6 +307,7 @@ public class MemberContext implements Serializable {
                 + ", networkPartitionId=" + networkPartitionId
                 + ", kubernetesPodId=" + kubernetesPodId
                 + ", kubernetesPodLabel=" + kubernetesPodLabel
+                + ", loadBalancingIPType=" + loadBalancingIPType
                 + ", instanceMetadata=" + instanceMetadata
                 + ", properties=" + properties + "]";
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/TopologyEventPublisher.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/TopologyEventPublisher.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/TopologyEventPublisher.java
index b72965d..55ff173 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/TopologyEventPublisher.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/TopologyEventPublisher.java
@@ -145,6 +145,7 @@ public class TopologyEventPublisher {
                 memberContext.getMemberId(),
                 memberContext.getNetworkPartitionId(),
                 memberContext.getPartition().getId(),
+                memberContext.getLoadBalancingIPType(),
                 memberContext.getInitTime());
 
         memberCreatedEvent.setProperties(CloudControllerUtil

http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
index 219bb1a..aa4dce3 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
@@ -21,7 +21,6 @@ package 
org.apache.stratos.cloud.controller.messaging.topology;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.cloud.controller.context.CloudControllerContext;
-import org.apache.stratos.cloud.controller.domain.Cartridge;
 import org.apache.stratos.cloud.controller.domain.*;
 import 
org.apache.stratos.cloud.controller.exception.InvalidCartridgeTypeException;
 import org.apache.stratos.cloud.controller.exception.InvalidMemberException;
@@ -402,7 +401,7 @@ public class TopologyBuilder {
                try {
                        TopologyManager.acquireWriteLock();
                        Member member = new Member(service.getServiceName(), 
clusterId, memberId, clusterInstanceId,
-                                       networkPartitionId, partitionId, 
initTime);
+                                       networkPartitionId, partitionId, 
memberContext.getLoadBalancingIPType(), initTime);
                        member.setStatus(MemberStatus.Created);
                        member.setLbClusterId(lbClusterId);
                        
member.setProperties(CloudControllerUtil.toJavaUtilProperties(memberContext.getProperties()));

http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/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 d39fb00..958eb44 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
@@ -25,8 +25,6 @@ import 
org.apache.stratos.cloud.controller.concurrent.PartitionValidatorCallable
 import org.apache.stratos.cloud.controller.config.CloudControllerConfig;
 import org.apache.stratos.cloud.controller.context.CloudControllerContext;
 import org.apache.stratos.cloud.controller.domain.*;
-import org.apache.stratos.cloud.controller.domain.Cartridge;
-import org.apache.stratos.cloud.controller.domain.Dependencies;
 import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesCluster;
 import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesHost;
 import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesMaster;
@@ -38,6 +36,7 @@ import 
org.apache.stratos.cloud.controller.services.CloudControllerService;
 import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
 import org.apache.stratos.cloud.controller.util.CloudControllerUtil;
 import org.apache.stratos.common.Property;
+import org.apache.stratos.common.domain.LoadBalancingIPType;
 import org.apache.stratos.common.threading.StratosThreadPool;
 import org.apache.stratos.messaging.domain.topology.*;
 
@@ -404,7 +403,8 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
 
             // Create member context
             String applicationId = clusterContext.getApplicationId();
-            MemberContext memberContext = createMemberContext(applicationId, 
cartridgeType, memberId, instanceContext);
+            MemberContext memberContext = createMemberContext(applicationId, 
cartridgeType, memberId,
+                    cartridge.getLoadBalancingIPType(), instanceContext);
 
             // Prepare payload
             StringBuilder payload = new 
StringBuilder(clusterContext.getPayload());
@@ -473,7 +473,7 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
     }
 
     private MemberContext createMemberContext(String applicationId, String 
cartridgeType, String memberId,
-                                              InstanceContext instanceContext) 
{
+                                              LoadBalancingIPType 
loadBalancingIPType, InstanceContext instanceContext) {
         MemberContext memberContext = new MemberContext(
                 applicationId, cartridgeType, instanceContext.getClusterId(), 
memberId);
 
@@ -482,6 +482,7 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
         memberContext.setPartition(instanceContext.getPartition());
         memberContext.setInitTime(instanceContext.getInitTime());
         memberContext.setProperties(instanceContext.getProperties());
+        memberContext.setLoadBalancingIPType(loadBalancingIPType);
         memberContext.setInitTime(System.currentTimeMillis());
 
         return memberContext;

http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
index abd938f..e114bc8 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
@@ -36,6 +36,7 @@ import org.apache.stratos.common.Property;
 import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesCluster;
 import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesHost;
 import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesMaster;
+import org.apache.stratos.common.domain.LoadBalancingIPType;
 import org.apache.stratos.messaging.domain.topology.Topology;
 import org.wso2.carbon.registry.core.exceptions.RegistryException;
 
@@ -105,7 +106,12 @@ public class CloudControllerUtil {
         }
         cartridge.setMultiTenant(config.isMultiTenant());
         cartridge.setTenantPartitions(config.getTenantPartitions());
-        cartridge.setLoadBalancingIPType(config.getLoadBalancingIPType());
+        cartridge.setLoadBalancingIPType(LoadBalancingIPType.Private);
+        if(StringUtils.isNotBlank(config.getLoadBalancingIPType())) {
+            if(config.getLoadBalancingIPType().equals("public")) {
+                cartridge.setLoadBalancingIPType(LoadBalancingIPType.Public);
+            }
+        }
            cartridge.setMetadataKeys(config.getMetadataKeys());
 
         org.apache.stratos.common.Properties props = config.getProperties();

http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/domain/LoadBalancingIPType.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/domain/LoadBalancingIPType.java
 
b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/domain/LoadBalancingIPType.java
new file mode 100644
index 0000000..4e58f0c
--- /dev/null
+++ 
b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/domain/LoadBalancingIPType.java
@@ -0,0 +1,27 @@
+/*
+ * 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.common.domain;
+
+/**
+ * Load balancing ip type.
+ */
+public enum LoadBalancingIPType {
+    Private, Public
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java
 
b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java
index 17d02ab..1b29a95 100644
--- 
a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java
+++ 
b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java
@@ -19,8 +19,10 @@
 
 package org.apache.stratos.load.balancer.common.event.receivers;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.domain.LoadBalancingIPType;
 import org.apache.stratos.load.balancer.common.topology.TopologyProvider;
 import org.apache.stratos.messaging.domain.topology.*;
 import org.apache.stratos.messaging.event.Event;
@@ -362,15 +364,31 @@ public class LoadBalancerCommonTopologyEventReceiver 
extends TopologyEventReceiv
     }
 
     private org.apache.stratos.load.balancer.common.domain.Member 
transformMember(Member messagingMember) {
-        boolean useMemberPublicIP = 
Boolean.getBoolean("load.balancer.member.public.ip");
-        String hostName = (useMemberPublicIP) ? 
messagingMember.getDefaultPublicIP() :
-                messagingMember.getDefaultPrivateIP();
+
+        String hostName;
+        if(messagingMember.getLoadBalancingIPType() == 
LoadBalancingIPType.Private) {
+            if (StringUtils.isEmpty(messagingMember.getDefaultPrivateIP())) {
+                throw new RuntimeException(String.format("Default private IP 
not found: [member] %s",
+                        messagingMember.getMemberId()));
+            }
+            hostName = messagingMember.getDefaultPrivateIP();
+        } else if(messagingMember.getLoadBalancingIPType() == 
LoadBalancingIPType.Public) {
+            if (StringUtils.isEmpty(messagingMember.getDefaultPublicIP())) {
+                throw new RuntimeException(String.format("Default public IP 
not found: [member] %s",
+                        messagingMember.getMemberId()));
+            }
+            hostName = messagingMember.getDefaultPublicIP();
+        } else {
+            throw new RuntimeException(String.format("Unknown load balancing 
IP type found: %s",
+                    messagingMember.getLoadBalancingIPType()));
+        }
+
         org.apache.stratos.load.balancer.common.domain.Member member =
                 new 
org.apache.stratos.load.balancer.common.domain.Member(messagingMember.getServiceName(),
-                        messagingMember.getClusterId(), 
messagingMember.getMemberId(),
-                        hostName);
-        if(messagingMember.getPorts() != null) {
-            for(Port port : messagingMember.getPorts()) {
+                        messagingMember.getClusterId(), 
messagingMember.getMemberId(), hostName);
+
+        if (messagingMember.getPorts() != null) {
+            for (Port port : messagingMember.getPorts()) {
                 member.addPort(transformPort(port));
             }
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Member.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Member.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Member.java
index 24753fd..82dbc71 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Member.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Member.java
@@ -19,6 +19,7 @@
 
 package org.apache.stratos.messaging.domain.topology;
 
+import org.apache.stratos.common.domain.LoadBalancingIPType;
 import 
org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleStateManager;
 import org.apache.stratos.messaging.adapters.MapAdapter;
 import 
org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleStateTransitionBehavior;
@@ -58,9 +59,11 @@ public class Member implements Serializable, 
LifeCycleStateTransitionBehavior<Me
     private String lbClusterId;
     // instance id to use if snapshot wise group scaling is enabled
     private LifeCycleStateManager<MemberStatus> memberStateManager;
+    private LoadBalancingIPType loadBalancingIPType;
 
     public Member(String serviceName, String clusterId, String memberId, 
String clusterInstanceId,
-                  String networkPartitionId, String partitionId, long 
initTime) {
+                  String networkPartitionId, String partitionId, 
LoadBalancingIPType loadBalancingIPType,
+                  long initTime) {
         this.serviceName = serviceName;
         this.clusterId = clusterId;
         this.clusterInstanceId = clusterInstanceId;
@@ -68,6 +71,7 @@ public class Member implements Serializable, 
LifeCycleStateTransitionBehavior<Me
         this.partitionId = partitionId;
         this.memberId = memberId;
         this.portMap = new HashMap<Integer, Port>();
+        this.loadBalancingIPType = loadBalancingIPType;
         this.initTime = initTime;
         this.memberStateManager = new 
LifeCycleStateManager<MemberStatus>(MemberStatus.Created, memberId);
     }
@@ -201,6 +205,10 @@ public class Member implements Serializable, 
LifeCycleStateTransitionBehavior<Me
         return clusterInstanceId;
     }
 
+    public LoadBalancingIPType getLoadBalancingIPType() {
+        return loadBalancingIPType;
+    }
+
     @Override
     public String toString() {
         return "Member [serviceName=" + getServiceName()
@@ -217,6 +225,7 @@ public class Member implements Serializable, 
LifeCycleStateTransitionBehavior<Me
                 + ", defaultPrivateIP=" + getDefaultPrivateIP()
                 + ", memberPrivateIPs=" + ((memberPrivateIPs != null) ? 
memberPrivateIPs.toString() : "")
                 + ", lbClusterId=" + getLbClusterId()
+                + ", loadBalancingIPType=" + getLoadBalancingIPType()
                 + ", properties=" + getProperties() + "]";
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberCreatedEvent.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberCreatedEvent.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberCreatedEvent.java
index e78b36e..9eb409d 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberCreatedEvent.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberCreatedEvent.java
@@ -19,6 +19,8 @@
 package org.apache.stratos.messaging.event.topology;
 
 
+import org.apache.stratos.common.domain.LoadBalancingIPType;
+
 import java.io.Serializable;
 import java.util.Properties;
 
@@ -35,19 +37,22 @@ public class MemberCreatedEvent extends TopologyEvent 
implements Serializable {
     private final String networkPartitionId;
     private final String partitionId;
     private final String memberId;
-
+    private final LoadBalancingIPType loadBalancingIPType;
     private final long initTime;
     private Properties properties;
 
 
     public MemberCreatedEvent(String serviceName, String clusterId, String 
clusterInstanceId, String memberId,
-                              String networkPartitionId, String partitionId, 
long initTime) {
+                              String networkPartitionId, String partitionId, 
LoadBalancingIPType loadBalancingIPType,
+                              long initTime) {
+
         this.serviceName = serviceName;
         this.clusterId = clusterId;
         this.clusterInstanceId = clusterInstanceId;
         this.memberId = memberId;
         this.networkPartitionId = networkPartitionId;
         this.partitionId = partitionId;
+        this.loadBalancingIPType = loadBalancingIPType;
         this.initTime = initTime;
     }
 
@@ -70,7 +75,11 @@ public class MemberCreatedEvent extends TopologyEvent 
implements Serializable {
     public String getMemberId() {
         return memberId;
     }
-    
+
+    public LoadBalancingIPType getLoadBalancingIPType() {
+        return loadBalancingIPType;
+    }
+
     public long getInitTime() {
        return initTime;
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberCreatedMessageProcessor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberCreatedMessageProcessor.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberCreatedMessageProcessor.java
index 53f696a..c4e1f31 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberCreatedMessageProcessor.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberCreatedMessageProcessor.java
@@ -115,7 +115,7 @@ public class MemberCreatedMessageProcessor extends 
MessageProcessor {
             // Apply changes to the topology
             Member member = new Member(event.getServiceName(), 
event.getClusterId(), event.getMemberId(),
                     event.getClusterInstanceId(), 
event.getNetworkPartitionId(),
-                    event.getPartitionId(), event.getInitTime());
+                    event.getPartitionId(), event.getLoadBalancingIPType(), 
event.getInitTime());
             member.setProperties(event.getProperties());
             cluster.addMember(member);
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.python.cartridge.agent/src/test/java/org/apache/stratos/python.cartridge.agent/test/PythonCartridgeAgentTest.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.python.cartridge.agent/src/test/java/org/apache/stratos/python.cartridge.agent/test/PythonCartridgeAgentTest.java
 
b/components/org.apache.stratos.python.cartridge.agent/src/test/java/org/apache/stratos/python.cartridge.agent/test/PythonCartridgeAgentTest.java
index bd016f4..8b434d9 100644
--- 
a/components/org.apache.stratos.python.cartridge.agent/src/test/java/org/apache/stratos/python.cartridge.agent/test/PythonCartridgeAgentTest.java
+++ 
b/components/org.apache.stratos.python.cartridge.agent/src/test/java/org/apache/stratos/python.cartridge.agent/test/PythonCartridgeAgentTest.java
@@ -24,6 +24,7 @@ import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.domain.LoadBalancingIPType;
 import org.apache.stratos.common.threading.StratosThreadPool;
 import org.apache.stratos.messaging.broker.publish.EventPublisher;
 import org.apache.stratos.messaging.broker.publish.EventPublisherPool;
@@ -331,7 +332,9 @@ public class PythonCartridgeAgentTest {
         service.addCluster(cluster);
 
         Member member = new Member(service.getServiceName(), 
cluster.getClusterId(), MEMBER_ID,
-                CLUSTER_INSTANCE_ID, NETWORK_PARTITION_ID, PARTITION_ID, 
System.currentTimeMillis());
+                CLUSTER_INSTANCE_ID, NETWORK_PARTITION_ID, PARTITION_ID, 
LoadBalancingIPType.Private,
+                System.currentTimeMillis());
+
         member.setDefaultPrivateIP("10.0.0.1");
         member.setDefaultPublicIP("20.0.0.1");
         Properties properties = new Properties();

http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/samples/cartridges/kubernetes/php.json
----------------------------------------------------------------------
diff --git a/samples/cartridges/kubernetes/php.json 
b/samples/cartridges/kubernetes/php.json
index 50c8497..09900ff 100755
--- a/samples/cartridges/kubernetes/php.json
+++ b/samples/cartridges/kubernetes/php.json
@@ -7,11 +7,12 @@
     "description": "php Cartridge",
     "version": "7",
     "multiTenant": "false",
+    "loadBalancingIPType" : "public",
     "portMapping": [
         {
             "protocol": "http",
             "port": "80",
-            "proxyPort": "8280"
+            "proxyPort": "8281"
         }
     ],
     "deployment":{

http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/samples/cartridges/kubernetes/tomcat.json
----------------------------------------------------------------------
diff --git a/samples/cartridges/kubernetes/tomcat.json 
b/samples/cartridges/kubernetes/tomcat.json
index fb06928..8a61be5 100755
--- a/samples/cartridges/kubernetes/tomcat.json
+++ b/samples/cartridges/kubernetes/tomcat.json
@@ -7,11 +7,12 @@
     "description": "Tomcat 7 Cartridge",
     "version": "7",
     "multiTenant": "false",
+    "loadBalancingIPType" : "public",
     "portMapping": [
         {
             "protocol": "http",
             "port": "8080",
-            "proxyPort": "8280"
+            "proxyPort": "8281"
         }
     ],
     "deployment":{

Reply via email to