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";

Reply via email to