You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2014/12/22 04:18:54 UTC
[5/6] stratos git commit: Renaming kubernetes group to kubernetes
cluster and moving kubernetes domain classes to cloud controller
http://git-wip-us.apache.org/repos/asf/stratos/blob/78e8011e/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 89e8bf8..01bd479 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
@@ -18,19 +18,18 @@
*/
package org.apache.stratos.cloud.controller.context;
-import org.apache.axis2.clustering.ClusteringAgent;
import org.apache.axis2.engine.AxisConfiguration;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesClusterContext;
import org.apache.stratos.common.clustering.DistributedObjectProvider;
-import org.apache.stratos.common.kubernetes.KubernetesGroup;
-import org.apache.stratos.common.kubernetes.KubernetesHost;
-import org.apache.stratos.common.kubernetes.KubernetesMaster;
+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;
import org.apache.stratos.cloud.controller.domain.*;
import org.apache.stratos.cloud.controller.exception.*;
import org.apache.stratos.cloud.controller.internal.ServiceReferenceHolder;
-import org.apache.stratos.cloud.controller.registry.Deserializer;
import org.apache.stratos.cloud.controller.registry.RegistryManager;
import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
import org.wso2.carbon.databridge.agent.thrift.AsyncDataPublisher;
@@ -77,11 +76,11 @@ public class CloudControllerContext implements Serializable {
/* We keep following maps in order to make the look up time, small. */
/**
- * KubernetesGroups against groupIds
- * Key - Kubernetes group id
- * Value - {@link KubernetesGroup}
+ * KubernetesClusters against clusterIds
+ * Key - Kubernetes cluster id
+ * Value - {@link org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesCluster}
*/
- private Map<String, KubernetesGroup> kubernetesGroupsMap;
+ private Map<String, KubernetesCluster> kubernetesClustersMap;
/**
* Key - cluster id
@@ -103,7 +102,7 @@ public class CloudControllerContext implements Serializable {
/**
* Key - Kubernetes cluster id
- * Value - {@link org.apache.stratos.cloud.controller.domain.KubernetesClusterContext}
+ * Value - {@link org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesClusterContext}
*/
private Map<String, KubernetesClusterContext> kubClusterIdToKubClusterContextMap;
@@ -158,7 +157,7 @@ public class CloudControllerContext implements Serializable {
distributedObjectProvider = ServiceReferenceHolder.getInstance().getDistributedObjectProvider();
// Initialize objects
- kubernetesGroupsMap = distributedObjectProvider.getMap(CC_KUB_GROUP_ID_TO_GROUP_MAP);
+ kubernetesClustersMap = distributedObjectProvider.getMap(CC_KUB_GROUP_ID_TO_GROUP_MAP);
clusterIdToMemberContextListMap = distributedObjectProvider.getMap(CC_CLUSTER_ID_TO_MEMBER_CTX_MAP);
memberIdToMemberContextMap = distributedObjectProvider.getMap(CC_MEMBER_ID_TO_MEMBER_CTX_MAP);
memberIdToScheduledTaskMap = distributedObjectProvider.getMap(CC_MEMBER_ID_TO_SCH_TASK_MAP);
@@ -227,7 +226,7 @@ public class CloudControllerContext implements Serializable {
return acquireWriteLock(CC_SCH_TASK_WRITE_LOCK);
}
- public Lock acquireKubernetesGroupWriteLock() {
+ public Lock acquireKubernetesClusterWriteLock() {
return acquireWriteLock(CC_KUB_GROUP_WRITE_LOCK);
}
@@ -446,8 +445,8 @@ public class CloudControllerContext implements Serializable {
cartridgeTypeToPartitionIdsMap.remove(cartridgeType);
}
- public KubernetesClusterContext getKubernetesClusterContext(String kubClusterId) {
- return kubClusterIdToKubClusterContextMap.get(kubClusterId);
+ public KubernetesClusterContext getKubernetesClusterContext(String kubernetesClusterId) {
+ return kubClusterIdToKubClusterContextMap.get(kubernetesClusterId);
}
public void addKubernetesClusterContext(KubernetesClusterContext kubernetesClusterContext) {
@@ -457,11 +456,11 @@ public class CloudControllerContext implements Serializable {
}
/**
- * Remove a registered Kubernetes group from registry
+ * Remove a registered Kubernetes cluster from registry
*/
- public synchronized void removeKubernetesGroup(String kubernetesGroupId) {
+ public synchronized void removeKubernetesCluster(String kubernetesClusterId) {
// Remove entry from information model
- kubernetesGroupsMap.remove(kubernetesGroupId);
+ kubernetesClustersMap.remove(kubernetesClusterId);
}
/**
@@ -475,28 +474,28 @@ public class CloudControllerContext implements Serializable {
log.info("Removing Kubernetes Host: " + kubernetesHostId);
}
try {
- KubernetesGroup kubernetesGroupStored = getKubernetesGroupContainingHost(kubernetesHostId);
+ KubernetesCluster kubernetesClusterStored = getKubernetesClusterContainingHost(kubernetesHostId);
// Kubernetes master can not be removed
- if (kubernetesGroupStored.getKubernetesMaster().getHostId().equals(kubernetesHostId)) {
+ if (kubernetesClusterStored.getKubernetesMaster().getHostId().equals(kubernetesHostId)) {
throw new NonExistingKubernetesHostException("Kubernetes master is not allowed to be removed [id] " + kubernetesHostId);
}
List<KubernetesHost> kubernetesHostList = new ArrayList<KubernetesHost>();
- for (KubernetesHost kubernetesHost : kubernetesGroupStored.getKubernetesHosts()) {
+ for (KubernetesHost kubernetesHost : kubernetesClusterStored.getKubernetesHosts()) {
if (!kubernetesHost.getHostId().equals(kubernetesHostId)) {
kubernetesHostList.add(kubernetesHost);
}
}
// member count will be equal only when host object was not found
- if (kubernetesHostList.size() == kubernetesGroupStored.getKubernetesHosts().length) {
+ if (kubernetesHostList.size() == kubernetesClusterStored.getKubernetesHosts().length) {
throw new NonExistingKubernetesHostException("Kubernetes host not found for [id] " + kubernetesHostId);
}
KubernetesHost[] kubernetesHostsArray = new KubernetesHost[kubernetesHostList.size()];
kubernetesHostList.toArray(kubernetesHostsArray);
// Update information model
- kubernetesGroupStored.setKubernetesHosts(kubernetesHostsArray);
+ kubernetesClusterStored.setKubernetesHosts(kubernetesHostsArray);
if (log.isInfoEnabled()) {
log.info(String.format("Kubernetes host removed successfully: [id] %s", kubernetesHostId));
@@ -508,31 +507,31 @@ public class CloudControllerContext implements Serializable {
}
}
- public void addKubernetesGroup(KubernetesGroup kubernetesGroup) {
- kubernetesGroupsMap.put(kubernetesGroup.getGroupId(), kubernetesGroup);
+ public void addKubernetesCluster(KubernetesCluster kubernetesCluster) {
+ kubernetesClustersMap.put(kubernetesCluster.getClusterId(), kubernetesCluster);
}
- public void updateKubernetesGroup(KubernetesGroup kubernetesGroup) {
- kubernetesGroupsMap.put(kubernetesGroup.getGroupId(), kubernetesGroup);
+ public void updateKubernetesCluster(KubernetesCluster kubernetesCluster) {
+ kubernetesClustersMap.put(kubernetesCluster.getClusterId(), kubernetesCluster);
}
- public boolean kubernetesGroupExists(KubernetesGroup kubernetesGroup) {
- return kubernetesGroupsMap.containsKey(kubernetesGroup);
+ public boolean kubernetesClusterExists(KubernetesCluster kubernetesCluster) {
+ return kubernetesClustersMap.containsKey(kubernetesCluster);
}
public boolean kubernetesHostExists(String hostId) {
if (StringUtils.isEmpty(hostId)) {
return false;
}
- for (KubernetesGroup kubernetesGroup : kubernetesGroupsMap.values()) {
- if (kubernetesGroup.getKubernetesHosts() != null) {
- for (KubernetesHost kubernetesHost : kubernetesGroup.getKubernetesHosts()) {
+ for (KubernetesCluster kubernetesCluster : kubernetesClustersMap.values()) {
+ if (kubernetesCluster.getKubernetesHosts() != null) {
+ for (KubernetesHost kubernetesHost : kubernetesCluster.getKubernetesHosts()) {
if (kubernetesHost.getHostId().equals(hostId)) {
return true;
}
}
}
- if (hostId.equals(kubernetesGroup.getKubernetesMaster().getHostId())) {
+ if (hostId.equals(kubernetesCluster.getKubernetesMaster().getHostId())) {
return true;
}
}
@@ -540,61 +539,65 @@ public class CloudControllerContext implements Serializable {
}
- public KubernetesHost[] getKubernetesHostsInGroup(String kubernetesGroupId) throws NonExistingKubernetesGroupException {
- if (StringUtils.isEmpty(kubernetesGroupId)) {
- throw new NonExistingKubernetesGroupException("Cannot find for empty group id");
+ public KubernetesHost[] getKubernetesHostsInGroup(String kubernetesClusterId) throws NonExistingKubernetesClusterException {
+ if (StringUtils.isEmpty(kubernetesClusterId)) {
+ throw new NonExistingKubernetesClusterException("Kubernetes cluster id is null");
}
- KubernetesGroup kubernetesGroup = kubernetesGroupsMap.get(kubernetesGroupId);
- if (kubernetesGroup != null) {
- return kubernetesGroup.getKubernetesHosts();
+ KubernetesCluster kubernetesCluster = kubernetesClustersMap.get(kubernetesClusterId);
+ if (kubernetesCluster != null) {
+ return kubernetesCluster.getKubernetesHosts();
}
- throw new NonExistingKubernetesGroupException("Kubernetes group not found for group id: " + kubernetesGroupId);
+ throw new NonExistingKubernetesClusterException("Kubernetes cluster not found: [kubernetes-cluster-id] "
+ + kubernetesClusterId);
}
- public KubernetesMaster getKubernetesMasterInGroup(String kubernetesGroupId) throws NonExistingKubernetesGroupException {
- if (StringUtils.isEmpty(kubernetesGroupId)) {
- throw new NonExistingKubernetesGroupException("Cannot find for empty group id");
+ public KubernetesMaster getKubernetesMasterInGroup(String kubernetesClusterId)
+ throws NonExistingKubernetesClusterException {
+ if (StringUtils.isEmpty(kubernetesClusterId)) {
+ throw new NonExistingKubernetesClusterException("Kubernetes cluster id is null");
}
- KubernetesGroup kubernetesGroup = kubernetesGroupsMap.get(kubernetesGroupId);
- if (kubernetesGroup != null) {
- return kubernetesGroup.getKubernetesMaster();
+ KubernetesCluster kubernetesCluster = kubernetesClustersMap.get(kubernetesClusterId);
+ if (kubernetesCluster != null) {
+ return kubernetesCluster.getKubernetesMaster();
}
- throw new NonExistingKubernetesGroupException("Kubernetes master not found for group id: " + kubernetesGroupId);
+ throw new NonExistingKubernetesClusterException("Kubernetes master not found: [kubernetes-cluster-id] "
+ + kubernetesClusterId);
}
- public KubernetesGroup getKubernetesGroup(String groupId) throws NonExistingKubernetesGroupException {
- if (StringUtils.isEmpty(groupId)) {
- throw new NonExistingKubernetesGroupException("Kubernetes group id is empty");
+ public KubernetesCluster getKubernetesCluster(String kubernetesClusterId)
+ throws NonExistingKubernetesClusterException {
+ if (StringUtils.isEmpty(kubernetesClusterId)) {
+ throw new NonExistingKubernetesClusterException("Kubernetes cluster id is empty");
}
- KubernetesGroup kubernetesGroup = kubernetesGroupsMap.get(groupId);
- if (kubernetesGroup != null) {
- return kubernetesGroup;
+ KubernetesCluster kubernetesCluster = kubernetesClustersMap.get(kubernetesClusterId);
+ if (kubernetesCluster != null) {
+ return kubernetesCluster;
}
- throw new NonExistingKubernetesGroupException("Kubernetes group not found: [group-id]: " + groupId);
+ throw new NonExistingKubernetesClusterException("Kubernetes cluster not found: [kubernetes-cluster-id] " + kubernetesClusterId);
}
- public KubernetesGroup getKubernetesGroupContainingHost(String hostId) throws NonExistingKubernetesGroupException {
+ public KubernetesCluster getKubernetesClusterContainingHost(String hostId) throws NonExistingKubernetesClusterException {
if (StringUtils.isEmpty(hostId)) {
return null;
}
- for (KubernetesGroup kubernetesGroup : kubernetesGroupsMap.values()) {
- if (hostId.equals(kubernetesGroup.getKubernetesMaster().getHostId())) {
- return kubernetesGroup;
+ for (KubernetesCluster kubernetesCluster : kubernetesClustersMap.values()) {
+ if (hostId.equals(kubernetesCluster.getKubernetesMaster().getHostId())) {
+ return kubernetesCluster;
}
- if (kubernetesGroup.getKubernetesHosts() != null) {
- for (KubernetesHost kubernetesHost : kubernetesGroup.getKubernetesHosts()) {
+ if (kubernetesCluster.getKubernetesHosts() != null) {
+ for (KubernetesHost kubernetesHost : kubernetesCluster.getKubernetesHosts()) {
if (kubernetesHost.getHostId().equals(hostId)) {
- return kubernetesGroup;
+ return kubernetesCluster;
}
}
}
}
- throw new NonExistingKubernetesGroupException("Kubernetes group not found containing host id: " + hostId);
+ throw new NonExistingKubernetesClusterException("Kubernetes cluster not found containing host id: " + hostId);
}
- public KubernetesGroup[] getKubernetesGroups() {
- return kubernetesGroupsMap.values().toArray(new KubernetesGroup[kubernetesGroupsMap.size()]);
+ public KubernetesCluster[] getKubernetesClusters() {
+ return kubernetesClustersMap.values().toArray(new KubernetesCluster[kubernetesClustersMap.size()]);
}
public boolean isClustered() {
@@ -627,7 +630,7 @@ public class CloudControllerContext implements Serializable {
if (dataObj instanceof CloudControllerContext) {
CloudControllerContext serializedObj = (CloudControllerContext) dataObj;
- copyMap(serializedObj.kubernetesGroupsMap, kubernetesGroupsMap);
+ copyMap(serializedObj.kubernetesClustersMap, kubernetesClustersMap);
copyMap(serializedObj.clusterIdToMemberContextListMap, clusterIdToMemberContextListMap);
copyMap(serializedObj.memberIdToMemberContextMap, memberIdToMemberContextMap);
copyMap(serializedObj.kubClusterIdToKubClusterContextMap, kubClusterIdToKubClusterContextMap);
http://git-wip-us.apache.org/repos/asf/stratos/blob/78e8011e/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/KubernetesClusterContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/KubernetesClusterContext.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/KubernetesClusterContext.java
deleted file mode 100644
index 83feabd..0000000
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/KubernetesClusterContext.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.stratos.cloud.controller.domain;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.kubernetes.client.KubernetesApiClient;
-
-/**
- * Holds information about a Kubernetes Cluster.
- *
- *
- */
-public class KubernetesClusterContext implements Serializable {
-
- private static final long serialVersionUID = -802025758806195791L;
- private static final Log log = LogFactory.getLog(KubernetesClusterContext.class);
-
- // id of the Kubernetes cluster
- private String kubernetesClusterId;
- private int upperPort;
- private int lowerPort;
- // kubernetes master ip
- private String masterIp;
- private String masterPort;
- // available list of ports
- private List<Integer> servicePorts;
- // kubernetes client API instance
- private transient KubernetesApiClient kubApi;
-
- public KubernetesClusterContext(String id, String masterIp, String masterPort, int lowerPort, int upperPort) {
- servicePorts = new ArrayList<Integer>();
- this.lowerPort = lowerPort;
- this.upperPort = upperPort;
- // Generate the ports
- generateServicePorts(lowerPort, upperPort);
- this.kubernetesClusterId = id;
- this.masterIp = masterIp;
- this.masterPort = masterPort;
- this.setKubApi(new KubernetesApiClient(getEndpoint(masterIp, masterPort)));
-
- }
-
- private String getEndpoint(String ip, String port) {
- return "http://"+ip+":"+port+"/api/v1beta1/";
- }
-
- public String getKubernetesClusterId() {
- return kubernetesClusterId;
- }
-
- public void setKubernetesClusterId(String kubernetesClusterId) {
- this.kubernetesClusterId = kubernetesClusterId;
- }
-
- public List<Integer> getServicePorts() {
- return servicePorts;
- }
-
- public void setServicePorts(List<Integer> servicePorts) {
- this.servicePorts = servicePorts;
- }
-
- public int getNextServicePort() {
- if (servicePorts.isEmpty()) {
- return -1;
- }
- return servicePorts.remove(0);
- }
-
- public void deallocatePort(int port) {
- if (!servicePorts.contains(port)) {
- servicePorts.add(port);
- // TODO Sort elements
- }
- }
-
- private void generateServicePorts(int lowerPort, int upperPort) {
- for (int port = lowerPort; port <= upperPort; port++) {
- servicePorts.add(port);
- }
- }
-
- public String getMasterIp() {
- return masterIp;
- }
-
- public void setMasterIp(String masterIp) {
- this.masterIp = masterIp;
- }
-
- public KubernetesApiClient getKubApi() {
- if (kubApi == null) {
- kubApi = new KubernetesApiClient(getEndpoint(masterIp, masterPort));
- }
- return kubApi;
- }
-
- public void setKubApi(KubernetesApiClient kubApi) {
- this.kubApi = kubApi;
- }
-
- public int getUpperPort() {
- return upperPort;
- }
-
- public void setUpperPort(int upperPort) {
- this.upperPort = upperPort;
- }
-
- public int getLowerPort() {
- return lowerPort;
- }
-
- public void setLowerPort(int lowerPort) {
- this.lowerPort = lowerPort;
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((servicePorts == null) ? 0 : servicePorts.hashCode());
- result = prime * result + ((kubernetesClusterId == null) ? 0 : kubernetesClusterId.hashCode());
- result = prime * result + lowerPort;
- result = prime * result + ((masterIp == null) ? 0 : masterIp.hashCode());
- result = prime * result + ((masterPort == null) ? 0 : masterPort.hashCode());
- result = prime * result + upperPort;
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- KubernetesClusterContext other = (KubernetesClusterContext) obj;
- if (servicePorts == null) {
- if (other.servicePorts != null)
- return false;
- } else if (!servicePorts.equals(other.servicePorts))
- return false;
- if (kubernetesClusterId == null) {
- if (other.kubernetesClusterId != null)
- return false;
- } else if (!kubernetesClusterId.equals(other.kubernetesClusterId))
- return false;
- if (lowerPort != other.lowerPort)
- return false;
- if (masterIp == null) {
- if (other.masterIp != null)
- return false;
- } else if (!masterIp.equals(other.masterIp))
- return false;
- if (masterPort == null) {
- if (other.masterPort != null)
- return false;
- } else if (!masterPort.equals(other.masterPort))
- return false;
- if (upperPort != other.upperPort)
- return false;
- return true;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/78e8011e/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
new file mode 100644
index 0000000..1394cf6
--- /dev/null
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesCluster.java
@@ -0,0 +1,171 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.cloud.controller.domain.kubernetes;
+
+import org.apache.stratos.common.Properties;
+
+import java.io.Serializable;
+import java.util.Arrays;
+
+/**
+ * The model class for KubernetesCluster definition.
+ */
+public class KubernetesCluster implements Serializable {
+
+ private static final long serialVersionUID = 3210149484906093132L;
+
+ private String clusterId;
+ private KubernetesHost[] kubernetesHosts;
+ private KubernetesMaster kubernetesMaster;
+ private PortRange portRange;
+ private String description;
+ private Properties properties = new Properties();
+
+ public String getClusterId() {
+ return clusterId;
+ }
+
+ public void setClusterId(String clusterId) {
+ this.clusterId = clusterId;
+ }
+
+ public KubernetesHost[] getKubernetesHosts() {
+ return kubernetesHosts;
+ }
+
+ public void setKubernetesHosts(KubernetesHost[] kubernetesHosts) {
+ if(kubernetesHosts == null) {
+ this.kubernetesHosts = new KubernetesHost[0];
+ } else {
+ this.kubernetesHosts = Arrays.copyOf(kubernetesHosts, kubernetesHosts.length);
+ }
+ }
+
+ public KubernetesMaster getKubernetesMaster() {
+ return kubernetesMaster;
+ }
+
+ public void setKubernetesMaster(KubernetesMaster kubernetesMaster) {
+ this.kubernetesMaster = kubernetesMaster;
+ }
+
+ public PortRange getPortRange() {
+ return portRange;
+ }
+
+ public void setPortRange(PortRange portRange) {
+ this.portRange = portRange;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Properties getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Properties properties) {
+ this.properties = properties;
+ }
+
+ public String toString() {
+ return "KubernetesCluster [groupId=" + clusterId +
+ " , kubernetesHosts=" + Arrays.toString(kubernetesHosts) +
+ " , kubernetesMaster=" + kubernetesMaster +
+ " , portRange=" + portRange +
+ " , description=" + description +
+ " , properties=" + properties + "]";
+ }
+
+ @Override
+ public boolean equals(Object anObject) {
+ if (anObject == null) {
+ return false;
+ }
+ if (this == anObject) {
+ return true;
+ }
+ if (!(anObject instanceof KubernetesCluster)) {
+ return false;
+ }
+ KubernetesCluster kubernetesClusterObj = (KubernetesCluster) anObject;
+ if (this.clusterId == null || kubernetesClusterObj.getClusterId() == null) {
+ return false;
+ } else if (!this.clusterId.equals(kubernetesClusterObj.getClusterId())) {
+ return false;
+ }
+
+ if (this.portRange == null || kubernetesClusterObj.getPortRange() == null) {
+ return false;
+ } else if (!this.portRange.equals(kubernetesClusterObj.getPortRange())) {
+ return false;
+ }
+
+ if (this.properties == null) {
+ if (kubernetesClusterObj.getProperties() != null) {
+ return false;
+ }
+ } else if (!this.properties.equals(kubernetesClusterObj.getProperties())) {
+ return false;
+ }
+
+ if (this.description == null) {
+ if (kubernetesClusterObj.description != null) {
+ return false;
+ }
+ } else if (!this.description.equals(kubernetesClusterObj.getDescription())) {
+ return false;
+ }
+
+ if (this.kubernetesMaster == null || kubernetesClusterObj.getKubernetesMaster() == null) {
+ return false;
+ } else if (!this.kubernetesMaster.equals(kubernetesClusterObj.getKubernetesMaster())) {
+ return false;
+ }
+
+ if (this.getKubernetesHosts() == null) {
+ if (kubernetesClusterObj.getKubernetesHosts() != null) {
+ return false;
+ }
+ } else if (!Arrays.equals(this.kubernetesHosts, kubernetesClusterObj.getKubernetesHosts())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ 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.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;
+ }
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/78e8011e/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
new file mode 100644
index 0000000..0132475
--- /dev/null
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesClusterContext.java
@@ -0,0 +1,188 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.stratos.cloud.controller.domain.kubernetes;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.kubernetes.client.KubernetesApiClient;
+
+/**
+ * Holds information about a Kubernetes Cluster.
+ *
+ *
+ */
+public class KubernetesClusterContext implements Serializable {
+
+ private static final long serialVersionUID = -802025758806195791L;
+ private static final Log log = LogFactory.getLog(KubernetesClusterContext.class);
+
+ // id of the Kubernetes cluster
+ private String kubernetesClusterId;
+ private int upperPort;
+ private int lowerPort;
+ // kubernetes master ip
+ private String masterIp;
+ private String masterPort;
+ // available list of ports
+ private List<Integer> servicePorts;
+ // kubernetes client API instance
+ private transient KubernetesApiClient kubApi;
+
+ public KubernetesClusterContext(String id, String masterIp, String masterPort, int lowerPort, int upperPort) {
+ servicePorts = new ArrayList<Integer>();
+ this.lowerPort = lowerPort;
+ this.upperPort = upperPort;
+ // Generate the ports
+ generateServicePorts(lowerPort, upperPort);
+ this.kubernetesClusterId = id;
+ this.masterIp = masterIp;
+ this.masterPort = masterPort;
+ this.setKubApi(new KubernetesApiClient(getEndpoint(masterIp, masterPort)));
+
+ }
+
+ private String getEndpoint(String ip, String port) {
+ return "http://"+ip+":"+port+"/api/v1beta1/";
+ }
+
+ public String getKubernetesClusterId() {
+ return kubernetesClusterId;
+ }
+
+ public void setKubernetesClusterId(String kubernetesClusterId) {
+ this.kubernetesClusterId = kubernetesClusterId;
+ }
+
+ public List<Integer> getServicePorts() {
+ return servicePorts;
+ }
+
+ public void setServicePorts(List<Integer> servicePorts) {
+ this.servicePorts = servicePorts;
+ }
+
+ public int getNextServicePort() {
+ if (servicePorts.isEmpty()) {
+ return -1;
+ }
+ return servicePorts.remove(0);
+ }
+
+ public void deallocatePort(int port) {
+ if (!servicePorts.contains(port)) {
+ servicePorts.add(port);
+ // TODO Sort elements
+ }
+ }
+
+ private void generateServicePorts(int lowerPort, int upperPort) {
+ for (int port = lowerPort; port <= upperPort; port++) {
+ servicePorts.add(port);
+ }
+ }
+
+ public String getMasterIp() {
+ return masterIp;
+ }
+
+ public void setMasterIp(String masterIp) {
+ this.masterIp = masterIp;
+ }
+
+ public KubernetesApiClient getKubApi() {
+ if (kubApi == null) {
+ kubApi = new KubernetesApiClient(getEndpoint(masterIp, masterPort));
+ }
+ return kubApi;
+ }
+
+ public void setKubApi(KubernetesApiClient kubApi) {
+ this.kubApi = kubApi;
+ }
+
+ public int getUpperPort() {
+ return upperPort;
+ }
+
+ public void setUpperPort(int upperPort) {
+ this.upperPort = upperPort;
+ }
+
+ public int getLowerPort() {
+ return lowerPort;
+ }
+
+ public void setLowerPort(int lowerPort) {
+ this.lowerPort = lowerPort;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((servicePorts == null) ? 0 : servicePorts.hashCode());
+ result = prime * result + ((kubernetesClusterId == null) ? 0 : kubernetesClusterId.hashCode());
+ result = prime * result + lowerPort;
+ result = prime * result + ((masterIp == null) ? 0 : masterIp.hashCode());
+ result = prime * result + ((masterPort == null) ? 0 : masterPort.hashCode());
+ result = prime * result + upperPort;
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ KubernetesClusterContext other = (KubernetesClusterContext) obj;
+ if (servicePorts == null) {
+ if (other.servicePorts != null)
+ return false;
+ } else if (!servicePorts.equals(other.servicePorts))
+ return false;
+ if (kubernetesClusterId == null) {
+ if (other.kubernetesClusterId != null)
+ return false;
+ } else if (!kubernetesClusterId.equals(other.kubernetesClusterId))
+ return false;
+ if (lowerPort != other.lowerPort)
+ return false;
+ if (masterIp == null) {
+ if (other.masterIp != null)
+ return false;
+ } else if (!masterIp.equals(other.masterIp))
+ return false;
+ if (masterPort == null) {
+ if (other.masterPort != null)
+ return false;
+ } else if (!masterPort.equals(other.masterPort))
+ return false;
+ if (upperPort != other.upperPort)
+ return false;
+ return true;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/78e8011e/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesHost.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesHost.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesHost.java
new file mode 100644
index 0000000..4350809
--- /dev/null
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesHost.java
@@ -0,0 +1,146 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+package org.apache.stratos.cloud.controller.domain.kubernetes;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.Properties;
+
+import java.io.Serializable;
+
+/**
+ * The model class for KubernetesHost beans. This represents a Kubernetes CoreOS host instance
+ */
+public class KubernetesHost implements Serializable {
+ private static final long serialVersionUID = 1798748592432690645L;
+ private static final Log log = LogFactory.getLog(KubernetesHost.class);
+ protected String hostId;
+ protected String hostname;
+ protected String hostIpAddress;
+ protected Properties properties = new Properties();
+
+ public KubernetesHost() {
+
+ }
+
+ public KubernetesHost(String hostId, String hostname, String hostIpAddress) {
+ this.hostId = hostId;
+ this.hostname = hostname;
+ this.hostIpAddress = hostIpAddress;
+ }
+
+ public String getHostId() {
+ return hostId;
+ }
+
+ public void setHostId(String hostId) {
+ this.hostId = hostId;
+ }
+
+ public String getHostname() {
+ return hostname;
+ }
+
+ public void setHostname(String hostname) {
+ this.hostname = hostname;
+ }
+
+ public String getHostIpAddress() {
+ return hostIpAddress;
+ }
+
+ public void setHostIpAddress(String hostIpAddress) {
+ this.hostIpAddress = hostIpAddress;
+ }
+
+ public Properties getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Properties properties) {
+ this.properties = properties;
+ }
+
+ @Override
+ public String toString() {
+ return "KubernetesHost [hostId=" + hostId +
+ " hostname=" + hostname +
+ " hostIpAddress=" + hostIpAddress +
+ " properties=" + properties + "]";
+ }
+
+ @Override
+ public boolean equals(Object anObject) {
+ if (anObject == null) {
+ return false;
+ }
+ if (this == anObject) {
+ return true;
+ }
+
+ if (!(anObject instanceof KubernetesHost)) {
+ return false;
+ }
+ KubernetesHost kubernetesHostObj = (KubernetesHost) anObject;
+
+ if (this.hostId == null || kubernetesHostObj.getHostId() == null) {
+ return false;
+ } else if (!this.hostId.equals(kubernetesHostObj.getHostId())) {
+ return false;
+ }
+
+ if (this.hostIpAddress == null || kubernetesHostObj.getHostIpAddress() == null) {
+ return false;
+ } else if (!this.hostIpAddress.equals(kubernetesHostObj.getHostIpAddress())) {
+ return false;
+ }
+
+ if (this.hostname == null) {
+ if (kubernetesHostObj.getHostname() != null) {
+ return false;
+ }
+ } else if (!this.hostname.equals(kubernetesHostObj.getHostname())) {
+ return false;
+ }
+
+ if (this.properties == null) {
+ if (kubernetesHostObj.getProperties() != null) {
+ return false;
+ }
+ } else if (this.properties.equals(kubernetesHostObj.getProperties())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((this.hostId == null) ? 0 : this.hostId.hashCode());
+ result = prime * result + ((this.hostname == null) ? 0 : this.hostname.hashCode());
+ result = prime * result + ((this.hostIpAddress == null) ? 0 : this.hostIpAddress.hashCode());
+ result = prime * result + ((this.properties == null) ? 0 : this.properties.hashCode());
+ return result;
+ }
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/78e8011e/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesMaster.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesMaster.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesMaster.java
new file mode 100644
index 0000000..475f73a
--- /dev/null
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesMaster.java
@@ -0,0 +1,90 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+package org.apache.stratos.cloud.controller.domain.kubernetes;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.io.Serializable;
+
+/**
+ * The model class for KubernetesMaster beans. This represents a Kubernetes CoreOS master host instance
+ */
+public class KubernetesMaster extends KubernetesHost implements Serializable {
+ private static final long serialVersionUID = -4369535909362724532L;
+
+ private static final Log log = LogFactory.getLog(KubernetesMaster.class);
+
+ private String endpoint;
+
+ public KubernetesMaster() {
+
+ }
+
+ public KubernetesMaster(String hostId, String hostname, String hostIpAddress, String endpoint) {
+ this.hostId = hostId;
+ this.hostname = hostname;
+ this.hostIpAddress = hostIpAddress;
+ this.endpoint = endpoint;
+ }
+
+ public String getEndpoint() {
+ return endpoint;
+ }
+
+ public void setEndpoint(String endpoint) {
+ this.endpoint = endpoint;
+ }
+
+ @Override
+ public String toString() {
+ return "KubernetesMaster [hostId=" + hostId +
+ " hostname=" + hostname +
+ " hostIpAddress=" + hostIpAddress +
+ " endpoint=" + endpoint +
+ " properties=" + properties + "]";
+ }
+
+ @Override
+ public boolean equals(Object anObject) {
+ if (anObject == null) {
+ return false;
+ }
+ if (this == anObject) {
+ return true;
+ }
+
+ if (!(anObject instanceof KubernetesMaster)) {
+ return false;
+ }
+
+ return super.equals(anObject);
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = super.hashCode();
+ result = prime * result + ((this.endpoint == null) ? 0 : this.endpoint.hashCode());
+ return result;
+ }
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/78e8011e/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/PortRange.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/PortRange.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/PortRange.java
new file mode 100644
index 0000000..86cd1b7
--- /dev/null
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/PortRange.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.cloud.controller.domain.kubernetes;
+
+import java.io.Serializable;
+
+/**
+ * The model class for PortRange definition.
+ */
+public class PortRange implements Serializable {
+ private static final long serialVersionUID = -8658155576745059779L;
+ int upper;
+ int lower;
+
+ public int getUpper() {
+ return upper;
+ }
+
+ public void setUpper(int upper) {
+ this.upper = upper;
+ }
+
+ public int getLower() {
+ return lower;
+ }
+
+ public void setLower(int lower) {
+ this.lower = lower;
+ }
+
+ public String toString() {
+ return "[ upper=" + upper + " , lower=" + lower + " ]";
+ }
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/78e8011e/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/InvalidKubernetesClusterException.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/InvalidKubernetesClusterException.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/InvalidKubernetesClusterException.java
new file mode 100644
index 0000000..3b5b930
--- /dev/null
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/InvalidKubernetesClusterException.java
@@ -0,0 +1,49 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+package org.apache.stratos.cloud.controller.exception;
+
+/**
+ * Exception class for handling invalid Kubernetes cluster
+ */
+public class InvalidKubernetesClusterException extends Exception {
+
+ private String message;
+
+ public InvalidKubernetesClusterException(String message, Exception exception){
+ super(message, exception);
+ this.message = message;
+ }
+
+ public InvalidKubernetesClusterException(Exception exception){
+ super(exception);
+ }
+
+ public InvalidKubernetesClusterException(String msg){
+ super(msg);
+ this.message = msg;
+ }
+
+ @Override
+ public String getMessage() {
+ return this.message;
+ }
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/78e8011e/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/InvalidKubernetesGroupException.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/InvalidKubernetesGroupException.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/InvalidKubernetesGroupException.java
deleted file mode 100644
index db5fb30..0000000
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/InvalidKubernetesGroupException.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-package org.apache.stratos.cloud.controller.exception;
-
-/**
- * Exception class for handling invalid Kubernetes Group
- */
-public class InvalidKubernetesGroupException extends Exception {
-
- private String message;
-
- public InvalidKubernetesGroupException(String message, Exception exception){
- super(message, exception);
- this.message = message;
- }
-
- public InvalidKubernetesGroupException(Exception exception){
- super(exception);
- }
-
- public InvalidKubernetesGroupException(String msg){
- super(msg);
- this.message = msg;
- }
-
- @Override
- public String getMessage() {
- return this.message;
- }
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/78e8011e/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/NonExistingKubernetesClusterException.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/NonExistingKubernetesClusterException.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/NonExistingKubernetesClusterException.java
new file mode 100644
index 0000000..e425163
--- /dev/null
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/NonExistingKubernetesClusterException.java
@@ -0,0 +1,49 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+
+package org.apache.stratos.cloud.controller.exception;
+
+/**
+ * Exception class for handling non-existing Kubernetes cluster
+ */
+public class NonExistingKubernetesClusterException extends Exception {
+
+ private String message;
+
+ public NonExistingKubernetesClusterException(String message, Exception exception){
+ super(message, exception);
+ this.message = message;
+ }
+
+ public NonExistingKubernetesClusterException(Exception exception){
+ super(exception);
+ }
+
+ public NonExistingKubernetesClusterException(String msg){
+ super(msg);
+ this.message = msg;
+ }
+
+ @Override
+ public String getMessage() {
+ return this.message;
+ }
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/78e8011e/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/NonExistingKubernetesGroupException.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/NonExistingKubernetesGroupException.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/NonExistingKubernetesGroupException.java
deleted file mode 100644
index ba48fbe..0000000
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/NonExistingKubernetesGroupException.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-package org.apache.stratos.cloud.controller.exception;
-
-/**
- * Exception class for handling non-existing Kubernetes Group
- */
-public class NonExistingKubernetesGroupException extends Exception {
-
- private String message;
-
- public NonExistingKubernetesGroupException(String message, Exception exception){
- super(message, exception);
- this.message = message;
- }
-
- public NonExistingKubernetesGroupException(Exception exception){
- super(exception);
- }
-
- public NonExistingKubernetesGroupException(String msg){
- super(msg);
- this.message = msg;
- }
-
- @Override
- public String getMessage() {
- return this.message;
- }
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/78e8011e/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/KubernetesIaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/KubernetesIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/KubernetesIaas.java
index 8e57ba9..e9150bd 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/KubernetesIaas.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/KubernetesIaas.java
@@ -26,6 +26,7 @@ import org.apache.stratos.cloud.controller.concurrent.ScheduledThreadExecutor;
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.kubernetes.KubernetesClusterContext;
import org.apache.stratos.cloud.controller.exception.*;
import org.apache.stratos.cloud.controller.functions.ContainerClusterContextToReplicationController;
import org.apache.stratos.cloud.controller.iaases.validators.KubernetesPartitionValidator;
@@ -35,8 +36,8 @@ import org.apache.stratos.cloud.controller.util.CloudControllerUtil;
import org.apache.stratos.cloud.controller.util.PodActivationWatcher;
import org.apache.stratos.common.beans.NameValuePair;
import org.apache.stratos.common.constants.StratosConstants;
-import org.apache.stratos.common.kubernetes.KubernetesGroup;
-import org.apache.stratos.common.kubernetes.PortRange;
+import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesCluster;
+import org.apache.stratos.cloud.controller.domain.kubernetes.PortRange;
import org.apache.stratos.kubernetes.client.KubernetesApiClient;
import org.apache.stratos.kubernetes.client.exceptions.KubernetesClientException;
import org.apache.stratos.kubernetes.client.model.*;
@@ -151,17 +152,17 @@ public class KubernetesIaas extends Iaas {
partition.getProperties(),
partition.toString());
- KubernetesGroup kubernetesGroup = CloudControllerContext.getInstance().
- getKubernetesGroup(kubernetesClusterId);
- handleNullObject(kubernetesGroup, "Could not start container, kubernetes group not found: " +
+ KubernetesCluster kubernetesCluster = CloudControllerContext.getInstance().
+ getKubernetesCluster(kubernetesClusterId);
+ handleNullObject(kubernetesCluster, "Could not start container, kubernetes cluster not found: " +
"[kubernetes-cluster-id] " + kubernetesClusterId + " [cluster-id] " + clusterId +
" [member-id] " + memberId);
// Prepare kubernetes context
- String kubernetesMasterIp = kubernetesGroup.getKubernetesMaster().getHostIpAddress();
- PortRange kubernetesPortRange = kubernetesGroup.getPortRange();
+ String kubernetesMasterIp = kubernetesCluster.getKubernetesMaster().getHostIpAddress();
+ PortRange kubernetesPortRange = kubernetesCluster.getPortRange();
String kubernetesMasterPort = CloudControllerUtil.getProperty(
- kubernetesGroup.getKubernetesMaster().getProperties(), StratosConstants.KUBERNETES_MASTER_PORT,
+ kubernetesCluster.getKubernetesMaster().getProperties(), StratosConstants.KUBERNETES_MASTER_PORT,
StratosConstants.KUBERNETES_MASTER_DEFAULT_PORT);
KubernetesClusterContext kubClusterContext = getKubernetesClusterContext(kubernetesClusterId,
http://git-wip-us.apache.org/repos/asf/stratos/blob/78e8011e/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/validators/KubernetesPartitionValidator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/validators/KubernetesPartitionValidator.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/validators/KubernetesPartitionValidator.java
index a95aa37..8ecb7d9 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/validators/KubernetesPartitionValidator.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/validators/KubernetesPartitionValidator.java
@@ -25,7 +25,7 @@ import org.apache.commons.logging.LogFactory;
import org.apache.stratos.cloud.controller.context.CloudControllerContext;
import org.apache.stratos.cloud.controller.domain.IaasProvider;
import org.apache.stratos.cloud.controller.exception.InvalidPartitionException;
-import org.apache.stratos.cloud.controller.exception.NonExistingKubernetesGroupException;
+import org.apache.stratos.cloud.controller.exception.NonExistingKubernetesClusterException;
import org.apache.stratos.common.constants.StratosConstants;
/**
@@ -55,9 +55,9 @@ public class KubernetesPartitionValidator implements PartitionValidator {
if (properties.containsKey(StratosConstants.KUBERNETES_CLUSTER_ID)) {
String kubernetesClusterId = properties.getProperty(StratosConstants.KUBERNETES_CLUSTER_ID);
try {
- CloudControllerContext.getInstance().getKubernetesGroup(kubernetesClusterId);
+ CloudControllerContext.getInstance().getKubernetesCluster(kubernetesClusterId);
return iaasProvider;
- } catch (NonExistingKubernetesGroupException e) {
+ } catch (NonExistingKubernetesClusterException e) {
String message = "Kubernetes partition is not valid: [partition-id] " + partitionId;
log.error(message, e);
throw new InvalidPartitionException(message, e);
http://git-wip-us.apache.org/repos/asf/stratos/blob/78e8011e/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/CloudControllerService.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/CloudControllerService.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/CloudControllerService.java
index 5f5124e..8ac170e 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/CloudControllerService.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/CloudControllerService.java
@@ -20,9 +20,9 @@ package org.apache.stratos.cloud.controller.services;
import org.apache.stratos.cloud.controller.domain.*;
import org.apache.stratos.cloud.controller.exception.*;
-import org.apache.stratos.common.kubernetes.KubernetesGroup;
-import org.apache.stratos.common.kubernetes.KubernetesHost;
-import org.apache.stratos.common.kubernetes.KubernetesMaster;
+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;
import org.apache.stratos.messaging.domain.topology.ClusterStatus;
/**
@@ -229,48 +229,48 @@ public interface CloudControllerService {
ClusterInstanceCreationException;
/**
- * Retrieves registered Kubernetes Groups.
+ * Retrieves registered Kubernetes clusters.
*/
- public KubernetesGroup[] getKubernetesGroups();
+ public KubernetesCluster[] getKubernetesClusters();
/**
- * Retrieves Kubernetes Group for given Kubernetes Group ID.
+ * Retrieves Kubernetes cluster for given Kubernetes cluster ID.
*
- * @param kubernetesGroupId
+ * @param kubernetesClusterId
*/
- public KubernetesGroup getKubernetesGroup(String kubernetesGroupId) throws NonExistingKubernetesGroupException;
+ public KubernetesCluster getKubernetesCluster(String kubernetesClusterId) throws NonExistingKubernetesClusterException;
/**
- * Retrieves Kubernetes Master for given Kubernetes Group ID.
+ * Retrieves Kubernetes Master for given Kubernetes cluster ID.
*
- * @param kubernetesGroupId
+ * @param kubernetesClusterId
*/
- public KubernetesMaster getMasterForKubernetesGroup(String kubernetesGroupId) throws NonExistingKubernetesGroupException;
+ public KubernetesMaster getMasterForKubernetesCluster(String kubernetesClusterId) throws NonExistingKubernetesClusterException;
/**
- * Retrieves Kubernetes Hosts for given Kubernetes Group ID.
+ * Retrieves Kubernetes Hosts for given Kubernetes cluster ID.
*
- * @param kubernetesGroupId
+ * @param kubernetesClusterId
*/
- public KubernetesHost[] getHostsForKubernetesGroup(String kubernetesGroupId) throws NonExistingKubernetesGroupException;
+ public KubernetesHost[] getHostsForKubernetesCluster(String kubernetesClusterId) throws NonExistingKubernetesClusterException;
/**
* Register a Kubernetes cluster.
*
- * @param kubernetesGroup
- * @throws org.apache.stratos.cloud.controller.exception.InvalidKubernetesGroupException
+ * @param kubernetesCluster
+ * @throws org.apache.stratos.cloud.controller.exception.InvalidKubernetesClusterException
*/
- public boolean addKubernetesGroup(KubernetesGroup kubernetesGroup) throws InvalidKubernetesGroupException;
+ public boolean addKubernetesCluster(KubernetesCluster kubernetesCluster) throws InvalidKubernetesClusterException;
/**
- * Add a Kubernetes host to a Kubernetes Group.
+ * Add a Kubernetes host to a Kubernetes cluster.
*
* @param groupId
* @param kubernetesHost
* @throws org.apache.stratos.cloud.controller.exception.InvalidKubernetesHostException
*/
public boolean addKubernetesHost(String groupId, KubernetesHost kubernetesHost) throws
- InvalidKubernetesHostException, NonExistingKubernetesGroupException;
+ InvalidKubernetesHostException, NonExistingKubernetesClusterException;
/**
* Update a Kubernetes host.
@@ -285,9 +285,9 @@ public interface CloudControllerService {
* Remove a Kubernetes host.
*
* @param groupId
- * @throws NonExistingKubernetesGroupException
+ * @throws NonExistingKubernetesClusterException
*/
- public boolean removeKubernetesGroup(String groupId) throws NonExistingKubernetesGroupException;
+ public boolean removeKubernetesCluster(String groupId) throws NonExistingKubernetesClusterException;
/**
* Update a Kubernetes host.
@@ -298,7 +298,7 @@ public interface CloudControllerService {
public boolean removeKubernetesHost(String hostId) throws NonExistingKubernetesHostException;
/**
- * Update a Kubernetes Master in a Kubernetes Group.
+ * Update a Kubernetes Master in a Kubernetes cluster.
*
* @param kubernetesMaster
* @throws NonExistingKubernetesMasterException
http://git-wip-us.apache.org/repos/asf/stratos/blob/78e8011e/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 bc80291..8ec8595 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
@@ -38,9 +38,9 @@ import org.apache.stratos.cloud.controller.services.CloudControllerService;
import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
import org.apache.stratos.cloud.controller.util.CloudControllerUtil;
import org.apache.stratos.common.Property;
-import org.apache.stratos.common.kubernetes.KubernetesGroup;
-import org.apache.stratos.common.kubernetes.KubernetesHost;
-import org.apache.stratos.common.kubernetes.KubernetesMaster;
+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;
import org.apache.stratos.messaging.domain.topology.*;
import org.apache.stratos.messaging.event.topology.MemberReadyToShutdownEvent;
@@ -1076,52 +1076,52 @@ public class CloudControllerServiceImpl implements CloudControllerService {
}
@Override
- public KubernetesGroup[] getKubernetesGroups() {
- return CloudControllerContext.getInstance().getKubernetesGroups();
+ public KubernetesCluster[] getKubernetesClusters() {
+ return CloudControllerContext.getInstance().getKubernetesClusters();
}
@Override
- public KubernetesGroup getKubernetesGroup(String kubernetesGroupId) throws NonExistingKubernetesGroupException {
- return CloudControllerContext.getInstance().getKubernetesGroup(kubernetesGroupId);
+ public KubernetesCluster getKubernetesCluster(String kubernetesClusterId) throws NonExistingKubernetesClusterException {
+ return CloudControllerContext.getInstance().getKubernetesCluster(kubernetesClusterId);
}
@Override
- public KubernetesMaster getMasterForKubernetesGroup(String kubernetesGroupId) throws NonExistingKubernetesGroupException {
- return CloudControllerContext.getInstance().getKubernetesMasterInGroup(kubernetesGroupId);
+ public KubernetesMaster getMasterForKubernetesCluster(String kubernetesClusterId) throws NonExistingKubernetesClusterException {
+ return CloudControllerContext.getInstance().getKubernetesMasterInGroup(kubernetesClusterId);
}
@Override
- public KubernetesHost[] getHostsForKubernetesGroup(String kubernetesGroupId) throws NonExistingKubernetesGroupException {
- return CloudControllerContext.getInstance().getKubernetesHostsInGroup(kubernetesGroupId);
+ public KubernetesHost[] getHostsForKubernetesCluster(String kubernetesClusterId) throws NonExistingKubernetesClusterException {
+ return CloudControllerContext.getInstance().getKubernetesHostsInGroup(kubernetesClusterId);
}
@Override
- public boolean addKubernetesGroup(KubernetesGroup kubernetesGroup) throws InvalidKubernetesGroupException {
- if (kubernetesGroup == null) {
- throw new InvalidKubernetesGroupException("Kubernetes Group can not be null");
+ public boolean addKubernetesCluster(KubernetesCluster kubernetesCluster) throws InvalidKubernetesClusterException {
+ if (kubernetesCluster == null) {
+ throw new InvalidKubernetesClusterException("Kubernetes cluster can not be null");
}
Lock lock = null;
try {
- lock = CloudControllerContext.getInstance().acquireKubernetesGroupWriteLock();
+ lock = CloudControllerContext.getInstance().acquireKubernetesClusterWriteLock();
if (log.isInfoEnabled()) {
- log.info("Deploying new Kubernetes group: " + kubernetesGroup);
+ log.info("Deploying new Kubernetes cluster: " + kubernetesCluster);
}
- CloudControllerUtil.validateKubernetesGroup(kubernetesGroup);
+ CloudControllerUtil.validateKubernetesCluster(kubernetesCluster);
// Add to information model
- CloudControllerContext.getInstance().addKubernetesGroup(kubernetesGroup);
+ CloudControllerContext.getInstance().addKubernetesCluster(kubernetesCluster);
CloudControllerContext.getInstance().persist();
if (log.isInfoEnabled()) {
- log.info(String.format("Kubernetes group added successfully: [id] %s, [description] %s",
- kubernetesGroup.getGroupId(), kubernetesGroup.getDescription()));
+ log.info(String.format("Kubernetes cluster added successfully: [id] %s, [description] %s",
+ kubernetesCluster.getClusterId(), kubernetesCluster.getDescription()));
}
return true;
} catch (Exception e) {
- throw new InvalidKubernetesGroupException(e.getMessage(), e);
+ throw new InvalidKubernetesClusterException(e.getMessage(), e);
} finally {
if (lock != null) {
CloudControllerContext.getInstance().releaseWriteLock(lock);
@@ -1130,45 +1130,45 @@ public class CloudControllerServiceImpl implements CloudControllerService {
}
@Override
- public boolean addKubernetesHost(String kubernetesGroupId, KubernetesHost kubernetesHost) throws
- InvalidKubernetesHostException, NonExistingKubernetesGroupException {
+ public boolean addKubernetesHost(String kubernetesClusterId, KubernetesHost kubernetesHost) throws
+ InvalidKubernetesHostException, NonExistingKubernetesClusterException {
if (kubernetesHost == null) {
throw new InvalidKubernetesHostException("Kubernetes host can not be null");
}
- if (StringUtils.isEmpty(kubernetesGroupId)) {
- throw new NonExistingKubernetesGroupException("Kubernetes group id can not be null");
+ if (StringUtils.isEmpty(kubernetesClusterId)) {
+ throw new NonExistingKubernetesClusterException("Kubernetes cluster id can not be null");
}
Lock lock = null;
try {
- lock = CloudControllerContext.getInstance().acquireKubernetesGroupWriteLock();
+ lock = CloudControllerContext.getInstance().acquireKubernetesClusterWriteLock();
if (log.isInfoEnabled()) {
- log.info("Deploying new Kubernetes Host: " + kubernetesHost + " for Kubernetes group id: " + kubernetesGroupId);
+ log.info("Deploying new Kubernetes Host: " + kubernetesHost + " for Kubernetes cluster id: " + kubernetesClusterId);
}
CloudControllerUtil.validateKubernetesHost(kubernetesHost);
- KubernetesGroup kubernetesGroupStored = getKubernetesGroup(kubernetesGroupId);
+ KubernetesCluster kubernetesClusterStored = getKubernetesCluster(kubernetesClusterId);
ArrayList<KubernetesHost> kubernetesHostArrayList;
- if (kubernetesGroupStored.getKubernetesHosts() == null) {
+ if (kubernetesClusterStored.getKubernetesHosts() == null) {
kubernetesHostArrayList = new ArrayList<KubernetesHost>();
} else {
if (CloudControllerContext.getInstance().kubernetesHostExists(kubernetesHost.getHostId())) {
throw new InvalidKubernetesHostException("Kubernetes host already exists: [id] " + kubernetesHost.getHostId());
}
kubernetesHostArrayList = new
- ArrayList<KubernetesHost>(Arrays.asList(kubernetesGroupStored.getKubernetesHosts()));
+ ArrayList<KubernetesHost>(Arrays.asList(kubernetesClusterStored.getKubernetesHosts()));
}
kubernetesHostArrayList.add(kubernetesHost);
// Update information model
- kubernetesGroupStored.setKubernetesHosts(kubernetesHostArrayList.toArray(new KubernetesHost[kubernetesHostArrayList.size()]));
- CloudControllerContext.getInstance().updateKubernetesGroup(kubernetesGroupStored);
+ kubernetesClusterStored.setKubernetesHosts(kubernetesHostArrayList.toArray(new KubernetesHost[kubernetesHostArrayList.size()]));
+ CloudControllerContext.getInstance().updateKubernetesCluster(kubernetesClusterStored);
CloudControllerContext.getInstance().persist();
if (log.isInfoEnabled()) {
- log.info(String.format("Kubernetes host added successfully: [id] %s", kubernetesGroupStored.getGroupId()));
+ log.info(String.format("Kubernetes host added successfully: [id] %s", kubernetesClusterStored.getClusterId()));
}
return true;
@@ -1182,31 +1182,31 @@ public class CloudControllerServiceImpl implements CloudControllerService {
}
@Override
- public boolean removeKubernetesGroup(String kubernetesGroupId) throws NonExistingKubernetesGroupException {
- if (StringUtils.isEmpty(kubernetesGroupId)) {
- throw new NonExistingKubernetesGroupException("Kubernetes group id can not be empty");
+ public boolean removeKubernetesCluster(String kubernetesClusterId) throws NonExistingKubernetesClusterException {
+ if (StringUtils.isEmpty(kubernetesClusterId)) {
+ throw new NonExistingKubernetesClusterException("Kubernetes cluster id can not be empty");
}
Lock lock = null;
try {
- lock = CloudControllerContext.getInstance().acquireKubernetesGroupWriteLock();
+ lock = CloudControllerContext.getInstance().acquireKubernetesClusterWriteLock();
if (log.isInfoEnabled()) {
- log.info("Removing Kubernetes group: " + kubernetesGroupId);
+ log.info("Removing Kubernetes cluster: " + kubernetesClusterId);
}
try {
// Remove entry from information model
- CloudControllerContext.getInstance().removeKubernetesGroup(kubernetesGroupId);
+ CloudControllerContext.getInstance().removeKubernetesCluster(kubernetesClusterId);
if (log.isInfoEnabled()) {
- log.info(String.format("Kubernetes group removed successfully: [id] %s", kubernetesGroupId));
+ log.info(String.format("Kubernetes cluster removed successfully: [id] %s", kubernetesClusterId));
}
CloudControllerContext.getInstance().persist();
return true;
} catch (Exception e) {
- throw new NonExistingKubernetesGroupException(e.getMessage(), e);
+ throw new NonExistingKubernetesClusterException(e.getMessage(), e);
}
} finally {
if (lock != null) {
@@ -1223,34 +1223,34 @@ public class CloudControllerServiceImpl implements CloudControllerService {
Lock lock = null;
try {
- lock = CloudControllerContext.getInstance().acquireKubernetesGroupWriteLock();
+ lock = CloudControllerContext.getInstance().acquireKubernetesClusterWriteLock();
if (log.isInfoEnabled()) {
log.info("Removing Kubernetes Host: " + kubernetesHostId);
}
try {
- KubernetesGroup kubernetesGroupStored = CloudControllerContext.getInstance().getKubernetesGroupContainingHost(kubernetesHostId);
+ KubernetesCluster kubernetesClusterStored = CloudControllerContext.getInstance().getKubernetesClusterContainingHost(kubernetesHostId);
// Kubernetes master can not be removed
- if (kubernetesGroupStored.getKubernetesMaster().getHostId().equals(kubernetesHostId)) {
+ if (kubernetesClusterStored.getKubernetesMaster().getHostId().equals(kubernetesHostId)) {
throw new NonExistingKubernetesHostException("Kubernetes master is not allowed to be removed [id] " + kubernetesHostId);
}
List<KubernetesHost> kubernetesHostList = new ArrayList<KubernetesHost>();
- for (KubernetesHost kubernetesHost : kubernetesGroupStored.getKubernetesHosts()) {
+ for (KubernetesHost kubernetesHost : kubernetesClusterStored.getKubernetesHosts()) {
if (!kubernetesHost.getHostId().equals(kubernetesHostId)) {
kubernetesHostList.add(kubernetesHost);
}
}
// member count will be equal only when host object was not found
- if (kubernetesHostList.size() == kubernetesGroupStored.getKubernetesHosts().length) {
+ if (kubernetesHostList.size() == kubernetesClusterStored.getKubernetesHosts().length) {
throw new NonExistingKubernetesHostException("Kubernetes host not found for [id] " + kubernetesHostId);
}
KubernetesHost[] kubernetesHostsArray = new KubernetesHost[kubernetesHostList.size()];
kubernetesHostList.toArray(kubernetesHostsArray);
// Update information model
- kubernetesGroupStored.setKubernetesHosts(kubernetesHostsArray);
+ kubernetesClusterStored.setKubernetesHosts(kubernetesHostsArray);
if (log.isInfoEnabled()) {
log.info(String.format("Kubernetes host removed successfully: [id] %s", kubernetesHostId));
@@ -1274,16 +1274,16 @@ public class CloudControllerServiceImpl implements CloudControllerService {
throws InvalidKubernetesMasterException, NonExistingKubernetesMasterException {
Lock lock = null;
try {
- lock = CloudControllerContext.getInstance().acquireKubernetesGroupWriteLock();
+ lock = CloudControllerContext.getInstance().acquireKubernetesClusterWriteLock();
CloudControllerUtil.validateKubernetesMaster(kubernetesMaster);
if (log.isInfoEnabled()) {
log.info("Updating Kubernetes master: " + kubernetesMaster);
}
try {
- KubernetesGroup kubernetesGroupStored = CloudControllerContext.getInstance().getKubernetesGroupContainingHost(kubernetesMaster.getHostId());
+ KubernetesCluster kubernetesClusterStored = CloudControllerContext.getInstance().getKubernetesClusterContainingHost(kubernetesMaster.getHostId());
// Update information model
- kubernetesGroupStored.setKubernetesMaster(kubernetesMaster);
+ kubernetesClusterStored.setKubernetesMaster(kubernetesMaster);
CloudControllerContext.getInstance().persist();
@@ -1308,24 +1308,24 @@ public class CloudControllerServiceImpl implements CloudControllerService {
Lock lock = null;
try {
- lock = CloudControllerContext.getInstance().acquireKubernetesGroupWriteLock();
+ lock = CloudControllerContext.getInstance().acquireKubernetesClusterWriteLock();
CloudControllerUtil.validateKubernetesHost(kubernetesHost);
if (log.isInfoEnabled()) {
log.info("Updating Kubernetes Host: " + kubernetesHost);
}
try {
- KubernetesGroup kubernetesGroupStored = CloudControllerContext.getInstance().getKubernetesGroupContainingHost(kubernetesHost.getHostId());
- for (int i = 0; i < kubernetesGroupStored.getKubernetesHosts().length; i++) {
- if (kubernetesGroupStored.getKubernetesHosts()[i].getHostId().equals(kubernetesHost.getHostId())) {
+ KubernetesCluster kubernetesClusterStored = CloudControllerContext.getInstance().getKubernetesClusterContainingHost(kubernetesHost.getHostId());
+ for (int i = 0; i < kubernetesClusterStored.getKubernetesHosts().length; i++) {
+ if (kubernetesClusterStored.getKubernetesHosts()[i].getHostId().equals(kubernetesHost.getHostId())) {
// Update the information model
- kubernetesGroupStored.getKubernetesHosts()[i] = kubernetesHost;
+ kubernetesClusterStored.getKubernetesHosts()[i] = kubernetesHost;
if (log.isInfoEnabled()) {
log.info(String.format("Kubernetes host updated successfully: [id] %s", kubernetesHost.getHostId()));
}
- CloudControllerContext.getInstance().updateKubernetesGroup(kubernetesGroupStored);
+ CloudControllerContext.getInstance().updateKubernetesCluster(kubernetesClusterStored);
CloudControllerContext.getInstance().persist();
return true;
}