You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ra...@apache.org on 2014/12/21 14:55:07 UTC
stratos git commit: adding multiple IPs support in topology and
topology events
Repository: stratos
Updated Branches:
refs/heads/master 01e79e26d -> 2f93602e5
adding multiple IPs support in topology and topology events
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/2f93602e
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/2f93602e
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/2f93602e
Branch: refs/heads/master
Commit: 2f93602e587619d3ad61d5ab7359a7afdf5a4e8f
Parents: 01e79e2
Author: R-Rajkumar <rr...@gmail.com>
Authored: Sun Dec 21 19:24:07 2014 +0530
Committer: R-Rajkumar <rr...@gmail.com>
Committed: Sun Dec 21 19:24:07 2014 +0530
----------------------------------------------------------------------
.../extensions/DefaultExtensionHandler.java | 32 +++---
.../cartridge/agent/util/ExtensionUtils.java | 2 +-
.../cloud/controller/domain/MemberContext.java | 64 ++++++++----
.../functions/PodToMemberContext.java | 6 +-
.../iaases/JcloudsCloudStackIaas.java | 9 +-
.../controller/iaases/JcloudsDockerIaas.java | 3 +-
.../cloud/controller/iaases/JcloudsEC2Iaas.java | 6 +-
.../cloud/controller/iaases/JcloudsGCEIaas.java | 4 +-
.../cloud/controller/iaases/JcloudsIaas.java | 102 +++++++++----------
.../controller/iaases/JcloudsOpenstackIaas.java | 5 +-
.../controller/iaases/JcloudsVCloudIaas.java | 5 +-
.../controller/iaases/mock/MockIaasService.java | 4 +-
.../publisher/StatisticsDataPublisher.java | 7 +-
.../publisher/TopologyEventPublisher.java | 11 +-
.../messaging/topology/TopologyBuilder.java | 16 ++-
.../controller/util/PodActivationWatcher.java | 8 +-
.../stratos/common/beans/topology/Member.java | 46 ++++++---
.../conf/LoadBalancerConfiguration.java | 6 +-
.../TenantAwareLoadBalanceEndpoint.java | 12 +--
.../LoadBalancerTopologyEventReceiver.java | 24 ++---
.../test/LoadBalancerConfigurationTest.java | 2 +-
.../messaging/domain/topology/Member.java | 44 +++++---
.../event/topology/InstanceSpawnedEvent.java | 39 +++++--
.../event/topology/MemberActivatedEvent.java | 38 +++++--
.../InstanceSpawnedMessageProcessor.java | 6 +-
.../MemberActivatedMessageProcessor.java | 5 +-
.../util/converter/ObjectConverter.java | 28 ++---
.../haproxy/extension/HAProxyConfigWriter.java | 4 +-
28 files changed, 337 insertions(+), 201 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/DefaultExtensionHandler.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/DefaultExtensionHandler.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/DefaultExtensionHandler.java
index c7da75a..a069c5c 100644
--- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/DefaultExtensionHandler.java
+++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/DefaultExtensionHandler.java
@@ -254,7 +254,7 @@ public class DefaultExtensionHandler implements ExtensionHandler {
// check whether member activated event is received from the same cluster, lbcluster or service group
if (ExtensionUtils.isRelevantMemberEvent(memberActivatedEvent.getServiceName(), memberActivatedEvent.getClusterId(), lbClusterId)) {
Map<String, String> env = new HashMap<String, String>();
- env.put("STRATOS_MEMBER_ACTIVATED_MEMBER_IP", memberActivatedEvent.getMemberIp());
+ env.put("STRATOS_MEMBER_ACTIVATED_MEMBER_IP", memberActivatedEvent.getDefaultPrivateIP());
env.put("STRATOS_MEMBER_ACTIVATED_MEMBER_ID", memberActivatedEvent.getMemberId());
env.put("STRATOS_MEMBER_ACTIVATED_CLUSTER_ID", memberActivatedEvent.getClusterId());
env.put("STRATOS_MEMBER_ACTIVATED_LB_CLUSTER_ID", lbClusterId);
@@ -291,7 +291,7 @@ public class DefaultExtensionHandler implements ExtensionHandler {
}
boolean hasWKIpChanged = true;
for (Member m : this.wkMembers) {
- if (m.getMemberIp().equals(memberActivatedEvent.getMemberIp())) {
+ if (m.getDefaultPrivateIP().equals(memberActivatedEvent.getDefaultPrivateIP())) {
hasWKIpChanged = false;
}
}
@@ -422,7 +422,7 @@ public class DefaultExtensionHandler implements ExtensionHandler {
Collection<Member> members = cluster.getMembers();
Map<String, String> env = new HashMap<String, String>();
- env.put("STRATOS_MEMBER_TERMINATED_MEMBER_IP", terminatedMember.getMemberIp());
+ env.put("STRATOS_MEMBER_TERMINATED_MEMBER_IP", terminatedMember.getDefaultPrivateIP());
env.put("STRATOS_MEMBER_TERMINATED_MEMBER_ID", memberTerminatedEvent.getMemberId());
env.put("STRATOS_MEMBER_TERMINATED_CLUSTER_ID", memberTerminatedEvent.getClusterId());
env.put("STRATOS_MEMBER_TERMINATED_LB_CLUSTER_ID", lbClusterId);
@@ -480,7 +480,7 @@ public class DefaultExtensionHandler implements ExtensionHandler {
memberSuspendedEvent.getClusterId(), lbClusterId)) {
Collection<Member> members = cluster.getMembers();
Map<String, String> env = new HashMap<String, String>();
- env.put("STRATOS_MEMBER_SUSPENDED_MEMBER_IP", suspendedMember.getMemberIp());
+ env.put("STRATOS_MEMBER_SUSPENDED_MEMBER_IP", suspendedMember.getDefaultPrivateIP());
env.put("STRATOS_MEMBER_SUSPENDED_MEMBER_ID", memberSuspendedEvent.getMemberId());
env.put("STRATOS_MEMBER_SUSPENDED_CLUSTER_ID", memberSuspendedEvent.getClusterId());
env.put("STRATOS_MEMBER_SUSPENDED_LB_CLUSTER_ID", lbClusterId);
@@ -536,7 +536,7 @@ public class DefaultExtensionHandler implements ExtensionHandler {
memberStartedEvent.getClusterId(), lbClusterId)) {
Collection<Member> members = cluster.getMembers();
Map<String, String> env = new HashMap<String, String>();
- env.put("STRATOS_MEMBER_STARTED_MEMBER_IP", startedMember.getMemberIp());
+ env.put("STRATOS_MEMBER_STARTED_MEMBER_IP", startedMember.getDefaultPrivateIP());
env.put("STRATOS_MEMBER_STARTED_MEMBER_ID", memberStartedEvent.getMemberId());
env.put("STRATOS_MEMBER_STARTED_CLUSTER_ID", memberStartedEvent.getClusterId());
env.put("STRATOS_MEMBER_STARTED_LB_CLUSTER_ID", lbClusterId);
@@ -594,9 +594,9 @@ public class DefaultExtensionHandler implements ExtensionHandler {
return false;
}
Member apistoreMember = apistoreMemberList.get(0);
- envParameters.put("STRATOS_WK_APISTORE_MEMBER_IP", apistoreMember.getMemberIp());
+ envParameters.put("STRATOS_WK_APISTORE_MEMBER_IP", apistoreMember.getDefaultPrivateIP());
if (log.isDebugEnabled()) {
- log.debug("STRATOS_WK_APISTORE_MEMBER_IP: " + apistoreMember.getMemberIp());
+ log.debug("STRATOS_WK_APISTORE_MEMBER_IP: " + apistoreMember.getDefaultPrivateIP());
}
List<Member> publisherMemberList = new ArrayList<Member>();
@@ -613,9 +613,9 @@ public class DefaultExtensionHandler implements ExtensionHandler {
return false;
}
Member publisherMember = publisherMemberList.get(0);
- envParameters.put("STRATOS_WK_PUBLISHER_MEMBER_IP", publisherMember.getMemberIp());
+ envParameters.put("STRATOS_WK_PUBLISHER_MEMBER_IP", publisherMember.getDefaultPrivateIP());
if (log.isDebugEnabled()) {
- log.debug("STRATOS_WK_PUBLISHER_MEMBER_IP: " + publisherMember.getMemberIp());
+ log.debug("STRATOS_WK_PUBLISHER_MEMBER_IP: " + publisherMember.getDefaultPrivateIP());
}
return true;
@@ -668,16 +668,16 @@ public class DefaultExtensionHandler implements ExtensionHandler {
wkMembers.add(member);
this.wkMembers.add(member);
if (log.isDebugEnabled()) {
- log.debug("Found WKA: STRATOS_WK_MEMBER_IP: " + member.getMemberIp());
+ log.debug("Found WKA: STRATOS_WK_MEMBER_IP: " + member.getDefaultPrivateIP());
}
}
}
if (wkMembers.size() >= minCount) {
int idx = 0;
for (Member member : wkMembers) {
- envParameters.put("STRATOS_WK_MEMBER_" + idx + "_IP", member.getMemberIp());
+ envParameters.put("STRATOS_WK_MEMBER_" + idx + "_IP", member.getDefaultPrivateIP());
if (log.isDebugEnabled()) {
- log.debug("STRATOS_WK_MEMBER_" + idx + "_IP: " + member.getMemberIp());
+ log.debug("STRATOS_WK_MEMBER_" + idx + "_IP: " + member.getDefaultPrivateIP());
}
idx++;
}
@@ -757,9 +757,9 @@ public class DefaultExtensionHandler implements ExtensionHandler {
minManagerInstancesAvailable = true;
int idx = 0;
for (Member member : managerWkaMembers) {
- envParameters.put("STRATOS_WK_MANAGER_MEMBER_" + idx + "_IP", member.getMemberIp());
+ envParameters.put("STRATOS_WK_MANAGER_MEMBER_" + idx + "_IP", member.getDefaultPrivateIP());
if (log.isDebugEnabled()) {
- log.debug("STRATOS_WK_MANAGER_MEMBER_" + idx + "_IP: " + member.getMemberIp());
+ log.debug("STRATOS_WK_MANAGER_MEMBER_" + idx + "_IP: " + member.getDefaultPrivateIP());
}
idx++;
}
@@ -833,9 +833,9 @@ public class DefaultExtensionHandler implements ExtensionHandler {
minWorkerInstancesAvailable = true;
int idx = 0;
for (Member member : workerWkaMembers) {
- envParameters.put("STRATOS_WK_WORKER_MEMBER_" + idx + "_IP", member.getMemberIp());
+ envParameters.put("STRATOS_WK_WORKER_MEMBER_" + idx + "_IP", member.getDefaultPrivateIP());
if (log.isDebugEnabled()) {
- log.debug("STRATOS_WK_WORKER_MEMBER_" + idx + "_IP: " + member.getMemberIp());
+ log.debug("STRATOS_WK_WORKER_MEMBER_" + idx + "_IP: " + member.getDefaultPrivateIP());
}
idx++;
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/ExtensionUtils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/ExtensionUtils.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/ExtensionUtils.java
index 994c589..79ac604 100644
--- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/ExtensionUtils.java
+++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/ExtensionUtils.java
@@ -127,7 +127,7 @@ public class ExtensionUtils {
Collection<Member> memberCollection = cluster.getMembers();
for (Member member : memberCollection) {
if (member.getClusterId().equals(lbClusterId)) {
- return new String[]{member.getMemberIp(), member.getMemberPublicIp()};
+ return new String[]{member.getDefaultPrivateIP(), member.getDefaultPublicIP()};
}
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/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 0201739..f4fc2f3 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
@@ -22,6 +22,7 @@ import org.apache.stratos.common.Properties;
import org.apache.stratos.common.Property;
import java.io.Serializable;
+import java.util.Arrays;
/**
* Holds information about a Member.
@@ -44,12 +45,16 @@ public class MemberContext implements Serializable {
// Partition this member is in
private Partition partition;
- // Private ip address
- private String privateIpAddress;
- // Public ip address
- private String publicIpAddress;
- // Manually allocated ip
- private String allocatedIpAddress;
+ // Default private ip address
+ private String defaultPrivateIP;
+ // Private ips
+ private String[] privateIPs;
+ // Default public ip address
+ private String defaultPublicIP;
+ // Public ips
+ private String[] publicIPs;
+ // Manually allocated ips
+ private String[] allocatedIPs;
// Member initiated time
private long initTime;
// LB cluster id of this member
@@ -113,28 +118,44 @@ public class MemberContext implements Serializable {
this.partition = partition;
}
- public String getPublicIpAddress() {
- return publicIpAddress;
+ public String getDefaultPublicIP() {
+ return defaultPublicIP;
}
- public void setPublicIpAddress(String publicIpAddress) {
- this.publicIpAddress = publicIpAddress;
+ public void setDefaultPublicIP(String defaultPublicIP) {
+ this.defaultPublicIP = defaultPublicIP;
+ }
+
+ public String[] getPublicIPs() {
+ return publicIPs;
+ }
+
+ public void setPublicIPs(String[] publicIPs) {
+ this.publicIPs = publicIPs;
}
- public String getPrivateIpAddress() {
- return privateIpAddress;
+ public String getDefaultPrivateIP() {
+ return defaultPrivateIP;
+ }
+
+ public void setDefaultPrivateIP(String defaultPrivateIP) {
+ this.defaultPrivateIP = defaultPrivateIP;
+ }
+
+ public String[] getPrivateIPs() {
+ return privateIPs;
}
- public void setPrivateIpAddress(String privateIpAddress) {
- this.privateIpAddress = privateIpAddress;
+ public void setPrivateIPs(String[] privateIPs) {
+ this.privateIPs = privateIPs;
}
- public String getAllocatedIpAddress() {
- return allocatedIpAddress;
+ public String[] getAllocatedIPs() {
+ return allocatedIPs;
}
- public void setAllocatedIpAddress(String allocatedIpAddress) {
- this.allocatedIpAddress = allocatedIpAddress;
+ public void setAllocatedIPs(String[] allocatedIPs) {
+ this.allocatedIPs = allocatedIPs;
}
public long getInitTime() {
@@ -252,9 +273,10 @@ public class MemberContext implements Serializable {
public String toString() {
return "MemberContext [memberId=" + memberId + ", instanceId=" + instanceId
+ ", clusterId=" + clusterId + ", partition=" + partition
- + ", cartridgeType=" + cartridgeType + ", privateIpAddress=" + privateIpAddress
- + ", publicIpAddress=" + publicIpAddress + ", allocatedIpAddress="
- + allocatedIpAddress + ", initTime=" + initTime + ", lbClusterId=" + lbClusterId
+ + ", 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 +
", properties=" + properties + "]";
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/PodToMemberContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/PodToMemberContext.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/PodToMemberContext.java
index c6e920d..a744eb1 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/PodToMemberContext.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/PodToMemberContext.java
@@ -36,8 +36,10 @@ public class PodToMemberContext implements Function<Pod, MemberContext> {
}
MemberContext memberContext = new MemberContext();
memberContext.setMemberId(pod.getId());
- memberContext.setPrivateIpAddress(pod.getCurrentState().getHostIP());
- memberContext.setPublicIpAddress(pod.getCurrentState().getHostIP());
+ memberContext.setDefaultPrivateIP(pod.getCurrentState().getHostIP());
+ memberContext.setPrivateIPs(new String[]{pod.getCurrentState().getHostIP()});
+ memberContext.setDefaultPublicIP(pod.getCurrentState().getHostIP());
+ memberContext.setPublicIPs(new String[]{pod.getCurrentState().getHostIP()});
memberContext.setInitTime(System.currentTimeMillis());
return memberContext;
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsCloudStackIaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsCloudStackIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsCloudStackIaas.java
index bfe3af2..2cc1a96 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsCloudStackIaas.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsCloudStackIaas.java
@@ -27,8 +27,10 @@ import org.jclouds.compute.domain.TemplateBuilder;
import org.jclouds.compute.options.TemplateOptions;
import org.jclouds.domain.Location;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeoutException;
@@ -206,7 +208,7 @@ public class JcloudsCloudStackIaas extends JcloudsIaas {
* So this method will find the IP that has been assigned to the vm and return it.
*/
@Override
- public String associateAddress(NodeMetadata node) {
+ public List<String> associateAddresses(NodeMetadata node) {
IaasProvider iaasInfo = getIaasProvider();
ComputeServiceContext context = iaasInfo.getComputeService().getContext();
@@ -240,7 +242,10 @@ public class JcloudsCloudStackIaas extends JcloudsIaas {
throw new CloudControllerException(msg);
}
- return ip;
+ List<String> associatedIPs = new ArrayList<String>();
+ associatedIPs.add(ip);
+
+ return associatedIPs;
}
@Override
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsDockerIaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsDockerIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsDockerIaas.java
index 22feae0..dd7ec64 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsDockerIaas.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsDockerIaas.java
@@ -34,6 +34,7 @@ import org.jclouds.compute.domain.Image;
import org.jclouds.compute.domain.NodeMetadata;
import org.jclouds.compute.domain.Template;
+import java.util.List;
import java.util.Set;
/**
@@ -63,7 +64,7 @@ public class JcloudsDockerIaas extends JcloudsIaas {
}
@Override
- public String associateAddress(NodeMetadata node) {
+ public List<String> associateAddresses(NodeMetadata node) {
log.warn("Not implemented: DockerIaas.associateAddress()");
return null;
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsEC2Iaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsEC2Iaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsEC2Iaas.java
index a66e656..23c62d0 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsEC2Iaas.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsEC2Iaas.java
@@ -262,7 +262,7 @@ public class JcloudsEC2Iaas extends JcloudsIaas {
}
@Override
- public synchronized String associateAddress(NodeMetadata node) {
+ public synchronized List<String> associateAddresses(NodeMetadata node) {
IaasProvider iaasInfo = getIaasProvider();
@@ -328,7 +328,9 @@ public class JcloudsEC2Iaas extends JcloudsIaas {
log.debug("Successfully associated an IP address " + ip
+ " for node with id: " + node.getId());
- return ip;
+ List<String> associatedIPs = new ArrayList<String>();
+ associatedIPs.add(ip);
+ return associatedIPs;
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsGCEIaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsGCEIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsGCEIaas.java
index 969f65d..a4f3abb 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsGCEIaas.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsGCEIaas.java
@@ -214,10 +214,10 @@ public class JcloudsGCEIaas extends JcloudsIaas {
}
@Override
- public String associateAddress(NodeMetadata node) {
+ public List<String> associateAddresses(NodeMetadata node) {
// TODO
- return "";
+ return null;
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsIaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsIaas.java
index 653458a..6d1e7f3 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsIaas.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsIaas.java
@@ -20,6 +20,7 @@
package org.apache.stratos.cloud.controller.iaases;
import com.google.common.collect.ImmutableSet;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.cloud.controller.context.CloudControllerContext;
@@ -36,6 +37,8 @@ import org.jclouds.compute.domain.NodeMetadataBuilder;
import org.jclouds.compute.domain.Template;
import org.jclouds.rest.ResourceNotFoundException;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Set;
/**
@@ -74,11 +77,11 @@ public abstract class JcloudsIaas extends Iaas {
public abstract boolean createKeyPairFromPublicKey(String region, String keyPairName, String publicKey);
/**
- * This will obtain an IP address from the allocated list and associate that IP with this node.
+ * This will obtain an IP addresses from the allocated list and associate that IP with this node.
* @param node Node to be associated with an IP.
- * @return associated public IP.
+ * @return return list of associated public IPs.
*/
- public abstract String associateAddress(NodeMetadata node);
+ public abstract List<String> associateAddresses(NodeMetadata node);
/**
* This will obtain a predefined IP address and associate that IP with this node, if ip is already in use allocate ip from pool
@@ -175,8 +178,7 @@ public abstract class JcloudsIaas extends Iaas {
String autoAssignIpProp = getIaasProvider().getProperty(CloudControllerConstants.AUTO_ASSIGN_IP_PROPERTY);
String preDefinedIp = getIaasProvider().getProperty(CloudControllerConstants.FLOATING_IP_PROPERTY);
- String publicIp = "";
- String ip = "";
+ List<String> associatedIPs = new ArrayList<String>();
// default behavior is autoIpAssign=false
if ((autoAssignIpProp == null) || ((autoAssignIpProp != null) && autoAssignIpProp.equals("false"))) {
@@ -187,7 +189,7 @@ public abstract class JcloudsIaas extends Iaas {
if (log.isDebugEnabled()) {
log.debug("CloudControllerServiceImpl:IpAllocator:preDefinedIp: invoking associatePredefinedAddress" + preDefinedIp);
}
- ip = associatePredefinedAddress(nodeMetadata, preDefinedIp);
+ String ip = associatePredefinedAddress(nodeMetadata, preDefinedIp);
if (ip == null || "".equals(ip) || !preDefinedIp.equals(ip)) {
// throw exception and stop instance creation
@@ -199,6 +201,7 @@ public abstract class JcloudsIaas extends Iaas {
destroyNode(nodeMetadata.getId(), memberContext);
throw new CloudControllerException(msg);
}
+ associatedIPs.add(ip);
} else {
String msg = "Invalid floating ip address configured: " + preDefinedIp +
" - terminating node:" + memberContext.toString();
@@ -213,59 +216,52 @@ public abstract class JcloudsIaas extends Iaas {
log.debug("CloudControllerServiceImpl:IpAllocator:no (valid) predefined floating ip configured, "
+ "selecting available one from pool");
}
- // allocate an IP address - manual IP assigning mode
- ip = associateAddress(nodeMetadata);
-
- if (ip != null) {
- memberContext.setAllocatedIpAddress(ip);
- if (log.isDebugEnabled()) {
- log.debug("Allocated an ip address: "
- + memberContext.toString());
- } else if (log.isInfoEnabled()) {
- log.info("Allocated ip address [ " + memberContext.getAllocatedIpAddress() +
- " ] to member with id: " + memberContext.getMemberId());
- }
+
+ // allocate IP addresses - manual IP assigning mode from stratos point of view
+ associatedIPs = associateAddresses(nodeMetadata);
+
+ // checking for null and empty is enough. If there are elements in this list, they are valid IPs
+ // because we are validating before putting into the list
+ if (associatedIPs == null || associatedIPs.isEmpty()) {
+ // throw exception and stop instance creation
+ String msg = "Error occurred while allocating floating ip addresses. Terminating node : " + memberContext.toString();
+ log.error(msg);
+ // terminate instance
+ destroyNode(nodeMetadata.getId(), memberContext);
+ throw new CloudControllerException(msg);
}
}
-
- if (ip == null) {
- String msg = "No IP address found. IP allocation failed for " + memberContext;
- log.error(msg);
- throw new CloudControllerException(msg);
- }
+
+ memberContext.setAllocatedIPs(associatedIPs.toArray(new String[associatedIPs.size()]));
+ log.info("Allocated IP addresses : "+ memberContext.toString());
// build the node with the new ip
nodeMetadata = NodeMetadataBuilder.fromNodeMetadata(nodeMetadata)
- .publicAddresses(ImmutableSet.of(ip)).build();
+ .publicAddresses(associatedIPs).build();
}
- // public ip
- if (nodeMetadata.getPublicAddresses() != null &&
- nodeMetadata.getPublicAddresses().iterator().hasNext()) {
- ip = nodeMetadata.getPublicAddresses().iterator().next();
- publicIp = ip;
- memberContext.setPublicIpAddress(ip);
- if (log.isDebugEnabled()) {
- log.debug("Retrieving Public IP Address : " + memberContext.toString());
- } else if (log.isInfoEnabled()) {
- log.info("Retrieving Public IP Address: " + memberContext.getPublicIpAddress() +
- ", member id: " + memberContext.getMemberId());
- }
+ // public IPs
+ Set<String> publicIPAddresses = nodeMetadata.getPublicAddresses();
+ if (publicIPAddresses != null && !publicIPAddresses.isEmpty()) {
+ memberContext.setPublicIPs(publicIPAddresses.toArray(new String[publicIPAddresses.size()]));
+ //TODO set a flag in cartridge definition to specify the default public IP or the interface
+ memberContext.setDefaultPublicIP(publicIPAddresses.iterator().next());
+ log.info("Retrieving Public IP Addresses : " + memberContext.toString());
+ } else {
+ memberContext.setPublicIPs(new String[0]);
}
- // private IP
- if (nodeMetadata.getPrivateAddresses() != null &&
- nodeMetadata.getPrivateAddresses().iterator().hasNext()) {
- ip = nodeMetadata.getPrivateAddresses().iterator().next();
- memberContext.setPrivateIpAddress(ip);
- if (log.isDebugEnabled()) {
- log.debug("Retrieving Private IP Address. " + memberContext.toString());
- } else if (log.isInfoEnabled()) {
- log.info("Retrieving Private IP Address: " + memberContext.getPrivateIpAddress() +
- ", member id: " + memberContext.getMemberId());
- }
- }
+ // private IPs
+ Set<String> privateIPAddresses = nodeMetadata.getPrivateAddresses();
+ if (privateIPAddresses != null && !privateIPAddresses.isEmpty()) {
+ memberContext.setPrivateIPs(privateIPAddresses.toArray(new String[privateIPAddresses.size()]));
+ //TODO set a flag in cartridge definition to specify the default private IP or the interface
+ memberContext.setDefaultPrivateIP(privateIPAddresses.iterator().next());
+ log.info("Retrieving Private IP Addresses " + memberContext.toString());
+ } else {
+ memberContext.setPrivateIPs(new String[0]);
+ }
CloudControllerContext.getInstance().updateMemberContext(memberContext);
@@ -332,9 +328,11 @@ public abstract class JcloudsIaas extends Iaas {
// Destroy the node via jclouds
getIaasProvider().getComputeService().destroyNode(nodeId);
- // release allocated IP address
- if (memberContext.getAllocatedIpAddress() != null) {
- releaseAddress(memberContext.getAllocatedIpAddress());
+ // releasing all allocated IPs
+ if (memberContext.getAllocatedIPs() != null) {
+ for (String allocatedIP : memberContext.getAllocatedIPs()) {
+ releaseAddress(allocatedIP);
+ }
}
if (log.isInfoEnabled()) {
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsOpenstackIaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsOpenstackIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsOpenstackIaas.java
index e16a074..d3386f2 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsOpenstackIaas.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsOpenstackIaas.java
@@ -19,6 +19,7 @@
package org.apache.stratos.cloud.controller.iaases;
import java.util.LinkedHashSet;
+import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeoutException;
@@ -223,9 +224,9 @@ public class JcloudsOpenstackIaas extends JcloudsIaas {
}
@Override
- public synchronized String associateAddress(NodeMetadata node) {
+ public synchronized List<String> associateAddresses(NodeMetadata node) {
//TODO return the list of IP addresses once the topology changes is done
- return openstackNetworkingApi.associateAddresses(node).iterator().next();
+ return openstackNetworkingApi.associateAddresses(node);
}
@Override
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsVCloudIaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsVCloudIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsVCloudIaas.java
index 9f87dd4..d45e114 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsVCloudIaas.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/JcloudsVCloudIaas.java
@@ -38,6 +38,7 @@ import org.wso2.carbon.utils.CarbonUtils;
import java.io.File;
import java.io.IOException;
+import java.util.List;
public class JcloudsVCloudIaas extends JcloudsIaas {
@@ -189,10 +190,10 @@ public class JcloudsVCloudIaas extends JcloudsIaas {
}
@Override
- public String associateAddress(NodeMetadata node) {
+ public List<String> associateAddresses(NodeMetadata node) {
// TODO
- return "";
+ return null;
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/MockIaasService.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/MockIaasService.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/MockIaasService.java
index 354484b..6fcd52f 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/MockIaasService.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/MockIaasService.java
@@ -154,8 +154,8 @@ public class MockIaasService {
public void allocateIpAddress(String clusterId, MemberContext memberContext, Partition partition) {
// Allocate mock ip addresses
- memberContext.setPrivateIpAddress(MockIPAddressPool.getInstance().getNextPrivateIpAddress());
- memberContext.setPublicIpAddress(MockIPAddressPool.getInstance().getNextPublicIpAddress());
+ memberContext.setDefaultPrivateIP(MockIPAddressPool.getInstance().getNextPrivateIpAddress());
+ memberContext.setDefaultPublicIP(MockIPAddressPool.getInstance().getNextPublicIpAddress());
}
public void releaseAddress(String ip) {
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/StatisticsDataPublisher.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/StatisticsDataPublisher.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/StatisticsDataPublisher.java
index 0539e23..c2d51a2 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/StatisticsDataPublisher.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/StatisticsDataPublisher.java
@@ -40,6 +40,7 @@ import org.wso2.carbon.databridge.commons.StreamDefinition;
import org.wso2.carbon.utils.CarbonUtils;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
@@ -120,9 +121,9 @@ public class StatisticsDataPublisher {
payload.add("");
}
- payload.add(handleNull(memberContext.getPrivateIpAddress()));
- payload.add(handleNull(memberContext.getPublicIpAddress()));
- payload.add(handleNull(memberContext.getAllocatedIpAddress()));
+ payload.add(handleNull(Arrays.toString(memberContext.getPrivateIPs())));
+ payload.add(handleNull(Arrays.toString(memberContext.getPublicIPs())));
+ payload.add(handleNull(Arrays.toString(memberContext.getAllocatedIPs())));
Event event = new Event();
event.setPayloadData(payload.toArray());
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/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 9dced60..c8b0bbb 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
@@ -38,6 +38,7 @@ import org.apache.stratos.messaging.event.instance.status.InstanceStartedEvent;
import org.apache.stratos.messaging.event.topology.*;
import org.apache.stratos.messaging.util.Util;
+import java.util.Arrays;
import java.util.List;
import java.util.Properties;
import java.util.Set;
@@ -145,8 +146,14 @@ public class TopologyEventPublisher {
memberContext.getNetworkPartitionId(), memberContext.getPartition().getId(), memberContext.getInitTime());
instanceSpawnedEvent.setLbClusterId(memberContext.getLbClusterId());
- instanceSpawnedEvent.setMemberIp(memberContext.getPrivateIpAddress());
- instanceSpawnedEvent.setMemberPublicIp(memberContext.getPublicIpAddress());
+ instanceSpawnedEvent.setDefaultPrivateIP(memberContext.getDefaultPrivateIP());
+ if (memberContext.getPrivateIPs() != null) {
+ instanceSpawnedEvent.setMemberPrivateIPs(Arrays.asList(memberContext.getPrivateIPs()));
+ }
+ instanceSpawnedEvent.setDefaultPublicIP(memberContext.getDefaultPublicIP());
+ if (memberContext.getPublicIPs() != null) {
+ instanceSpawnedEvent.setMemberPublicIPs(Arrays.asList(memberContext.getPublicIPs()));
+ }
instanceSpawnedEvent.setProperties(CloudControllerUtil
.toJavaUtilProperties(memberContext.getProperties()));
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/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 26c3d4a..6220f24 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
@@ -418,9 +418,15 @@ public class TopologyBuilder {
Member member = new Member(service.getServiceName(), clusterId, memberId, instanceId, clusterInstanceId,
networkPartitionId, partitionId, initTime);
member.setStatus(MemberStatus.Created);
- member.setMemberIp(memberContext.getPrivateIpAddress());
+ member.setDefaultPrivateIP(memberContext.getDefaultPrivateIP());
+ if (memberContext.getPrivateIPs() != null) {
+ member.setMemberPrivateIPs(Arrays.asList(memberContext.getPrivateIPs()));
+ }
member.setLbClusterId(lbClusterId);
- member.setMemberPublicIp(memberContext.getPublicIpAddress());
+ member.setDefaultPublicIP(memberContext.getDefaultPublicIP());
+ if (memberContext.getPublicIPs() != null) {
+ member.setMemberPublicIPs(Arrays.asList(memberContext.getPublicIPs()));
+ }
member.setProperties(CloudControllerUtil.toJavaUtilProperties(memberContext.getProperties()));
try {
@@ -581,8 +587,10 @@ public class TopologyBuilder {
memberActivatedEvent.addPort(port);
}
- memberActivatedEvent.setMemberIp(member.getMemberIp());
- memberActivatedEvent.setMemberPublicIp(member.getMemberPublicIp());
+ memberActivatedEvent.setDefaultPrivateIP(member.getDefaultPrivateIP());
+ memberActivatedEvent.setMemberPrivateIPs(member.getMemberPrivateIPs());
+ memberActivatedEvent.setDefaultPublicIP(member.getDefaultPublicIP());
+ memberActivatedEvent.setMemberPublicIPs(member.getMemberPublicIPs());
TopologyManager.updateTopology(topology);
TopologyEventPublisher.sendMemberActivatedEvent(memberActivatedEvent);
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/PodActivationWatcher.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/PodActivationWatcher.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/PodActivationWatcher.java
index 465f0e8..6d27be3 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/PodActivationWatcher.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/PodActivationWatcher.java
@@ -55,10 +55,12 @@ public class PodActivationWatcher implements Runnable {
if (log.isDebugEnabled()) {
log.debug("Pod activation watcher running: [status] " + pod.getCurrentState().getStatus());
}
- if (POD_STATE_RUNNING.equals(pod.getCurrentState().getStatus()) && memberContext.getPublicIpAddress() == null) {
+ if (POD_STATE_RUNNING.equals(pod.getCurrentState().getStatus()) && memberContext.getPublicIPs() == null) {
String hostIP = pod.getCurrentState().getHost();
- memberContext.setPublicIpAddress(hostIP);
- memberContext.setPrivateIpAddress(hostIP);
+ memberContext.setDefaultPublicIP(hostIP);
+ memberContext.setDefaultPrivateIP(hostIP);
+ memberContext.setPublicIPs(new String[]{hostIP});
+ memberContext.setPrivateIPs(new String[]{hostIP});
cloudControllerContext.addMemberContext(memberContext);
// trigger topology
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/topology/Member.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/topology/Member.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/topology/Member.java
index 98f3052..fcad561 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/topology/Member.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/topology/Member.java
@@ -33,9 +33,11 @@ public class Member {
private String partitionId;
private String memberId;
private String status;
- private String memberIp;
+ private String defaultPrivateIP;
+ private List<String> memberPrivateIPs;
private String lbClusterId;
- private String memberPublicIp;
+ private String defaultPublicIP;
+ private List<String> memberPublicIPs;
private List<PropertyBean> property;
public String getServiceName() {
@@ -77,8 +79,24 @@ public class Member {
public void setMemberId(String memberId) {
this.memberId = memberId;
}
+
+ public List<String> getMemberPrivateIPs() {
+ return memberPrivateIPs;
+ }
- public String getStatus() {
+ public void setMemberPrivateIPs(List<String> memberPrivateIPs) {
+ this.memberPrivateIPs = memberPrivateIPs;
+ }
+
+ public List<String> getMemberPublicIPs() {
+ return memberPublicIPs;
+ }
+
+ public void setMemberPublicIPs(List<String> memberPublicIPs) {
+ this.memberPublicIPs = memberPublicIPs;
+ }
+
+ public String getStatus() {
return status;
}
@@ -86,12 +104,12 @@ public class Member {
this.status = status;
}
- public String getMemberIp() {
- return memberIp;
+ public String getDefaultPrivateIP() {
+ return defaultPrivateIP;
}
- public void setMemberIp(String memberIp) {
- this.memberIp = memberIp;
+ public void setDefaultPrivateIP(String defaultPrivateIP) {
+ this.defaultPrivateIP = defaultPrivateIP;
}
public String getLbClusterId() {
@@ -102,12 +120,12 @@ public class Member {
this.lbClusterId = lbClusterId;
}
- public String getMemberPublicIp() {
- return memberPublicIp;
+ public String getDefaultPublicIP() {
+ return defaultPublicIP;
}
- public void setMemberPublicIp(String memberPublicIp) {
- this.memberPublicIp = memberPublicIp;
+ public void setDefaultPublicIP(String defaultPublicIP) {
+ this.defaultPublicIP = defaultPublicIP;
}
public List<PropertyBean> getProperty() {
@@ -144,8 +162,10 @@ public class Member {
+ ", networkPartitionId=" + getNetworkPartitionId()
+ ", partitionId=" + getPartitionId()
+ ", status=" + getStatus()
- + ", memberIp=" + getMemberIp()
- + ", memberPublicIp=" + getMemberPublicIp()
+ + ", defaultPrivateIP=" + getDefaultPrivateIP()
+ + ", memberPrivateIPs=" + memberPrivateIPs.toString()
+ + ", defaultPublicIP=" + getDefaultPublicIP()
+ + ", memberPublicIPs=" + memberPublicIPs.toString()
+ ", lbClusterId=" + getLbClusterId()
+ ", property=" + getProperty() + "]";
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/conf/LoadBalancerConfiguration.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/conf/LoadBalancerConfiguration.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/conf/LoadBalancerConfiguration.java
index 9859864..bf68815 100644
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/conf/LoadBalancerConfiguration.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/conf/LoadBalancerConfiguration.java
@@ -477,8 +477,10 @@ public class LoadBalancerConfiguration {
memberId, "1", Constants.STATIC_NETWORK_PARTITION, Constants.STATIC_PARTITION, initTime);
String ip = memberNode.getProperty(Constants.CONF_PROPERTY_IP);
validateRequiredPropertyInNode(Constants.CONF_PROPERTY_IP, ip, String.format("member %s", memberId));
-
- member.setMemberIp(ip);
+ List<String> memberPrivateIPs = new ArrayList<String>();
+ memberPrivateIPs.add(ip);
+ member.setMemberPrivateIPs(memberPrivateIPs);
+ member.setDefaultPrivateIP(ip);
Node portsNode = memberNode.findChildNodeByName(Constants.CONF_ELEMENT_PORTS);
validateRequiredNode(portsNode, Constants.CONF_ELEMENT_PORTS, String.format("member %s", memberId));
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java
index 83002c9..ec25537 100644
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/endpoint/TenantAwareLoadBalanceEndpoint.java
@@ -412,29 +412,29 @@ public class TenantAwareLoadBalanceEndpoint extends org.apache.synapse.endpoints
if (LoadBalancerConfiguration.getInstance().isTopologyEventListenerEnabled()) {
if (LoadBalancerConfiguration.getInstance().getTopologyMemberIpType() == MemberIpType.Public) {
// Return member's public IP address
- if (StringUtils.isBlank(member.getMemberPublicIp())) {
+ if (StringUtils.isBlank(member.getDefaultPublicIP())) {
if (log.isErrorEnabled()) {
log.error(String.format("Member public IP address not found: [member] %s", member.getMemberId()));
}
throwSynapseException(synCtx, 500, "Internal server error");
}
if (log.isDebugEnabled()) {
- log.debug(String.format("Using member public IP address: [member] %s [ip] %s", member.getMemberId(), member.getMemberPublicIp()));
+ log.debug(String.format("Using member public IP address: [member] %s [ip] %s", member.getMemberId(), member.getDefaultPublicIP()));
}
- return member.getMemberPublicIp();
+ return member.getDefaultPublicIP();
}
}
// Return member's private IP address
- if (StringUtils.isBlank(member.getMemberIp())) {
+ if (StringUtils.isBlank(member.getDefaultPrivateIP())) {
if (log.isErrorEnabled()) {
log.error(String.format("Member IP address not found: [member] %s", member.getMemberId()));
}
throwSynapseException(synCtx, 500, "Internal server error");
}
if (log.isDebugEnabled()) {
- log.debug(String.format("Using member IP address: [member] %s [ip] %s", member.getMemberId(), member.getMemberIp()));
+ log.debug(String.format("Using member IP address: [member] %s [ip] %s", member.getMemberId(), member.getDefaultPrivateIP()));
}
- return member.getMemberIp();
+ return member.getDefaultPrivateIP();
}
/**
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/messaging/LoadBalancerTopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/messaging/LoadBalancerTopologyEventReceiver.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/messaging/LoadBalancerTopologyEventReceiver.java
index 657d18e..843e53e 100644
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/messaging/LoadBalancerTopologyEventReceiver.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/messaging/LoadBalancerTopologyEventReceiver.java
@@ -364,39 +364,39 @@ public class LoadBalancerTopologyEventReceiver {
}
}
- if (StringUtils.isNotBlank(member.getMemberIp())) {
- LoadBalancerContext.getInstance().getMemberIpHostnameMap().put(member.getMemberIp(), hostname);
+ if (StringUtils.isNotBlank(member.getDefaultPrivateIP())) {
+ LoadBalancerContext.getInstance().getMemberIpHostnameMap().put(member.getDefaultPrivateIP(), hostname);
if (log.isDebugEnabled()) {
log.debug(String.format("Member private ip added to member-ip -> hostname map: [service] %s [cluster] " +
"%s [member] %s [private-ip] %s", member.getServiceName(), member.getClusterId(),
- member.getMemberId(), member.getMemberIp()
+ member.getMemberId(), member.getDefaultPrivateIP()
));
}
}
- if (StringUtils.isNotBlank(member.getMemberPublicIp())) {
- LoadBalancerContext.getInstance().getMemberIpHostnameMap().put(member.getMemberPublicIp(), hostname);
+ if (StringUtils.isNotBlank(member.getDefaultPublicIP())) {
+ LoadBalancerContext.getInstance().getMemberIpHostnameMap().put(member.getDefaultPublicIP(), hostname);
if (log.isDebugEnabled()) {
log.debug(String.format("Member public ip added to member-ip -> hostname map: [service] %s [cluster] " +
"%s [member] %s [public-ip] %s", member.getServiceName(), member.getClusterId(),
- member.getMemberId(), member.getMemberPublicIp()
+ member.getMemberId(), member.getDefaultPublicIP()
));
}
}
}
private void removeMemberIpsFromMemberIpHostnameMap(Member member) {
- if (StringUtils.isNotBlank(member.getMemberIp())) {
- LoadBalancerContext.getInstance().getMemberIpHostnameMap().remove(member.getMemberIp());
+ if (StringUtils.isNotBlank(member.getDefaultPrivateIP())) {
+ LoadBalancerContext.getInstance().getMemberIpHostnameMap().remove(member.getDefaultPrivateIP());
if (log.isDebugEnabled()) {
log.debug(String.format("Member private ip removed from member-ip -> hostname map: [private-ip] %s",
- member.getMemberIp()));
+ member.getDefaultPrivateIP()));
}
}
- if (StringUtils.isNotBlank(member.getMemberPublicIp())) {
- LoadBalancerContext.getInstance().getMemberIpHostnameMap().remove(member.getMemberPublicIp());
+ if (StringUtils.isNotBlank(member.getDefaultPublicIP())) {
+ LoadBalancerContext.getInstance().getMemberIpHostnameMap().remove(member.getDefaultPublicIP());
if (log.isDebugEnabled()) {
log.debug(String.format("Member public ip removed from member-ip -> hostname map: [public-ip] %s",
- member.getMemberPublicIp()));
+ member.getDefaultPublicIP()));
}
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/components/org.apache.stratos.load.balancer/src/test/java/org/apache/stratos/load/balancer/test/LoadBalancerConfigurationTest.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/test/java/org/apache/stratos/load/balancer/test/LoadBalancerConfigurationTest.java b/components/org.apache.stratos.load.balancer/src/test/java/org/apache/stratos/load/balancer/test/LoadBalancerConfigurationTest.java
index a3c834d..0848a73 100755
--- a/components/org.apache.stratos.load.balancer/src/test/java/org/apache/stratos/load/balancer/test/LoadBalancerConfigurationTest.java
+++ b/components/org.apache.stratos.load.balancer/src/test/java/org/apache/stratos/load/balancer/test/LoadBalancerConfigurationTest.java
@@ -126,7 +126,7 @@ public class LoadBalancerConfigurationTest {
String memberId = "m1";
Member m1 = cluster1.getMember(memberId);
Assert.assertNotNull(String.format("%s, member not found: [member] %s", validationError, memberId), m1);
- Assert.assertEquals(String.format("%s, member ip not valid", validationError), "10.0.0.10", m1.getMemberIp());
+ Assert.assertEquals(String.format("%s, member ip not valid", validationError), "10.0.0.10", m1.getDefaultPrivateIP());
int proxyPort = 80;
Port m1Http = m1.getPort(proxyPort);
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/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 032c19f..4b6f095 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
@@ -48,9 +48,11 @@ public class Member implements Serializable, LifeCycleStateTransitionBehavior<Me
// Key: Port.proxy
@XmlJavaTypeAdapter(MapAdapter.class)
private final Map<Integer, Port> portMap;
- private String memberPublicIp;
+ private List<String> memberPublicIPs;
+ private String defaultPublicIP;
//private MemberStatus status;
- private String memberIp;
+ private List<String> memberPrivateIPs;
+ private String defaultPrivateIP;
@XmlJavaTypeAdapter(MapAdapter.class)
private Properties properties;
private String lbClusterId;
@@ -148,12 +150,20 @@ public class Member implements Serializable, LifeCycleStateTransitionBehavior<Me
this.properties = properties;
}
- public String getMemberIp() {
- return memberIp;
+ public String getDefaultPrivateIP() {
+ return defaultPrivateIP;
}
- public void setMemberIp(String memberIp) {
- this.memberIp = memberIp;
+ public void setDefaultPrivateIP(String defaultPrivateIP) {
+ this.defaultPrivateIP = defaultPrivateIP;
+ }
+
+ public List<String> getMemberPrivateIPs() {
+ return memberPrivateIPs;
+ }
+
+ public void setMemberPrivateIPs(List<String> memberPrivateIPs) {
+ this.memberPrivateIPs = memberPrivateIPs;
}
public String getPartitionId() {
@@ -172,12 +182,20 @@ public class Member implements Serializable, LifeCycleStateTransitionBehavior<Me
return networkPartitionId;
}
- public String getMemberPublicIp() {
- return memberPublicIp;
+ public String getDefaultPublicIP() {
+ return defaultPublicIP;
}
- public void setMemberPublicIp(String memberPublicIp) {
- this.memberPublicIp = memberPublicIp;
+ public void setDefaultPublicIP(String defaultPublicIP) {
+ this.defaultPublicIP = defaultPublicIP;
+ }
+
+ public List<String> getMemberPublicIPs() {
+ return memberPublicIPs;
+ }
+
+ public void setMemberPublicIPs(List<String> memberPublicIPs) {
+ this.memberPublicIPs = memberPublicIPs;
}
public String getInstanceId() {
@@ -199,9 +217,11 @@ public class Member implements Serializable, LifeCycleStateTransitionBehavior<Me
+ ", partitionId=" + getPartitionId()
+ ", initTime=" + getInitTime()
+ ", portMap=" + getPorts()
- + ", memberPublicIp=" + getMemberPublicIp()
+ + ", defaultPublicIP=" + getDefaultPublicIP()
+ + ", memberPublicIPs=" + memberPublicIPs.toString()
+ ", status=" + getStatus()
- + ", memberIp=" + getMemberIp()
+ + ", defaultPrivateIP=" + getDefaultPrivateIP()
+ + ", memberPrivateIPs=" + memberPrivateIPs.toString()
+ ", lbClusterId=" + getLbClusterId()
+ ", properties=" + getProperties() + "]";
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/InstanceSpawnedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/InstanceSpawnedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/InstanceSpawnedEvent.java
index 36b4acb..05d30ff 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/InstanceSpawnedEvent.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/InstanceSpawnedEvent.java
@@ -20,6 +20,7 @@ package org.apache.stratos.messaging.event.topology;
import java.io.Serializable;
+import java.util.List;
import java.util.Properties;
@@ -39,8 +40,10 @@ public class InstanceSpawnedEvent extends TopologyEvent implements Serializable
private final long initTime;
private String lbClusterId;
- private String memberPublicIp;
- private String memberIp;
+ private List<String> memberPublicIPs;
+ private String defaultPublicIP;
+ private List<String> memberPrivateIPs;
+ private String defaultPrivateIP;
private Properties properties;
@@ -92,20 +95,36 @@ public class InstanceSpawnedEvent extends TopologyEvent implements Serializable
this.lbClusterId = lbClusterId;
}
- public String getMemberPublicIp() {
- return memberPublicIp;
+ public String getDefaultPublicIP() {
+ return defaultPublicIP;
}
- public void setMemberPublicIp(String memberPublicIp) {
- this.memberPublicIp = memberPublicIp;
+ public void setDefaultPublicIP(String defaultPublicIP) {
+ this.defaultPublicIP = defaultPublicIP;
+ }
+
+ public List<String> getMemberPublicIPs() {
+ return memberPublicIPs;
+ }
+
+ public void setMemberPublicIPs(List<String> memberPublicIPs) {
+ this.memberPublicIPs = memberPublicIPs;
}
- public String getMemberIp() {
- return memberIp;
+ public String getDefaultPrivateIP() {
+ return defaultPrivateIP;
}
- public void setMemberIp(String memberIp) {
- this.memberIp = memberIp;
+ public void setDefaultPrivateIP(String defaultPrivateIP) {
+ this.defaultPrivateIP = defaultPrivateIP;
+ }
+
+ public List<String> getMemberPrivateIPs() {
+ return memberPrivateIPs;
+ }
+
+ public void setMemberPrivateIPs(List<String> memberPrivateIPs) {
+ this.memberPrivateIPs = memberPrivateIPs;
}
public Properties getProperties() {
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberActivatedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberActivatedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberActivatedEvent.java
index c00b2bc..3c22780 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberActivatedEvent.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberActivatedEvent.java
@@ -44,10 +44,12 @@ public class MemberActivatedEvent extends TopologyEvent implements Serializable
// Key: Port.proxy
private Map<Integer, Port> portMap;
- private String memberIp;
+ private List<String> memberPrivateIPs;
+ private String defaultPrivateIP;
private String groupId;
private String applicationId;
- private String memberPublicIp;
+ private List<String> memberPublicIPs;
+ private String defaultPublicIP;
public MemberActivatedEvent(String serviceName, String clusterId, String clusterInstanceId, String memberId,
String instanceId, String networkPartitionId, String partitionId) {
@@ -109,13 +111,21 @@ public class MemberActivatedEvent extends TopologyEvent implements Serializable
public boolean portExists(Port port) {
return this.portMap.containsKey(port.getProxy());
}
+
+ public List<String> getMemberPrivateIPs() {
+ return memberPrivateIPs;
+ }
+
+ public void setMemberPrivateIPs(List<String> memberPrivateIPs) {
+ this.memberPrivateIPs = memberPrivateIPs;
+ }
- public String getMemberIp() {
- return memberIp;
+ public String getDefaultPrivateIP() {
+ return defaultPrivateIP;
}
- public void setMemberIp(String memberIp) {
- this.memberIp = memberIp;
+ public void setDefaultPrivateIP(String defaultPrivateIP) {
+ this.defaultPrivateIP = defaultPrivateIP;
}
public String getGroupId() {
@@ -133,13 +143,21 @@ public class MemberActivatedEvent extends TopologyEvent implements Serializable
public void setApplicationId(String applicationId) {
this.applicationId = applicationId;
}
+
+ public List<String> getMemberPublicIPs() {
+ return memberPublicIPs;
+ }
+
+ public void setMemberPublicIPs(List<String> memberPublicIp) {
+ this.memberPublicIPs = memberPublicIp;
+ }
- public String getMemberPublicIp() {
- return memberPublicIp;
+ public String getDefaultPublicIP() {
+ return defaultPublicIP;
}
- public void setMemberPublicIp(String memberPublicIp) {
- this.memberPublicIp = memberPublicIp;
+ public void setDefaultPublicIP(String defaultPublicIP) {
+ this.defaultPublicIP = defaultPublicIP;
}
public String getInstanceId() {
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/InstanceSpawnedMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/InstanceSpawnedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/InstanceSpawnedMessageProcessor.java
index d38b993..f3fca4c 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/InstanceSpawnedMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/InstanceSpawnedMessageProcessor.java
@@ -133,8 +133,10 @@ public class InstanceSpawnedMessageProcessor extends MessageProcessor {
Member member = new Member(event.getServiceName(), event.getClusterId(), event.getMemberId(),
event.getInstanceId(), event.getClusterInstanceId(), event.getNetworkPartitionId(),
event.getPartitionId(), event.getInitTime());
- member.setMemberPublicIp(event.getMemberPublicIp());
- member.setMemberIp(event.getMemberIp());
+ member.setDefaultPublicIP(event.getDefaultPublicIP());
+ member.setMemberPublicIPs(event.getMemberPublicIPs());
+ member.setDefaultPrivateIP(event.getDefaultPrivateIP());
+ member.setMemberPrivateIPs(event.getMemberPrivateIPs());
member.setLbClusterId(event.getLbClusterId());
member.setProperties(event.getProperties());
cluster.addMember(member);
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberActivatedMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberActivatedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberActivatedMessageProcessor.java
index 36ab6d0..b66bbea 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberActivatedMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberActivatedMessageProcessor.java
@@ -98,7 +98,7 @@ public class MemberActivatedMessageProcessor extends MessageProcessor {
}
// Validate event properties
- if ((event.getMemberIp() == null) || event.getMemberIp().isEmpty()) {
+ if ((event.getDefaultPrivateIP() == null) || event.getDefaultPrivateIP().isEmpty()) {
throw new RuntimeException(String.format("No ip address found in member activated event: [service] %s [cluster] %s [member] %s",
event.getServiceName(),
event.getClusterId(),
@@ -159,7 +159,8 @@ public class MemberActivatedMessageProcessor extends MessageProcessor {
// Apply changes to the topology
member.addPorts(event.getPorts());
- member.setMemberIp(event.getMemberIp());
+ member.setDefaultPrivateIP(event.getDefaultPrivateIP());
+ member.setMemberPrivateIPs(event.getMemberPrivateIPs());
if (!member.isStateTransitionValid(MemberStatus.Activated)) {
log.error("Invalid State Transition from " + member.getStatus() + " to " + MemberStatus.Activated);
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
index 7f20d14..83e7d98 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
@@ -627,16 +627,18 @@ public class ObjectConverter {
memberBean.setLbClusterId(member.getLbClusterId());
memberBean.setNetworkPartitionId(member.getNetworkPartitionId());
memberBean.setPartitionId(member.getPartitionId());
- if (member.getMemberIp() == null) {
- memberBean.setMemberIp("NULL");
+ if (member.getDefaultPrivateIP() == null) {
+ memberBean.setDefaultPrivateIP("NULL");
} else {
- memberBean.setMemberIp(member.getMemberIp());
+ memberBean.setDefaultPrivateIP(member.getDefaultPrivateIP());
}
- if (member.getMemberPublicIp() == null) {
- memberBean.setMemberPublicIp("NULL");
+ if (member.getDefaultPublicIP() == null) {
+ memberBean.setDefaultPublicIP("NULL");
} else {
- memberBean.setMemberPublicIp(member.getMemberPublicIp());
+ memberBean.setDefaultPublicIP(member.getDefaultPublicIP());
}
+ memberBean.setMemberPrivateIPs(member.getMemberPrivateIPs());
+ memberBean.setMemberPublicIPs(member.getMemberPublicIPs());
memberBean.setStatus(member.getStatus().toString());
memberBean.setProperty(convertJavaUtilPropertiesToPropertyBeans(member.getProperties()));
clusterBean.getMember().add(memberBean);
@@ -672,16 +674,18 @@ public class ObjectConverter {
memberBean.setNetworkPartitionId(member.getNetworkPartitionId());
memberBean.setPartitionId(member.getPartitionId());
memberBean.setMemberId(member.getMemberId());
- if (member.getMemberIp() == null) {
- memberBean.setMemberIp("NULL");
+ if (member.getDefaultPrivateIP() == null) {
+ memberBean.setDefaultPrivateIP("NULL");
} else {
- memberBean.setMemberIp(member.getMemberIp());
+ memberBean.setDefaultPrivateIP(member.getDefaultPrivateIP());
}
- if (member.getMemberPublicIp() == null) {
- memberBean.setMemberPublicIp("NULL");
+ if (member.getDefaultPublicIP() == null) {
+ memberBean.setDefaultPublicIP("NULL");
} else {
- memberBean.setMemberPublicIp(member.getMemberPublicIp());
+ memberBean.setDefaultPublicIP(member.getDefaultPublicIP());
}
+ memberBean.setMemberPrivateIPs(member.getMemberPrivateIPs());
+ memberBean.setMemberPublicIPs(member.getMemberPublicIPs());
memberBean.setServiceName(member.getServiceName());
memberBean.setStatus(member.getStatus().toString());
memberBean.setProperty(convertJavaUtilPropertiesToPropertyBeans(member.getProperties()));
http://git-wip-us.apache.org/repos/asf/stratos/blob/2f93602e/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyConfigWriter.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyConfigWriter.java b/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyConfigWriter.java
index f7349d9..45feb6a 100644
--- a/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyConfigWriter.java
+++ b/extensions/load-balancer/haproxy-extension/src/main/java/org/apache/stratos/haproxy/extension/HAProxyConfigWriter.java
@@ -179,7 +179,7 @@ public class HAProxyConfigWriter {
for (Member member : cluster.getMembers()) {
if (member.getNetworkPartitionId().equals(HAProxyContext.getInstance().getNetworkPartitionId())) {
backEndHttp.append("\tserver ").append(member.getMemberId()).append(" ")
- .append(member.getMemberIp()).append(":").append(port.getValue()).append(NEW_LINE);
+ .append(member.getDefaultPrivateIP()).append(":").append(port.getValue()).append(NEW_LINE);
}
}
backEndHttp.append(NEW_LINE);
@@ -202,7 +202,7 @@ public class HAProxyConfigWriter {
for (Member member : cluster.getMembers()) {
if (member.getNetworkPartitionId().equals(HAProxyContext.getInstance().getNetworkPartitionId())) {
backEndHttps.append("\tserver ").append(member.getMemberId()).append(" ")
- .append(member.getMemberIp()).append(":").append(port.getValue()).append(NEW_LINE);
+ .append(member.getDefaultPrivateIP()).append(":").append(port.getValue()).append(NEW_LINE);
}
}
backEndHttps.append(NEW_LINE);