You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2015/03/06 15:03:37 UTC
stratos git commit: Adding load balancing ip type enumeration and
updating load balancer common topology receiver
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 <im...@apache.org>
Authored: Fri Mar 6 19:33:30 2015 +0530
Committer: Imesh Gunaratne <im...@apache.org>
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":{