You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ga...@apache.org on 2015/09/07 18:51:37 UTC

stratos git commit: Adding the missing changes

Repository: stratos
Updated Branches:
  refs/heads/master 12fdfb087 -> fa985691e


Adding the missing changes


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

Branch: refs/heads/master
Commit: fa985691e5d6a105290717ba1adb2c4de51d969c
Parents: 12fdfb0
Author: gayangunarathne <ga...@wso2.com>
Authored: Mon Sep 7 22:21:08 2015 +0530
Committer: gayangunarathne <ga...@wso2.com>
Committed: Mon Sep 7 22:21:08 2015 +0530

----------------------------------------------------------------------
 .../messaging/topology/TopologyBuilder.java     | 34 +++++++++++++++++++-
 .../rest/endpoint/api/StratosApiV41Utils.java   | 16 ++++-----
 .../util/converter/ObjectConverter.java         |  1 +
 3 files changed, 42 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/fa985691/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
index 0e5c4a5..c4c2df9 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
@@ -31,6 +31,7 @@ import org.apache.stratos.cloud.controller.messaging.publisher.TopologyEventPubl
 import org.apache.stratos.cloud.controller.statistics.publisher.BAMUsageDataPublisher;
 import org.apache.stratos.cloud.controller.util.CloudControllerUtil;
 import org.apache.stratos.common.Property;
+import org.apache.stratos.kubernetes.client.KubernetesConstants;
 import org.apache.stratos.messaging.domain.application.ClusterDataHolder;
 import org.apache.stratos.messaging.domain.instance.ClusterInstance;
 import org.apache.stratos.messaging.domain.topology.*;
@@ -44,6 +45,8 @@ import org.apache.stratos.messaging.event.topology.*;
 import org.apache.stratos.metadata.client.defaults.DefaultMetaDataServiceClient;
 import org.apache.stratos.metadata.client.defaults.MetaDataServiceClient;
 
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.util.*;
 
 /**
@@ -857,8 +860,37 @@ public class TopologyBuilder {
             try {
                 TopologyManager.acquireWriteLock();
                 List<KubernetesService> kubernetesServices = clusterContext.getKubernetesServices();
-                cluster.setKubernetesServices(kubernetesServices);
 
+            if (kubernetesServices != null) {
+
+                try {
+                    // Generate access URLs for kubernetes services
+                    for (KubernetesService kubernetesService : kubernetesServices) {
+
+                        if (kubernetesService.getServiceType().equals(KubernetesConstants.NODE_PORT)) {
+                            // Public IP = Kubernetes minion public IP
+                            String[] publicIPs = kubernetesService.getPublicIPs();
+                            if ((publicIPs != null) && (publicIPs.length > 0)) {
+                                for (String publicIP : publicIPs) {
+                                    // There can be a String array with null values
+                                    if (publicIP != null) {
+                                        // Using type URI since only http, https, ftp, file, jar protocols are supported in URL
+                                        URI accessURL = new URI(kubernetesService.getProtocol(), null, publicIP,
+                                                kubernetesService.getPort(), null, null, null);
+                                        cluster.addAccessUrl(accessURL.toString());
+                                        clusterInstanceActivatedEvent.addAccessUrl(accessURL.toString());
+                                    } else {
+                                        log.error(String.format("Could not create access URL for [Kubernetes-service] %s , " +
+                                                "since Public IP is not available", kubernetesService.getId()));
+                                    }
+                                }
+                            }
+                        }
+                    }
+                } catch (URISyntaxException e) {
+                    log.error("Could not create access URLs for Kubernetes services", e);
+                }
+            }
 
                 ClusterInstance context = cluster.getInstanceContexts(clusterStatusClusterActivatedEvent.getInstanceId());
                 if (context == null) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/fa985691/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
index 629fdb5..761c9f1 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
@@ -65,6 +65,7 @@ import org.apache.stratos.common.client.StratosManagerServiceClient;
 import org.apache.stratos.common.exception.InvalidEmailException;
 import org.apache.stratos.common.util.ClaimsMgtUtil;
 import org.apache.stratos.common.util.CommonUtil;
+import org.apache.stratos.kubernetes.client.KubernetesConstants;
 import org.apache.stratos.manager.service.stub.StratosManagerServiceApplicationSignUpExceptionException;
 import org.apache.stratos.manager.service.stub.StratosManagerServiceDomainMappingExceptionException;
 import org.apache.stratos.manager.service.stub.domain.application.signup.ApplicationSignUp;
@@ -158,14 +159,13 @@ public class StratosApiV41Utils {
                 String type = portMapping.getKubernetesPortType();
 
                 if (isKubernetesIaasProviderAvailable) {
-                    if (type == null) {
-                        throw new RestAPIException((String.format("Type is not found in portmapping: %s - Possible " +
-                                        "values - %s and %s", portMapping.getName(), KUBERNETES_SERVICE_TYPE_NODEPORT,
-                                KUBERNETES_SERVICE_TYPE_CLUSTERIP)));
-                    } else if (!type.equals(KUBERNETES_SERVICE_TYPE_NODEPORT) && !type.equals(KUBERNETES_SERVICE_TYPE_CLUSTERIP)) {
-                        throw new RestAPIException((String.format("Type is not found in portmapping: %s - Possible " +
-                                        "values - %s and %s", portMapping.getName(), KUBERNETES_SERVICE_TYPE_NODEPORT,
-                                KUBERNETES_SERVICE_TYPE_CLUSTERIP)));
+                    if (type == null || type.equals("")) {
+                        portMapping.setKubernetesPortType(KubernetesConstants.NODE_PORT);
+                    } else if (!type.equals(KubernetesConstants.NODE_PORT) && !type.equals
+                            (KubernetesConstants.CLUSTER_IP)) {
+                        throw new RestAPIException((String.format("Kubernetes" +
+                                        "PortType is invalid : %s - Possible values - %s and %s", portMapping.getName(),
+                                KubernetesConstants.NODE_PORT, KubernetesConstants.CLUSTER_IP)));
                     }
                 }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/fa985691/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
index eea8434..b2d76ef 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
@@ -168,6 +168,7 @@ public class ObjectConverter {
             portMappingBean.setProtocol(portMapping.getProtocol());
             portMappingBean.setPort(portMapping.getPort());
             portMappingBean.setProxyPort(portMapping.getProxyPort());
+            portMappingBean.setKubernetesPortType(portMapping.getKubernetesPortType());
             portMappingBeans.add(portMappingBean);
         }
         return portMappingBeans;