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 <[email protected]>
Authored: Wed Sep 23 19:52:15 2015 +0530
Committer: Akila Perera <[email protected]>
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) {
 

Reply via email to