You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ra...@apache.org on 2014/09/11 17:43:46 UTC

[2/3] git commit: Kubernetes POJOs added, AS stub generation with correct ns2package, added Kubernetes query service APIs in AS

Kubernetes POJOs added, AS stub generation with correct ns2package, added Kubernetes query service APIs in AS


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/d8ad8428
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/d8ad8428
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/d8ad8428

Branch: refs/heads/docker-integration
Commit: d8ad842801cee2ef50ab6151e20fa470c3d58ece
Parents: 4979f64
Author: Akila Perera <ra...@gmail.com>
Authored: Thu Sep 11 21:12:07 2014 +0530
Committer: Akila Perera <ra...@gmail.com>
Committed: Thu Sep 11 21:12:07 2014 +0530

----------------------------------------------------------------------
 .../autoscaler/api/AutoScalerServiceImpl.java   |  18 ++
 .../interfaces/AutoScalerServiceInterface.java  |  20 ++
 .../manager/client/AutoscalerServiceClient.java | 211 ++++++++-------
 .../org.apache.stratos.rest.endpoint/pom.xml    |   2 +-
 .../bean/kubernetes/KubernetesGroup.java        |  75 +++++
 .../bean/kubernetes/KubernetesHost.java         |  67 +++++
 .../bean/kubernetes/KubernetesMaster.java       |  76 ++++++
 .../endpoint/bean/kubernetes/PortRange.java     |  44 +++
 .../endpoint/bean/kubernetes/Properties.java    |  46 ++++
 .../rest/endpoint/bean/kubernetes/Property.java |  62 +++++
 .../bean/util/converter/PojoConverter.java      | 271 ++++++++++---------
 .../rest/endpoint/services/ServiceUtils.java    |  63 +++--
 .../rest/endpoint/services/StratosAdmin.java    | 244 +++++++++--------
 .../pom.xml                                     |  47 ++--
 .../src/main/resources/AutoScalerService.wsdl   | 151 +++++++++++
 .../pom.xml                                     |  37 +--
 16 files changed, 1022 insertions(+), 412 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/d8ad8428/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
index 22b6a0d..a81618e 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/api/AutoScalerServiceImpl.java
@@ -121,6 +121,24 @@ public class AutoScalerServiceImpl implements AutoScalerServiceInterface {
         return depPol.getAllPartitions();
     }
 
