You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ni...@apache.org on 2014/12/02 15:12:51 UTC
[2/3] stratos git commit: Moving Kubernetes Host registration to CC.
Moving Kubernetes Host registration to CC.
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/98244f78
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/98244f78
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/98244f78
Branch: refs/heads/master
Commit: 98244f78717fb3502653f0ea5963beb75bbfdcff
Parents: e20df6f
Author: Nirmal Fernando <ni...@gmail.com>
Authored: Tue Dec 2 19:35:31 2014 +0530
Committer: Nirmal Fernando <ni...@gmail.com>
Committed: Tue Dec 2 19:39:19 2014 +0530
----------------------------------------------------------------------
.../context/CloudControllerContext.java | 156 ++++
.../InvalidKubernetesGroupException.java | 49 ++
.../InvalidKubernetesHostException.java | 49 ++
.../InvalidKubernetesMasterException.java | 27 +
.../KubernetesEndpointValidationException.java | 52 ++
.../NonExistingKubernetesGroupException.java | 49 ++
.../NonExistingKubernetesHostException.java | 48 ++
.../NonExistingKubernetesMasterException.java | 48 ++
.../services/CloudControllerService.java | 82 +-
.../impl/CloudControllerServiceImpl.java | 218 +++++
.../util/CloudControllerConstants.java | 6 +
.../controller/util/CloudControllerUtil.java | 112 +++
.../org/apache/stratos/common/Properties.java | 49 +-
.../common/kubernetes/KubernetesGroup.java | 1 +
.../common/kubernetes/KubernetesHost.java | 1 +
.../common/kubernetes/KubernetesMaster.java | 2 +
.../stratos/common/kubernetes/PortRange.java | 1 +
.../client/CloudControllerServiceClient.java | 58 +-
.../rest/endpoint/api/StratosApiV41Utils.java | 99 ++-
.../bean/util/converter/PojoConverter.java | 79 +-
.../pom.xml | 3 +-
.../main/resources/CloudControllerService.wsdl | 860 +++++++++++++++++--
22 files changed, 1887 insertions(+), 162 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/98244f78/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 eeee5d5..2a7dafb 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
@@ -20,10 +20,15 @@ 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.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.*;
+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;
@@ -31,8 +36,12 @@ import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
import org.wso2.carbon.databridge.agent.thrift.AsyncDataPublisher;
import org.wso2.carbon.registry.core.exceptions.RegistryException;
+import com.google.common.net.InetAddresses;
+
import java.io.Serializable;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -49,6 +58,7 @@ public class CloudControllerContext implements Serializable {
private static final long serialVersionUID = -2662307358852779897L;
private static final Log log = LogFactory.getLog(CloudControllerContext.class);
+ public static final String KUB_GROUP_ID_TO_GROUP_MAP = "KUB_GROUP_ID_TO_GROUP_MAP";
public static final String CC_CLUSTER_ID_TO_MEMBER_CTX = "CC_CLUSTER_ID_TO_MEMBER_CTX";
public static final String CC_MEMBER_ID_TO_MEMBER_CTX = "CC_MEMBER_ID_TO_MEMBER_CTX";
public static final String CC_MEMBER_ID_TO_SCH_TASK = "CC_MEMBER_ID_TO_SCH_TASK";
@@ -63,6 +73,13 @@ public class CloudControllerContext implements Serializable {
private final DistributedObjectProvider distributedObjectProvider;
/* We keep following maps in order to make the look up time, small. */
+
+ /**
+ * KubernetesGroups against groupIds
+ * Key - Kubernetes group id
+ * Value - {@link KubernetesGroup}
+ */
+ private Map<String, KubernetesGroup> kubernetesGroupsMap;
/**
* Key - cluster id
@@ -134,6 +151,7 @@ public class CloudControllerContext implements Serializable {
distributedObjectProvider = ServiceReferenceHolder.getInstance().getDistributedObjectProvider();
// Initialize objects
+ kubernetesGroupsMap = distributedObjectProvider.getMap(KUB_GROUP_ID_TO_GROUP_MAP);
clusterIdToMemberContextListMap = distributedObjectProvider.getMap(CC_CLUSTER_ID_TO_MEMBER_CTX);
memberIdToMemberContextMap = distributedObjectProvider.getMap(CC_MEMBER_ID_TO_MEMBER_CTX);
memberIdToScheduledTaskMap = distributedObjectProvider.getMap(CC_MEMBER_ID_TO_SCH_TASK);
@@ -364,6 +382,143 @@ public class CloudControllerContext implements Serializable {
kubernetesClusterContext.getKubernetesClusterId(),
kubernetesClusterContext);
}
+
+ /**
+ * Remove a registered Kubernetes group from registry
+ */
+ public synchronized void removeKubernetesGroup(String kubernetesGroupId) {
+ // Remove entry from information model
+ distributedObjectProvider.removeFromMap(kubernetesGroupsMap, kubernetesGroupId);
+ }
+
+ /**
+ * Remove a registered Kubernetes host from registry
+ */
+ public synchronized boolean removeKubernetesHost(String kubernetesHostId) throws NonExistingKubernetesHostException {
+ if (kubernetesHostId == null) {
+ throw new NonExistingKubernetesHostException("Kubernetes host id can not be null");
+ }
+ if (log.isInfoEnabled()) {
+ log.info("Removing Kubernetes Host: " + kubernetesHostId);
+ }
+ try {
+ KubernetesGroup kubernetesGroupStored = getKubernetesGroupContainingHost(kubernetesHostId);
+
+ // Kubernetes master can not be removed
+ if (kubernetesGroupStored.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()) {
+ 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) {
+ 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);
+
+ if (log.isInfoEnabled()) {
+ log.info(String.format("Kubernetes host removed successfully: [id] %s", kubernetesHostId));
+ }
+
+ return true;
+ } catch (Exception e) {
+ throw new NonExistingKubernetesHostException(e.getMessage(), e);
+ }
+ }
+
+ public void addKubernetesGroupToInformationModel(KubernetesGroup kubernetesGroup) {
+ distributedObjectProvider.putToMap(kubernetesGroupsMap, kubernetesGroup.getGroupId(), kubernetesGroup);
+ }
+
+ public boolean kubernetesGroupExists(KubernetesGroup kubernetesGroup) {
+ return kubernetesGroupsMap.containsKey(kubernetesGroup);
+ }
+
+ 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()) {
+ if (kubernetesHost.getHostId().equals(hostId)) {
+ return true;
+ }
+ }
+ }
+ if (hostId.equals(kubernetesGroup.getKubernetesMaster().getHostId())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+
+ public KubernetesHost[] getKubernetesHostsInGroup(String kubernetesGroupId) throws NonExistingKubernetesGroupException {
+ if (StringUtils.isEmpty(kubernetesGroupId)) {
+ throw new NonExistingKubernetesGroupException("Cannot find for empty group id");
+ }
+
+ KubernetesGroup kubernetesGroup = kubernetesGroupsMap.get(kubernetesGroupId);
+ if (kubernetesGroup != null) {
+ return kubernetesGroup.getKubernetesHosts();
+ }
+ throw new NonExistingKubernetesGroupException("Kubernetes group not found for group id: " + kubernetesGroupId);
+ }
+
+ public KubernetesMaster getKubernetesMasterInGroup(String kubernetesGroupId) throws NonExistingKubernetesGroupException {
+ if (StringUtils.isEmpty(kubernetesGroupId)) {
+ throw new NonExistingKubernetesGroupException("Cannot find for empty group id");
+ }
+ KubernetesGroup kubernetesGroup = kubernetesGroupsMap.get(kubernetesGroupId);
+ if (kubernetesGroup != null) {
+ return kubernetesGroup.getKubernetesMaster();
+ }
+ throw new NonExistingKubernetesGroupException("Kubernetes master not found for group id: " + kubernetesGroupId);
+ }
+
+ public KubernetesGroup getKubernetesGroup(String groupId) throws NonExistingKubernetesGroupException {
+ if (StringUtils.isEmpty(groupId)) {
+ throw new NonExistingKubernetesGroupException("Cannot find for empty group id");
+ }
+ KubernetesGroup kubernetesGroup = kubernetesGroupsMap.get(groupId);
+ if (kubernetesGroup != null) {
+ return kubernetesGroup;
+ }
+ throw new NonExistingKubernetesGroupException("Kubernetes group not found for id: " + groupId);
+ }
+
+ public KubernetesGroup getKubernetesGroupContainingHost(String hostId) throws NonExistingKubernetesGroupException {
+ if (StringUtils.isEmpty(hostId)) {
+ return null;
+ }
+ for (KubernetesGroup kubernetesGroup : kubernetesGroupsMap.values()) {
+ if (hostId.equals(kubernetesGroup.getKubernetesMaster().getHostId())) {
+ return kubernetesGroup;
+ }
+ if (kubernetesGroup.getKubernetesHosts() != null) {
+ for (KubernetesHost kubernetesHost : kubernetesGroup.getKubernetesHosts()) {
+ if (kubernetesHost.getHostId().equals(hostId)) {
+ return kubernetesGroup;
+ }
+ }
+ }
+ }
+ throw new NonExistingKubernetesGroupException("Kubernetes group not found containing host id: " + hostId);
+ }
+
+ public KubernetesGroup[] getKubernetesGroups() {
+ return kubernetesGroupsMap.values().toArray(new KubernetesGroup[kubernetesGroupsMap.size()]);
+ }
public boolean isClustered() {
return clustered;
@@ -390,6 +545,7 @@ public class CloudControllerContext implements Serializable {
if (dataObj instanceof CloudControllerContext) {
CloudControllerContext serializedObj = (CloudControllerContext) dataObj;
+ copyMap(kubernetesGroupsMap, serializedObj.kubernetesGroupsMap);
copyMap(clusterIdToMemberContextListMap, serializedObj.clusterIdToMemberContextListMap);
copyMap(memberIdToMemberContextMap, serializedObj.memberIdToMemberContextMap);
copyMap(memberIdToScheduledTaskMap, serializedObj.memberIdToScheduledTaskMap);
http://git-wip-us.apache.org/repos/asf/stratos/blob/98244f78/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
new file mode 100644
index 0000000..db5fb30
--- /dev/null
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/InvalidKubernetesGroupException.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 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/98244f78/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/InvalidKubernetesHostException.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/InvalidKubernetesHostException.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/InvalidKubernetesHostException.java
new file mode 100644
index 0000000..0aa789e
--- /dev/null
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/InvalidKubernetesHostException.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 Host
+ */
+public class InvalidKubernetesHostException extends Exception {
+
+ private String message;
+
+ public InvalidKubernetesHostException(String message, Exception exception){
+ super(message, exception);
+ this.message = message;
+ }
+
+ public InvalidKubernetesHostException(Exception exception){
+ super(exception);
+ }
+
+ public InvalidKubernetesHostException(String msg){
+ super(msg);
+ this.message = msg;
+ }
+
+ @Override
+ public String getMessage() {
+ return this.message;
+ }
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/98244f78/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/InvalidKubernetesMasterException.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/InvalidKubernetesMasterException.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/InvalidKubernetesMasterException.java
new file mode 100644
index 0000000..da52e9a
--- /dev/null
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/InvalidKubernetesMasterException.java
@@ -0,0 +1,27 @@
+package org.apache.stratos.cloud.controller.exception;
+
+/**
+ * Exception class for handling invalid Kubernetes Master
+ */
+public class InvalidKubernetesMasterException extends Exception {
+ private String message;
+
+ public InvalidKubernetesMasterException(String message, Exception exception){
+ super(message, exception);
+ this.message = message;
+ }
+
+ public InvalidKubernetesMasterException(Exception exception){
+ super(exception);
+ }
+
+ public InvalidKubernetesMasterException(String msg){
+ super(msg);
+ this.message = msg;
+ }
+
+ @Override
+ public String getMessage() {
+ return this.message;
+ }
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/98244f78/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/KubernetesEndpointValidationException.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/KubernetesEndpointValidationException.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/KubernetesEndpointValidationException.java
new file mode 100644
index 0000000..8394a62
--- /dev/null
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/KubernetesEndpointValidationException.java
@@ -0,0 +1,52 @@
+/*
+ *
+ * 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 Kubernetes endpoint validation
+ */
+public class KubernetesEndpointValidationException extends Exception {
+ private String message;
+
+ public KubernetesEndpointValidationException(String message, Exception exception){
+ super(message, exception);
+ this.setMessage(message);
+ }
+
+ public KubernetesEndpointValidationException(String msg) {
+ super(msg);
+ this.message = msg;
+ }
+ public KubernetesEndpointValidationException(Exception exception){
+ super(exception);
+ }
+
+
+ public String getMessage() {
+ return message;
+ }
+
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/98244f78/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
new file mode 100644
index 0000000..ba48fbe
--- /dev/null
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/NonExistingKubernetesGroupException.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 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/98244f78/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/NonExistingKubernetesHostException.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/NonExistingKubernetesHostException.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/NonExistingKubernetesHostException.java
new file mode 100644
index 0000000..afae051
--- /dev/null
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/NonExistingKubernetesHostException.java
@@ -0,0 +1,48 @@
+/*
+ *
+ * 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 Host
+ */
+public class NonExistingKubernetesHostException extends Exception {
+ private String message;
+
+ public NonExistingKubernetesHostException(String message, Exception exception){
+ super(message, exception);
+ this.message = message;
+ }
+
+ public NonExistingKubernetesHostException(Exception exception){
+ super(exception);
+ }
+
+ public NonExistingKubernetesHostException(String msg){
+ super(msg);
+ this.message = msg;
+ }
+
+ @Override
+ public String getMessage() {
+ return this.message;
+ }
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/98244f78/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/NonExistingKubernetesMasterException.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/NonExistingKubernetesMasterException.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/NonExistingKubernetesMasterException.java
new file mode 100644
index 0000000..8eb50c1
--- /dev/null
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/exception/NonExistingKubernetesMasterException.java
@@ -0,0 +1,48 @@
+/*
+ *
+ * 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 Master
+ */
+public class NonExistingKubernetesMasterException extends Exception {
+ private String message;
+
+ public NonExistingKubernetesMasterException(String message, Exception exception){
+ super(message, exception);
+ this.message = message;
+ }
+
+ public NonExistingKubernetesMasterException(Exception exception){
+ super(exception);
+ }
+
+ public NonExistingKubernetesMasterException(String msg){
+ super(msg);
+ this.message = msg;
+ }
+
+ @Override
+ public String getMessage() {
+ return this.message;
+ }
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/98244f78/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 487abfd..87e8913 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
@@ -19,8 +19,10 @@
package org.apache.stratos.cloud.controller.services;
import org.apache.stratos.cloud.controller.domain.*;
-import org.apache.stratos.cloud.controller.domain.Partition;
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.messaging.domain.topology.ClusterStatus;
/**
@@ -228,4 +230,82 @@ public interface CloudControllerService {
*/
public void createClusterInstance (String serviceType, String clusterId, String alias, String instanceId) throws
ClusterInstanceCreationException;
+
+ /**
+ * Retrieves registered Kubernetes Groups.
+ */
+ public KubernetesGroup[] getAllKubernetesGroups();
+
+ /**
+ * Retrieves Kubernetes Group for given Kubernetes Group ID.
+ *
+ * @param kubernetesGroupId
+ */
+ public KubernetesGroup getKubernetesGroup(String kubernetesGroupId) throws NonExistingKubernetesGroupException;
+
+ /**
+ * Retrieves Kubernetes Master for given Kubernetes Group ID.
+ *
+ * @param kubernetesGroupId
+ */
+ public KubernetesMaster getMasterForKubernetesGroup(String kubernetesGroupId) throws NonExistingKubernetesGroupException;
+
+ /**
+ * Retrieves Kubernetes Hosts for given Kubernetes Group ID.
+ *
+ * @param kubernetesGroupId
+ */
+ public KubernetesHost[] getHostsForKubernetesGroup(String kubernetesGroupId) throws NonExistingKubernetesGroupException;
+
+ /**
+ * Register a Kubernetes cluster.
+ *
+ * @param kubernetesGroup
+ * @throws org.apache.stratos.autoscaler.exception.kubernetes.InvalidKubernetesGroupException
+ */
+ public boolean addKubernetesGroup(KubernetesGroup kubernetesGroup) throws InvalidKubernetesGroupException;
+
+ /**
+ * Add a Kubernetes host to a Kubernetes Group.
+ *
+ * @param groupId
+ * @param kubernetesHost
+ * @throws org.apache.stratos.autoscaler.exception.kubernetes.InvalidKubernetesHostException
+ */
+ public boolean addKubernetesHost(String groupId, KubernetesHost kubernetesHost) throws
+ InvalidKubernetesHostException, NonExistingKubernetesGroupException;
+
+ /**
+ * Update a Kubernetes host.
+ *
+ * @param kubernetesHost
+ * @throws InvalidKubernetesHostException
+ */
+ public boolean updateKubernetesHost(KubernetesHost kubernetesHost) throws
+ InvalidKubernetesHostException, NonExistingKubernetesHostException;
+
+ /**
+ * Remove a Kubernetes host.
+ *
+ * @param groupId
+ * @throws NonExistingKubernetesGroupException
+ */
+ public boolean removeKubernetesGroup(String groupId) throws NonExistingKubernetesGroupException;
+
+ /**
+ * Update a Kubernetes host.
+ *
+ * @param hostId
+ * @throws InvalidKubernetesHostException
+ */
+ public boolean removeKubernetesHost(String hostId) throws NonExistingKubernetesHostException;
+
+ /**
+ * Update a Kubernetes Master in a Kubernetes Group.
+ *
+ * @param kubernetesMaster
+ * @throws NonExistingKubernetesMasterException
+ */
+ public boolean updateKubernetesMaster(KubernetesMaster kubernetesMaster)
+ throws InvalidKubernetesMasterException, NonExistingKubernetesMasterException;
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/98244f78/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 f165a00..53f28fa 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
@@ -49,6 +49,9 @@ import org.apache.stratos.cloud.controller.iaases.Iaas;
import org.apache.stratos.cloud.controller.iaases.validators.PartitionValidator;
import org.apache.stratos.common.*;
import org.apache.stratos.common.constants.StratosConstants;
+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.kubernetes.client.KubernetesApiClient;
import org.apache.stratos.kubernetes.client.exceptions.KubernetesClientException;
import org.apache.stratos.kubernetes.client.model.Label;
@@ -2049,6 +2052,221 @@ public class CloudControllerServiceImpl implements CloudControllerService {
persist();
}
+
+ @Override
+ public KubernetesGroup[] getAllKubernetesGroups() {
+ return cloudControllerContext.getKubernetesGroups();
+ }
+
+ @Override
+ public KubernetesGroup getKubernetesGroup(String kubernetesGroupId) throws NonExistingKubernetesGroupException {
+ return cloudControllerContext.getKubernetesGroup(kubernetesGroupId);
+ }
+
+ @Override
+ public KubernetesMaster getMasterForKubernetesGroup(String kubernetesGroupId) throws NonExistingKubernetesGroupException {
+ return cloudControllerContext.getKubernetesMasterInGroup(kubernetesGroupId);
+ }
+
+ @Override
+ public KubernetesHost[] getHostsForKubernetesGroup(String kubernetesGroupId) throws NonExistingKubernetesGroupException {
+ return cloudControllerContext.getKubernetesHostsInGroup(kubernetesGroupId);
+ }
+
+
+ @Override
+ public boolean addKubernetesGroup(KubernetesGroup kubernetesGroup) throws InvalidKubernetesGroupException {
+ if (kubernetesGroup == null) {
+ throw new InvalidKubernetesGroupException("Kubernetes Group can not be null");
+ }
+ if (LOG.isInfoEnabled()) {
+ LOG.info("Deploying new Kubernetes group: " + kubernetesGroup);
+ }
+ CloudControllerUtil.validateKubernetesGroup(kubernetesGroup);
+ try {
+ // Add to information model
+ cloudControllerContext.addKubernetesGroupToInformationModel(kubernetesGroup);
+
+ persist();
+
+ if (LOG.isInfoEnabled()) {
+ LOG.info(String.format("Kubernetes group deployed successfully: [id] %s, [description] %s",
+ kubernetesGroup.getGroupId(), kubernetesGroup.getDescription()));
+ }
+
+ return true;
+ } catch (Exception e) {
+ throw new InvalidKubernetesGroupException(e.getMessage(), e);
+ }
+ }
+
+ @Override
+ public boolean addKubernetesHost(String kubernetesGroupId, KubernetesHost kubernetesHost) throws
+ InvalidKubernetesHostException, NonExistingKubernetesGroupException {
+ 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 (LOG.isInfoEnabled()) {
+ LOG.info("Deploying new Kubernetes Host: " + kubernetesHost + " for Kubernetes group id: " + kubernetesGroupId);
+ }
+ CloudControllerUtil.validateKubernetesHost(kubernetesHost);
+ try {
+ KubernetesGroup kubernetesGroupStored = getKubernetesGroup(kubernetesGroupId);
+ ArrayList<KubernetesHost> kubernetesHostArrayList;
+
+ if (kubernetesGroupStored.getKubernetesHosts() == null) {
+ kubernetesHostArrayList = new ArrayList<KubernetesHost>();
+ } else {
+ if (cloudControllerContext.kubernetesHostExists(kubernetesHost.getHostId())) {
+ throw new InvalidKubernetesHostException("Kubernetes host already exists: [id] " + kubernetesHost.getHostId());
+ }
+ kubernetesHostArrayList = new
+ ArrayList<KubernetesHost>(Arrays.asList(kubernetesGroupStored.getKubernetesHosts()));
+ }
+ kubernetesHostArrayList.add(kubernetesHost);
+
+ // Update information model
+ kubernetesGroupStored.setKubernetesHosts(kubernetesHostArrayList.toArray(new KubernetesHost[kubernetesHostArrayList.size()]));
+
+ persist();
+
+ if (LOG.isInfoEnabled()) {
+ LOG.info(String.format("Kubernetes host deployed successfully: [id] %s", kubernetesGroupStored.getGroupId()));
+ }
+
+ return true;
+ } catch (Exception e) {
+ throw new InvalidKubernetesHostException(e.getMessage(), e);
+ }
+ }
+
+ @Override
+ public boolean removeKubernetesGroup(String kubernetesGroupId) throws NonExistingKubernetesGroupException {
+ if (StringUtils.isEmpty(kubernetesGroupId)) {
+ throw new NonExistingKubernetesGroupException("Kubernetes group id can not be empty");
+ }
+ if (LOG.isInfoEnabled()) {
+ LOG.info("Removing Kubernetes group: " + kubernetesGroupId);
+ }
+ try {
+ // Remove entry from information model
+ cloudControllerContext.removeKubernetesGroup(kubernetesGroupId);
+
+ if (LOG.isInfoEnabled()) {
+ LOG.info(String.format("Kubernetes group removed successfully: [id] %s", kubernetesGroupId));
+ }
+
+ persist();
+
+ return true;
+ } catch (Exception e) {
+ throw new NonExistingKubernetesGroupException(e.getMessage(), e);
+ }
+ }
+
+ @Override
+ public boolean removeKubernetesHost(String kubernetesHostId) throws NonExistingKubernetesHostException {
+ if (kubernetesHostId == null) {
+ throw new NonExistingKubernetesHostException("Kubernetes host id can not be null");
+ }
+ if (LOG.isInfoEnabled()) {
+ LOG.info("Removing Kubernetes Host: " + kubernetesHostId);
+ }
+ try {
+ KubernetesGroup kubernetesGroupStored = cloudControllerContext.getKubernetesGroupContainingHost(kubernetesHostId);
+
+ // Kubernetes master can not be removed
+ if (kubernetesGroupStored.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()) {
+ 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) {
+ 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);
+
+ if (LOG.isInfoEnabled()) {
+ LOG.info(String.format("Kubernetes host removed successfully: [id] %s", kubernetesHostId));
+ }
+
+ persist();
+
+ return true;
+ } catch (Exception e) {
+ throw new NonExistingKubernetesHostException(e.getMessage(), e);
+ }
+ }
+
+ @Override
+ public boolean updateKubernetesMaster(KubernetesMaster kubernetesMaster)
+ throws InvalidKubernetesMasterException, NonExistingKubernetesMasterException {
+ CloudControllerUtil.validateKubernetesMaster(kubernetesMaster);
+ if (LOG.isInfoEnabled()) {
+ LOG.info("Updating Kubernetes master: " + kubernetesMaster);
+ }
+ try {
+ KubernetesGroup kubernetesGroupStored = cloudControllerContext.getKubernetesGroupContainingHost(kubernetesMaster.getHostId());
+
+ // Update information model
+ kubernetesGroupStored.setKubernetesMaster(kubernetesMaster);
+
+ persist();
+
+ if (LOG.isInfoEnabled()) {
+ LOG.info(String.format("Kubernetes master updated successfully: [id] %s", kubernetesMaster.getHostId()));
+ }
+
+ return true;
+ } catch (Exception e) {
+ throw new InvalidKubernetesMasterException(e.getMessage(), e);
+ }
+ }
+
+ @Override
+ public boolean updateKubernetesHost(KubernetesHost kubernetesHost) throws
+ InvalidKubernetesHostException, NonExistingKubernetesHostException {
+ CloudControllerUtil.validateKubernetesHost(kubernetesHost);
+ if (LOG.isInfoEnabled()) {
+ LOG.info("Updating Kubernetes Host: " + kubernetesHost);
+ }
+
+ try {
+ KubernetesGroup kubernetesGroupStored = cloudControllerContext.getKubernetesGroupContainingHost(kubernetesHost.getHostId());
+
+ for (int i = 0; i < kubernetesGroupStored.getKubernetesHosts().length; i++) {
+ if (kubernetesGroupStored.getKubernetesHosts()[i].getHostId().equals(kubernetesHost.getHostId())) {
+
+ // Update the information model
+ kubernetesGroupStored.getKubernetesHosts()[i] = kubernetesHost;
+
+ if (LOG.isInfoEnabled()) {
+ LOG.info(String.format("Kubernetes host updated successfully: [id] %s", kubernetesHost.getHostId()));
+ }
+
+ persist();
+
+ return true;
+ }
+ }
+ } catch (Exception e) {
+ throw new InvalidKubernetesHostException(e.getMessage(), e);
+ }
+ throw new NonExistingKubernetesHostException("Kubernetes host not found [id] " + kubernetesHost.getHostId());
+ }
// public void deployApplicationDefinition (ApplicationContext applicationContext) throws ApplicationDefinitionException {
//
http://git-wip-us.apache.org/repos/asf/stratos/blob/98244f78/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java
index ffebdf8..8e5e4d5 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java
@@ -285,4 +285,10 @@ public final class CloudControllerConstants {
public static final String NETWORK_IDS= "networkIds";
public static final String IS_LOAD_BALANCER = "load.balancer";
+
+ /**
+ * PortRange min max
+ */
+ public static final int PORT_RANGE_MAX = 65535;
+ public static final int PORT_RANGE_MIN = 1;
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/98244f78/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 89131e3..e6c8d6f 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
@@ -18,6 +18,7 @@
*/
package org.apache.stratos.cloud.controller.util;
+import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -26,13 +27,21 @@ import org.apache.stratos.cloud.controller.context.CloudControllerContext;
import org.apache.stratos.cloud.controller.domain.*;
import org.apache.stratos.cloud.controller.exception.CloudControllerException;
import org.apache.stratos.cloud.controller.exception.InvalidIaasProviderException;
+import org.apache.stratos.cloud.controller.exception.InvalidKubernetesGroupException;
+import org.apache.stratos.cloud.controller.exception.InvalidKubernetesHostException;
+import org.apache.stratos.cloud.controller.exception.InvalidKubernetesMasterException;
import org.apache.stratos.cloud.controller.iaases.Iaas;
import org.apache.stratos.cloud.controller.registry.Deserializer;
import org.apache.stratos.cloud.controller.registry.RegistryManager;
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.messaging.domain.topology.Topology;
import org.wso2.carbon.registry.core.exceptions.RegistryException;
+import com.google.common.net.InetAddresses;
+
import java.lang.reflect.Constructor;
import java.util.Arrays;
import java.util.ArrayList;
@@ -395,4 +404,107 @@ public class CloudControllerUtil {
}
return clusterId;
}
+
+ public static void validateKubernetesGroup(KubernetesGroup kubernetesGroup) throws InvalidKubernetesGroupException {
+ CloudControllerContext context = CloudControllerContext.getInstance();
+
+ if (kubernetesGroup == null) {
+ throw new InvalidKubernetesGroupException("Kubernetes group can not be null");
+ }
+ if (StringUtils.isEmpty(kubernetesGroup.getGroupId())) {
+ throw new InvalidKubernetesGroupException("Kubernetes group groupId can not be empty");
+ }
+ if (context.kubernetesGroupExists(kubernetesGroup)) {
+ throw new InvalidKubernetesGroupException(String.format("Kubernetes group already exists " +
+ "[id] %s", kubernetesGroup.getGroupId()));
+ }
+ if (kubernetesGroup.getKubernetesMaster() == null) {
+ throw new InvalidKubernetesGroupException("Mandatory field master has not been set " +
+ "for the Kubernetes group [id] " + kubernetesGroup.getGroupId());
+ }
+ if (kubernetesGroup.getPortRange() == null) {
+ throw new InvalidKubernetesGroupException("Mandatory field portRange has not been set " +
+ "for the Kubernetes group [id] " + kubernetesGroup.getGroupId());
+ }
+
+ // Port range validation
+ if (kubernetesGroup.getPortRange().getUpper() > CloudControllerConstants.PORT_RANGE_MAX ||
+ kubernetesGroup.getPortRange().getUpper() < CloudControllerConstants.PORT_RANGE_MIN ||
+ kubernetesGroup.getPortRange().getLower() > CloudControllerConstants.PORT_RANGE_MAX ||
+ kubernetesGroup.getPortRange().getLower() < CloudControllerConstants.PORT_RANGE_MIN ||
+ kubernetesGroup.getPortRange().getUpper() < kubernetesGroup.getPortRange().getLower()) {
+ throw new InvalidKubernetesGroupException("Port range is invalid " +
+ "for the Kubernetes group [id]" + kubernetesGroup.getGroupId());
+ }
+ try {
+ validateKubernetesMaster(kubernetesGroup.getKubernetesMaster());
+ validateKubernetesHosts(kubernetesGroup.getKubernetesHosts());
+
+ // check whether master already exists
+ if (context.kubernetesHostExists(kubernetesGroup.getKubernetesMaster().getHostId())) {
+ throw new InvalidKubernetesGroupException("Kubernetes host already exists [id] " +
+ kubernetesGroup.getKubernetesMaster().getHostId());
+ }
+
+ // Check for duplicate hostIds
+ if (kubernetesGroup.getKubernetesHosts() != null) {
+ List<String> hostIds = new ArrayList<String>();
+ hostIds.add(kubernetesGroup.getKubernetesMaster().getHostId());
+
+ for (KubernetesHost kubernetesHost : kubernetesGroup.getKubernetesHosts()) {
+ if (hostIds.contains(kubernetesHost.getHostId())) {
+ throw new InvalidKubernetesGroupException(
+ String.format("Kubernetes host [id] %s already defined in the request", kubernetesHost.getHostId()));
+ }
+
+ // check whether host already exists
+ if (context.kubernetesHostExists(kubernetesHost.getHostId())) {
+ throw new InvalidKubernetesGroupException("Kubernetes host already exists [id] " +
+ kubernetesHost.getHostId());
+ }
+
+ hostIds.add(kubernetesHost.getHostId());
+ }
+ }
+
+ } catch (InvalidKubernetesHostException e) {
+ throw new InvalidKubernetesGroupException(e.getMessage());
+ } catch (InvalidKubernetesMasterException e) {
+ throw new InvalidKubernetesGroupException(e.getMessage());
+ }
+ }
+
+ private static void validateKubernetesHosts(KubernetesHost[] kubernetesHosts) throws InvalidKubernetesHostException {
+ if (kubernetesHosts == null || kubernetesHosts.length == 0) {
+ return;
+ }
+ for (KubernetesHost kubernetesHost : kubernetesHosts) {
+ validateKubernetesHost(kubernetesHost);
+ }
+ }
+
+ public static void validateKubernetesHost(KubernetesHost kubernetesHost) throws InvalidKubernetesHostException {
+ if (kubernetesHost == null) {
+ throw new InvalidKubernetesHostException("Kubernetes host can not be null");
+ }
+ if (StringUtils.isEmpty(kubernetesHost.getHostId())) {
+ throw new InvalidKubernetesHostException("Kubernetes host id can not be empty");
+ }
+ if (kubernetesHost.getHostIpAddress() == null) {
+ throw new InvalidKubernetesHostException("Mandatory field Kubernetes host IP address has not been set " +
+ "for [hostId] " + kubernetesHost.getHostId());
+ }
+ if (!InetAddresses.isInetAddress(kubernetesHost.getHostIpAddress())) {
+ throw new InvalidKubernetesHostException("Kubernetes host ip address is invalid: " + kubernetesHost.getHostIpAddress());
+ }
+ }
+
+ public static void validateKubernetesMaster(KubernetesMaster kubernetesMaster) throws InvalidKubernetesMasterException {
+ try {
+ validateKubernetesHost(kubernetesMaster);
+ } catch (InvalidKubernetesHostException e) {
+ throw new InvalidKubernetesMasterException(e.getMessage());
+ }
+ }
+
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/98244f78/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/Properties.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/Properties.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/Properties.java
index 1b8ef93..f842672 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/Properties.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/Properties.java
@@ -65,21 +65,44 @@ public class Properties implements Serializable {
}
@Override
- public boolean equals(Object object) {
- if (object == null) {
- return false;
- }
-
- if (!(object instanceof Properties)) {
- return false;
- }
-
- Properties propertiesObject = (Properties) object;
- return Arrays.equals(propertiesObject.getProperties(), this.getProperties());
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((properties == null) ? 0 : properties.hashCode());
+ return result;
}
@Override
- public int hashCode() {
- return this.hashCode();
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ Properties other = (Properties) obj;
+ if (properties == null) {
+ if (other.properties != null)
+ return false;
+ } else if (!Arrays.equals(other.getProperties(), this.getProperties()))
+ return false;
+ return true;
}
+
+// @Override
+// public boolean equals(Object object) {
+// if (object == null) {
+// return false;
+// }
+//
+// if (!(object instanceof Properties)) {
+// return false;
+// }
+//
+// Properties propertiesObject = (Properties) object;
+// return Arrays.equals(propertiesObject.getProperties(), this.getProperties());
+// }
+
+
+
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/98244f78/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/kubernetes/KubernetesGroup.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/kubernetes/KubernetesGroup.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/kubernetes/KubernetesGroup.java
index 1244ab4..d7f54be 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/kubernetes/KubernetesGroup.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/kubernetes/KubernetesGroup.java
@@ -29,6 +29,7 @@ import java.util.Arrays;
*/
public class KubernetesGroup implements Serializable {
+ private static final long serialVersionUID = 3210149484906093132L;
private String groupId;
private KubernetesHost[] kubernetesHosts;
private KubernetesMaster kubernetesMaster;
http://git-wip-us.apache.org/repos/asf/stratos/blob/98244f78/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/kubernetes/KubernetesHost.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/kubernetes/KubernetesHost.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/kubernetes/KubernetesHost.java
index 60baa12..49ed025 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/kubernetes/KubernetesHost.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/kubernetes/KubernetesHost.java
@@ -31,6 +31,7 @@ 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;
http://git-wip-us.apache.org/repos/asf/stratos/blob/98244f78/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/kubernetes/KubernetesMaster.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/kubernetes/KubernetesMaster.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/kubernetes/KubernetesMaster.java
index a8cbf8f..25badf2 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/kubernetes/KubernetesMaster.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/kubernetes/KubernetesMaster.java
@@ -30,6 +30,8 @@ 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;
http://git-wip-us.apache.org/repos/asf/stratos/blob/98244f78/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/kubernetes/PortRange.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/kubernetes/PortRange.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/kubernetes/PortRange.java
index 8225127..538c46a 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/kubernetes/PortRange.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/kubernetes/PortRange.java
@@ -25,6 +25,7 @@ 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;
http://git-wip-us.apache.org/repos/asf/stratos/blob/98244f78/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java
index 86c8d01..78e5307 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java
@@ -32,14 +32,15 @@ import org.apache.stratos.cloud.controller.stub.domain.CartridgeConfig;
import org.apache.stratos.cloud.controller.stub.domain.Registrant;
import org.apache.stratos.cloud.controller.stub.domain.ServiceGroup;
import org.apache.stratos.cloud.controller.stub.domain.Dependencies;
+import org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesGroup;
+import org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesHost;
+import org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesMaster;
import org.apache.stratos.common.Properties;
-import org.apache.stratos.common.Property;
import org.apache.stratos.manager.internal.DataHolder;
import org.apache.stratos.manager.utils.ApplicationManagementUtil;
import org.apache.stratos.manager.utils.CartridgeConstants;
import java.rmi.RemoteException;
-import java.util.Iterator;
public class CloudControllerServiceClient {
@@ -161,4 +162,57 @@ public class CloudControllerServiceClient {
return stub.getClusterContext(clusterId);
}
+
+ public boolean deployKubernetesGroup(KubernetesGroup kubernetesGroup) throws RemoteException,
+ CloudControllerServiceInvalidKubernetesGroupExceptionException {
+ return stub.addKubernetesGroup(kubernetesGroup);
+ }
+
+ public boolean deployKubernetesHost(String kubernetesGroupId, KubernetesHost kubernetesHost)
+ throws RemoteException, CloudControllerServiceInvalidKubernetesHostExceptionException,
+ CloudControllerServiceNonExistingKubernetesGroupExceptionException {
+
+ return stub.addKubernetesHost(kubernetesGroupId, kubernetesHost);
+ }
+
+ public boolean updateKubernetesMaster(KubernetesMaster kubernetesMaster) throws RemoteException,
+ CloudControllerServiceInvalidKubernetesMasterExceptionException,
+ CloudControllerServiceNonExistingKubernetesMasterExceptionException {
+ return stub.updateKubernetesMaster(kubernetesMaster);
+ }
+
+ public KubernetesGroup[] getAvailableKubernetesGroups() throws RemoteException {
+ return stub.getAllKubernetesGroups();
+ }
+
+ public KubernetesGroup getKubernetesGroup(String kubernetesGroupId) throws RemoteException,
+ CloudControllerServiceNonExistingKubernetesGroupExceptionException {
+ return stub.getKubernetesGroup(kubernetesGroupId);
+ }
+
+ public boolean undeployKubernetesGroup(String kubernetesGroupId) throws RemoteException,
+ CloudControllerServiceNonExistingKubernetesGroupExceptionException {
+ return stub.removeKubernetesGroup(kubernetesGroupId);
+ }
+
+ public boolean undeployKubernetesHost(String kubernetesHostId) throws RemoteException,
+ CloudControllerServiceNonExistingKubernetesHostExceptionException {
+ return stub.removeKubernetesHost(kubernetesHostId);
+ }
+
+ public KubernetesHost[] getKubernetesHosts(String kubernetesGroupId) throws RemoteException,
+ CloudControllerServiceNonExistingKubernetesGroupExceptionException {
+ return stub.getHostsForKubernetesGroup(kubernetesGroupId);
+ }
+
+ public KubernetesMaster getKubernetesMaster(String kubernetesGroupId) throws RemoteException,
+ CloudControllerServiceNonExistingKubernetesGroupExceptionException {
+ return stub.getMasterForKubernetesGroup(kubernetesGroupId);
+ }
+
+ public boolean updateKubernetesHost(KubernetesHost kubernetesHost) throws RemoteException,
+ CloudControllerServiceInvalidKubernetesHostExceptionException,
+ CloudControllerServiceNonExistingKubernetesHostExceptionException {
+ return stub.updateKubernetesHost(kubernetesHost);
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/98244f78/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
index 5e0c7bf..401d701 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
@@ -26,9 +26,16 @@ import org.apache.commons.logging.LogFactory;
import org.apache.stratos.autoscaler.stub.pojo.ApplicationContext;
import org.apache.stratos.autoscaler.stub.*;
import org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy;
+import org.apache.stratos.autoscaler.stub.exception.InvalidKubernetesGroupException;
import org.apache.stratos.cloud.controller.stub.domain.CartridgeConfig;
import org.apache.stratos.cloud.controller.stub.domain.CartridgeInfo;
import org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidCartridgeTypeExceptionException;
+import org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidKubernetesGroupExceptionException;
+import org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidKubernetesHostExceptionException;
+import org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidKubernetesMasterExceptionException;
+import org.apache.stratos.cloud.controller.stub.CloudControllerServiceNonExistingKubernetesGroupExceptionException;
+import org.apache.stratos.cloud.controller.stub.CloudControllerServiceNonExistingKubernetesHostExceptionException;
+import org.apache.stratos.cloud.controller.stub.CloudControllerServiceNonExistingKubernetesMasterExceptionException;
import org.apache.stratos.cloud.controller.stub.CloudControllerServiceUnregisteredCartridgeExceptionException;
import org.apache.stratos.common.Property;
import org.apache.stratos.manager.client.AutoscalerServiceClient;
@@ -1618,17 +1625,17 @@ public class StratosApiV41Utils {
public static boolean deployKubernetesGroup(KubernetesGroup kubernetesGroupBean) throws RestAPIException {
- AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
- if (autoscalerServiceClient != null) {
- org.apache.stratos.autoscaler.stub.kubernetes.KubernetesGroup kubernetesGroup =
- PojoConverter.convertToASKubernetesGroupPojo(kubernetesGroupBean);
+ CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
+ if (cloudControllerServiceClient != null) {
+ org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesGroup kubernetesGroup =
+ PojoConverter.convertToCCKubernetesGroupPojo(kubernetesGroupBean);
try {
- return autoscalerServiceClient.deployKubernetesGroup(kubernetesGroup);
+ return cloudControllerServiceClient.deployKubernetesGroup(kubernetesGroup);
} catch (RemoteException e) {
log.error(e.getMessage(), e);
throw new RestAPIException(e.getMessage(), e);
- } catch (AutoScalerServiceInvalidKubernetesGroupExceptionException e) {
+ } catch (CloudControllerServiceInvalidKubernetesGroupExceptionException e) {
String message = e.getFaultMessage().getInvalidKubernetesGroupException().getMessage();
log.error(message, e);
throw new RestAPIException(message, e);
@@ -1640,21 +1647,21 @@ public class StratosApiV41Utils {
public static boolean deployKubernetesHost(String kubernetesGroupId, KubernetesHost kubernetesHostBean)
throws RestAPIException {
- AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
- if (autoscalerServiceClient != null) {
- org.apache.stratos.autoscaler.stub.kubernetes.KubernetesHost kubernetesHost =
- PojoConverter.convertToASKubernetesHostPojo(kubernetesHostBean);
+ CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
+ if (cloudControllerServiceClient != null) {
+ org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesHost kubernetesHost =
+ PojoConverter.convertToCCKubernetesHostPojo(kubernetesHostBean);
try {
- return autoscalerServiceClient.deployKubernetesHost(kubernetesGroupId, kubernetesHost);
+ return cloudControllerServiceClient.deployKubernetesHost(kubernetesGroupId, kubernetesHost);
} catch (RemoteException e) {
log.error(e.getMessage(), e);
throw new RestAPIException(e.getMessage(), e);
- } catch (AutoScalerServiceInvalidKubernetesHostExceptionException e) {
+ } catch (CloudControllerServiceInvalidKubernetesHostExceptionException e) {
String message = e.getFaultMessage().getInvalidKubernetesHostException().getMessage();
log.error(message, e);
throw new RestAPIException(message, e);
- } catch (AutoScalerServiceNonExistingKubernetesGroupExceptionException e) {
+ } catch (CloudControllerServiceNonExistingKubernetesGroupExceptionException e) {
String message = e.getFaultMessage().getNonExistingKubernetesGroupException().getMessage();
log.error(message, e);
throw new RestAPIException(message, e);
@@ -1665,21 +1672,21 @@ public class StratosApiV41Utils {
public static boolean updateKubernetesMaster(KubernetesMaster kubernetesMasterBean) throws RestAPIException {
- AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
- if (autoscalerServiceClient != null) {
- org.apache.stratos.autoscaler.stub.kubernetes.KubernetesMaster kubernetesMaster =
- PojoConverter.convertToASKubernetesMasterPojo(kubernetesMasterBean);
+ CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
+ if (cloudControllerServiceClient != null) {
+ org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesMaster kubernetesMaster =
+ PojoConverter.convertToCCKubernetesMasterPojo(kubernetesMasterBean);
try {
- return autoscalerServiceClient.updateKubernetesMaster(kubernetesMaster);
+ return cloudControllerServiceClient.updateKubernetesMaster(kubernetesMaster);
} catch (RemoteException e) {
log.error(e.getMessage(), e);
throw new RestAPIException(e.getMessage(), e);
- } catch (AutoScalerServiceInvalidKubernetesMasterExceptionException e) {
+ } catch (CloudControllerServiceInvalidKubernetesMasterExceptionException e) {
String message = e.getFaultMessage().getInvalidKubernetesMasterException().getMessage();
log.error(message, e);
throw new RestAPIException(message, e);
- } catch (AutoScalerServiceNonExistingKubernetesMasterExceptionException e) {
+ } catch (CloudControllerServiceNonExistingKubernetesMasterExceptionException e) {
String message = e.getFaultMessage().getNonExistingKubernetesMasterException().getMessage();
log.error(message, e);
throw new RestAPIException(message, e);
@@ -1690,11 +1697,11 @@ public class StratosApiV41Utils {
public static KubernetesGroup[] getAvailableKubernetesGroups() throws RestAPIException {
- AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
- if (autoscalerServiceClient != null) {
+ CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
+ if (cloudControllerServiceClient != null) {
try {
- org.apache.stratos.autoscaler.stub.kubernetes.KubernetesGroup[]
- kubernetesGroups = autoscalerServiceClient.getAvailableKubernetesGroups();
+ org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesGroup[]
+ kubernetesGroups = cloudControllerServiceClient.getAvailableKubernetesGroups();
return PojoConverter.populateKubernetesGroupsPojo(kubernetesGroups);
} catch (RemoteException e) {
@@ -1707,17 +1714,17 @@ public class StratosApiV41Utils {
public static KubernetesGroup getKubernetesGroup(String kubernetesGroupId) throws RestAPIException {
- AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
- if (autoscalerServiceClient != null) {
+ CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
+ if (cloudControllerServiceClient != null) {
try {
- org.apache.stratos.autoscaler.stub.kubernetes.KubernetesGroup
- kubernetesGroup = autoscalerServiceClient.getKubernetesGroup(kubernetesGroupId);
+ org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesGroup
+ kubernetesGroup = cloudControllerServiceClient.getKubernetesGroup(kubernetesGroupId);
return PojoConverter.populateKubernetesGroupPojo(kubernetesGroup);
} catch (RemoteException e) {
log.error(e.getMessage(), e);
throw new RestAPIException(e.getMessage(), e);
- } catch (AutoScalerServiceNonExistingKubernetesGroupExceptionException e) {
+ } catch (CloudControllerServiceNonExistingKubernetesGroupExceptionException e) {
String message = e.getFaultMessage().getNonExistingKubernetesGroupException().getMessage();
log.error(message, e);
throw new RestAPIException(message, e);
@@ -1766,11 +1773,11 @@ public class StratosApiV41Utils {
public static KubernetesHost[] getKubernetesHosts(String kubernetesGroupId) throws RestAPIException {
- AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
- if (autoscalerServiceClient != null) {
+ CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
+ if (cloudControllerServiceClient != null) {
try {
- org.apache.stratos.autoscaler.stub.kubernetes.KubernetesHost[]
- kubernetesHosts = autoscalerServiceClient.getKubernetesHosts(kubernetesGroupId);
+ org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesHost[]
+ kubernetesHosts = cloudControllerServiceClient.getKubernetesHosts(kubernetesGroupId);
List<KubernetesHost> arrayList = PojoConverter.populateKubernetesHostsPojo(kubernetesHosts);
KubernetesHost[] array = new KubernetesHost[arrayList.size()];
@@ -1779,7 +1786,7 @@ public class StratosApiV41Utils {
} catch (RemoteException e) {
log.error(e.getMessage(), e);
throw new RestAPIException(e.getMessage(), e);
- } catch (AutoScalerServiceNonExistingKubernetesGroupExceptionException e) {
+ } catch (CloudControllerServiceNonExistingKubernetesGroupExceptionException e) {
String message = e.getFaultMessage().getNonExistingKubernetesGroupException().getMessage();
log.error(message, e);
throw new RestAPIException(message, e);
@@ -1789,17 +1796,17 @@ public class StratosApiV41Utils {
}
public static KubernetesMaster getKubernetesMaster(String kubernetesGroupId) throws RestAPIException {
- AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
- if (autoscalerServiceClient != null) {
+ CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
+ if (cloudControllerServiceClient != null) {
try {
- org.apache.stratos.autoscaler.stub.kubernetes.KubernetesMaster
- kubernetesMaster = autoscalerServiceClient.getKubernetesMaster(kubernetesGroupId);
+ org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesMaster
+ kubernetesMaster = cloudControllerServiceClient.getKubernetesMaster(kubernetesGroupId);
return PojoConverter.populateKubernetesMasterPojo(kubernetesMaster);
} catch (RemoteException e) {
log.error(e.getMessage(), e);
throw new RestAPIException(e.getMessage(), e);
- } catch (AutoScalerServiceNonExistingKubernetesGroupExceptionException e) {
+ } catch (CloudControllerServiceNonExistingKubernetesGroupExceptionException e) {
String message = e.getFaultMessage().getNonExistingKubernetesGroupException().getMessage();
log.error(message, e);
throw new RestAPIException(message, e);
@@ -1809,20 +1816,20 @@ public class StratosApiV41Utils {
}
public static boolean updateKubernetesHost(KubernetesHost kubernetesHostBean) throws RestAPIException {
- AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
- if (autoscalerServiceClient != null) {
- org.apache.stratos.autoscaler.stub.kubernetes.KubernetesHost kubernetesHost =
- PojoConverter.convertToASKubernetesHostPojo(kubernetesHostBean);
+ CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
+ if (cloudControllerServiceClient != null) {
+ org.apache.stratos.cloud.controller.stub.kubernetes.KubernetesHost kubernetesHost =
+ PojoConverter.convertToCCKubernetesHostPojo(kubernetesHostBean);
try {
- return autoscalerServiceClient.updateKubernetesHost(kubernetesHost);
+ return cloudControllerServiceClient.updateKubernetesHost(kubernetesHost);
} catch (RemoteException e) {
log.error(e.getMessage(), e);
throw new RestAPIException(e.getMessage(), e);
- } catch (AutoScalerServiceInvalidKubernetesHostExceptionException e) {
+ } catch (CloudControllerServiceInvalidKubernetesHostExceptionException e) {
String message = e.getFaultMessage().getInvalidKubernetesHostException().getMessage();
log.error(message, e);
throw new RestAPIException(message, e);
- } catch (AutoScalerServiceNonExistingKubernetesHostExceptionException e) {
+ } catch (CloudControllerServiceNonExistingKubernetesHostExceptionException e) {
String message = e.getFaultMessage().getNonExistingKubernetesHostException().getMessage();
log.error(message, e);
throw new RestAPIException(message, e);