You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ra...@apache.org on 2015/09/23 16:23:03 UTC

[1/2] stratos git commit: Improve readability in createKubernetesServices method

Repository: stratos
Updated Branches:
  refs/heads/stratos-4.1.x a2adec321 -> 894aa4beb


Improve readability in createKubernetesServices method


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

Branch: refs/heads/stratos-4.1.x
Commit: 46f278cad6ca26c6a9467b907f48dac1c92db0d2
Parents: a2adec3
Author: Akila Perera <ra...@gmail.com>
Authored: Wed Sep 23 19:52:15 2015 +0530
Committer: Akila Perera <ra...@gmail.com>
Committed: Wed Sep 23 19:52:15 2015 +0530

----------------------------------------------------------------------
 .../iaases/kubernetes/KubernetesIaas.java       | 219 ++++++++++---------
 1 file changed, 110 insertions(+), 109 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/46f278ca/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java
index 9f42816..a47c61e 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java
@@ -517,125 +517,127 @@ public class KubernetesIaas extends Iaas {
         Collection<ClusterPortMapping> clusterPortMappings = CloudControllerContext.getInstance()
                 .getClusterPortMappings(clusterContext.getApplicationId(), clusterId);
 
-        if (clusterPortMappings != null) {
-            String serviceName = DigestUtils.md5Hex(clusterId);
-            Collection<KubernetesService> kubernetesServices =
-                    clusterContext.getKubernetesServices(memberContext.getClusterInstanceId());
-
-            for (ClusterPortMapping clusterPortMapping : clusterPortMappings) {
-                // Skip if already created
-                int containerPort = clusterPortMapping.getPort();
-                KubernetesService existingService = findKubernetesService(kubernetesServices, containerPort);
-                if ((existingService != null) && serviceExistsInCluster(
-                        existingService.getId(), kubernetesClusterContext,
-                        memberContext, clusterPortMapping.getName())) {
-
-                    if (log.isDebugEnabled()) {
-                        log.debug(String.format("Kubernetes service already exists: [kubernetes-cluster] %s " +
-                                        "[cluster] %s [service-name] %s [container-port] %d ",
-                                kubernetesCluster.getClusterId(), clusterId, serviceName, containerPort));
-                    }
-                    continue;
-                }
+        if (clusterPortMappings == null) {
+            log.info("No cluster port mappings found. Stratos will not attempt to create Kubernetes services");
+            return;
+        }
 
-                // Find next available service sequence number
-                long serviceSeqNo = kubernetesClusterContext.getNextServiceSeqNo();
-                String serviceId =
-                        KubernetesIaasUtil.fixSpecialCharacters(prepareServiceName(serviceSeqNo));
-                while (kubernetesApi.getService(serviceId) != null) {
-                    serviceSeqNo = kubernetesClusterContext.getNextServiceSeqNo();
-                    serviceId = KubernetesIaasUtil.fixSpecialCharacters(prepareServiceName(serviceSeqNo));
-                }
+        String serviceName = DigestUtils.md5Hex(clusterId);
+        Collection<KubernetesService> kubernetesServices =
+                clusterContext.getKubernetesServices(memberContext.getClusterInstanceId());
 
-                if (log.isInfoEnabled()) {
-                    log.info(String.format("Creating kubernetes service: [cluster] %s [service-id] %s [service-name] " +
-                                            "%s " + "[protocol] %s [service-port] %d [container-port] %s", clusterId,
-                                    serviceId, serviceName, clusterPortMapping.getProtocol(),
-                                    clusterPortMapping.getKubernetesServicePort(), containerPort));
-                }
+        for (ClusterPortMapping clusterPortMapping : clusterPortMappings) {
+            // Skip if already created
+            int containerPort = clusterPortMapping.getPort();
+            KubernetesService existingService = findKubernetesService(kubernetesServices, containerPort);
+            if ((existingService != null) && serviceExistsInCluster(
+                    existingService.getId(), kubernetesClusterContext,
+                    memberContext, clusterPortMapping.getName())) {
+
+                log.info(String.format("Kubernetes service already exists: [kubernetes-cluster] %s " +
+                                "[cluster] %s [service-name] %s [container-port] %d ",
+                        kubernetesCluster.getClusterId(), clusterId, serviceName, containerPort));
+                continue;
+            }
 
-                // Create kubernetes service for port mapping
-                int servicePort = clusterPortMapping.getKubernetesServicePort();
-                String serviceType = clusterPortMapping.getKubernetesPortType();
-                String containerPortName = KubernetesIaasUtil.preparePortNameFromPortMapping(clusterPortMapping);
-
-                Map<String, String> serviceLabels = new HashMap<>();
-                serviceLabels.put(CloudControllerConstants.APPLICATION_ID_LABEL,
-                        trimLabel(CloudControllerConstants.APPLICATION_ID_LABEL, clusterContext.getApplicationId()));
-
-                serviceLabels.put(CloudControllerConstants.CLUSTER_INSTANCE_ID_LABEL,
-                        trimLabel(CloudControllerConstants.CLUSTER_INSTANCE_ID_LABEL,
-                                memberContext.getClusterInstanceId()));
-
-                serviceLabels.put(CloudControllerConstants.PORT_NAME_LABEL,
-                        trimLabel(CloudControllerConstants.PORT_NAME_LABEL, clusterPortMapping.getName()));
-
-                Map<String, String> serviceAnnotations = new HashMap<>();
-                serviceAnnotations
-                        .put(CloudControllerConstants.APPLICATION_ID_LABEL, clusterContext.getApplicationId());
-                serviceAnnotations.put(CloudControllerConstants.CLUSTER_ID_LABEL, clusterContext.getClusterId());
-                serviceAnnotations.put(CloudControllerConstants.CLUSTER_INSTANCE_ID_LABEL,
-                        memberContext.getClusterInstanceId());
-                serviceAnnotations.put(CloudControllerConstants.PORT_NAME_LABEL, clusterPortMapping.getName());
-                serviceAnnotations.put(CloudControllerConstants.PROTOCOL_LABEL, clusterPortMapping.getProtocol());
-                serviceAnnotations.put(CloudControllerConstants.PORT_TYPE_LABEL,
-                        clusterPortMapping.getKubernetesPortType());
-                serviceAnnotations.put(CloudControllerConstants.SERVICE_PORT_LABEL, String.valueOf(clusterPortMapping
-                        .getKubernetesServicePort()));
-                serviceAnnotations
-                        .put(CloudControllerConstants.PORT_LABEL, String.valueOf(clusterPortMapping.getPort()));
-                serviceAnnotations.put(CloudControllerConstants.PROXY_PORT_LABEL,
-                        String.valueOf(clusterPortMapping.getProxyPort()));
-
-                kubernetesApi.createService(serviceId, serviceName, serviceLabels, serviceAnnotations, servicePort,
-                        serviceType, containerPortName, containerPort, sessionAffinity);
-                try {
-                    Thread.sleep(1000);
-                }
-                catch (InterruptedException ignore) {
-                }
+            // Find next available service sequence number
+            long serviceSeqNo = kubernetesClusterContext.getNextServiceSeqNo();
+            String serviceId =
+                    KubernetesIaasUtil.fixSpecialCharacters(prepareServiceName(serviceSeqNo));
+            while (kubernetesApi.getService(serviceId) != null) {
+                serviceSeqNo = kubernetesClusterContext.getNextServiceSeqNo();
+                serviceId = KubernetesIaasUtil.fixSpecialCharacters(prepareServiceName(serviceSeqNo));
+            }
 
-                Service service = kubernetesApi.getService(serviceId);
-                if (service == null) {
-                    throw new KubernetesClientException("Kubernetes service was not created: [service] " + serviceId);
-                }
+            if (log.isInfoEnabled()) {
+                log.info(String.format("Creating kubernetes service: [cluster] %s [service-id] %s [service-name] " +
+                                "%s " + "[protocol] %s [service-port] %d [container-port] %s", clusterId,
+                        serviceId, serviceName, clusterPortMapping.getProtocol(),
+                        clusterPortMapping.getKubernetesServicePort(), containerPort));
+            }
 
-                KubernetesService kubernetesService = new KubernetesService();
-                kubernetesService.setId(service.getMetadata().getName());
-                kubernetesService.setPortalIP(service.getSpec().getClusterIP());
-                // Expose minions public IP addresses as they need to be accessed by external networks
-                String[] minionPublicIPArray = minionPublicIPList.toArray(new String[minionPublicIPList.size()]);
-                kubernetesService.setPublicIPs(minionPublicIPArray);
-                kubernetesService.setProtocol(clusterPortMapping.getProtocol());
-                kubernetesService.setPortName(clusterPortMapping.getName());
-
-                String kubernetesPortType = service.getSpec().getType();
-                kubernetesService.setServiceType(kubernetesPortType);
-                kubernetesService.setKubernetesClusterId(memberContext.getPartition().getKubernetesClusterId());
-
-                if (kubernetesPortType.equals(KubernetesConstants.NODE_PORT)) {
-                    kubernetesService.setPort(service.getSpec().getPorts().get(0).getNodePort());
-                } else {
-                    kubernetesService.setPort(service.getSpec().getPorts().get(0).getPort());
-                }
+            // Create kubernetes service for port mapping
+            int servicePort = clusterPortMapping.getKubernetesServicePort();
+            String serviceType = clusterPortMapping.getKubernetesPortType();
+            String containerPortName = KubernetesIaasUtil.preparePortNameFromPortMapping(clusterPortMapping);
+
+            Map<String, String> serviceLabels = new HashMap<>();
+            serviceLabels.put(CloudControllerConstants.APPLICATION_ID_LABEL,
+                    trimLabel(CloudControllerConstants.APPLICATION_ID_LABEL, clusterContext.getApplicationId()));
+
+            serviceLabels.put(CloudControllerConstants.CLUSTER_INSTANCE_ID_LABEL,
+                    trimLabel(CloudControllerConstants.CLUSTER_INSTANCE_ID_LABEL,
+                            memberContext.getClusterInstanceId()));
+
+            serviceLabels.put(CloudControllerConstants.PORT_NAME_LABEL,
+                    trimLabel(CloudControllerConstants.PORT_NAME_LABEL, clusterPortMapping.getName()));
+
+            Map<String, String> serviceAnnotations = new HashMap<>();
+            serviceAnnotations
+                    .put(CloudControllerConstants.APPLICATION_ID_LABEL, clusterContext.getApplicationId());
+            serviceAnnotations.put(CloudControllerConstants.CLUSTER_ID_LABEL, clusterContext.getClusterId());
+            serviceAnnotations.put(CloudControllerConstants.CLUSTER_INSTANCE_ID_LABEL,
+                    memberContext.getClusterInstanceId());
+            serviceAnnotations.put(CloudControllerConstants.PORT_NAME_LABEL, clusterPortMapping.getName());
+            serviceAnnotations.put(CloudControllerConstants.PROTOCOL_LABEL, clusterPortMapping.getProtocol());
+            serviceAnnotations.put(CloudControllerConstants.PORT_TYPE_LABEL,
+                    clusterPortMapping.getKubernetesPortType());
+            serviceAnnotations.put(CloudControllerConstants.SERVICE_PORT_LABEL, String.valueOf(clusterPortMapping
+                    .getKubernetesServicePort()));
+            serviceAnnotations
+                    .put(CloudControllerConstants.PORT_LABEL, String.valueOf(clusterPortMapping.getPort()));
+            serviceAnnotations.put(CloudControllerConstants.PROXY_PORT_LABEL,
+                    String.valueOf(clusterPortMapping.getProxyPort()));
+
+            kubernetesApi.createService(serviceId, serviceName, serviceLabels, serviceAnnotations, servicePort,
+                    serviceType, containerPortName, containerPort, sessionAffinity);
+            try {
+                Thread.sleep(1000);
+            }
+            catch (InterruptedException ignore) {
+            }
 
-                kubernetesService.setContainerPort(containerPort);
+            Service service = kubernetesApi.getService(serviceId);
+            if (service == null) {
+                throw new KubernetesClientException("Kubernetes service was not created: [service] " + serviceId);
+            }
 
-                clusterContext.addKubernetesService(memberContext.getClusterInstanceId(),kubernetesService);
-                CloudControllerContext.getInstance().persist();
+            KubernetesService kubernetesService = new KubernetesService();
+            kubernetesService.setId(service.getMetadata().getName());
+            kubernetesService.setPortalIP(service.getSpec().getClusterIP());
+            // Expose minions public IP addresses as they need to be accessed by external networks
+            String[] minionPublicIPArray = minionPublicIPList.toArray(new String[minionPublicIPList.size()]);
+            kubernetesService.setPublicIPs(minionPublicIPArray);
+            kubernetesService.setProtocol(clusterPortMapping.getProtocol());
+            kubernetesService.setPortName(clusterPortMapping.getName());
+
+            String kubernetesPortType = service.getSpec().getType();
+            kubernetesService.setServiceType(kubernetesPortType);
+            kubernetesService.setKubernetesClusterId(memberContext.getPartition().getKubernetesClusterId());
+
+            if (kubernetesPortType.equals(KubernetesConstants.NODE_PORT)) {
+                kubernetesService.setPort(service.getSpec().getPorts().get(0).getNodePort());
+            } else {
+                kubernetesService.setPort(service.getSpec().getPorts().get(0).getPort());
+            }
 
-                if (log.isInfoEnabled()) {
-                    log.info(String.format(
-                            "Kubernetes service successfully created: [cluster] %s [service-id] %s [protocol] %s " +
-                                    "[node-port] %d [container-port] %s", clusterId, serviceId,
-                            clusterPortMapping.getProtocol(), servicePort, containerPort));
-                }
+            kubernetesService.setContainerPort(containerPort);
+
+            clusterContext.addKubernetesService(memberContext.getClusterInstanceId(), kubernetesService);
+            CloudControllerContext.getInstance().persist();
+
+            if (log.isInfoEnabled()) {
+                log.info(String.format(
+                        "Kubernetes service successfully created: [cluster] %s [service-id] %s [protocol] %s " +
+                                "[node-port] %d [container-port] %s", clusterId, serviceId,
+                        clusterPortMapping.getProtocol(), servicePort, containerPort));
             }
         }
     }
 
     /**
      * Check a given kubernetes service exists in kubernetes cluster
+     *
      * @param serviceId
      * @param kubernetesClusterContext
      * @param memberContext
@@ -650,7 +652,7 @@ public class KubernetesIaas extends Iaas {
         KubernetesApiClient kubernetesApi = kubernetesClusterContext.getKubApi();
         Service service = kubernetesApi.getService(serviceId);
 
-        if(service != null) {
+        if (service != null) {
             Map<String, String> annotations = service.getMetadata().getAnnotations();
             String applicationIdLabel = annotations.get(CloudControllerConstants.APPLICATION_ID_LABEL);
             String clusterInstanceIdLabel = annotations.get(CloudControllerConstants.CLUSTER_INSTANCE_ID_LABEL);
@@ -668,7 +670,7 @@ public class KubernetesIaas extends Iaas {
     }
 
     private String trimLabel(String key, String value) {
-        if(StringUtils.isNotEmpty(value) && (value.length() > KubernetesConstants.MAX_LABEL_LENGTH)) {
+        if (StringUtils.isNotEmpty(value) && (value.length() > KubernetesConstants.MAX_LABEL_LENGTH)) {
             String trimmed = value.substring(0, KubernetesConstants.MAX_LABEL_LENGTH - 2).concat("X");
             log.warn(String.format("Kubernetes label trimmed: [key] %s [original] %s [trimmed] %s",
                     key, value, trimmed));
@@ -706,7 +708,7 @@ public class KubernetesIaas extends Iaas {
     private KubernetesService findKubernetesService(Collection<KubernetesService> kubernetesServices,
                                                     int containerPort) {
 
-        if(kubernetesServices != null) {
+        if (kubernetesServices != null) {
             for (KubernetesService kubernetesService : kubernetesServices) {
                 if (kubernetesService.getContainerPort() == containerPort) {
                     return kubernetesService;
@@ -726,7 +728,6 @@ public class KubernetesIaas extends Iaas {
     private void generateKubernetesServicePorts(String applicationId, String clusterId,
                                                 KubernetesClusterContext kubernetesClusterContext,
                                                 Cartridge cartridge) throws KubernetesClientException {
-
         synchronized (KubernetesIaas.class) {
             if (cartridge != null) {
 


[2/2] stratos git commit: Fix incorrect variable reference in generateKubernetesServicePorts method

Posted by ra...@apache.org.
Fix incorrect variable reference in generateKubernetesServicePorts method


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

Branch: refs/heads/stratos-4.1.x
Commit: 894aa4bebe43011410c613691f700fd495172cfd
Parents: 46f278c
Author: Akila Perera <ra...@gmail.com>
Authored: Wed Sep 23 19:52:44 2015 +0530
Committer: Akila Perera <ra...@gmail.com>
Committed: Wed Sep 23 19:52:44 2015 +0530

----------------------------------------------------------------------
 .../stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/894aa4be/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java
index a47c61e..d330dde 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java
@@ -742,7 +742,7 @@ public class KubernetesIaas extends Iaas {
                     }
 
                     ClusterPortMapping clusterPortMapping = findClusterPortMapping(clusterPortMappings, portMapping);
-                    if (clusterPortMappings == null) {
+                    if (clusterPortMapping == null) {
                         throw new CloudControllerException(String.format("Cluster port mapping not found: " +
                                         "[application-id] %s [cluster-id] %s [transport] %s", applicationId, clusterId,
                                 portMapping.getName()));