Update the kubernetes cluster with UUID
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/f1538fe3 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/f1538fe3 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/f1538fe3 Branch: refs/heads/tenant-isolation Commit: f1538fe3cac81902a952554bcaaf19979787fe7d Parents: 647771b Author: Gayan Gunarathne <[email protected]> Authored: Mon Jul 13 14:15:22 2015 +0530 Committer: Gayan Gunarathne <[email protected]> Committed: Mon Jul 13 14:15:22 2015 +0530 ---------------------------------------------------------------------- .../stratos/cli/RestCommandLineService.java | 2 +- .../context/CloudControllerContext.java | 4 +- .../domain/kubernetes/KubernetesCluster.java | 36 +- .../iaases/kubernetes/KubernetesIaas.java | 2 +- .../impl/CloudControllerServiceImpl.java | 12 +- .../controller/util/CloudControllerUtil.java | 8 +- .../beans/kubernetes/KubernetesClusterBean.java | 28 +- .../rest/endpoint/api/StratosApiV41.java | 14 +- .../util/converter/ObjectConverter.java | 6 +- .../main/resources/CloudControllerService.wsdl | 876 ++++++++++--------- 10 files changed, 517 insertions(+), 471 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/f1538fe3/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java index 7b7a0c0..03abca1 100644 --- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java +++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java @@ -1146,7 +1146,7 @@ public class RestCommandLineService { RowMapper<KubernetesClusterBean> partitionMapper = new RowMapper<KubernetesClusterBean>() { public String[] getData(KubernetesClusterBean kubernetesCluster) { String[] data = new String[2]; - data[0] = kubernetesCluster.getClusterId(); + data[0] = kubernetesCluster.getClusterUuid(); data[1] = kubernetesCluster.getDescription(); return data; } http://git-wip-us.apache.org/repos/asf/stratos/blob/f1538fe3/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java index 5a6a9c2..504965f 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java @@ -585,11 +585,11 @@ public class CloudControllerContext implements Serializable { } public void addKubernetesCluster(KubernetesCluster kubernetesCluster) { - kubernetesClustersMap.put(kubernetesCluster.getClusterId(), kubernetesCluster); + kubernetesClustersMap.put(kubernetesCluster.getClusterUuid(), kubernetesCluster); } public void updateKubernetesCluster(KubernetesCluster kubernetesCluster) { - kubernetesClustersMap.put(kubernetesCluster.getClusterId(), kubernetesCluster); + kubernetesClustersMap.put(kubernetesCluster.getClusterUuid(), kubernetesCluster); } public boolean kubernetesClusterExists(KubernetesCluster kubernetesCluster) { http://git-wip-us.apache.org/repos/asf/stratos/blob/f1538fe3/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesCluster.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesCluster.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesCluster.java index 8730a61..8c383ff 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesCluster.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesCluster.java @@ -31,19 +31,21 @@ public class KubernetesCluster implements Serializable { private static final long serialVersionUID = 3210149484906093132L; - private String clusterId; + private String clusterUuid; + private String clusterId; private KubernetesHost[] kubernetesHosts; private KubernetesMaster kubernetesMaster; private PortRange portRange; private String description; + private int tenantId; private Properties properties = new Properties(); - public String getClusterId() { - return clusterId; + public String getClusterUuid() { + return clusterUuid; } - public void setClusterId(String clusterId) { - this.clusterId = clusterId; + public void setClusterUuid(String clusterUuid) { + this.clusterUuid = clusterUuid; } public KubernetesHost[] getKubernetesHosts() { @@ -91,7 +93,7 @@ public class KubernetesCluster implements Serializable { } public String toString() { - return "KubernetesCluster [groupId=" + clusterId + + return "KubernetesCluster [groupId=" + clusterUuid + " , kubernetesHosts=" + Arrays.toString(kubernetesHosts) + " , kubernetesMaster=" + kubernetesMaster + " , portRange=" + portRange + @@ -111,9 +113,9 @@ public class KubernetesCluster implements Serializable { return false; } KubernetesCluster kubernetesClusterObj = (KubernetesCluster) anObject; - if (this.clusterId == null || kubernetesClusterObj.getClusterId() == null) { + if (this.clusterUuid == null || kubernetesClusterObj.getClusterUuid() == null) { return false; - } else if (!this.clusterId.equals(kubernetesClusterObj.getClusterId())) { + } else if (!this.clusterUuid.equals(kubernetesClusterObj.getClusterUuid())) { return false; } @@ -161,11 +163,27 @@ public class KubernetesCluster implements Serializable { final int prime = 31; int result = 1; result = prime * result + ((this.portRange == null) ? 0 : this.portRange.hashCode()); - result = prime * result + ((this.clusterId == null) ? 0 : this.clusterId.hashCode()); + result = prime * result + ((this.clusterUuid == null) ? 0 : this.clusterUuid.hashCode()); result = prime * result + ((this.description == null) ? 0 : this.description.hashCode()); result = prime * result + ((this.kubernetesMaster == null) ? 0 : this.kubernetesMaster.hashCode()); result = prime * result + ((this.kubernetesHosts == null) ? 0 : Arrays.hashCode(this.kubernetesHosts)); result = prime * result + ((this.properties == null) ? 0 : this.properties.hashCode()); return result; } + + public String getClusterId() { + return clusterId; + } + + public void setClusterId(String clusterId) { + this.clusterId = clusterId; + } + + public int getTenantId() { + return tenantId; + } + + public void setTenantId(int tenantId) { + this.tenantId = tenantId; + } } http://git-wip-us.apache.org/repos/asf/stratos/blob/f1538fe3/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 ef5e30a..155d3dc 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 @@ -483,7 +483,7 @@ public class KubernetesIaas extends Iaas { KubernetesHost[] kubernetesHosts = kubernetesCluster.getKubernetesHosts(); if ((kubernetesHosts == null) || (kubernetesHosts.length == 0) || (kubernetesHosts[0] == null)) { throw new RuntimeException("Hosts not found in kubernetes cluster: [cluster] " - + kubernetesCluster.getClusterId()); + + kubernetesCluster.getClusterUuid()); } for (KubernetesHost host : kubernetesHosts) { if (host != null) { http://git-wip-us.apache.org/repos/asf/stratos/blob/f1538fe3/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 ad52722..0a019b3 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 @@ -1203,7 +1203,7 @@ public class CloudControllerServiceImpl implements CloudControllerService { } try { - if (CloudControllerContext.getInstance().getKubernetesCluster(kubernetesCluster.getClusterId()) != null) { + if (CloudControllerContext.getInstance().getKubernetesCluster(kubernetesCluster.getClusterUuid()) != null) { throw new KubernetesClusterAlreadyExistsException("Kubernetes cluster already exists"); } } catch (NonExistingKubernetesClusterException ignore) { @@ -1214,7 +1214,7 @@ public class CloudControllerServiceImpl implements CloudControllerService { if (log.isInfoEnabled()) { log.info(String.format("Adding kubernetes cluster: [kubernetes-cluster-id] %s", - kubernetesCluster.getClusterId())); + kubernetesCluster.getClusterUuid())); } CloudControllerUtil.validateKubernetesCluster(kubernetesCluster); @@ -1224,7 +1224,7 @@ public class CloudControllerServiceImpl implements CloudControllerService { if (log.isInfoEnabled()) { log.info(String.format("Kubernetes cluster added successfully: [kubernetes-cluster-id] %s", - kubernetesCluster.getClusterId())); + kubernetesCluster.getClusterUuid())); } return true; } catch (Exception e) { @@ -1247,7 +1247,7 @@ public class CloudControllerServiceImpl implements CloudControllerService { if (log.isInfoEnabled()) { log.info(String.format("Updating kubernetes cluster: [kubernetes-cluster-id] %s", - kubernetesCluster.getClusterId())); + kubernetesCluster.getClusterUuid())); } CloudControllerUtil.validateKubernetesCluster(kubernetesCluster); @@ -1257,7 +1257,7 @@ public class CloudControllerServiceImpl implements CloudControllerService { if (log.isInfoEnabled()) { log.info(String.format("Kubernetes cluster updated successfully: [kubernetes-cluster-id] %s", - kubernetesCluster.getClusterId())); + kubernetesCluster.getClusterUuid())); } return true; } catch (Exception e) { @@ -1310,7 +1310,7 @@ public class CloudControllerServiceImpl implements CloudControllerService { CloudControllerContext.getInstance().persist(); if (log.isInfoEnabled()) { - log.info(String.format("Kubernetes host added successfully: [id] %s", kubernetesCluster.getClusterId())); + log.info(String.format("Kubernetes host added successfully: [id] %s", kubernetesCluster.getClusterUuid())); } return true; http://git-wip-us.apache.org/repos/asf/stratos/blob/f1538fe3/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 5617e19..60a3102 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 @@ -270,17 +270,17 @@ public class CloudControllerUtil { if (kubernetesCluster == null) { throw new InvalidKubernetesClusterException("Kubernetes cluster can not be null"); } - if (StringUtils.isEmpty(kubernetesCluster.getClusterId())) { + if (StringUtils.isEmpty(kubernetesCluster.getClusterUuid())) { throw new InvalidKubernetesClusterException("Kubernetes cluster groupId can not be empty"); } if (kubernetesCluster.getKubernetesMaster() == null) { throw new InvalidKubernetesClusterException("Mandatory field master has not been set " + - "for the Kubernetes cluster [id] " + kubernetesCluster.getClusterId()); + "for the Kubernetes cluster [id] " + kubernetesCluster.getClusterUuid()); } if (kubernetesCluster.getPortRange() == null) { throw new InvalidKubernetesClusterException("Mandatory field portRange has not been set " + - "for the Kubernetes cluster [id] " + kubernetesCluster.getClusterId()); + "for the Kubernetes cluster [id] " + kubernetesCluster.getClusterUuid()); } // Port range validation @@ -290,7 +290,7 @@ public class CloudControllerUtil { kubernetesCluster.getPortRange().getLower() < CloudControllerConstants.PORT_RANGE_MIN || kubernetesCluster.getPortRange().getUpper() < kubernetesCluster.getPortRange().getLower()) { throw new InvalidKubernetesClusterException("Port range is invalid in kubernetes cluster " + - "[kubenetes-cluster-id] " + kubernetesCluster.getClusterId() + " " + + "[kubenetes-cluster-id] " + kubernetesCluster.getClusterUuid() + " " + " [valid-min] " + CloudControllerConstants.PORT_RANGE_MIN + " [valid-max] " + CloudControllerConstants.PORT_RANGE_MAX); } http://git-wip-us.apache.org/repos/asf/stratos/blob/f1538fe3/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/kubernetes/KubernetesClusterBean.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/kubernetes/KubernetesClusterBean.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/kubernetes/KubernetesClusterBean.java index ccab17c..cc930da 100644 --- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/kubernetes/KubernetesClusterBean.java +++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/kubernetes/KubernetesClusterBean.java @@ -27,19 +27,21 @@ import java.util.List; @XmlRootElement public class KubernetesClusterBean { - private String clusterId; + private String clusterUuid; + private String clusterId; private String description; private List<KubernetesHostBean> kubernetesHosts; private KubernetesMasterBean kubernetesMaster; private PortRangeBean portRange; private List<PropertyBean> property; + private int tenantId; - public String getClusterId() { - return clusterId; + public String getClusterUuid() { + return clusterUuid; } - public void setClusterId(String clusterId) { - this.clusterId = clusterId; + public void setClusterUuid(String clusterUuid) { + this.clusterUuid = clusterUuid; } public List<KubernetesHostBean> getKubernetesHosts() { @@ -81,4 +83,20 @@ public class KubernetesClusterBean { public void setDescription(String description) { this.description = description; } + + public String getClusterId() { + return clusterId; + } + + public void setClusterId(String clusterId) { + this.clusterId = clusterId; + } + + public int getTenantId() { + return tenantId; + } + + public void setTenantId(int tenantId) { + this.tenantId = tenantId; + } } http://git-wip-us.apache.org/repos/asf/stratos/blob/f1538fe3/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java index 747d9bd..bfb6be6 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java @@ -1906,11 +1906,14 @@ public class StratosApiV41 extends AbstractApi { KubernetesClusterBean kubernetesCluster) throws RestAPIException { try { + PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext(); + kubernetesCluster.setTenantId(carbonContext.getTenantId()); + kubernetesCluster.setClusterUuid(UUID.randomUUID().toString()); StratosApiV41Utils.addKubernetesCluster(kubernetesCluster); - URI url = uriInfo.getAbsolutePathBuilder().path(kubernetesCluster.getClusterId()).build(); + URI url = uriInfo.getAbsolutePathBuilder().path(kubernetesCluster.getClusterUuid()).build(); return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS, String.format("Kubernetes cluster added successfully: [kub-host-cluster] %s", - kubernetesCluster.getClusterId()))).build(); + kubernetesCluster.getClusterUuid()))).build(); } catch (RestAPIException e) { throw e; } catch (CloudControllerServiceKubernetesClusterAlreadyExistsExceptionException e) { @@ -1938,11 +1941,13 @@ public class StratosApiV41 extends AbstractApi { KubernetesClusterBean kubernetesCluster) throws RestAPIException { try { + PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext(); + kubernetesCluster.setTenantId(carbonContext.getTenantId()); StratosApiV41Utils.updateKubernetesCluster(kubernetesCluster); - URI url = uriInfo.getAbsolutePathBuilder().path(kubernetesCluster.getClusterId()).build(); + URI url = uriInfo.getAbsolutePathBuilder().path(kubernetesCluster.getClusterUuid()).build(); return Response.ok(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS, String.format("Kubernetes cluster updated successfully: [kub-host-cluster] %s", - kubernetesCluster.getClusterId()))).build(); + kubernetesCluster.getClusterUuid()))).build(); } catch (RestAPIException e) { throw e; } catch (CloudControllerServiceInvalidKubernetesClusterExceptionException e) { @@ -1968,6 +1973,7 @@ public class StratosApiV41 extends AbstractApi { @PathParam("kubernetesClusterId") String kubernetesClusterId, KubernetesHostBean kubernetesHost) throws RestAPIException { + PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext(); StratosApiV41Utils.addKubernetesHost(kubernetesClusterId, kubernetesHost); URI url = uriInfo.getAbsolutePathBuilder().path(kubernetesHost.getHostId()).build(); return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS, http://git-wip-us.apache.org/repos/asf/stratos/blob/f1538fe3/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 a291d61..ca90da7 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 @@ -927,13 +927,15 @@ public class ObjectConverter { org.apache.stratos.cloud.controller.stub.domain.kubernetes.KubernetesCluster kubernetesCluster = new org.apache.stratos.cloud.controller.stub.domain.kubernetes.KubernetesCluster(); - kubernetesCluster.setClusterId(kubernetesClusterBean.getClusterId()); + kubernetesCluster.setClusterUuid(kubernetesClusterBean.getClusterUuid()); + kubernetesCluster.setClusterId(kubernetesClusterBean.getClusterUuid()); kubernetesCluster.setDescription(kubernetesClusterBean.getDescription()); kubernetesCluster.setKubernetesMaster(convertStubKubernetesMasterToKubernetesMaster( kubernetesClusterBean.getKubernetesMaster())); kubernetesCluster.setPortRange(convertPortRangeToStubPortRange(kubernetesClusterBean.getPortRange())); kubernetesCluster.setKubernetesHosts(convertToASKubernetesHostsPojo(kubernetesClusterBean.getKubernetesHosts())); kubernetesCluster.setProperties((convertPropertyBeansToCCStubProperties(kubernetesClusterBean.getProperty()))); + kubernetesCluster.setTenantId(kubernetesClusterBean.getTenantId()); return kubernetesCluster; } @@ -1022,7 +1024,7 @@ public class ObjectConverter { return null; } KubernetesClusterBean kubernetesClusterBean = new KubernetesClusterBean(); - kubernetesClusterBean.setClusterId(kubernetesCluster.getClusterId()); + kubernetesClusterBean.setClusterUuid(kubernetesCluster.getClusterId()); kubernetesClusterBean.setDescription(kubernetesCluster.getDescription()); kubernetesClusterBean.setPortRange(convertStubPortRangeToPortRange(kubernetesCluster.getPortRange())); kubernetesClusterBean.setKubernetesHosts(convertStubKubernetesHostsToKubernetesHosts(kubernetesCluster.getKubernetesHosts()));
