Setting container compatible name, setting tcp as the port protocol, pass the 
environment variables generated by stratos manager to the docker instance via 
kubernetes.


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/10f9beec
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/10f9beec
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/10f9beec

Branch: refs/heads/docker-integration
Commit: 10f9beec6f7ad98f74735672b3d557f16d9af23a
Parents: d774e2a
Author: Nirmal Fernando <[email protected]>
Authored: Fri Sep 19 12:58:20 2014 +0530
Committer: Nirmal Fernando <[email protected]>
Committed: Fri Sep 19 16:03:19 2014 +0530

----------------------------------------------------------------------
 .../MemberContextToKubernetesContainer.java     | 28 ++++++++++++++++++--
 1 file changed, 26 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/10f9beec/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/MemberContextToKubernetesContainer.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/MemberContextToKubernetesContainer.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/MemberContextToKubernetesContainer.java
index 9ae4145..1848608 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/MemberContextToKubernetesContainer.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/MemberContextToKubernetesContainer.java
@@ -54,7 +54,7 @@ public class MemberContextToKubernetesContainer implements 
Function<MemberContex
         ClusterContext clusterContext = 
dataHolder.getClusterContext(clusterId);
         
                Container container = new Container();
-               container.setName(clusterContext.getHostName());
+               
container.setName(getCompatibleName(clusterContext.getHostName()));
 
                Cartridge cartridge = dataHolder.getCartridge(clusterContext
                                .getCartridgeType());
@@ -74,6 +74,13 @@ public class MemberContextToKubernetesContainer implements 
Function<MemberContex
                return container;
        }
        
+       private String getCompatibleName(String hostName) {
+               if (hostName.indexOf('.') != -1) {
+                       hostName = hostName.replace('.', '-');
+               }
+               return hostName;
+       }
+
        private Port[] getPorts(ClusterContext ctxt, Cartridge cartridge) {
 //             String kubernetesClusterId = 
CloudControllerUtil.getProperty(ctxt.getProperties(), 
 //                     StratosConstants.KUBERNETES_CLUSTER_ID);
@@ -85,7 +92,8 @@ public class MemberContextToKubernetesContainer implements 
Function<MemberContex
                        Port p = new Port();
                        
p.setContainerPort(Integer.parseInt(portMapping.getPort()));
 //                     
p.setHostPort(kubClusterContext.getAnAvailableHostPort());
-                       p.setProtocol(portMapping.getProtocol());
+                       // In kubernetes transport protocol always be 'tcp'
+                       p.setProtocol("tcp");
                        p.setName(p.getProtocol()+p.getContainerPort());
                        portList.add(p);
                }
@@ -100,6 +108,7 @@ public class MemberContextToKubernetesContainer implements 
Function<MemberContex
                        StratosConstants.KUBERNETES_CLUSTER_ID);
                
                List<EnvironmentVariable> envVars = new 
ArrayList<EnvironmentVariable>();
+               addToEnvironment(envVars, ctxt.getPayload());
                //FIXME member id, should it be unique for a container?
                addToEnvironment(envVars, StratosConstants.MEMBER_ID, 
memberCtxt.getMemberId());
                addToEnvironment(envVars, StratosConstants.LB_CLUSTER_ID, 
memberCtxt.getLbClusterId());
@@ -121,6 +130,21 @@ public class MemberContextToKubernetesContainer implements 
Function<MemberContex
        }
 
        private void addToEnvironment(List<EnvironmentVariable> envVars,
+                       String payload) {
+
+               if (payload != null) {
+                       String[] entries = payload.split(",");
+                       for (String entry : entries) {
+                               String[] var = entry.split("=");
+                               if(var.length != 2) {
+                                       continue;
+                               }
+                               addToEnvironment(envVars, var[0], var[1]);
+                       }
+               }
+       }
+
+       private void addToEnvironment(List<EnvironmentVariable> envVars,
                        String name, String value) {
 
                EnvironmentVariable var = new EnvironmentVariable();

Reply via email to