Repository: stratos Updated Branches: refs/heads/master fcd6153d9 -> ec75c28b1
Fixing kub cluster update issue and hostname issue, fixing STRATOS-1653 Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/ec75c28b Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/ec75c28b Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/ec75c28b Branch: refs/heads/master Commit: ec75c28b194afb173d2c704fdde73152e7021f54 Parents: fcd6153 Author: Sajith <[email protected]> Authored: Sun Feb 7 01:01:10 2016 +0530 Committer: Sajith <[email protected]> Committed: Sun Feb 7 01:01:10 2016 +0530 ---------------------------------------------------------------------- .../kubernetes/KubernetesClusterContext.java | 26 +++++++++++----- .../iaases/kubernetes/KubernetesIaas.java | 10 +----- .../impl/CloudControllerServiceImpl.java | 8 +++++ .../controller/util/CloudControllerUtil.java | 32 ++++++++------------ 4 files changed, 41 insertions(+), 35 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/ec75c28b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesClusterContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesClusterContext.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesClusterContext.java index d22f977..27d019e 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesClusterContext.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesClusterContext.java @@ -18,16 +18,16 @@ */ package org.apache.stratos.cloud.controller.domain.kubernetes; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.stratos.kubernetes.client.KubernetesApiClient; - import java.io.Serializable; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.concurrent.atomic.AtomicLong; +import org.apache.stratos.cloud.controller.util.CloudControllerUtil; +import org.apache.stratos.common.constants.StratosConstants; +import org.apache.stratos.kubernetes.client.KubernetesApiClient; + /** * Holds information about a Kubernetes Cluster. */ @@ -35,8 +35,6 @@ public class KubernetesClusterContext implements Serializable { private static final long serialVersionUID = -802025758806195791L; - private static final Log log = LogFactory.getLog(KubernetesClusterContext.class); - private String kubernetesClusterId; private int upperPort; private int lowerPort; @@ -66,7 +64,11 @@ public class KubernetesClusterContext implements Serializable { } private String getEndpoint(String ip, String port) { - return "http://" + ip + ":" + port + "/api/v1beta1/"; + StringBuffer endPoint = new StringBuffer().append("http://").append(ip); + if(port != null) { + endPoint.append(":").append(port); + } + return endPoint.toString(); } public String getKubernetesClusterId() { @@ -171,6 +173,16 @@ public class KubernetesClusterContext implements Serializable { } return podSeqNo.incrementAndGet(); } + + + public void updateKubClusterContextParams(KubernetesCluster kubernetesCluster) { + this.masterIp = kubernetesCluster.getKubernetesMaster().getPrivateIPAddress(); + this.masterPort = CloudControllerUtil + .getProperty(kubernetesCluster.getKubernetesMaster().getProperties(), + StratosConstants.KUBERNETES_MASTER_PORT); + this.kubApi = new KubernetesApiClient(getEndpoint(masterIp, masterPort)); + } + @Override public int hashCode() { http://git-wip-us.apache.org/repos/asf/stratos/blob/ec75c28b/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 66e76a0..261980d 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 @@ -199,7 +199,7 @@ public class KubernetesIaas extends Iaas { PortRange kubernetesPortRange = kubernetesCluster.getPortRange(); String kubernetesMasterPort = CloudControllerUtil .getProperty(kubernetesCluster.getKubernetesMaster().getProperties(), - StratosConstants.KUBERNETES_MASTER_PORT, StratosConstants.KUBERNETES_MASTER_DEFAULT_PORT); + StratosConstants.KUBERNETES_MASTER_PORT); // Add kubernetes cluster payload parameters to payload if ((kubernetesCluster.getProperties() != null) && (kubernetesCluster.getProperties().getProperties() @@ -929,14 +929,6 @@ public class KubernetesIaas extends Iaas { return kubernetesClusterContext; } - private String readProperty(String property, org.apache.stratos.common.Properties properties, String object) { - String propVal = CloudControllerUtil.getProperty(properties, property); - handleNullObject(propVal, - "Property validation failed. Could not find property: '" + property + " in " + object); - return propVal; - - } - private void handleNullObject(Object obj, String errorMsg) { if (obj == null) { log.error(errorMsg); http://git-wip-us.apache.org/repos/asf/stratos/blob/ec75c28b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java index 9352220..22f3232 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java @@ -25,6 +25,7 @@ import org.apache.stratos.cloud.controller.config.CloudControllerConfig; import org.apache.stratos.cloud.controller.context.CloudControllerContext; import org.apache.stratos.cloud.controller.domain.*; import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesCluster; +import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesClusterContext; import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesHost; import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesMaster; import org.apache.stratos.cloud.controller.exception.*; @@ -1280,6 +1281,7 @@ public class CloudControllerServiceImpl implements CloudControllerService { } return true; } catch (Exception e) { + log.error("Error occurred when adding kubernetes cluster. " + e.getMessage(), e); throw new InvalidKubernetesClusterException(e.getMessage(), e); } finally { if (lock != null) { @@ -1306,6 +1308,12 @@ public class CloudControllerServiceImpl implements CloudControllerService { // Updating the information model CloudControllerContext.getInstance().updateKubernetesCluster(kubernetesCluster); + KubernetesClusterContext kubClusterContext = CloudControllerContext.getInstance(). + getKubernetesClusterContext(kubernetesCluster.getClusterId()); + + // Update necessary parameters of kubClusterContext using the updated kubCluster + kubClusterContext.updateKubClusterContextParams(kubernetesCluster); + CloudControllerContext.getInstance().updateKubernetesClusterContext(kubClusterContext); CloudControllerContext.getInstance().persist(); if (log.isInfoEnabled()) { http://git-wip-us.apache.org/repos/asf/stratos/blob/ec75c28b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java index 54cde0b..81b0a24 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java @@ -18,13 +18,24 @@ */ package org.apache.stratos.cloud.controller.util; -import com.google.common.net.InetAddresses; +import java.lang.reflect.Constructor; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Properties; + import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.cloud.controller.config.CloudControllerConfig; import org.apache.stratos.cloud.controller.context.CloudControllerContext; -import org.apache.stratos.cloud.controller.domain.*; +import org.apache.stratos.cloud.controller.domain.Cartridge; +import org.apache.stratos.cloud.controller.domain.IaasConfig; +import org.apache.stratos.cloud.controller.domain.IaasProvider; +import org.apache.stratos.cloud.controller.domain.NetworkInterface; +import org.apache.stratos.cloud.controller.domain.NetworkInterfaces; +import org.apache.stratos.cloud.controller.domain.Partition; import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesCluster; import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesHost; import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesMaster; @@ -38,13 +49,6 @@ import org.apache.stratos.common.Property; import org.apache.stratos.common.domain.LoadBalancingIPType; import org.apache.stratos.messaging.domain.topology.Topology; -import java.lang.reflect.Constructor; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Properties; - public class CloudControllerUtil { private static final Log log = LogFactory.getLog(CloudControllerUtil.class); @@ -258,16 +262,6 @@ public class CloudControllerUtil { throw new InvalidKubernetesHostException("Kubernetes host private IP address has not been set: " + "[host-id] " + kubernetesHost.getHostId()); } - if (!InetAddresses.isInetAddress(kubernetesHost.getPrivateIPAddress())) { - throw new InvalidKubernetesHostException( - "Kubernetes host private IP address is invalid: " + kubernetesHost.getPrivateIPAddress()); - } - if (StringUtils.isNotBlank(kubernetesHost.getPublicIPAddress())) { - if (!InetAddresses.isInetAddress(kubernetesHost.getPublicIPAddress())) { - throw new InvalidKubernetesHostException( - "Kubernetes host public IP address is invalid: " + kubernetesHost.getPrivateIPAddress()); - } - } } public static void validateKubernetesMaster(KubernetesMaster kubernetesMaster)
