Adding https kubernetes endpoint support
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/a4c516ea Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/a4c516ea Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/a4c516ea Branch: refs/heads/stratos-4.1.x Commit: a4c516eaad75a466bd4a9449ee5f87821c3b126b Parents: 6ee5045 Author: anuruddhal <[email protected]> Authored: Thu Apr 28 19:23:24 2016 +0530 Committer: anuruddhal <[email protected]> Committed: Thu Apr 28 19:23:24 2016 +0530 ---------------------------------------------------------------------- .../kubernetes/KubernetesClusterContext.java | 49 +- .../domain/kubernetes/KubernetesMaster.java | 13 +- .../iaases/kubernetes/KubernetesIaas.java | 49 +- .../impl/CloudControllerServiceImpl.java | 15 +- .../controller/util/CloudControllerUtil.java | 25 +- .../beans/kubernetes/KubernetesMasterBean.java | 11 +- .../schema/configure/kubernetes-clusters.json | 12 +- .../rest/endpoint/api/StratosApiV41.java | 8 +- .../util/converter/ObjectConverter.java | 2 + .../main/resources/CloudControllerService.wsdl | 690 ++++++++++--------- 10 files changed, 472 insertions(+), 402 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/a4c516ea/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesClusterContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesClusterContext.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesClusterContext.java index d22f977..cc2c1a4 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesClusterContext.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/kubernetes/KubernetesClusterContext.java @@ -23,11 +23,16 @@ import org.apache.commons.logging.LogFactory; import org.apache.stratos.kubernetes.client.KubernetesApiClient; import java.io.Serializable; +import java.net.MalformedURLException; +import java.net.URL; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.concurrent.atomic.AtomicLong; +import org.apache.stratos.cloud.controller.util.CloudControllerUtil; +import org.apache.stratos.common.constants.StratosConstants; + /** * Holds information about a Kubernetes Cluster. */ @@ -35,13 +40,12 @@ public class KubernetesClusterContext implements Serializable { private static final long serialVersionUID = -802025758806195791L; - private static final Log log = LogFactory.getLog(KubernetesClusterContext.class); - private String kubernetesClusterId; private int upperPort; private int lowerPort; private String masterIp; private String masterPort; + private String endpoint; private List<Integer> servicePortSequence; private AtomicLong serviceSeqNo; @@ -50,7 +54,8 @@ public class KubernetesClusterContext implements Serializable { public static final long MAX_POD_ID = 99999999999999L; public static final long MAX_SERVICE_ID = 99999999999999L; - public KubernetesClusterContext(String id, String masterIp, String masterPort, int lowerPort, int upperPort) { + public KubernetesClusterContext(String id, String masterIp, String masterPort, int lowerPort, int upperPort, + String endpoint) { this.servicePortSequence = new ArrayList<>(); serviceSeqNo = new AtomicLong(0); podSeqNo = new AtomicLong(0); @@ -62,11 +67,25 @@ public class KubernetesClusterContext implements Serializable { this.kubernetesClusterId = id; this.masterIp = masterIp; this.masterPort = masterPort; - this.setKubApi(new KubernetesApiClient(getEndpoint(masterIp, masterPort))); + this.endpoint = endpoint; + this.setKubApi(new KubernetesApiClient(prepareEndpoint())); } - private String getEndpoint(String ip, String port) { - return "http://" + ip + ":" + port + "/api/v1beta1/"; + private String prepareEndpoint() { + if (endpoint != null) { + return endpoint; + } + URL endpointURL = null; + try { + if (this.masterPort != null) { + endpointURL = new URL("http", this.masterIp, Integer.parseInt(masterPort), ""); + } else { + endpointURL = new URL("http", this.masterIp, ""); + } + } catch (MalformedURLException e) { + throw new RuntimeException(e.getMessage()); + } + return endpointURL.toString(); } public String getKubernetesClusterId() { @@ -131,7 +150,7 @@ public class KubernetesClusterContext implements Serializable { public KubernetesApiClient getKubApi() { if (kubApi == null) { - kubApi = new KubernetesApiClient(getEndpoint(masterIp, masterPort)); + kubApi = new KubernetesApiClient(prepareEndpoint()); } return kubApi; } @@ -172,6 +191,15 @@ public class KubernetesClusterContext implements Serializable { return podSeqNo.incrementAndGet(); } + public void updateKubClusterContextParams(KubernetesCluster kubernetesCluster) { + this.masterIp = kubernetesCluster.getKubernetesMaster().getPrivateIPAddress(); + this.masterPort = CloudControllerUtil + .getProperty(kubernetesCluster.getKubernetesMaster().getProperties(), + StratosConstants.KUBERNETES_MASTER_PORT); + this.endpoint = kubernetesCluster.getKubernetesMaster().getEndpoint(); + this.kubApi = new KubernetesApiClient(prepareEndpoint()); + } + @Override public int hashCode() { final int prime = 31; @@ -228,6 +256,13 @@ public class KubernetesClusterContext implements Serializable { } else if (!masterPort.equals(other.masterPort)) { return false; } + if (endpoint == null) { + if (other.endpoint != null) { + return false; + } + } else if (!endpoint.equals(other.endpoint)) { + return false; + } if (upperPort != other.upperPort) { return false; } http://git-wip-us.apache.org/repos/asf/stratos/blob/a4c516ea/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 index 84e28c3..aa38d58 100644 --- 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 @@ -29,7 +29,7 @@ import java.io.Serializable; public class KubernetesMaster extends KubernetesHost implements Serializable { private static final long serialVersionUID = -4369535909362724532L; - + private String endpoint; public KubernetesMaster() { } @@ -42,6 +42,7 @@ public class KubernetesMaster extends KubernetesHost implements Serializable { return "KubernetesMaster [hostId=" + getHostId() + " hostname=" + getHostname() + " privateIPAddress=" + getPrivateIPAddress() + + " endpoint= "+getEndpoint() + " properties=" + getProperties() + "]"; } @@ -68,4 +69,12 @@ public class KubernetesMaster extends KubernetesHost implements Serializable { result = prime * result; return result; } -} + + public String getEndpoint() { + return endpoint; + } + + public void setEndpoint(String endpoint) { + this.endpoint = endpoint; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/stratos/blob/a4c516ea/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 4048390..55533e6 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 @@ -76,7 +76,7 @@ public class KubernetesIaas extends Iaas { public KubernetesIaas(IaasProvider iaasProvider) { super(iaasProvider); partitionValidator = new KubernetesPartitionValidator(); - payload = new ArrayList<NameValuePair>(); + payload = new ArrayList<>(); podActivationTimeout = Long.getLong("stratos.pod.activation.timeout"); if (podActivationTimeout == null) { @@ -104,14 +104,12 @@ public class KubernetesIaas extends Iaas { if (payloadByteArray != null) { String payloadString = new String(payloadByteArray); String[] parameterArray = payloadString.split(PAYLOAD_PARAMETER_SEPARATOR); - if (parameterArray != null) { - for (String parameter : parameterArray) { - if (parameter != null) { - String[] nameValueArray = parameter.split(PAYLOAD_PARAMETER_NAME_VALUE_SEPARATOR, 2); - if ((nameValueArray != null) && (nameValueArray.length == 2)) { - NameValuePair nameValuePair = new NameValuePair(nameValueArray[0], nameValueArray[1]); - payload.add(nameValuePair); - } + for (String parameter : parameterArray) { + if (parameter != null) { + String[] nameValueArray = parameter.split(PAYLOAD_PARAMETER_NAME_VALUE_SEPARATOR, 2); + if (nameValueArray.length == 2) { + NameValuePair nameValuePair = new NameValuePair(nameValueArray[0], nameValueArray[1]); + payload.add(nameValuePair); } } if (log.isDebugEnabled()) { @@ -196,10 +194,11 @@ public class KubernetesIaas extends Iaas { // Prepare kubernetes context String kubernetesMasterIp = kubernetesCluster.getKubernetesMaster().getPrivateIPAddress(); + String kuberneteEndPoint = kubernetesCluster.getKubernetesMaster().getEndpoint(); PortRange kubernetesPortRange = kubernetesCluster.getPortRange(); String kubernetesMasterPort = CloudControllerUtil .getProperty(kubernetesCluster.getKubernetesMaster().getProperties(), - StratosConstants.KUBERNETES_MASTER_PORT, StratosConstants.KUBERNETES_MASTER_DEFAULT_PORT); + StratosConstants.KUBERNETES_MASTER_PORT); // Add kubernetes cluster payload parameters to payload if ((kubernetesCluster.getProperties() != null) && (kubernetesCluster.getProperties().getProperties() @@ -216,7 +215,7 @@ public class KubernetesIaas extends Iaas { KubernetesClusterContext kubernetesClusterContext = getKubernetesClusterContext(kubernetesClusterId, kubernetesMasterIp, kubernetesMasterPort, kubernetesPortRange.getUpper(), - kubernetesPortRange.getLower()); + kubernetesPortRange.getLower(), kuberneteEndPoint); // Generate kubernetes service ports and update port mappings in cartridge generateKubernetesServicePorts(clusterContext.getApplicationId(), clusterContext.getClusterId(), @@ -270,9 +269,9 @@ public class KubernetesIaas extends Iaas { memberContext.setInstanceId(pod.getMetadata().getName()); memberContext.setDefaultPrivateIP(memberPrivateIPAddress); - memberContext.setPrivateIPs(new String[] { memberPrivateIPAddress }); + memberContext.setPrivateIPs(new String[]{memberPrivateIPAddress}); memberContext.setDefaultPublicIP(memberPublicIPAddress); - memberContext.setPublicIPs(new String[] { memberPublicIPAddress }); + memberContext.setPublicIPs(new String[]{memberPublicIPAddress}); memberContext.setInitTime(memberContext.getInitTime()); memberContext.setProperties(memberContext.getProperties()); } @@ -803,7 +802,8 @@ public class KubernetesIaas extends Iaas { for (Service service : services) { for (ServicePort servicePort : service.getSpec().getPorts()) { - if (servicePort.getNodePort() == nodePort) { + // Need to check node port is null here to avoid unboxing errors + if ((servicePort.getNodePort() != null) && (servicePort.getNodePort() == nodePort)) { return false; } } @@ -819,7 +819,7 @@ public class KubernetesIaas extends Iaas { * @return */ private ClusterPortMapping findClusterPortMapping(Collection<ClusterPortMapping> clusterPortMappings, - PortMapping portMapping) { + PortMapping portMapping) { for (ClusterPortMapping clusterPortMapping : clusterPortMappings) { if (clusterPortMapping.getName().equals(portMapping.getName())) { return clusterPortMapping; @@ -901,28 +901,23 @@ public class KubernetesIaas extends Iaas { * @return */ private KubernetesClusterContext getKubernetesClusterContext(String kubernetesClusterId, String kubernetesMasterIp, - String kubernetesMasterPort, int upperPort, int lowerPort) { + String kubernetesMasterPort, int upperPort, int lowerPort, String kubernetesEndpoint) { KubernetesClusterContext kubernetesClusterContext = CloudControllerContext.getInstance(). getKubernetesClusterContext(kubernetesClusterId); if (kubernetesClusterContext != null) { return kubernetesClusterContext; } - + log.info("[Kuberentes cluster id]" + kubernetesClusterId); + log.info("[Kuberentes cluster master IP]" + kubernetesMasterIp); + log.info("[Kuberentes master port]" + kubernetesMasterPort); + log.info("[Kuberentes master endpoint]" + kubernetesEndpoint); kubernetesClusterContext = new KubernetesClusterContext(kubernetesClusterId, kubernetesMasterIp, - kubernetesMasterPort, lowerPort, upperPort); + kubernetesMasterPort, lowerPort, upperPort, kubernetesEndpoint); CloudControllerContext.getInstance().addKubernetesClusterContext(kubernetesClusterContext); return kubernetesClusterContext; } - private String readProperty(String property, org.apache.stratos.common.Properties properties, String object) { - String propVal = CloudControllerUtil.getProperty(properties, property); - handleNullObject(propVal, - "Property validation failed. Could not find property: '" + property + " in " + object); - return propVal; - - } - private void handleNullObject(Object obj, String errorMsg) { if (obj == null) { log.error(errorMsg); @@ -1015,4 +1010,4 @@ public class KubernetesIaas extends Iaas { } } -} +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/stratos/blob/a4c516ea/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 4bbffbf..900bc32 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java @@ -25,6 +25,7 @@ import org.apache.stratos.cloud.controller.config.CloudControllerConfig; import org.apache.stratos.cloud.controller.context.CloudControllerContext; import org.apache.stratos.cloud.controller.domain.*; import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesCluster; +import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesClusterContext; import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesHost; import org.apache.stratos.cloud.controller.domain.kubernetes.KubernetesMaster; import org.apache.stratos.cloud.controller.exception.*; @@ -44,6 +45,7 @@ import org.wso2.carbon.registry.core.exceptions.RegistryException; import java.util.*; import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ExecutorService; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.locks.Lock; @@ -516,7 +518,7 @@ public class CloudControllerServiceImpl implements CloudControllerService { } private MemberContext createMemberContext(String applicationId, String cartridgeType, String memberId, - LoadBalancingIPType loadBalancingIPType, InstanceContext instanceContext) { + LoadBalancingIPType loadBalancingIPType, InstanceContext instanceContext) { MemberContext memberContext = new MemberContext(applicationId, cartridgeType, instanceContext.getClusterId(), memberId); @@ -1289,6 +1291,7 @@ public class CloudControllerServiceImpl implements CloudControllerService { } return true; } catch (Exception e) { + log.error("Error occurred when adding kubernetes cluster. " + e.getMessage(), e); throw new InvalidKubernetesClusterException(e.getMessage(), e); } finally { if (lock != null) { @@ -1315,6 +1318,14 @@ public class CloudControllerServiceImpl implements CloudControllerService { // Updating the information model CloudControllerContext.getInstance().updateKubernetesCluster(kubernetesCluster); + KubernetesClusterContext kubClusterContext = CloudControllerContext.getInstance(). + getKubernetesClusterContext(kubernetesCluster.getClusterId()); + + // Update necessary parameters of kubClusterContext using the updated kubCluster + if (kubClusterContext != null) { + kubClusterContext.updateKubClusterContextParams(kubernetesCluster); + CloudControllerContext.getInstance().updateKubernetesClusterContext(kubClusterContext); + } CloudControllerContext.getInstance().persist(); if (log.isInfoEnabled()) { @@ -1765,4 +1776,4 @@ public class CloudControllerServiceImpl implements CloudControllerService { throw new CloudControllerException(message, e); } } -} +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/stratos/blob/a4c516ea/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java index 54cde0b..873c127 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 @@ -258,25 +258,22 @@ public class CloudControllerUtil { throw new InvalidKubernetesHostException("Kubernetes host private IP address has not been set: " + "[host-id] " + kubernetesHost.getHostId()); } - if (!InetAddresses.isInetAddress(kubernetesHost.getPrivateIPAddress())) { - throw new InvalidKubernetesHostException( - "Kubernetes host private IP address is invalid: " + kubernetesHost.getPrivateIPAddress()); - } - if (StringUtils.isNotBlank(kubernetesHost.getPublicIPAddress())) { - if (!InetAddresses.isInetAddress(kubernetesHost.getPublicIPAddress())) { - throw new InvalidKubernetesHostException( - "Kubernetes host public IP address is invalid: " + kubernetesHost.getPrivateIPAddress()); - } - } } public static void validateKubernetesMaster(KubernetesMaster kubernetesMaster) throws InvalidKubernetesMasterException { - try { - validateKubernetesHost(kubernetesMaster); - } catch (InvalidKubernetesHostException e) { - throw new InvalidKubernetesMasterException(e.getMessage()); + + if (StringUtils.isBlank(kubernetesMaster.getEndpoint()) && + StringUtils.isBlank(kubernetesMaster.getPrivateIPAddress())) { + throw new InvalidKubernetesMasterException("Kubernetes master private IP address or endpoint has not " + + "been set."); + } + if (StringUtils.isNotBlank(kubernetesMaster.getEndpoint()) && + StringUtils.isNotBlank(kubernetesMaster.getPrivateIPAddress())) { + throw new InvalidKubernetesMasterException("Both kubenretes master private IP address and " + + "endpoint has been set. Please set either endpoint or private ip."); } + } public static LoadBalancingIPType getLoadBalancingIPTypeEnumFromString(String loadBalancingIPType) { http://git-wip-us.apache.org/repos/asf/stratos/blob/a4c516ea/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/kubernetes/KubernetesMasterBean.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/kubernetes/KubernetesMasterBean.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/kubernetes/KubernetesMasterBean.java index bc698f0..3eb4d8e 100644 --- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/kubernetes/KubernetesMasterBean.java +++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/kubernetes/KubernetesMasterBean.java @@ -33,6 +33,8 @@ public class KubernetesMasterBean { private String hostname; private String privateIPAddress; private String publicIPAddress; + private String endpoint; + private List<PropertyBean> property; public String getHostId() { @@ -75,4 +77,11 @@ public class KubernetesMasterBean { this.property = property; } -} + public String getEndpoint() { + return endpoint; + } + + public void setEndpoint(String endpoint) { + this.endpoint = endpoint; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/stratos/blob/a4c516ea/components/org.apache.stratos.manager.console/console/controllers/forms/schema/configure/kubernetes-clusters.json ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager.console/console/controllers/forms/schema/configure/kubernetes-clusters.json b/components/org.apache.stratos.manager.console/console/controllers/forms/schema/configure/kubernetes-clusters.json index fe0334d..a440df6 100644 --- a/components/org.apache.stratos.manager.console/console/controllers/forms/schema/configure/kubernetes-clusters.json +++ b/components/org.apache.stratos.manager.console/console/controllers/forms/schema/configure/kubernetes-clusters.json @@ -41,7 +41,7 @@ "type":"string", "id": "root/kubernetesMaster/privateIPAddress", "default": "172.17.8.100", - "required":true, + "required":false, "title": "Private IP Address", "name": "Private IP Address" }, @@ -61,6 +61,14 @@ "title": "Hostname", "name": "Hostname" }, + "endpoint": { + "type":"string", + "id": "root/kubernetesMaster/endpoint", + "default": "https://master.dev.kubernetes.example.org", + "required":false, + "title": "Endpoint", + "name": "Endpoint" + }, "property": { "id": "root/kubernetesMaster/property", "type": "array", @@ -204,4 +212,4 @@ } } } -} +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/stratos/blob/a4c516ea/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java index 1dad693..ace1e5a 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java @@ -1191,7 +1191,7 @@ public class StratosApiV41 extends AbstractApi { @Consumes("application/json") @AuthorizationAction("/permission/admin/stratos/domainMappings/manage") public Response removeDomainMappings(@PathParam("applicationId") String applicationId, - @PathParam("domainName") String domainName) throws RestAPIException { + @PathParam("domainName") String domainName) throws RestAPIException { try { StratosApiV41Utils.removeApplicationDomainMapping(applicationId, domainName); } catch (StratosManagerServiceDomainMappingExceptionException e) { @@ -1851,7 +1851,8 @@ public class StratosApiV41 extends AbstractApi { .build(); } catch (CloudControllerServiceInvalidKubernetesClusterExceptionException e) { return Response.status(Response.Status.BAD_REQUEST) - .entity(new ResponseMessageBean(ResponseMessageBean.ERROR, "Kubernetes cluster is invalid")) + .entity(new ResponseMessageBean(ResponseMessageBean.ERROR, "Kubernetes cluster is invalid "+ + e.getFaultMessage().getInvalidKubernetesClusterException().getMessage())) .build(); } } @@ -1879,7 +1880,8 @@ public class StratosApiV41 extends AbstractApi { throw e; } catch (CloudControllerServiceInvalidKubernetesClusterExceptionException e) { return Response.status(Response.Status.BAD_REQUEST) - .entity(new ResponseMessageBean(ResponseMessageBean.ERROR, "Kubernetes cluster is invalid")) + .entity(new ResponseMessageBean(ResponseMessageBean.ERROR, "Kubernetes cluster is invalid. " + + e.getFaultMessage().getInvalidKubernetesClusterException().getMessage())) .build(); } } http://git-wip-us.apache.org/repos/asf/stratos/blob/a4c516ea/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java index d1307eb..1277bfb 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java @@ -999,6 +999,7 @@ public class ObjectConverter { kubernetesMaster.setHostId(kubernetesMasterBean.getHostId()); kubernetesMaster.setPrivateIPAddress(kubernetesMasterBean.getPrivateIPAddress()); kubernetesMaster.setPublicIPAddress(kubernetesMasterBean.getPublicIPAddress()); + kubernetesMaster.setEndpoint(kubernetesMasterBean.getEndpoint()); kubernetesMaster.setHostname(kubernetesMasterBean.getHostname()); kubernetesMaster.setProperties(convertPropertyBeansToCCStubProperties(kubernetesMasterBean.getProperty())); @@ -1045,6 +1046,7 @@ public class ObjectConverter { kubernetesMasterBean.setHostname(kubernetesMaster.getHostname()); kubernetesMasterBean.setPrivateIPAddress(kubernetesMaster.getPrivateIPAddress()); kubernetesMasterBean.setPublicIPAddress(kubernetesMaster.getPublicIPAddress()); + kubernetesMasterBean.setEndpoint(kubernetesMaster.getEndpoint()); kubernetesMasterBean.setProperty(convertCCStubPropertiesToPropertyBeans(kubernetesMaster.getProperties())); return kubernetesMasterBean; }
