You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ni...@apache.org on 2014/09/19 12:33:46 UTC

[6/8] git commit: Setting container compatible name, setting tcp as the port protocol, pass the environment variables generated by stratos manager to the docker instance via kubernetes.

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 <ni...@gmail.com>
Authored: Fri Sep 19 12:58:20 2014 +0530
Committer: Nirmal Fernando <ni...@gmail.com>
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();