+    @Override
+    public KubernetesGroup[] getAllKubernetesGroups() {
+        //TODO
+        return null;
+    }
+
+    @Override
+    public KubernetesMaster getMasterForKubernetesGroup(String kubernetesGroupId) {
+        //TODO
+        return null;
+    }
+
+    @Override
+    public KubernetesHost[] getHostsForKubernetesGroup(String kubernetesGroupId) {
+        //TODO
+        return null;
+    }
+
 
     @Override
     public boolean addKubernetesGroup(KubernetesGroup kubernetesGroup) throws InvalidKubernetesGroupException {

http://git-wip-us.apache.org/repos/asf/stratos/blob/d8ad8428/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
index e6a73a0..d53a2ed 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/interfaces/AutoScalerServiceInterface.java
@@ -59,6 +59,26 @@ public interface AutoScalerServiceInterface {
     public Partition[] getPartitionsOfDeploymentPolicy(String deploymentPolicyId);
 
     /**
+     * Retrieves registered Kubernetes Groups.
+     *
+     */
+    public KubernetesGroup[] getAllKubernetesGroups();
+
+    /**
+     * Retrieves Kubernetes Master for given Kubernetes Group ID.
+     *
+     * @param kubernetesGroupId
+     */
+    public KubernetesMaster getMasterForKubernetesGroup(String kubernetesGroupId);
+
+    /**
+     * Retrieves Kubernetes Hosts for given Kubernetes Group ID.
+     *
+     * @param kubernetesGroupId
+     */
+    public KubernetesHost[] getHostsForKubernetesGroup(String kubernetesGroupId);
+
+    /**
      * Register a Kubernetes cluster.
      *
      * @param kubernetesGroup

http://git-wip-us.apache.org/repos/asf/stratos/blob/d8ad8428/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/AutoscalerServiceClient.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/AutoscalerServiceClient.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/AutoscalerServiceClient.java
index b87d0f2..467c155 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/AutoscalerServiceClient.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/AutoscalerServiceClient.java
@@ -24,15 +24,13 @@ import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.transport.http.HTTPConstants;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.autoscaler.stub.*;
+import org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy;
+import org.apache.stratos.autoscaler.stub.kubernetes.KubernetesGroup;
+import org.apache.stratos.autoscaler.stub.policy.model.AutoscalePolicy;
 import org.apache.stratos.cloud.controller.stub.deployment.partition.Partition;
 import org.apache.stratos.manager.internal.DataHolder;
 import org.apache.stratos.manager.utils.CartridgeConstants;
-import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
-import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
-import org.apache.stratos.autoscaler.stub.AutoScalerServiceInvalidPartitionExceptionException;
-import org.apache.stratos.autoscaler.stub.AutoScalerServiceInvalidPolicyExceptionException;
-import org.apache.stratos.autoscaler.stub.AutoScalerServiceNonExistingLBExceptionException;
-import org.apache.stratos.autoscaler.stub.AutoScalerServiceStub;
 
 import java.rmi.RemoteException;
 
@@ -44,19 +42,18 @@ public class AutoscalerServiceClient {
     private static volatile AutoscalerServiceClient serviceClient;
 
     public AutoscalerServiceClient(String epr) throws AxisFault {
-    	
-    	
-    	
-    	String autosclaerSocketTimeout =
-    		System.getProperty(CartridgeConstants.AUTOSCALER_SOCKET_TIMEOUT) == null ? "300000": System.getProperty(CartridgeConstants.AUTOSCALER_SOCKET_TIMEOUT);
-		String autosclaerConnectionTimeout = 
-			System.getProperty(CartridgeConstants.AUTOSCALER_CONNECTION_TIMEOUT) == null ? "300000" : System.getProperty(CartridgeConstants.AUTOSCALER_CONNECTION_TIMEOUT) ;
-    	
+
+
+        String autosclaerSocketTimeout =
+                System.getProperty(CartridgeConstants.AUTOSCALER_SOCKET_TIMEOUT) == null ? "300000" : System.getProperty(CartridgeConstants.AUTOSCALER_SOCKET_TIMEOUT);
+        String autosclaerConnectionTimeout =
+                System.getProperty(CartridgeConstants.AUTOSCALER_CONNECTION_TIMEOUT) == null ? "300000" : System.getProperty(CartridgeConstants.AUTOSCALER_CONNECTION_TIMEOUT);
+
         ConfigurationContext clientConfigContext = DataHolder.getClientConfigContext();
         try {
             stub = new AutoScalerServiceStub(clientConfigContext, epr);
             stub._getServiceClient().getOptions().setProperty(HTTPConstants.SO_TIMEOUT, new Integer(autosclaerSocketTimeout));
-			stub._getServiceClient().getOptions().setProperty(HTTPConstants.CONNECTION_TIMEOUT, new Integer(autosclaerConnectionTimeout));
+            stub._getServiceClient().getOptions().setProperty(HTTPConstants.CONNECTION_TIMEOUT, new Integer(autosclaerConnectionTimeout));
 
         } catch (AxisFault axisFault) {
             String msg = "Failed to initiate autoscaler service client. " + axisFault.getMessage();
@@ -76,140 +73,144 @@ public class AutoscalerServiceClient {
         return serviceClient;
     }
 
-    public Partition[] getAvailablePartitions () throws RemoteException {
+    public Partition[] getAvailablePartitions() throws RemoteException {
 
-		Partition[] partitions;
-		partitions = stub.getAllAvailablePartitions();
+        Partition[] partitions;
+        partitions = stub.getAllAvailablePartitions();
 
-		return partitions;
-	}
+        return partitions;
+    }
+
+    public Partition getPartition(
+            String partitionId) throws RemoteException {
 
-	public Partition getPartition(
-			String partitionId) throws RemoteException {
+        Partition partition;
+        partition = stub.getPartition(partitionId);
 
-		Partition partition;
-		partition = stub.getPartition(partitionId);
+        return partition;
+    }
 
-		return partition;
-	}
+    public Partition[] getPartitionsOfGroup(
+            String deploymentPolicyId, String partitionGroupId)
+            throws RemoteException {
 
-	public Partition[] getPartitionsOfGroup(
-			String deploymentPolicyId, String partitionGroupId)
-			throws RemoteException {
+        Partition[] partitions;
+        partitions = stub.getPartitionsOfGroup(deploymentPolicyId,
+                partitionGroupId);
 
-		Partition[] partitions;
-		partitions = stub.getPartitionsOfGroup(deploymentPolicyId,
-				partitionGroupId);
+        return partitions;
+    }
 
-		return partitions;
-	}
-    
     public Partition[]
-    		getPartitionsOfDeploymentPolicy(
-			String deploymentPolicyId) throws RemoteException {
+    getPartitionsOfDeploymentPolicy(
+            String deploymentPolicyId) throws RemoteException {
 
-		Partition[] partitions;
-		partitions = stub.getPartitionsOfDeploymentPolicy(deploymentPolicyId);
+        Partition[] partitions;
+        partitions = stub.getPartitionsOfDeploymentPolicy(deploymentPolicyId);
 
-		return partitions;
-	}
+        return partitions;
+    }
 
-	public org.apache.stratos.autoscaler.partition.PartitionGroup[] getPartitionGroups(
-			String deploymentPolicyId) throws RemoteException {
+    public org.apache.stratos.autoscaler.stub.partition.PartitionGroup[] getPartitionGroups(
+            String deploymentPolicyId) throws RemoteException {
 
-		org.apache.stratos.autoscaler.partition.PartitionGroup[] partitionGroups;
-		partitionGroups = stub.getPartitionGroups(deploymentPolicyId);
+        org.apache.stratos.autoscaler.stub.partition.PartitionGroup[] partitionGroups;
+        partitionGroups = stub.getPartitionGroups(deploymentPolicyId);
 
-		return partitionGroups;
-	}
+        return partitionGroups;
+    }
 
-	public org.apache.stratos.autoscaler.policy.model.AutoscalePolicy[] getAutoScalePolicies()
-			throws RemoteException {
+    public org.apache.stratos.autoscaler.stub.policy.model.AutoscalePolicy[] getAutoScalePolicies()
+            throws RemoteException {
 
-		org.apache.stratos.autoscaler.policy.model.AutoscalePolicy[] autoscalePolicies;
-		autoscalePolicies = stub.getAllAutoScalingPolicy();
+        org.apache.stratos.autoscaler.stub.policy.model.AutoscalePolicy[] autoscalePolicies;
+        autoscalePolicies = stub.getAllAutoScalingPolicy();
 
-		return autoscalePolicies;
-	}
+        return autoscalePolicies;
+    }
 
-	public org.apache.stratos.autoscaler.policy.model.AutoscalePolicy getAutoScalePolicy(
-			String autoscalingPolicyId) throws RemoteException {
+    public org.apache.stratos.autoscaler.stub.policy.model.AutoscalePolicy getAutoScalePolicy(
+            String autoscalingPolicyId) throws RemoteException {
 
-		org.apache.stratos.autoscaler.policy.model.AutoscalePolicy autoscalePolicy;
-		autoscalePolicy = stub.getAutoscalingPolicy(autoscalingPolicyId);
+        org.apache.stratos.autoscaler.stub.policy.model.AutoscalePolicy autoscalePolicy;
+        autoscalePolicy = stub.getAutoscalingPolicy(autoscalingPolicyId);
 
-		return autoscalePolicy;
-	}
+        return autoscalePolicy;
+    }
 
-	public org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy[] getDeploymentPolicies()
-			throws RemoteException {
+    public org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy[] getDeploymentPolicies()
+            throws RemoteException {
 
-		org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy[] deploymentPolicies;
-		deploymentPolicies = stub.getAllDeploymentPolicies();
+        org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy[] deploymentPolicies;
+        deploymentPolicies = stub.getAllDeploymentPolicies();
 
-		return deploymentPolicies;
-	}
+        return deploymentPolicies;
+    }
 
-	public org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy[] getDeploymentPolicies(
-			String cartridgeType) throws RemoteException {
+    public org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy[] getDeploymentPolicies(
+            String cartridgeType) throws RemoteException {
 
-		org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy[] deploymentPolicies;
-		deploymentPolicies = stub
-				.getValidDeploymentPoliciesforCartridge(cartridgeType);
+        org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy[] deploymentPolicies;
+        deploymentPolicies = stub
+                .getValidDeploymentPoliciesforCartridge(cartridgeType);
 
-		return deploymentPolicies;
-	}
-    
-    public void checkLBExistenceAgainstPolicy(String clusterId, String deploymentPolicyId) throws RemoteException, 
-    	AutoScalerServiceNonExistingLBExceptionException {
-            stub.checkLBExistenceAgainstPolicy(clusterId, deploymentPolicyId);
+        return deploymentPolicies;
     }
-    
-	public boolean checkDefaultLBExistenceAgainstPolicy(
-			String deploymentPolicyId) throws RemoteException {
-		return stub.checkDefaultLBExistenceAgainstPolicy(deploymentPolicyId);
-	}
-	
+
+    public void checkLBExistenceAgainstPolicy(String clusterId, String deploymentPolicyId) throws RemoteException,
+            AutoScalerServiceNonExistingLBExceptionException {
+        stub.checkLBExistenceAgainstPolicy(clusterId, deploymentPolicyId);
+    }
+
+    public boolean checkDefaultLBExistenceAgainstPolicy(
+            String deploymentPolicyId) throws RemoteException {
+        return stub.checkDefaultLBExistenceAgainstPolicy(deploymentPolicyId);
+    }
+
     public boolean checkServiceLBExistenceAgainstPolicy(String serviceName, String deploymentPolicyId) throws RemoteException {
-            return stub.checkServiceLBExistenceAgainstPolicy(serviceName, deploymentPolicyId);
+        return stub.checkServiceLBExistenceAgainstPolicy(serviceName, deploymentPolicyId);
     }
 
-    public org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy getDeploymentPolicy (String deploymentPolicyId) throws RemoteException {
+    public org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy getDeploymentPolicy(String deploymentPolicyId) throws RemoteException {
 
-		org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy deploymentPolicy;
-		deploymentPolicy = stub.getDeploymentPolicy(deploymentPolicyId);
+        org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy deploymentPolicy;
+        deploymentPolicy = stub.getDeploymentPolicy(deploymentPolicyId);
 
-		return deploymentPolicy;
-	}
+        return deploymentPolicy;
+    }
 
-    public boolean deployDeploymentPolicy (DeploymentPolicy deploymentPolicy) throws RemoteException, 
-    	AutoScalerServiceInvalidPolicyExceptionException {
+    public boolean deployDeploymentPolicy(DeploymentPolicy deploymentPolicy) throws RemoteException,
+            AutoScalerServiceInvalidPolicyExceptionException {
 
-            return stub.addDeploymentPolicy(deploymentPolicy);
+        return stub.addDeploymentPolicy(deploymentPolicy);
 
     }
 
-    public boolean deployAutoscalingPolicy (AutoscalePolicy autoScalePolicy) throws RemoteException, 
-    	AutoScalerServiceInvalidPolicyExceptionException {
+    public boolean deployAutoscalingPolicy(AutoscalePolicy autoScalePolicy) throws RemoteException,
+            AutoScalerServiceInvalidPolicyExceptionException {
 
-            return stub.addAutoScalingPolicy(autoScalePolicy);
+        return stub.addAutoScalingPolicy(autoScalePolicy);
 
     }
 
-    public boolean deployPartition (Partition partition) throws RemoteException,
-    	AutoScalerServiceInvalidPartitionExceptionException {
+    public boolean deployPartition(Partition partition) throws RemoteException,
+            AutoScalerServiceInvalidPartitionExceptionException {
 
-            return stub.addPartition(partition);
+        return stub.addPartition(partition);
 
     }
-    
-    public String getDefaultLBClusterId (String deploymentPolicy) throws RemoteException {
-    	return stub.getDefaultLBClusterId(deploymentPolicy);
+
+    public String getDefaultLBClusterId(String deploymentPolicy) throws RemoteException {
+        return stub.getDefaultLBClusterId(deploymentPolicy);
     }
-    
-    
-    public String getServiceLBClusterId (String serviceType, String deploymentPolicy) throws RemoteException {
-    	return stub.getServiceLBClusterId(serviceType, deploymentPolicy);
+
+
+    public String getServiceLBClusterId(String serviceType, String deploymentPolicy) throws RemoteException {
+        return stub.getServiceLBClusterId(serviceType, deploymentPolicy);
+    }
+
+    public boolean deployKubernetesGroup(KubernetesGroup kubernetesGroup) throws RemoteException,
+            AutoScalerServiceInvalidKubernetesGroupExceptionException {
+        return stub.addKubernetesGroup(kubernetesGroup);
     }
-    
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/d8ad8428/components/org.apache.stratos.rest.endpoint/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/pom.xml b/components/org.apache.stratos.rest.endpoint/pom.xml
index 2cb5b67..36118b0 100644
--- a/components/org.apache.stratos.rest.endpoint/pom.xml
+++ b/components/org.apache.stratos.rest.endpoint/pom.xml
@@ -83,7 +83,7 @@
         <dependency>
             <groupId>org.apache.cxf</groupId>
             <artifactId>cxf-bundle</artifactId>
-            <version>2.7.7</version>
+            <version>2.7.12</version>
             <scope>provided</scope>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/stratos/blob/d8ad8428/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/KubernetesGroup.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/KubernetesGroup.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/KubernetesGroup.java
new file mode 100644
index 0000000..4eb6764
--- /dev/null
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/KubernetesGroup.java
@@ -0,0 +1,75 @@
+/*
+ * 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.rest.endpoint.bean.kubernetes;
+
+import org.apache.stratos.rest.endpoint.bean.cartridge.definition.PropertyBean;
+
+import javax.xml.bind.annotation.XmlRootElement;
+import java.util.List;
+
+@XmlRootElement
+public class KubernetesGroup {
+
+    private String groupId;
+    private List<KubernetesHost> kubernetesHosts;
+    private List<KubernetesMaster> kubernetesMasters;
+    private PortRange portRange;
+    private List<PropertyBean> property;
+
+    public String getGroupId() {
+        return groupId;
+    }
+
+    public void setGroupId(String groupId) {
+        this.groupId = groupId;
+    }
+
+    public List<KubernetesHost> getKubernetesHosts() {
+        return kubernetesHosts;
+    }
+
+    public void setKubernetesHosts(List<KubernetesHost> kubernetesHosts) {
+        this.kubernetesHosts = kubernetesHosts;
+    }
+
+    public List<KubernetesMaster> getKubernetesMasters() {
+        return kubernetesMasters;
+    }
+
+    public void setKubernetesMasters(List<KubernetesMaster> kubernetesMasters) {
+        this.kubernetesMasters = kubernetesMasters;
+    }
+
+    public PortRange getPortRange() {
+        return portRange;
+    }
+
+    public void setPortRange(PortRange portRange) {
+        this.portRange = portRange;
+    }
+
+    public List<PropertyBean> getProperty() {
+        return property;
+    }
+
+    public void setProperty(List<PropertyBean> property) {
+        this.property = property;
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/d8ad8428/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/KubernetesHost.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/KubernetesHost.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/KubernetesHost.java
new file mode 100644
index 0000000..864bc07
--- /dev/null
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/KubernetesHost.java
@@ -0,0 +1,67 @@
+/*
+ *
+ * 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.rest.endpoint.bean.kubernetes;
+
+import org.apache.stratos.rest.endpoint.bean.cartridge.definition.PropertyBean;
+
+import javax.xml.bind.annotation.XmlRootElement;
+import java.util.List;
+
+@XmlRootElement
+public class KubernetesHost {
+    private String hostId;
+    private String hostname;
+    private String hostIpAddress;
+    private List<PropertyBean> property;
+
+    public String getHostId() {
+        return hostId;
+    }
+
+    public void setHostId(String hostId) {
+        this.hostId = hostId;
+    }
+
+    public String getHostname() {
+        return hostname;
+    }
+
+    public void setHostname(String hostname) {
+        this.hostname = hostname;
+    }
+
+    public String getHostIpAddress() {
+        return hostIpAddress;
+    }
+
+    public void setHostIpAddress(String hostIpAddress) {
+        this.hostIpAddress = hostIpAddress;
+    }
+
+    public List<PropertyBean> getProperty() {
+        return property;
+    }
+
+    public void setProperty(List<PropertyBean> property) {
+        this.property = property;
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/d8ad8428/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/KubernetesMaster.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/KubernetesMaster.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/KubernetesMaster.java
new file mode 100644
index 0000000..d4c5392
--- /dev/null
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/KubernetesMaster.java
@@ -0,0 +1,76 @@
+/*
+ *
+ * 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.rest.endpoint.bean.kubernetes;
+
+import org.apache.stratos.rest.endpoint.bean.cartridge.definition.PropertyBean;
+
+import javax.xml.bind.annotation.XmlRootElement;
+import java.util.List;
+
+@XmlRootElement
+public class KubernetesMaster {
+    private String hostId;
+    private String hostname;
+    private String hostIpAddress;
+    private List<PropertyBean> property;
+    private String endpoint;
+
+    public String getHostId() {
+        return hostId;
+    }
+
+    public void setHostId(String hostId) {
+        this.hostId = hostId;
+    }
+
+    public String getHostname() {
+        return hostname;
+    }
+
+    public void setHostname(String hostname) {
+        this.hostname = hostname;
+    }
+
+    public String getHostIpAddress() {
+        return hostIpAddress;
+    }
+
+    public void setHostIpAddress(String hostIpAddress) {
+        this.hostIpAddress = hostIpAddress;
+    }
+
+    public List<PropertyBean> getProperty() {
+        return property;
+    }
+
+    public void setProperty(List<PropertyBean> property) {
+        this.property = property;
+    }
+
+    public String getEndpoint() {
+        return endpoint;
+    }
+
+    public void setEndpoint(String endpoint) {
+        this.endpoint = endpoint;
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/d8ad8428/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/PortRange.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/PortRange.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/PortRange.java
new file mode 100644
index 0000000..fd105bf
--- /dev/null
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/PortRange.java
@@ -0,0 +1,44 @@
+/*
+ * 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.rest.endpoint.bean.kubernetes;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+public class PortRange {
+    int upper;
+    int lower;
+
+    public int getUpper() {
+        return upper;
+    }
+
+    public void setUpper(int upper) {
+        this.upper = upper;
+    }
+
+    public int getLower() {
+        return lower;
+    }
+
+    public void setLower(int lower) {
+        this.lower = lower;
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/d8ad8428/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/Properties.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/Properties.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/Properties.java
new file mode 100644
index 0000000..93e1e68
--- /dev/null
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/Properties.java
@@ -0,0 +1,46 @@
+/*
+ * 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.rest.endpoint.bean.kubernetes;
+
+import java.io.Serializable;
+import java.util.Arrays;
+
+/**
+ * Had to wrap {@link Property} array using a class, since there's a bug in current
+ * stub generation.
+ */
+public class Properties implements Serializable{
+
+    private static final long serialVersionUID = 1986895299288322592L;
+    private Property[] properties;
+
+    public Property[] getProperties() {
+        return properties;
+    }
+
+    public void setProperties(Property[] properties) {
+        this.properties = properties;
+    }
+
+    @Override
+    public String toString() {
+        return "Properties [properties=" + Arrays.toString(properties) + "]";
+    }
+    
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/d8ad8428/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/Property.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/Property.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/Property.java
new file mode 100644
index 0000000..3ed20d7
--- /dev/null
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/kubernetes/Property.java
@@ -0,0 +1,62 @@
+/*
+ * 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.rest.endpoint.bean.kubernetes;
+
+import java.io.Serializable;
+
+/**
+ * Holds a property 
+ */
+public class Property implements Serializable{
+    
+    private static final long serialVersionUID = -2191782657999410197L;
+    private String name;
+    private String value;
+    
+    public Property(){
+        
+    }
+    
+    public Property(String name, String value){
+        this.setName(name);
+        this.setValue(value);
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    @Override
+    public String toString() {
+        return "Property [name=" + name + ", value=" + value + "]";
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/d8ad8428/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java
index d9a9e44..9d08f0a 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java
@@ -21,6 +21,7 @@ package org.apache.stratos.rest.endpoint.bean.util.converter;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.stratos.cloud.controller.stub.pojo.*;
+import org.apache.stratos.common.kubernetes.KubernetesGroup;
 import org.apache.stratos.manager.deploy.service.Service;
 import org.apache.stratos.manager.subscription.SubscriptionDomain;
 import org.apache.stratos.messaging.domain.topology.Cluster;
@@ -39,7 +40,7 @@ import java.util.List;
 
 public class PojoConverter {
 
-    public static CartridgeConfig populateCartridgeConfigPojo (CartridgeDefinitionBean cartridgeDefinitionBean) {
+    public static CartridgeConfig populateCartridgeConfigPojo(CartridgeDefinitionBean cartridgeDefinitionBean) {
 
         CartridgeConfig cartridgeConfig = new CartridgeConfig();
 
@@ -54,42 +55,42 @@ public class PojoConverter {
         cartridgeConfig.setDefaultDeploymentPolicy(cartridgeDefinitionBean.defaultDeploymentPolicy);
         cartridgeConfig.setServiceGroup(cartridgeDefinitionBean.serviceGroup);
 
-        
+
         //deployment information
-        if(cartridgeDefinitionBean.deployment != null) {
+        if (cartridgeDefinitionBean.deployment != null) {
             cartridgeConfig.setBaseDir(cartridgeDefinitionBean.deployment.baseDir);
-            if(cartridgeDefinitionBean.deployment.dir != null && !cartridgeDefinitionBean.deployment.dir.isEmpty()) {
+            if (cartridgeDefinitionBean.deployment.dir != null && !cartridgeDefinitionBean.deployment.dir.isEmpty()) {
                 cartridgeConfig.setDeploymentDirs(cartridgeDefinitionBean.deployment.dir.
                         toArray(new String[cartridgeDefinitionBean.deployment.dir.size()]));
             }
         }
         //port mapping
-        if(cartridgeDefinitionBean.portMapping != null && !cartridgeDefinitionBean.portMapping.isEmpty()) {
+        if (cartridgeDefinitionBean.portMapping != null && !cartridgeDefinitionBean.portMapping.isEmpty()) {
             cartridgeConfig.setPortMappings(getPortMappingsAsArray(cartridgeDefinitionBean.portMapping));
         }
-        
+
         //persistance mapping
-        if(cartridgeDefinitionBean.persistence != null) {
+        if (cartridgeDefinitionBean.persistence != null) {
             cartridgeConfig.setPersistence(getPersistence(cartridgeDefinitionBean.persistence));
         }
-        
+
         //IaaS
-        if(cartridgeDefinitionBean.iaasProvider != null && !cartridgeDefinitionBean.iaasProvider.isEmpty()) {
+        if (cartridgeDefinitionBean.iaasProvider != null && !cartridgeDefinitionBean.iaasProvider.isEmpty()) {
             cartridgeConfig.setIaasConfigs(getIaasConfigsAsArray(cartridgeDefinitionBean.iaasProvider));
         }
         //LB
-        if(cartridgeDefinitionBean.loadBalancer != null) {
+        if (cartridgeDefinitionBean.loadBalancer != null) {
             cartridgeConfig.setLbConfig(getLBConfig(cartridgeDefinitionBean.loadBalancer));
         }
         //Properties
-        if(cartridgeDefinitionBean.property != null && !cartridgeDefinitionBean.property.isEmpty()) {
+        if (cartridgeDefinitionBean.property != null && !cartridgeDefinitionBean.property.isEmpty()) {
             cartridgeConfig.setProperties(getProperties(cartridgeDefinitionBean.property));
         }
 
         return cartridgeConfig;
     }
 
-	private static LoadbalancerConfig getLBConfig(LoadBalancerBean loadBalancer) {
+    private static LoadbalancerConfig getLBConfig(LoadBalancerBean loadBalancer) {
         LoadbalancerConfig lbConfig = new LoadbalancerConfig();
         lbConfig.setType(loadBalancer.type);
         if (loadBalancer.property != null && !loadBalancer.property.isEmpty()) {
@@ -101,11 +102,11 @@ public class PojoConverter {
     private static PortMapping[] getPortMappingsAsArray(List<PortMappingBean> portMappingBeans) {
 
         //convert to an array
-        PortMappingBean [] portMappingBeanArray = new PortMappingBean[portMappingBeans.size()];
+        PortMappingBean[] portMappingBeanArray = new PortMappingBean[portMappingBeans.size()];
         portMappingBeans.toArray(portMappingBeanArray);
-        PortMapping [] portMappingArray = new PortMapping[portMappingBeanArray.length];
+        PortMapping[] portMappingArray = new PortMapping[portMappingBeanArray.length];
 
-        for (int i = 0 ; i < portMappingBeanArray.length ; i++) {
+        for (int i = 0; i < portMappingBeanArray.length; i++) {
             PortMapping portMapping = new PortMapping();
             portMapping.setProtocol(portMappingBeanArray[i].protocol);
             portMapping.setPort(Integer.toString(portMappingBeanArray[i].port));
@@ -116,14 +117,14 @@ public class PojoConverter {
         return portMappingArray;
     }
 
-    private static IaasConfig[] getIaasConfigsAsArray (List<IaasProviderBean> iaasProviderBeans) {
+    private static IaasConfig[] getIaasConfigsAsArray(List<IaasProviderBean> iaasProviderBeans) {
 
         //convert to an array
-        IaasProviderBean [] iaasProviderBeansArray = new IaasProviderBean[iaasProviderBeans.size()];
+        IaasProviderBean[] iaasProviderBeansArray = new IaasProviderBean[iaasProviderBeans.size()];
         iaasProviderBeans.toArray(iaasProviderBeansArray);
-        IaasConfig [] iaasConfigsArray =  new IaasConfig[iaasProviderBeansArray.length];
+        IaasConfig[] iaasConfigsArray = new IaasConfig[iaasProviderBeansArray.length];
 
-        for (int i = 0 ; i < iaasProviderBeansArray.length ; i++) {
+        for (int i = 0; i < iaasProviderBeansArray.length; i++) {
             IaasConfig iaasConfig = new IaasConfig();
             iaasConfig.setType(iaasProviderBeansArray[i].type);
             iaasConfig.setImageId(iaasProviderBeansArray[i].imageId);
@@ -134,12 +135,12 @@ public class PojoConverter {
             iaasConfig.setIdentity(iaasProviderBeansArray[i].identity);
             iaasConfig.setProvider(iaasProviderBeansArray[i].provider);
 
-            if(iaasProviderBeansArray[i].property != null && !iaasProviderBeansArray[i].property.isEmpty()) {
+            if (iaasProviderBeansArray[i].property != null && !iaasProviderBeansArray[i].property.isEmpty()) {
                 //set the Properties instance to IaasConfig instance
                 iaasConfig.setProperties(getProperties(iaasProviderBeansArray[i].property));
             }
 
-            if(iaasProviderBeansArray[i].networkInterfaces != null && !iaasProviderBeansArray[i].networkInterfaces.isEmpty()) {
+            if (iaasProviderBeansArray[i].networkInterfaces != null && !iaasProviderBeansArray[i].networkInterfaces.isEmpty()) {
                 iaasConfig.setNetworkInterfaces(PojoConverter.getNetworkInterfaces(iaasProviderBeansArray[i].networkInterfaces));
             }
 
@@ -148,17 +149,17 @@ public class PojoConverter {
         return iaasConfigsArray;
     }
 
-     public static Persistence getPersistence(PersistenceBean persistenceBean) {
+    public static Persistence getPersistence(PersistenceBean persistenceBean) {
         Persistence persistence = new Persistence();
         persistence.setPersistanceRequired(persistenceBean.isRequired);
         VolumeBean[] volumeBean = new VolumeBean[persistenceBean.volume.size()];
         persistenceBean.volume.toArray(volumeBean);
         Volume[] volumes = new Volume[persistenceBean.volume.size()];
-        for (int i = 0 ; i < volumes.length ; i++) {
+        for (int i = 0; i < volumes.length; i++) {
             Volume volume = new Volume();
             volume.setId(volumeBean[i].id);
             volume.setVolumeId(volumeBean[i].volumeId);
-            if(StringUtils.isEmpty(volume.getVolumeId())){
+            if (StringUtils.isEmpty(volume.getVolumeId())) {
                 volume.setSize(Integer.parseInt(volumeBean[i].size));
             }
 
@@ -177,11 +178,11 @@ public class PojoConverter {
     public static Properties getProperties(List<PropertyBean> propertyBeans) {
 
         //convert to an array
-        PropertyBean [] propertyBeansArray = new PropertyBean[propertyBeans.size()];
+        PropertyBean[] propertyBeansArray = new PropertyBean[propertyBeans.size()];
         propertyBeans.toArray(propertyBeansArray);
         Property[] propertyArray = new Property[propertyBeansArray.length];
 
-        for (int j = 0 ; j < propertyBeansArray.length ; j++) {
+        for (int j = 0; j < propertyBeansArray.length; j++) {
             Property property = new Property();
             property.setName(propertyBeansArray[j].name);
             property.setValue(propertyBeansArray[j].value);
@@ -197,7 +198,7 @@ public class PojoConverter {
         NetworkInterface[] networkInterfacesArray = new NetworkInterface[networkInterfaceBeans.size()];
 
         int i = 0;
-        for (NetworkInterfaceBean nib:networkInterfaceBeans) {
+        for (NetworkInterfaceBean nib : networkInterfaceBeans) {
             NetworkInterface networkInterface = new NetworkInterface();
             networkInterface.setNetworkUuid(nib.networkUuid);
             networkInterface.setFixedIp(nib.fixedIp);
@@ -222,18 +223,18 @@ public class PojoConverter {
         partition.setPartitionMin(partitionBean.partitionMin);
         partition.setPartitionMax(partitionBean.partitionMax);
 
-        if(partitionBean.property != null && !partitionBean.property.isEmpty()) {
+        if (partitionBean.property != null && !partitionBean.property.isEmpty()) {
             partition.setProperties(getProperties(partitionBean.property));
         }
 
         return partition;
     }
 
-    public static org.apache.stratos.autoscaler.policy.model.AutoscalePolicy convertToCCAutoscalerPojo (AutoscalePolicy
-                                                                                                                autoscalePolicyBean) {
+    public static org.apache.stratos.autoscaler.stub.policy.model.AutoscalePolicy convertToCCAutoscalerPojo(AutoscalePolicy
+                                                                                                                    autoscalePolicyBean) {
 
-        org.apache.stratos.autoscaler.policy.model.AutoscalePolicy autoscalePolicy = new
-                org.apache.stratos.autoscaler.policy.model.AutoscalePolicy();
+        org.apache.stratos.autoscaler.stub.policy.model.AutoscalePolicy autoscalePolicy = new
+                org.apache.stratos.autoscaler.stub.policy.model.AutoscalePolicy();
 
         autoscalePolicy.setId(autoscalePolicyBean.getId());
         autoscalePolicy.setDescription(autoscalePolicyBean.getDescription());
@@ -241,14 +242,14 @@ public class PojoConverter {
 
         if (autoscalePolicyBean.getLoadThresholds() != null) {
 
-            org.apache.stratos.autoscaler.policy.model.LoadThresholds loadThresholds = new
-                    org.apache.stratos.autoscaler.policy.model.LoadThresholds();
+            org.apache.stratos.autoscaler.stub.policy.model.LoadThresholds loadThresholds = new
+                    org.apache.stratos.autoscaler.stub.policy.model.LoadThresholds();
 
-            if(autoscalePolicyBean.getLoadThresholds().loadAverage != null) {
+            if (autoscalePolicyBean.getLoadThresholds().loadAverage != null) {
 
                 //set load average information
-                org.apache.stratos.autoscaler.policy.model.LoadAverageThresholds loadAverage = new
-                        org.apache.stratos.autoscaler.policy.model.LoadAverageThresholds();
+                org.apache.stratos.autoscaler.stub.policy.model.LoadAverageThresholds loadAverage = new
+                        org.apache.stratos.autoscaler.stub.policy.model.LoadAverageThresholds();
                 loadAverage.setUpperLimit(autoscalePolicyBean.getLoadThresholds().loadAverage.upperLimit);
                 loadAverage.setLowerLimit(autoscalePolicyBean.getLoadThresholds().loadAverage.lowerLimit);
                 //set load average
@@ -256,8 +257,8 @@ public class PojoConverter {
             }
             if (autoscalePolicyBean.getLoadThresholds().requestsInFlight != null) {
 
-                org.apache.stratos.autoscaler.policy.model.RequestsInFlightThresholds requestsInFlight = new
-                        org.apache.stratos.autoscaler.policy.model.RequestsInFlightThresholds();
+                org.apache.stratos.autoscaler.stub.policy.model.RequestsInFlightThresholds requestsInFlight = new
+                        org.apache.stratos.autoscaler.stub.policy.model.RequestsInFlightThresholds();
                 //set request in flight information
                 requestsInFlight.setUpperLimit(autoscalePolicyBean.getLoadThresholds().requestsInFlight.upperLimit);
                 requestsInFlight.setLowerLimit(autoscalePolicyBean.getLoadThresholds().requestsInFlight.lowerLimit);
@@ -266,8 +267,8 @@ public class PojoConverter {
             }
             if (autoscalePolicyBean.getLoadThresholds().memoryConsumption != null) {
 
-                org.apache.stratos.autoscaler.policy.model.MemoryConsumptionThresholds memoryConsumption = new
-                        org.apache.stratos.autoscaler.policy.model.MemoryConsumptionThresholds();
+                org.apache.stratos.autoscaler.stub.policy.model.MemoryConsumptionThresholds memoryConsumption = new
+                        org.apache.stratos.autoscaler.stub.policy.model.MemoryConsumptionThresholds();
 
                 //set memory consumption information
                 memoryConsumption.setUpperLimit(autoscalePolicyBean.getLoadThresholds().memoryConsumption.upperLimit);
@@ -282,33 +283,33 @@ public class PojoConverter {
         return autoscalePolicy;
     }
 
-    public static org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy convetToCCDeploymentPolicyPojo (DeploymentPolicy
-                                                                                                                           deploymentPolicyBean) {
+    public static org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy convetToCCDeploymentPolicyPojo(DeploymentPolicy
+                                                                                                                               deploymentPolicyBean) {
 
-        org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy deploymentPolicy = new
-                org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy();
+        org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy deploymentPolicy = new
+                org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy();
 
         deploymentPolicy.setId(deploymentPolicyBean.id);
         deploymentPolicy.setDescription(deploymentPolicyBean.description);
-        if(deploymentPolicyBean.partitionGroup != null && !deploymentPolicyBean.partitionGroup.isEmpty()) {
+        if (deploymentPolicyBean.partitionGroup != null && !deploymentPolicyBean.partitionGroup.isEmpty()) {
             deploymentPolicy.setPartitionGroups(convertToCCPartitionGroup(deploymentPolicyBean.partitionGroup));
         }
 
         return deploymentPolicy;
     }
 
-    private static org.apache.stratos.autoscaler.partition.PartitionGroup[] convertToCCPartitionGroup (List<PartitionGroup> partitionGroupBeans) {
+    private static org.apache.stratos.autoscaler.stub.partition.PartitionGroup[] convertToCCPartitionGroup(List<PartitionGroup> partitionGroupBeans) {
 
-        org.apache.stratos.autoscaler.partition.PartitionGroup[] partitionGroups = new
-                org.apache.stratos.autoscaler.partition.PartitionGroup[partitionGroupBeans.size()];
+        org.apache.stratos.autoscaler.stub.partition.PartitionGroup[] partitionGroups = new
+                org.apache.stratos.autoscaler.stub.partition.PartitionGroup[partitionGroupBeans.size()];
 
-        for (int i = 0 ; i < partitionGroupBeans.size() ; i++) {
-            org.apache.stratos.autoscaler.partition.PartitionGroup partitionGroup = new
-                    org.apache.stratos.autoscaler.partition.PartitionGroup();
+        for (int i = 0; i < partitionGroupBeans.size(); i++) {
+            org.apache.stratos.autoscaler.stub.partition.PartitionGroup partitionGroup = new
+                    org.apache.stratos.autoscaler.stub.partition.PartitionGroup();
             partitionGroup.setId(partitionGroupBeans.get(i).id);
             partitionGroup.setPartitionAlgo(partitionGroupBeans.get(i).partitionAlgo);
 
-            if(partitionGroupBeans.get(i).partition != null && !partitionGroupBeans.get(i).partition.isEmpty()) {
+            if (partitionGroupBeans.get(i).partition != null && !partitionGroupBeans.get(i).partition.isEmpty()) {
                 partitionGroup.setPartitions(convertToCCPartitionPojos(partitionGroupBeans.get(i).partition));
             }
 
@@ -328,29 +329,29 @@ public class PojoConverter {
         cluster1.member = new ArrayList<Member>();
         cluster1.hostNames = new ArrayList<String>();
 
-        for(org.apache.stratos.messaging.domain.topology.Member tmp : cluster.getMembers()) {
+        for (org.apache.stratos.messaging.domain.topology.Member tmp : cluster.getMembers()) {
             Member member = new Member();
             member.clusterId = tmp.getClusterId();
-            member.lbClusterId  = tmp.getLbClusterId();
+            member.lbClusterId = tmp.getLbClusterId();
             member.networkPartitionId = tmp.getNetworkPartitionId();
             member.partitionId = tmp.getPartitionId();
             member.memberId = tmp.getMemberId();
-            if(tmp.getMemberIp() == null) {
+            if (tmp.getMemberIp() == null) {
                 member.memberIp = "NULL";
             } else {
                 member.memberIp = tmp.getMemberIp();
             }
-            if(tmp.getMemberPublicIp() == null) {
-            	member.memberPublicIp = "NULL";
+            if (tmp.getMemberPublicIp() == null) {
+                member.memberPublicIp = "NULL";
             } else {
-            	member.memberPublicIp = tmp.getMemberPublicIp();
+                member.memberPublicIp = tmp.getMemberPublicIp();
             }
             member.serviceName = tmp.getServiceName();
             member.status = tmp.getStatus().toString();
             cluster1.member.add(member);
         }
 
-        for(String tmp1 : cluster.getHostNames()) {
+        for (String tmp1 : cluster.getHostNames()) {
             cluster1.hostNames.add(tmp1);
         }
 
@@ -362,24 +363,24 @@ public class PojoConverter {
 
         org.apache.stratos.cloud.controller.stub.deployment.partition.Partition[] partitions =
                 new org.apache.stratos.cloud.controller.stub.deployment.partition.Partition[partitionList.size()];
-        for (int i = 0; i < partitionList.size() ; i++) {
+        for (int i = 0; i < partitionList.size(); i++) {
             partitions[i] = convertToCCPartitionPojo(partitionList.get(i));
         }
 
         return partitions;
     }
 
-    public static Partition[] populatePartitionPojos (org.apache.stratos.cloud.controller.stub.deployment.partition.Partition[]
+    public static Partition[] populatePartitionPojos(org.apache.stratos.cloud.controller.stub.deployment.partition.Partition[]
                                                              partitions) {
 
-        Partition [] partitionBeans;
-        if(partitions == null) {
+        Partition[] partitionBeans;
+        if (partitions == null) {
             partitionBeans = new Partition[0];
             return partitionBeans;
         }
 
         partitionBeans = new Partition[partitions.length];
-        for (int i = 0 ; i < partitions.length ; i++) {
+        for (int i = 0; i < partitions.length; i++) {
             /*Partition partition = new Partition();
             partition.id = partitions[i].getId();
             partition.provider = partitions[i].getProvider();
@@ -395,11 +396,11 @@ public class PojoConverter {
         return partitionBeans;
     }
 
-    public static Partition populatePartitionPojo (org.apache.stratos.cloud.controller.stub.deployment.partition.Partition
-                                                             partition) {
+    public static Partition populatePartitionPojo(org.apache.stratos.cloud.controller.stub.deployment.partition.Partition
+                                                          partition) {
 
         Partition partitionBeans = new Partition();
-        if(partition == null) {
+        if (partition == null) {
             return partitionBeans;
         }
 
@@ -409,49 +410,49 @@ public class PojoConverter {
         partitionBeans.partitionMin = partition.getPartitionMin();
         partitionBeans.partitionMax = partition.getPartitionMax();
         //properties 
-        if(partition.getProperties() != null) {
+        if (partition.getProperties() != null) {
             List<PropertyBean> propertyBeans = getPropertyBeans(partition.getProperties());
             partitionBeans.property = propertyBeans;
         }
 
         return partitionBeans;
     }
-    
-	public static List<SubscriptionDomainBean> populateSubscriptionDomainPojos(List<SubscriptionDomain> subscriptionDomains) {
-
-		List<SubscriptionDomainBean> subscriptionDomainBeans = new ArrayList<SubscriptionDomainBean>();
-		
-		if (subscriptionDomains == null) {
-			return subscriptionDomainBeans;
-		}
-		
-		for (SubscriptionDomain subscriptionDomain : subscriptionDomains) {
-			subscriptionDomainBeans.add(populateSubscriptionDomainPojo(subscriptionDomain));
-		}
-
-		return subscriptionDomainBeans;
-	}
-    
-	public static SubscriptionDomainBean populateSubscriptionDomainPojo(SubscriptionDomain subscriptionDomain) {
-
-		SubscriptionDomainBean subscriptionDomainBean = new SubscriptionDomainBean();
-		
-		if (subscriptionDomain == null) {
-			return subscriptionDomainBean;
-		}
-		subscriptionDomainBean.domainName = subscriptionDomain.getDomainName();
-		subscriptionDomainBean.applicationContext = subscriptionDomain.getApplicationContext();
-
-		return subscriptionDomainBean;
-	}
-
-    private static List<PropertyBean> getPropertyBeans (Properties properties) {
+
+    public static List<SubscriptionDomainBean> populateSubscriptionDomainPojos(List<SubscriptionDomain> subscriptionDomains) {
+
+        List<SubscriptionDomainBean> subscriptionDomainBeans = new ArrayList<SubscriptionDomainBean>();
+
+        if (subscriptionDomains == null) {
+            return subscriptionDomainBeans;
+        }
+
+        for (SubscriptionDomain subscriptionDomain : subscriptionDomains) {
+            subscriptionDomainBeans.add(populateSubscriptionDomainPojo(subscriptionDomain));
+        }
+
+        return subscriptionDomainBeans;
+    }
+
+    public static SubscriptionDomainBean populateSubscriptionDomainPojo(SubscriptionDomain subscriptionDomain) {
+
+        SubscriptionDomainBean subscriptionDomainBean = new SubscriptionDomainBean();
+
+        if (subscriptionDomain == null) {
+            return subscriptionDomainBean;
+        }
+        subscriptionDomainBean.domainName = subscriptionDomain.getDomainName();
+        subscriptionDomainBean.applicationContext = subscriptionDomain.getApplicationContext();
+
+        return subscriptionDomainBean;
+    }
+
+    private static List<PropertyBean> getPropertyBeans(Properties properties) {
 
         List<PropertyBean> propertyBeans = null;
-        if(properties.getProperties() != null && properties.getProperties().length != 0) {
-            Property [] propertyArr = properties.getProperties();
+        if (properties.getProperties() != null && properties.getProperties().length != 0) {
+            Property[] propertyArr = properties.getProperties();
             propertyBeans = new ArrayList<PropertyBean>();
-            for (int i = 0; i < propertyArr.length ; i++) {
+            for (int i = 0; i < propertyArr.length; i++) {
                 PropertyBean propertyBean = new PropertyBean();
                 propertyBean.name = propertyArr[i].getName();
                 propertyBean.value = propertyArr[i].getValue();
@@ -461,17 +462,17 @@ public class PojoConverter {
         return propertyBeans;
     }
 
-    public static AutoscalePolicy[] populateAutoscalePojos(org.apache.stratos.autoscaler.policy.model.AutoscalePolicy[]
+    public static AutoscalePolicy[] populateAutoscalePojos(org.apache.stratos.autoscaler.stub.policy.model.AutoscalePolicy[]
                                                                    autoscalePolicies) {
 
-        AutoscalePolicy [] autoscalePolicyBeans;
-        if(autoscalePolicies == null) {
+        AutoscalePolicy[] autoscalePolicyBeans;
+        if (autoscalePolicies == null) {
             autoscalePolicyBeans = new AutoscalePolicy[0];
             return autoscalePolicyBeans;
         }
 
         autoscalePolicyBeans = new AutoscalePolicy[autoscalePolicies.length];
-        for (int i = 0 ; i < autoscalePolicies.length ; i++) {
+        for (int i = 0; i < autoscalePolicies.length; i++) {
             /*AutoscalePolicy autoscalePolicy = new AutoscalePolicy();
             autoscalePolicy.id = autoscalePolicies[i].getId();
             autoscalePolicy.displayName = autoscalePolicies[i].getDisplayName();
@@ -484,11 +485,11 @@ public class PojoConverter {
         return autoscalePolicyBeans;
     }
 
-    public static AutoscalePolicy populateAutoscalePojo(org.apache.stratos.autoscaler.policy.model.AutoscalePolicy
-                                                                   autoscalePolicy) {
+    public static AutoscalePolicy populateAutoscalePojo(org.apache.stratos.autoscaler.stub.policy.model.AutoscalePolicy
+                                                                autoscalePolicy) {
 
         AutoscalePolicy autoscalePolicyBean = new AutoscalePolicy();
-        if(autoscalePolicy == null) {
+        if (autoscalePolicy == null) {
             return autoscalePolicyBean;
         }
 
@@ -496,30 +497,30 @@ public class PojoConverter {
         autoscalePolicyBean.setDescription(autoscalePolicy.getDescription());
         autoscalePolicyBean.setDisplayName(autoscalePolicy.getDisplayName());
         autoscalePolicyBean.setDescription(autoscalePolicy.getDescription());
-        if(autoscalePolicy.getLoadThresholds() != null) {
+        if (autoscalePolicy.getLoadThresholds() != null) {
             autoscalePolicyBean.setLoadThresholds(populateLoadThresholds(autoscalePolicy.getLoadThresholds()));
         }
 
         return autoscalePolicyBean;
     }
 
-    private static LoadThresholds populateLoadThresholds (org.apache.stratos.autoscaler.policy.model.LoadThresholds
-                                                                  loadThresholds) {
+    private static LoadThresholds populateLoadThresholds(org.apache.stratos.autoscaler.stub.policy.model.LoadThresholds
+                                                                 loadThresholds) {
 
         LoadThresholds loadThresholdBean = new LoadThresholds();
-        if(loadThresholds.getLoadAverage() != null) {
+        if (loadThresholds.getLoadAverage() != null) {
             LoadAverageThresholds loadAverage = new LoadAverageThresholds();
             loadAverage.upperLimit = loadThresholds.getLoadAverage().getUpperLimit();
             loadAverage.lowerLimit = loadThresholds.getLoadAverage().getLowerLimit();
             loadThresholdBean.loadAverage = loadAverage;
         }
-        if(loadThresholds.getMemoryConsumption() != null) {
+        if (loadThresholds.getMemoryConsumption() != null) {
             MemoryConsumptionThresholds memoryConsumption = new MemoryConsumptionThresholds();
             memoryConsumption.upperLimit = loadThresholds.getMemoryConsumption().getUpperLimit();
             memoryConsumption.lowerLimit = loadThresholds.getMemoryConsumption().getLowerLimit();
             loadThresholdBean.memoryConsumption = memoryConsumption;
         }
-        if(loadThresholds.getRequestsInFlight() != null) {
+        if (loadThresholds.getRequestsInFlight() != null) {
             RequestsInFlightThresholds requestsInFlight = new RequestsInFlightThresholds();
             requestsInFlight.upperLimit = loadThresholds.getRequestsInFlight().getUpperLimit();
             requestsInFlight.lowerLimit = loadThresholds.getRequestsInFlight().getLowerLimit();
@@ -529,15 +530,15 @@ public class PojoConverter {
         return loadThresholdBean;
     }
 
-    public static DeploymentPolicy[] populateDeploymentPolicyPojos(org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy[]
+    public static DeploymentPolicy[] populateDeploymentPolicyPojos(org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy[]
                                                                            deploymentPolicies) {
         DeploymentPolicy[] deploymentPolicyBeans;
-        if(deploymentPolicies == null) {
+        if (deploymentPolicies == null) {
             return null;
         }
 
         deploymentPolicyBeans = new DeploymentPolicy[deploymentPolicies.length];
-        for (int i = 0 ; i < deploymentPolicies.length ; i++) {
+        for (int i = 0; i < deploymentPolicies.length; i++) {
             //DeploymentPolicy deploymentPolicy = new DeploymentPolicy();
             //deploymentPolicy.id = deploymentPolicies[i].getId();
 
@@ -552,18 +553,18 @@ public class PojoConverter {
         return deploymentPolicyBeans;
     }
 
-    public static DeploymentPolicy populateDeploymentPolicyPojo (org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy
-                                                                 deploymentPolicy) {
+    public static DeploymentPolicy populateDeploymentPolicyPojo(org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy
+                                                                        deploymentPolicy) {
 
         DeploymentPolicy deploymentPolicyBean = new DeploymentPolicy();
-        if(deploymentPolicy == null) {
+        if (deploymentPolicy == null) {
             return deploymentPolicyBean;
         }
 
         deploymentPolicyBean.id = deploymentPolicy.getId();
         deploymentPolicyBean.description = deploymentPolicy.getDescription();
 
-        if (deploymentPolicy.getPartitionGroups() != null &&  deploymentPolicy.getPartitionGroups().length > 0) {
+        if (deploymentPolicy.getPartitionGroups() != null && deploymentPolicy.getPartitionGroups().length > 0) {
             deploymentPolicyBean.partitionGroup = Arrays.asList(populatePartitionGroupPojos(deploymentPolicy.getPartitionGroups()));
         }
 
@@ -574,33 +575,33 @@ public class PojoConverter {
         return deploymentPolicyBean;
     }
 
-    public static PartitionGroup populatePartitionGroupPojo (org.apache.stratos.autoscaler.partition.PartitionGroup
-                                                                         partitionGroup) {
+    public static PartitionGroup populatePartitionGroupPojo(org.apache.stratos.autoscaler.stub.partition.PartitionGroup
+                                                                    partitionGroup) {
 
         PartitionGroup partitionGroupBean = new PartitionGroup();
-        if(partitionGroup == null){
+        if (partitionGroup == null) {
             return partitionGroupBean;
         }
 
         partitionGroupBean.id = partitionGroup.getId();
         partitionGroupBean.partitionAlgo = partitionGroup.getPartitionAlgo();
-        if(partitionGroup.getPartitions() != null && partitionGroup.getPartitions().length > 0) {
+        if (partitionGroup.getPartitions() != null && partitionGroup.getPartitions().length > 0) {
             partitionGroupBean.partition = getPartitionList(partitionGroup.getPartitions());
         }
 
         return partitionGroupBean;
     }
 
-    public static PartitionGroup [] populatePartitionGroupPojos (org.apache.stratos.autoscaler.partition.PartitionGroup[] partitionGroups) {
+    public static PartitionGroup[] populatePartitionGroupPojos(org.apache.stratos.autoscaler.stub.partition.PartitionGroup[] partitionGroups) {
 
         PartitionGroup[] partitionGroupsBeans;
-        if(partitionGroups == null) {
+        if (partitionGroups == null) {
             partitionGroupsBeans = new PartitionGroup[0];
             return partitionGroupsBeans;
         }
 
         partitionGroupsBeans = new PartitionGroup[partitionGroups.length];
-        for (int i = 0 ; i < partitionGroups.length ; i ++) {
+        for (int i = 0; i < partitionGroups.length; i++) {
             /*PartitionGroup partitionGroup = new PartitionGroup();
             partitionGroup.id = partitionGroups[i].getId();
             partitionGroup.partitionAlgo = partitionGroups[i].getPartitionAlgo();
@@ -615,10 +616,10 @@ public class PojoConverter {
     }
 
     private static List<Partition> getPartitionList(org.apache.stratos.cloud.controller.stub.deployment.partition.Partition[]
-                                                         partitions) {
+                                                            partitions) {
 
         List<Partition> partitionList = new ArrayList<Partition>();
-        for (int i = 0 ; i < partitions.length ; i++) {
+        for (int i = 0; i < partitions.length; i++) {
             Partition partition = new Partition();
             partition.id = partitions[i].getId();
             partition.provider = partitions[i].getProvider();
@@ -633,7 +634,7 @@ public class PojoConverter {
         return partitionList;
     }
 
-    public static ServiceDefinitionBean convertToServiceDefinitionBean (Service service) {
+    public static ServiceDefinitionBean convertToServiceDefinitionBean(Service service) {
 
         ServiceDefinitionBean serviceDefinitionBean = new ServiceDefinitionBean();
         serviceDefinitionBean.setCartridgeType(service.getType());
@@ -645,7 +646,7 @@ public class PojoConverter {
         return serviceDefinitionBean;
     }
 
-    public static List<ServiceDefinitionBean> convertToServiceDefinitionBeans (Collection<Service> services) {
+    public static List<ServiceDefinitionBean> convertToServiceDefinitionBeans(Collection<Service> services) {
 
         List<ServiceDefinitionBean> serviceDefinitionBeans = new ArrayList<ServiceDefinitionBean>();
 
@@ -655,4 +656,8 @@ public class PojoConverter {
 
         return serviceDefinitionBeans;
     }
+
+    public static org.apache.stratos.autoscaler.stub.kubernetes.KubernetesGroup convertToASKubernetesGroupPojo(KubernetesGroup kubernetesGroupBean) {
+        return null;
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/d8ad8428/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
index 6d3bd46..9ac20e7 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
@@ -23,9 +23,10 @@ import org.apache.axis2.context.ConfigurationContext;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
+import org.apache.stratos.autoscaler.stub.AutoScalerServiceInvalidKubernetesGroupExceptionException;
 import org.apache.stratos.autoscaler.stub.AutoScalerServiceInvalidPartitionExceptionException;
 import org.apache.stratos.autoscaler.stub.AutoScalerServiceInvalidPolicyExceptionException;
+import org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy;
 import org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidCartridgeTypeExceptionException;
 import org.apache.stratos.cloud.controller.stub.pojo.CartridgeConfig;
 import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo;
@@ -68,10 +69,7 @@ import org.apache.stratos.rest.endpoint.bean.cartridge.definition.ServiceDefinit
 import org.apache.stratos.rest.endpoint.bean.repositoryNotificationInfoBean.Payload;
 import org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomainBean;
 import org.apache.stratos.rest.endpoint.bean.util.converter.PojoConverter;
-import org.apache.stratos.rest.endpoint.exception.KubernetesGroupDoesNotExistException;
-import org.apache.stratos.rest.endpoint.exception.KubernetesHostAlreadyDeployedException;
-import org.apache.stratos.rest.endpoint.exception.KubernetesMasterDoesNotExistException;
-import org.apache.stratos.rest.endpoint.exception.RestAPIException;
+import org.apache.stratos.rest.endpoint.exception.*;
 
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.Response.Status;
@@ -169,7 +167,6 @@ public class ServiceUtils {
     }
 
 
-
     public static void deployAutoscalingPolicy(AutoscalePolicy autoscalePolicyBean) throws RestAPIException {
 
         //log.info("***** " + cartridgeDefinitionBean.toString() + " *****");
@@ -177,7 +174,7 @@ public class ServiceUtils {
         AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
         if (autoscalerServiceClient != null) {
 
-            org.apache.stratos.autoscaler.policy.model.AutoscalePolicy autoscalePolicy = PojoConverter.
+            org.apache.stratos.autoscaler.stub.policy.model.AutoscalePolicy autoscalePolicy = PojoConverter.
                     convertToCCAutoscalerPojo(autoscalePolicyBean);
 
             try {
@@ -205,7 +202,7 @@ public class ServiceUtils {
         AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
         if (autoscalerServiceClient != null) {
 
-            org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy deploymentPolicy =
+            org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy deploymentPolicy =
                     PojoConverter.convetToCCDeploymentPolicyPojo(deploymentPolicyBean);
 
             try {
@@ -329,7 +326,7 @@ public class ServiceUtils {
 
     public static AutoscalePolicy[] getAutoScalePolicies() throws RestAPIException {
 
-        org.apache.stratos.autoscaler.policy.model.AutoscalePolicy[] autoscalePolicies = null;
+        org.apache.stratos.autoscaler.stub.policy.model.AutoscalePolicy[] autoscalePolicies = null;
         AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
         if (autoscalerServiceClient != null) {
             try {
@@ -346,7 +343,7 @@ public class ServiceUtils {
 
     public static AutoscalePolicy getAutoScalePolicy(String autoscalePolicyId) throws RestAPIException {
 
-        org.apache.stratos.autoscaler.policy.model.AutoscalePolicy autoscalePolicy = null;
+        org.apache.stratos.autoscaler.stub.policy.model.AutoscalePolicy autoscalePolicy = null;
         AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
         if (autoscalerServiceClient != null) {
             try {
@@ -438,7 +435,7 @@ public class ServiceUtils {
     public static PartitionGroup[] getPartitionGroups(String deploymentPolicyId)
             throws RestAPIException {
 
-        org.apache.stratos.autoscaler.partition.PartitionGroup[] partitionGroups = null;
+        org.apache.stratos.autoscaler.stub.partition.PartitionGroup[] partitionGroups = null;
         AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
         if (autoscalerServiceClient != null) {
             try {
@@ -681,7 +678,7 @@ public class ServiceUtils {
         }
         
 		/*if (availableMultitenantCartridges.isEmpty()) {
-			String msg = "Cannot find any active deployed service for tenant [id] "+tenantId;
+            String msg = "Cannot find any active deployed service for tenant [id] "+tenantId;
 			log.error(msg);
 			throw new RestAPIException(msg);
 		}*/
@@ -759,7 +756,7 @@ public class ServiceUtils {
         }
         
         /*if(cartridges.isEmpty()) {
-        	String msg = "Cannot find any subscribed Cartridge, matching the given string: "+cartridgeSearchString;
+            String msg = "Cannot find any subscribed Cartridge, matching the given string: "+cartridgeSearchString;
             log.error(msg);
             throw new RestAPIException(msg);
         }*/
@@ -1262,27 +1259,55 @@ public class ServiceUtils {
 
     }
 
-    public static boolean deployKubernetesGroup(KubernetesGroup kubernetesGroup) throws KubernetesGroupDoesNotExistException {
+    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);
+
+            try {
+                autoscalerServiceClient.deployKubernetesGroup(kubernetesGroup);
+            } catch (RemoteException e) {
+                log.error(e.getMessage(), e);
+                throw new RestAPIException(e.getMessage(), e);
+            } catch (AutoScalerServiceInvalidKubernetesGroupExceptionException e) {
+                String message = e.getFaultMessage().getInvalidKubernetesGroupException().getMessage();
+                log.error(message, e);
+                throw new RestAPIException(message, e);
+            }
+        }
+
         return false;
     }
 
-    public static boolean deployKubernetesHost(String kubernetesGroupId, KubernetesHost kubernetesHost) throws KubernetesHostAlreadyDeployedException{
+    public static boolean deployKubernetesHost(String kubernetesGroupId, KubernetesHost kubernetesHost)
+            throws KubernetesHostAlreadyDeployedException {
         return false;
     }
 
-    public static boolean updateKubernetesMaster(KubernetesMaster kubernetesMaster) throws KubernetesMasterDoesNotExistException {
+    public static boolean updateKubernetesMaster(KubernetesMaster kubernetesMaster)
+            throws KubernetesMasterDoesNotExistException {
         return false;
     }
 
-    public static KubernetesGroup[] getAvailableKubernetesGroups() {
+    public static KubernetesGroup[] getAvailableKubernetesGroups() throws RestAPIException {
         return null;
     }
 
-    public static KubernetesGroup getKubernetesGroup(String kubernetesGroupId) throws KubernetesGroupDoesNotExistException {
+    public static KubernetesGroup getKubernetesGroup(String kubernetesGroupId)
+            throws KubernetesGroupDoesNotExistException {
         return null;
     }
 
-    public static boolean undeployKubernetesGroup(String kubernetesGroupId) throws KubernetesGroupDoesNotExistException {
+    public static boolean undeployKubernetesGroup(String kubernetesGroupId)
+            throws KubernetesGroupDoesNotExistException {
+        return false;
+    }
+
+    public static boolean undeployKubernetesHost(String kubernetesHostId)
+            throws KubernetesHostDoesNotExistException {
         return false;
     }
 }