You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ga...@apache.org on 2015/09/19 19:47:40 UTC
stratos git commit: Remove kubernetes cluster id from cluster context
and added it to kubernetes services
Repository: stratos
Updated Branches:
refs/heads/stratos-4.1.x 8c784dff9 -> 07bd140ca
Remove kubernetes cluster id from cluster context and added it to kubernetes services
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/07bd140c
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/07bd140c
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/07bd140c
Branch: refs/heads/stratos-4.1.x
Commit: 07bd140ca2e15286b7a73decbbe8874edd3e3633
Parents: 8c784df
Author: gayangunarathne <ga...@wso2.com>
Authored: Sat Sep 19 23:15:07 2015 +0530
Committer: gayangunarathne <ga...@wso2.com>
Committed: Sat Sep 19 23:15:07 2015 +0530
----------------------------------------------------------------------
.../cloud/controller/domain/ClusterContext.java | 8 --
.../iaases/kubernetes/KubernetesIaas.java | 79 +++++++++-----------
.../iaases/kubernetes/KubernetesIaasUtil.java | 2 +-
.../messaging/topology/TopologyBuilder.java | 7 +-
.../domain/topology/KubernetesService.java | 9 +++
5 files changed, 50 insertions(+), 55 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/07bd140c/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/ClusterContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/ClusterContext.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/ClusterContext.java
index a559a1e..38aa8bf 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/ClusterContext.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/ClusterContext.java
@@ -47,7 +47,6 @@ public class ClusterContext implements Serializable {
private long timeoutInMillis;
private Properties properties;
private Map<String, KubernetesService> kubernetesServices;
- private String kubernetesClusterId;
public ClusterContext(String applicationId, String cartridgeType, String clusterId, String payload, String hostName,
boolean isLbCluster, Properties properties) {
@@ -130,11 +129,4 @@ public class ClusterContext implements Serializable {
kubernetesServices.remove(serviceName);
}
- public void setKubernetesClusterId(String kubernetesClusterId) {
- this.kubernetesClusterId = kubernetesClusterId;
- }
-
- public String getKubernetesClusterId() {
- return kubernetesClusterId;
- }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/07bd140c/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java
index e92f68b..44d8d1d 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java
@@ -44,7 +44,10 @@ import org.apache.stratos.kubernetes.client.KubernetesConstants;
import org.apache.stratos.kubernetes.client.exceptions.KubernetesClientException;
import org.apache.stratos.messaging.domain.topology.KubernetesService;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
import java.util.concurrent.locks.Lock;
/**
@@ -181,7 +184,7 @@ public class KubernetesIaas extends Iaas {
}
String kubernetesClusterId = partition.getKubernetesClusterId();
- clusterContext.setKubernetesClusterId(kubernetesClusterId);
+
KubernetesCluster kubernetesCluster = CloudControllerContext.getInstance().
getKubernetesCluster(kubernetesClusterId);
handleNullObject(kubernetesCluster, "kubernetes cluster not found: " +
@@ -218,7 +221,7 @@ public class KubernetesIaas extends Iaas {
// Create kubernetes services for port mappings
KubernetesApiClient kubernetesApi = kubernetesClusterContext.getKubApi();
- createKubernetesServices(kubernetesApi, clusterContext, kubernetesCluster, kubernetesClusterContext);
+ createKubernetesServices(kubernetesApi, clusterContext, kubernetesCluster, kubernetesClusterContext,memberContext);
// Create pod
createPod(clusterContext, memberContext, kubernetesApi, kubernetesClusterContext);
@@ -460,7 +463,7 @@ public class KubernetesIaas extends Iaas {
*/
private void createKubernetesServices(KubernetesApiClient kubernetesApi, ClusterContext clusterContext,
KubernetesCluster kubernetesCluster,
- KubernetesClusterContext kubernetesClusterContext)
+ KubernetesClusterContext kubernetesClusterContext,MemberContext memberContext)
throws KubernetesClientException {
String applicationId = clusterContext.getApplicationId();
@@ -558,6 +561,7 @@ public class KubernetesIaas extends Iaas {
String kubernetesServiceType = service.getSpec().getType();
kubernetesService.setServiceType(kubernetesServiceType);
+ kubernetesService.setKubernetesClusterId(memberContext.getPartition().getKubernetesClusterId());
if (kubernetesServiceType.equals(KubernetesConstants.NODE_PORT)) {
kubernetesService.setPort(service.getSpec().getPorts().get(0).getNodePort());
@@ -755,22 +759,21 @@ public class KubernetesIaas extends Iaas {
handleNullObject(clusterContext, "Could not terminate containers, cluster not found: [cluster-id] "
+ clusterId);
- String kubernetesClusterId = clusterContext.getKubernetesClusterId();
- handleNullObject(kubernetesClusterId, "Could not terminate containers, kubernetes cluster id not found: " +
- "[cluster-id] " + clusterId);
-
- KubernetesClusterContext kubClusterContext = CloudControllerContext.getInstance().
- getKubernetesClusterContext(kubernetesClusterId);
- handleNullObject(kubClusterContext, "Could not terminate containers, kubernetes cluster not found: " +
- "[kubernetes-cluster-id] " + kubernetesClusterId);
-
- KubernetesApiClient kubApi = kubClusterContext.getKubApi();
-
// Remove kubernetes services
List<KubernetesService> kubernetesServices = Lists.newArrayList(clusterContext.getKubernetesServices());
if (kubernetesServices != null) {
for (KubernetesService kubernetesService : kubernetesServices) {
try {
+ String kubernetesClusterId=kubernetesService.getKubernetesClusterId();
+ handleNullObject(kubernetesClusterId, "Could not terminate containers, kubernetes cluster id not found: " +
+ "[cluster-id] " + clusterId);
+ KubernetesClusterContext kubClusterContext = CloudControllerContext.getInstance().
+ getKubernetesClusterContext(kubernetesClusterId);
+ handleNullObject(kubClusterContext, "Could not terminate containers, kubernetes cluster not found: " +
+ "[kubernetes-cluster-id] " + kubernetesClusterId);
+
+ KubernetesApiClient kubApi = kubClusterContext.getKubApi();
+
String serviceId = kubernetesService.getId();
kubApi.deleteService(serviceId);
@@ -957,41 +960,33 @@ public class KubernetesIaas extends Iaas {
/**
* Remove kubernetes services if available for application cluster.
*
- * @param applicationId
- * @param clusterId
+ * @param clusterContext
+ *
*/
- public static void removeKubernetesServices(String applicationId, String clusterId) {
-
- ClusterContext clusterContext = CloudControllerContext.getInstance().getClusterContext(clusterId);
+ public static void removeKubernetesServices(ClusterContext clusterContext) {
if (clusterContext != null) {
- String kubernetesClusterId = clusterContext.getKubernetesClusterId();
+ ArrayList<KubernetesService> kubernetesServices = Lists.newArrayList(clusterContext.getKubernetesServices());
- if (org.apache.commons.lang3.StringUtils.isNotBlank(kubernetesClusterId)) {
+ for (KubernetesService kubernetesService : kubernetesServices) {
KubernetesClusterContext kubernetesClusterContext =
- CloudControllerContext.getInstance().getKubernetesClusterContext(kubernetesClusterId);
+ CloudControllerContext.getInstance().getKubernetesClusterContext(kubernetesService.getKubernetesClusterId());
+ KubernetesApiClient kubernetesApiClient = kubernetesClusterContext.getKubApi();
+ String serviceId = kubernetesService.getId();
+ log.info(String.format("Deleting kubernetes service: [application-id] %s " +
+ "[service-id] %s", clusterContext.getApplicationId(), serviceId));
- if (kubernetesClusterContext != null) {
- KubernetesApiClient kubernetesApiClient = kubernetesClusterContext.getKubApi();
- ArrayList<KubernetesService> kubernetesServices = Lists.newArrayList(clusterContext.getKubernetesServices());
-
- for (KubernetesService kubernetesService : kubernetesServices) {
- String serviceId = kubernetesService.getId();
- log.info(String.format("Deleting kubernetes service: [application-id] %s " +
- "[service-id] %s", applicationId, serviceId));
-
- try {
- kubernetesApiClient.deleteService(serviceId);
- kubernetesClusterContext.deallocatePort(kubernetesService.getPort());
- kubernetesClusterContext.removeKubernetesService(serviceId);
- clusterContext.removeKubernetesService(serviceId);
- } catch (KubernetesClientException e) {
- log.error(String.format("Could not delete kubernetes service: [application-id] %s " +
- "[service-id] %s", applicationId, serviceId));
- }
- }
+ try {
+ kubernetesApiClient.deleteService(serviceId);
+ kubernetesClusterContext.deallocatePort(kubernetesService.getPort());
+ kubernetesClusterContext.removeKubernetesService(serviceId);
+ clusterContext.removeKubernetesService(serviceId);
+ } catch (KubernetesClientException e) {
+ log.error(String.format("Could not delete kubernetes service: [application-id] %s " +
+ "[service-id] %s", clusterContext.getApplicationId(), serviceId));
}
}
}
+
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/07bd140c/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaasUtil.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaasUtil.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaasUtil.java
index cbf28ae..6caadb6 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaasUtil.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaasUtil.java
@@ -60,7 +60,7 @@ public class KubernetesIaasUtil {
*/
public static List<EnvVar> prepareEnvironmentVariables(ClusterContext clusterContext, MemberContext memberContext) {
- String kubernetesClusterId = clusterContext.getKubernetesClusterId();
+ String kubernetesClusterId = memberContext.getPartition().getKubernetesClusterId();
List<EnvVar> environmentVariables = new ArrayList<EnvVar>();
// Set dynamic payload
http://git-wip-us.apache.org/repos/asf/stratos/blob/07bd140c/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
index 808ff16..851d334 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
@@ -19,7 +19,6 @@
package org.apache.stratos.cloud.controller.messaging.topology;
import com.google.common.collect.Lists;
-import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.cloud.controller.context.CloudControllerContext;
@@ -1065,9 +1064,9 @@ public class TopologyBuilder {
// Remove kubernetes services if available
ClusterContext clusterContext =
CloudControllerContext.getInstance().getClusterContext(event.getClusterId());
- if (StringUtils.isNotBlank(clusterContext.getKubernetesClusterId())) {
- KubernetesIaas.removeKubernetesServices(event.getAppId(), event.getClusterId());
- }
+
+ KubernetesIaas.removeKubernetesServices(clusterContext);
+
} else {
log.error(String.format("Cluster state transition is not valid: [cluster-id] %s " +
" [instance-id] %s [current-status] %s [status-requested] %s",
http://git-wip-us.apache.org/repos/asf/stratos/blob/07bd140c/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/KubernetesService.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/KubernetesService.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/KubernetesService.java
index a00809b..abac376 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/KubernetesService.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/KubernetesService.java
@@ -36,6 +36,7 @@ public class KubernetesService implements Serializable {
private int containerPort;
private String serviceType;
private String portName;
+ private String kubernetesClusterId;
public String getPortName() {
return portName;
@@ -99,4 +100,12 @@ public class KubernetesService implements Serializable {
public int getContainerPort() {
return containerPort;
}
+
+ public String getKubernetesClusterId() {
+ return kubernetesClusterId;
+ }
+
+ public void setKubernetesClusterId(String kubernetesClusterId) {
+ this.kubernetesClusterId = kubernetesClusterId;
+ }
}