Repository: stratos Updated Branches: refs/heads/docker-integration 5ab19f5d0 -> bedaac716
Setting environment variables in a Container. Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/f44689af Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/f44689af Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/f44689af Branch: refs/heads/docker-integration Commit: f44689af9b57e936d3c5665d50df6df0428b0ac2 Parents: 5ab19f5 Author: Nirmal Fernando <[email protected]> Authored: Sat Sep 13 08:10:20 2014 +0530 Committer: Nirmal Fernando <[email protected]> Committed: Sat Sep 13 08:54:00 2014 +0530 ---------------------------------------------------------------------- .../ClusterContextToKubernetesContainer.java | 45 ++++++++++++++++++++ .../common/constants/StratosConstants.java | 7 +++ 2 files changed, 52 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/f44689af/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ClusterContextToKubernetesContainer.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ClusterContextToKubernetesContainer.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ClusterContextToKubernetesContainer.java index a59e605..a38f5d6 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ClusterContextToKubernetesContainer.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ClusterContextToKubernetesContainer.java @@ -20,6 +20,7 @@ package org.apache.stratos.cloud.controller.functions; import java.util.ArrayList; import java.util.List; +import java.util.UUID; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -27,11 +28,14 @@ import org.apache.stratos.cloud.controller.pojo.Cartridge; import org.apache.stratos.cloud.controller.pojo.ClusterContext; import org.apache.stratos.cloud.controller.pojo.KubernetesClusterContext; import org.apache.stratos.cloud.controller.pojo.PortMapping; +import org.apache.stratos.cloud.controller.pojo.Property; import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder; import org.apache.stratos.cloud.controller.util.CloudControllerUtil; import org.apache.stratos.common.constants.StratosConstants; import org.apache.stratos.kubernetes.client.model.Container; +import org.apache.stratos.kubernetes.client.model.EnvironmentVariable; import org.apache.stratos.kubernetes.client.model.Port; + import com.google.common.base.Function; /** @@ -82,5 +86,46 @@ public class ClusterContextToKubernetesContainer implements Function<ClusterCont return portList.toArray(ports); } + + private String generateMemberId(String clusterId) { + UUID memberId = UUID.randomUUID(); + return clusterId + memberId.toString(); + } + + private EnvironmentVariable[] getEnvironmentVars(ClusterContext ctxt, Cartridge cartridge) { + + String kubernetesClusterId = CloudControllerUtil.getProperty(ctxt.getProperties(), + StratosConstants.KUBERNETES_CLUSTER_ID); + + List<EnvironmentVariable> envVars = new ArrayList<EnvironmentVariable>(); + + addToEnvironment(envVars, StratosConstants.MEMBER_ID, generateMemberId(ctxt.getClusterId())); + addToEnvironment(envVars, StratosConstants.LB_CLUSTER_ID, generateMemberId(ctxt.getClusterId())); + addToEnvironment(envVars, StratosConstants.MEMBER_ID, generateMemberId(ctxt.getClusterId())); + addToEnvironment(envVars, StratosConstants.MEMBER_ID, generateMemberId(ctxt.getClusterId())); + // have to add memberID to the payload + StringBuilder payload = new StringBuilder(ctxt.getPayload()); + addToPayload(payload, "MEMBER_ID", memberID); + addToPayload(payload, "LB_CLUSTER_ID", memberContext.getLbClusterId()); + addToPayload(payload, "NETWORK_PARTITION_ID", memberContext.getNetworkPartitionId()); + addToPayload(payload, StratosConstants.KUBERNETES_CLUSTER_ID, kubernetesClusterId); + if(memberContext.getProperties() != null) { + org.apache.stratos.cloud.controller.pojo.Properties props1 = memberContext.getProperties(); + if (props1 != null) { + for (Property prop : props1.getProperties()) { + addToPayload(payload, prop.getName(), prop.getValue()); + } + } + } + } + + private void addToEnvironment(List<EnvironmentVariable> envVars, + String name, String value) { + + EnvironmentVariable var = new EnvironmentVariable(); + var.setName(name); + var.setValue(value); + envVars.add(var); + } } http://git-wip-us.apache.org/repos/asf/stratos/blob/f44689af/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java index b02a1cb..0d74172 100644 --- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java +++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java @@ -140,6 +140,13 @@ public class StratosConstants { public static final String EMAIL_CONFIG= "email"; public static final String MULTITENANCY_CONFIG_FOLDER = "multitenancy"; + // Cloud controller - payload + public static final String MEMBER_ID= "MEMBER_ID"; + public static final String LB_CLUSTER_ID= "LB_CLUSTER_ID"; + public static final String NETWORK_PARTITION_ID= "NETWORK_PARTITION_ID"; + + + // Kubernetes related constants public static final String KUBERNETES_CLUSTER_ID = "kubernetes.cluster.id"; public static final String KUBERNETES_MASTER_IP = "kubernetes.master.ip";
