Repository: stratos Updated Branches: refs/heads/master 23e2a7580 -> 371a2f384
Adding load balancing ip type enumeration and updating load balancer common topology receiver Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/371a2f38 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/371a2f38 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/371a2f38 Branch: refs/heads/master Commit: 371a2f384ff19e8129002c49603700638306af4c Parents: 23e2a75 Author: Imesh Gunaratne <[email protected]> Authored: Fri Mar 6 19:33:30 2015 +0530 Committer: Imesh Gunaratne <[email protected]> Committed: Fri Mar 6 19:33:30 2015 +0530 ---------------------------------------------------------------------- .../agent/test/JavaCartridgeAgentTest.java | 5 +- .../cloud/controller/domain/Cartridge.java | 7 +- .../domain/CartridgeInstanceData.java | 120 ------------------- .../cloud/controller/domain/MemberContext.java | 11 ++ .../publisher/TopologyEventPublisher.java | 1 + .../messaging/topology/TopologyBuilder.java | 3 +- .../impl/CloudControllerServiceImpl.java | 9 +- .../controller/util/CloudControllerUtil.java | 8 +- .../common/domain/LoadBalancingIPType.java | 27 +++++ ...LoadBalancerCommonTopologyEventReceiver.java | 32 +++-- .../messaging/domain/topology/Member.java | 11 +- .../event/topology/MemberCreatedEvent.java | 15 ++- .../topology/MemberCreatedMessageProcessor.java | 2 +- .../test/PythonCartridgeAgentTest.java | 5 +- samples/cartridges/kubernetes/php.json | 3 +- samples/cartridges/kubernetes/tomcat.json | 3 +- 16 files changed, 116 insertions(+), 146 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.cartridge.agent/src/test/java/org/apache/stratos/cartridge/agent/test/JavaCartridgeAgentTest.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cartridge.agent/src/test/java/org/apache/stratos/cartridge/agent/test/JavaCartridgeAgentTest.java b/components/org.apache.stratos.cartridge.agent/src/test/java/org/apache/stratos/cartridge/agent/test/JavaCartridgeAgentTest.java index c077536..9e38656 100644 --- a/components/org.apache.stratos.cartridge.agent/src/test/java/org/apache/stratos/cartridge/agent/test/JavaCartridgeAgentTest.java +++ b/components/org.apache.stratos.cartridge.agent/src/test/java/org/apache/stratos/cartridge/agent/test/JavaCartridgeAgentTest.java @@ -27,6 +27,7 @@ import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.stratos.common.domain.LoadBalancingIPType; import org.apache.stratos.common.threading.StratosThreadPool; import org.apache.stratos.messaging.broker.publish.EventPublisher; import org.apache.stratos.messaging.broker.publish.EventPublisherPool; @@ -443,7 +444,9 @@ public class JavaCartridgeAgentTest { service.addCluster(cluster); Member member = new Member(service.getServiceName(), cluster.getClusterId(), MEMBER_ID, - CLUSTER_INSTANCE_ID, NETWORK_PARTITION_ID, PARTITION_ID, System.currentTimeMillis()); + CLUSTER_INSTANCE_ID, NETWORK_PARTITION_ID, PARTITION_ID, LoadBalancingIPType.Private, + System.currentTimeMillis()); + member.setDefaultPrivateIP("10.0.0.1"); member.setDefaultPublicIP("20.0.0.1"); Properties properties = new Properties(); http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/Cartridge.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/Cartridge.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/Cartridge.java index 29542eb..9b6160d 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/Cartridge.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/Cartridge.java @@ -21,6 +21,7 @@ package org.apache.stratos.cloud.controller.domain; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.stratos.common.domain.LoadBalancingIPType; import java.io.Serializable; import java.util.*; @@ -47,7 +48,7 @@ public class Cartridge implements Serializable{ private List<PortMapping> portMappings; private Persistence persistence; private List<AppType> appTypeMappings; - private String loadBalancingIPType; + private LoadBalancingIPType loadBalancingIPType; private String[] metadataKeys; /** @@ -344,11 +345,11 @@ public class Cartridge implements Serializable{ this.metadataKeys = metadataKeys; } - public String getLoadBalancingIPType() { + public LoadBalancingIPType getLoadBalancingIPType() { return loadBalancingIPType; } - public void setLoadBalancingIPType(String loadBalancingIPType) { + public void setLoadBalancingIPType(LoadBalancingIPType loadBalancingIPType) { this.loadBalancingIPType = loadBalancingIPType; } http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/CartridgeInstanceData.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/CartridgeInstanceData.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/CartridgeInstanceData.java deleted file mode 100644 index 695d4bd..0000000 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/CartridgeInstanceData.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.stratos.cloud.controller.domain; - -import org.jclouds.compute.domain.NodeMetadata; - -/** - * This class holds the data to be published to BAM. - */ -public class CartridgeInstanceData { - - // Cartridge type - private String type; - - private String nodeId; - - private String domain; - - private String iaas; - - private String status; - - private String tenantRange; - - private String alias; - - private boolean isMultiTenant; - - private NodeMetadata metaData; - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - public String getNodeId() { - return nodeId; - } - - public void setNodeId(String nodeId) { - this.nodeId = nodeId; - } - - public String getDomain() { - return domain; - } - - public void setDomain(String domain) { - this.domain = domain; - } - - public String getIaas() { - return iaas; - } - - public void setIaas(String iaas) { - this.iaas = iaas; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public NodeMetadata getMetaData() { - return metaData; - } - - public void setMetaData(NodeMetadata metaData) { - this.metaData = metaData; - } - - public String getTenantRange() { - return tenantRange; - } - - public void setTenantRange(String tenantRange) { - this.tenantRange = tenantRange; - } - - public boolean isMultiTenant() { - return isMultiTenant; - } - - public void setMultiTenant(boolean isMultiTenant) { - this.isMultiTenant = isMultiTenant; - } - - public String getAlias() { - return alias; - } - - public void setAlias(String alias) { - this.alias = alias; - } - - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/MemberContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/MemberContext.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/MemberContext.java index df2f990..2388e99 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/MemberContext.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/MemberContext.java @@ -20,6 +20,7 @@ package org.apache.stratos.cloud.controller.domain; import org.apache.stratos.common.Properties; import org.apache.stratos.common.Property; +import org.apache.stratos.common.domain.LoadBalancingIPType; import org.apache.stratos.common.domain.NameValuePair; import java.io.Serializable; @@ -74,6 +75,7 @@ public class MemberContext implements Serializable { private NameValuePair[] dynamicPayload; private String kubernetesPodId; private String kubernetesPodLabel; + private LoadBalancingIPType loadBalancingIPType; public MemberContext(String applicationId, String cartridgeType, String clusterId, String memberId) { @@ -278,6 +280,14 @@ public class MemberContext implements Serializable { return kubernetesPodLabel; } + public LoadBalancingIPType getLoadBalancingIPType() { + return loadBalancingIPType; + } + + public void setLoadBalancingIPType(LoadBalancingIPType loadBalancingIPType) { + this.loadBalancingIPType = loadBalancingIPType; + } + @Override public String toString() { return "MemberContext [" @@ -297,6 +307,7 @@ public class MemberContext implements Serializable { + ", networkPartitionId=" + networkPartitionId + ", kubernetesPodId=" + kubernetesPodId + ", kubernetesPodLabel=" + kubernetesPodLabel + + ", loadBalancingIPType=" + loadBalancingIPType + ", instanceMetadata=" + instanceMetadata + ", properties=" + properties + "]"; } http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/TopologyEventPublisher.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/TopologyEventPublisher.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/TopologyEventPublisher.java index b72965d..55ff173 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/TopologyEventPublisher.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/TopologyEventPublisher.java @@ -145,6 +145,7 @@ public class TopologyEventPublisher { memberContext.getMemberId(), memberContext.getNetworkPartitionId(), memberContext.getPartition().getId(), + memberContext.getLoadBalancingIPType(), memberContext.getInitTime()); memberCreatedEvent.setProperties(CloudControllerUtil http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java index 219bb1a..aa4dce3 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java @@ -21,7 +21,6 @@ package org.apache.stratos.cloud.controller.messaging.topology; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.cloud.controller.context.CloudControllerContext; -import org.apache.stratos.cloud.controller.domain.Cartridge; import org.apache.stratos.cloud.controller.domain.*; import org.apache.stratos.cloud.controller.exception.InvalidCartridgeTypeException; import org.apache.stratos.cloud.controller.exception.InvalidMemberException; @@ -402,7 +401,7 @@ public class TopologyBuilder { try { TopologyManager.acquireWriteLock(); Member member = new Member(service.getServiceName(), clusterId, memberId, clusterInstanceId, - networkPartitionId, partitionId, initTime); + networkPartitionId, partitionId, memberContext.getLoadBalancingIPType(), initTime); member.setStatus(MemberStatus.Created); member.setLbClusterId(lbClusterId); member.setProperties(CloudControllerUtil.toJavaUtilProperties(memberContext.getProperties())); http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java index d39fb00..958eb44 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java @@ -25,8 +25,6 @@ import org.apache.stratos.cloud.controller.concurrent.PartitionValidatorCallable import org.apache.stratos.cloud.controller.config.CloudControllerConfig; import org.apache.stratos.cloud.controller.context.CloudControllerContext; import org.apache.stratos.cloud.controller.domain.*; -import org.apache.stratos.cloud.controller.domain.Cartridge; -import org.apache.stratos.cloud.controller.domain.Dependencies; import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesCluster; import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesHost; import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesMaster; @@ -38,6 +36,7 @@ import org.apache.stratos.cloud.controller.services.CloudControllerService; import org.apache.stratos.cloud.controller.util.CloudControllerConstants; import org.apache.stratos.cloud.controller.util.CloudControllerUtil; import org.apache.stratos.common.Property; +import org.apache.stratos.common.domain.LoadBalancingIPType; import org.apache.stratos.common.threading.StratosThreadPool; import org.apache.stratos.messaging.domain.topology.*; @@ -404,7 +403,8 @@ public class CloudControllerServiceImpl implements CloudControllerService { // Create member context String applicationId = clusterContext.getApplicationId(); - MemberContext memberContext = createMemberContext(applicationId, cartridgeType, memberId, instanceContext); + MemberContext memberContext = createMemberContext(applicationId, cartridgeType, memberId, + cartridge.getLoadBalancingIPType(), instanceContext); // Prepare payload StringBuilder payload = new StringBuilder(clusterContext.getPayload()); @@ -473,7 +473,7 @@ public class CloudControllerServiceImpl implements CloudControllerService { } private MemberContext createMemberContext(String applicationId, String cartridgeType, String memberId, - InstanceContext instanceContext) { + LoadBalancingIPType loadBalancingIPType, InstanceContext instanceContext) { MemberContext memberContext = new MemberContext( applicationId, cartridgeType, instanceContext.getClusterId(), memberId); @@ -482,6 +482,7 @@ public class CloudControllerServiceImpl implements CloudControllerService { memberContext.setPartition(instanceContext.getPartition()); memberContext.setInitTime(instanceContext.getInitTime()); memberContext.setProperties(instanceContext.getProperties()); + memberContext.setLoadBalancingIPType(loadBalancingIPType); memberContext.setInitTime(System.currentTimeMillis()); return memberContext; http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java index abd938f..e114bc8 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java @@ -36,6 +36,7 @@ import org.apache.stratos.common.Property; import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesCluster; import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesHost; import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesMaster; +import org.apache.stratos.common.domain.LoadBalancingIPType; import org.apache.stratos.messaging.domain.topology.Topology; import org.wso2.carbon.registry.core.exceptions.RegistryException; @@ -105,7 +106,12 @@ public class CloudControllerUtil { } cartridge.setMultiTenant(config.isMultiTenant()); cartridge.setTenantPartitions(config.getTenantPartitions()); - cartridge.setLoadBalancingIPType(config.getLoadBalancingIPType()); + cartridge.setLoadBalancingIPType(LoadBalancingIPType.Private); + if(StringUtils.isNotBlank(config.getLoadBalancingIPType())) { + if(config.getLoadBalancingIPType().equals("public")) { + cartridge.setLoadBalancingIPType(LoadBalancingIPType.Public); + } + } cartridge.setMetadataKeys(config.getMetadataKeys()); org.apache.stratos.common.Properties props = config.getProperties(); http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/domain/LoadBalancingIPType.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/domain/LoadBalancingIPType.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/domain/LoadBalancingIPType.java new file mode 100644 index 0000000..4e58f0c --- /dev/null +++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/domain/LoadBalancingIPType.java @@ -0,0 +1,27 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.stratos.common.domain; + +/** + * Load balancing ip type. + */ +public enum LoadBalancingIPType { + Private, Public +} http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java index 17d02ab..1b29a95 100644 --- a/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java +++ b/components/org.apache.stratos.load.balancer.common/src/main/java/org/apache/stratos/load/balancer/common/event/receivers/LoadBalancerCommonTopologyEventReceiver.java @@ -19,8 +19,10 @@ package org.apache.stratos.load.balancer.common.event.receivers; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.stratos.common.domain.LoadBalancingIPType; import org.apache.stratos.load.balancer.common.topology.TopologyProvider; import org.apache.stratos.messaging.domain.topology.*; import org.apache.stratos.messaging.event.Event; @@ -362,15 +364,31 @@ public class LoadBalancerCommonTopologyEventReceiver extends TopologyEventReceiv } private org.apache.stratos.load.balancer.common.domain.Member transformMember(Member messagingMember) { - boolean useMemberPublicIP = Boolean.getBoolean("load.balancer.member.public.ip"); - String hostName = (useMemberPublicIP) ? messagingMember.getDefaultPublicIP() : - messagingMember.getDefaultPrivateIP(); + + String hostName; + if(messagingMember.getLoadBalancingIPType() == LoadBalancingIPType.Private) { + if (StringUtils.isEmpty(messagingMember.getDefaultPrivateIP())) { + throw new RuntimeException(String.format("Default private IP not found: [member] %s", + messagingMember.getMemberId())); + } + hostName = messagingMember.getDefaultPrivateIP(); + } else if(messagingMember.getLoadBalancingIPType() == LoadBalancingIPType.Public) { + if (StringUtils.isEmpty(messagingMember.getDefaultPublicIP())) { + throw new RuntimeException(String.format("Default public IP not found: [member] %s", + messagingMember.getMemberId())); + } + hostName = messagingMember.getDefaultPublicIP(); + } else { + throw new RuntimeException(String.format("Unknown load balancing IP type found: %s", + messagingMember.getLoadBalancingIPType())); + } + org.apache.stratos.load.balancer.common.domain.Member member = new org.apache.stratos.load.balancer.common.domain.Member(messagingMember.getServiceName(), - messagingMember.getClusterId(), messagingMember.getMemberId(), - hostName); - if(messagingMember.getPorts() != null) { - for(Port port : messagingMember.getPorts()) { + messagingMember.getClusterId(), messagingMember.getMemberId(), hostName); + + if (messagingMember.getPorts() != null) { + for (Port port : messagingMember.getPorts()) { member.addPort(transformPort(port)); } } http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Member.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Member.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Member.java index 24753fd..82dbc71 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Member.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Member.java @@ -19,6 +19,7 @@ package org.apache.stratos.messaging.domain.topology; +import org.apache.stratos.common.domain.LoadBalancingIPType; import org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleStateManager; import org.apache.stratos.messaging.adapters.MapAdapter; import org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleStateTransitionBehavior; @@ -58,9 +59,11 @@ public class Member implements Serializable, LifeCycleStateTransitionBehavior<Me private String lbClusterId; // instance id to use if snapshot wise group scaling is enabled private LifeCycleStateManager<MemberStatus> memberStateManager; + private LoadBalancingIPType loadBalancingIPType; public Member(String serviceName, String clusterId, String memberId, String clusterInstanceId, - String networkPartitionId, String partitionId, long initTime) { + String networkPartitionId, String partitionId, LoadBalancingIPType loadBalancingIPType, + long initTime) { this.serviceName = serviceName; this.clusterId = clusterId; this.clusterInstanceId = clusterInstanceId; @@ -68,6 +71,7 @@ public class Member implements Serializable, LifeCycleStateTransitionBehavior<Me this.partitionId = partitionId; this.memberId = memberId; this.portMap = new HashMap<Integer, Port>(); + this.loadBalancingIPType = loadBalancingIPType; this.initTime = initTime; this.memberStateManager = new LifeCycleStateManager<MemberStatus>(MemberStatus.Created, memberId); } @@ -201,6 +205,10 @@ public class Member implements Serializable, LifeCycleStateTransitionBehavior<Me return clusterInstanceId; } + public LoadBalancingIPType getLoadBalancingIPType() { + return loadBalancingIPType; + } + @Override public String toString() { return "Member [serviceName=" + getServiceName() @@ -217,6 +225,7 @@ public class Member implements Serializable, LifeCycleStateTransitionBehavior<Me + ", defaultPrivateIP=" + getDefaultPrivateIP() + ", memberPrivateIPs=" + ((memberPrivateIPs != null) ? memberPrivateIPs.toString() : "") + ", lbClusterId=" + getLbClusterId() + + ", loadBalancingIPType=" + getLoadBalancingIPType() + ", properties=" + getProperties() + "]"; } } http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberCreatedEvent.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberCreatedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberCreatedEvent.java index e78b36e..9eb409d 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberCreatedEvent.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberCreatedEvent.java @@ -19,6 +19,8 @@ package org.apache.stratos.messaging.event.topology; +import org.apache.stratos.common.domain.LoadBalancingIPType; + import java.io.Serializable; import java.util.Properties; @@ -35,19 +37,22 @@ public class MemberCreatedEvent extends TopologyEvent implements Serializable { private final String networkPartitionId; private final String partitionId; private final String memberId; - + private final LoadBalancingIPType loadBalancingIPType; private final long initTime; private Properties properties; public MemberCreatedEvent(String serviceName, String clusterId, String clusterInstanceId, String memberId, - String networkPartitionId, String partitionId, long initTime) { + String networkPartitionId, String partitionId, LoadBalancingIPType loadBalancingIPType, + long initTime) { + this.serviceName = serviceName; this.clusterId = clusterId; this.clusterInstanceId = clusterInstanceId; this.memberId = memberId; this.networkPartitionId = networkPartitionId; this.partitionId = partitionId; + this.loadBalancingIPType = loadBalancingIPType; this.initTime = initTime; } @@ -70,7 +75,11 @@ public class MemberCreatedEvent extends TopologyEvent implements Serializable { public String getMemberId() { return memberId; } - + + public LoadBalancingIPType getLoadBalancingIPType() { + return loadBalancingIPType; + } + public long getInitTime() { return initTime; } http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberCreatedMessageProcessor.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberCreatedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberCreatedMessageProcessor.java index 53f696a..c4e1f31 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberCreatedMessageProcessor.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberCreatedMessageProcessor.java @@ -115,7 +115,7 @@ public class MemberCreatedMessageProcessor extends MessageProcessor { // Apply changes to the topology Member member = new Member(event.getServiceName(), event.getClusterId(), event.getMemberId(), event.getClusterInstanceId(), event.getNetworkPartitionId(), - event.getPartitionId(), event.getInitTime()); + event.getPartitionId(), event.getLoadBalancingIPType(), event.getInitTime()); member.setProperties(event.getProperties()); cluster.addMember(member); http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/components/org.apache.stratos.python.cartridge.agent/src/test/java/org/apache/stratos/python.cartridge.agent/test/PythonCartridgeAgentTest.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.python.cartridge.agent/src/test/java/org/apache/stratos/python.cartridge.agent/test/PythonCartridgeAgentTest.java b/components/org.apache.stratos.python.cartridge.agent/src/test/java/org/apache/stratos/python.cartridge.agent/test/PythonCartridgeAgentTest.java index bd016f4..8b434d9 100644 --- a/components/org.apache.stratos.python.cartridge.agent/src/test/java/org/apache/stratos/python.cartridge.agent/test/PythonCartridgeAgentTest.java +++ b/components/org.apache.stratos.python.cartridge.agent/src/test/java/org/apache/stratos/python.cartridge.agent/test/PythonCartridgeAgentTest.java @@ -24,6 +24,7 @@ import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.stratos.common.domain.LoadBalancingIPType; import org.apache.stratos.common.threading.StratosThreadPool; import org.apache.stratos.messaging.broker.publish.EventPublisher; import org.apache.stratos.messaging.broker.publish.EventPublisherPool; @@ -331,7 +332,9 @@ public class PythonCartridgeAgentTest { service.addCluster(cluster); Member member = new Member(service.getServiceName(), cluster.getClusterId(), MEMBER_ID, - CLUSTER_INSTANCE_ID, NETWORK_PARTITION_ID, PARTITION_ID, System.currentTimeMillis()); + CLUSTER_INSTANCE_ID, NETWORK_PARTITION_ID, PARTITION_ID, LoadBalancingIPType.Private, + System.currentTimeMillis()); + member.setDefaultPrivateIP("10.0.0.1"); member.setDefaultPublicIP("20.0.0.1"); Properties properties = new Properties(); http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/samples/cartridges/kubernetes/php.json ---------------------------------------------------------------------- diff --git a/samples/cartridges/kubernetes/php.json b/samples/cartridges/kubernetes/php.json index 50c8497..09900ff 100755 --- a/samples/cartridges/kubernetes/php.json +++ b/samples/cartridges/kubernetes/php.json @@ -7,11 +7,12 @@ "description": "php Cartridge", "version": "7", "multiTenant": "false", + "loadBalancingIPType" : "public", "portMapping": [ { "protocol": "http", "port": "80", - "proxyPort": "8280" + "proxyPort": "8281" } ], "deployment":{ http://git-wip-us.apache.org/repos/asf/stratos/blob/371a2f38/samples/cartridges/kubernetes/tomcat.json ---------------------------------------------------------------------- diff --git a/samples/cartridges/kubernetes/tomcat.json b/samples/cartridges/kubernetes/tomcat.json index fb06928..8a61be5 100755 --- a/samples/cartridges/kubernetes/tomcat.json +++ b/samples/cartridges/kubernetes/tomcat.json @@ -7,11 +7,12 @@ "description": "Tomcat 7 Cartridge", "version": "7", "multiTenant": "false", + "loadBalancingIPType" : "public", "portMapping": [ { "protocol": "http", "port": "8080", - "proxyPort": "8280" + "proxyPort": "8281" } ], "deployment":{
