Tenant isolation - Deployment Policies
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/829e3335 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/829e3335 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/829e3335 Branch: refs/heads/tenant-isolation Commit: 829e33351d1e30d179be76b258ef11718ff72f88 Parents: 887f66f Author: Dinithi <[email protected]> Authored: Sat Jun 27 10:56:01 2015 +0530 Committer: Dinithi <[email protected]> Committed: Sat Jun 27 10:56:01 2015 +0530 ---------------------------------------------------------------------- .../autoscaler/pojo/policy/PolicyManager.java | 34 +- .../policy/deployment/DeploymentPolicy.java | 31 +- .../autoscaler/registry/RegistryManager.java | 2 +- .../services/impl/AutoscalerServiceImpl.java | 22 +- .../policy/deployment/DeploymentPolicyBean.java | 18 + .../default/configure/deployment-policies.json | 1 + .../schema/configure/deployment-policies.json | 7 +- .../rest/endpoint/api/StratosApiV41.java | 4 + .../rest/endpoint/api/StratosApiV41Utils.java | 42 +- .../util/converter/ObjectConverter.java | 12 +- .../src/main/resources/AutoscalerService.wsdl | 518 ++++++++++--------- 11 files changed, 386 insertions(+), 305 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/829e3335/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java index e7fc57c..f127de7 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/PolicyManager.java @@ -133,7 +133,7 @@ public class PolicyManager { if (log.isInfoEnabled()) { log.info(String.format("Deployment policy is added successfully: [deployment-policy-id] %s", - policy.getDeploymentPolicyID())); + policy.getUuid())); } } @@ -145,27 +145,27 @@ public class PolicyManager { */ public void addDeploymentPolicyToInformationModel(DeploymentPolicy deploymentPolicy) throws InvalidDeploymentPolicyException { - if (!deploymentPolicyListMap.containsKey(deploymentPolicy.getDeploymentPolicyID())) { + if (!deploymentPolicyListMap.containsKey(deploymentPolicy.getUuid())) { if (log.isDebugEnabled()) { - log.debug("Adding deployment policy: " + deploymentPolicy.getDeploymentPolicyID()); + log.debug("Adding deployment policy: " + deploymentPolicy.getUuid()); } - deploymentPolicyListMap.put(deploymentPolicy.getDeploymentPolicyID(), deploymentPolicy); + deploymentPolicyListMap.put(deploymentPolicy.getUuid(), deploymentPolicy); } else { String errMsg = "Specified deployment policy [" + - deploymentPolicy.getDeploymentPolicyID() + "] already exists"; + deploymentPolicy.getUuid() + "] already exists"; log.error(errMsg); throw new InvalidDeploymentPolicyException(errMsg); } } public boolean updateDeploymentPolicy(DeploymentPolicy policy) throws InvalidPolicyException { - if (StringUtils.isEmpty(policy.getDeploymentPolicyID())) { + if (StringUtils.isEmpty(policy.getUuid())) { throw new AutoScalerException("Deployment policy id cannot be empty"); } this.updateDeploymentPolicyInInformationModel(policy); RegistryManager.getInstance().persistDeploymentPolicy(policy); if (log.isInfoEnabled()) { - log.info(String.format("Deployment policy is updated successfully: [id] %s", policy.getDeploymentPolicyID())); + log.info(String.format("Deployment policy is updated successfully: [id] %s", policy.getUuid())); } return true; } @@ -209,11 +209,11 @@ public class PolicyManager { } public void updateDeploymentPolicyInInformationModel(DeploymentPolicy deploymentPolicy) throws InvalidPolicyException { - if (deploymentPolicyListMap.containsKey(deploymentPolicy.getDeploymentPolicyID())) { + if (deploymentPolicyListMap.containsKey(deploymentPolicy.getUuid())) { if (log.isDebugEnabled()) { - log.debug("Updating deployment policy: " + deploymentPolicy.getDeploymentPolicyID()); + log.debug("Updating deployment policy: " + deploymentPolicy.getUuid()); } - deploymentPolicyListMap.put(deploymentPolicy.getDeploymentPolicyID(), deploymentPolicy); + deploymentPolicyListMap.put(deploymentPolicy.getUuid(), deploymentPolicy); } } @@ -278,16 +278,16 @@ public class PolicyManager { private void addDeploymentPolicyToPolicyListMap(DeploymentPolicy policy) { - if (StringUtils.isEmpty(policy.getDeploymentPolicyID())) { + if (StringUtils.isEmpty(policy.getUuid())) { throw new RuntimeException("Application id is not found in the deployment policy"); } - if (!deploymentPolicyListMap.containsKey(policy.getDeploymentPolicyID())) { + if (!deploymentPolicyListMap.containsKey(policy.getUuid())) { if (log.isDebugEnabled()) { - log.debug("Adding deployment policy: [deployment-policy-id] " + policy.getDeploymentPolicyID()); + log.debug("Adding deployment policy: [deployment-policy-id] " + policy.getUuid()); } - deploymentPolicyListMap.put(policy.getDeploymentPolicyID(), policy); + deploymentPolicyListMap.put(policy.getUuid(), policy); } else { - String errMsg = "Deployment policy already exists: [deployment-policy-id] " + policy.getDeploymentPolicyID(); + String errMsg = "Deployment policy already exists: [deployment-policy-id] " + policy.getUuid(); log.error(errMsg); } } @@ -300,9 +300,9 @@ public class PolicyManager { public void updateDeploymentPolicyToInformationModel(DeploymentPolicy policy) throws InvalidPolicyException { if (log.isDebugEnabled()) { - log.debug("Updating deployment policy: " + policy.getDeploymentPolicyID()); + log.debug("Updating deployment policy: " + policy.getUuid()); } - deploymentPolicyListMap.put(policy.getDeploymentPolicyID(), policy); + deploymentPolicyListMap.put(policy.getUuid(), policy); } /** http://git-wip-us.apache.org/repos/asf/stratos/blob/829e3335/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/DeploymentPolicy.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/DeploymentPolicy.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/DeploymentPolicy.java index 56d1f15..c28b300 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/DeploymentPolicy.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/pojo/policy/deployment/DeploymentPolicy.java @@ -32,15 +32,34 @@ import java.util.Arrays; public class DeploymentPolicy implements Serializable { private static final long serialVersionUID = 5675507196284400099L; - private String deploymentPolicyID; + private String uuid; + private int tenantId; + private String id; private NetworkPartitionRef[] networkPartitionRefs; - public String getDeploymentPolicyID() { - return deploymentPolicyID; + public String getUuid() { + return uuid; } - public void setDeploymentPolicyID(String deploymentPolicyID) { - this.deploymentPolicyID = deploymentPolicyID; + public void setUuid(String uuid) { + this.uuid = uuid; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + + public int getTenantId() { + return tenantId; + } + + public void setTenantId(int tenantId) { + this.tenantId = tenantId; } public NetworkPartitionRef[] getNetworkPartitionRefs() { @@ -86,7 +105,7 @@ public class DeploymentPolicy implements Serializable { } public String toString() { - return String.format("{ deployment-policy-id : %s, network-partitions : %s", deploymentPolicyID, + return String.format("{ deployment-policy-id : %s, network-partitions : %s", uuid, Arrays.toString(networkPartitionRefs)); } http://git-wip-us.apache.org/repos/asf/stratos/blob/829e3335/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java index e16d3f5..a3c5703 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/registry/RegistryManager.java @@ -162,7 +162,7 @@ public class RegistryManager { } public void persistDeploymentPolicy(DeploymentPolicy deploymentPolicy) { - String resourcePath = AutoscalerConstants.AUTOSCALER_RESOURCE + AutoscalerConstants.DEPLOYMENT_POLICY_RESOURCE + "/" + deploymentPolicy.getDeploymentPolicyID(); + String resourcePath = AutoscalerConstants.AUTOSCALER_RESOURCE + AutoscalerConstants.DEPLOYMENT_POLICY_RESOURCE + "/" + deploymentPolicy.getUuid(); persist(deploymentPolicy, resourcePath); if (log.isDebugEnabled()) { log.debug(String.format("Deployment policy written to registry: %s", deploymentPolicy.toString())); http://git-wip-us.apache.org/repos/asf/stratos/blob/829e3335/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java index 3f2120c..d0da8d5 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java @@ -25,7 +25,6 @@ import org.apache.stratos.autoscaler.algorithms.networkpartition.NetworkPartitio import org.apache.stratos.autoscaler.applications.ApplicationHolder; import org.apache.stratos.autoscaler.applications.parser.ApplicationParser; import org.apache.stratos.autoscaler.applications.parser.DefaultApplicationParser; -import org.apache.stratos.autoscaler.applications.pojo.*; import org.apache.stratos.autoscaler.applications.pojo.ApplicationClusterContext; import org.apache.stratos.autoscaler.applications.pojo.ApplicationContext; import org.apache.stratos.autoscaler.applications.pojo.ArtifactRepositoryContext; @@ -57,7 +56,6 @@ import org.apache.stratos.autoscaler.pojo.policy.deployment.ApplicationPolicy; import org.apache.stratos.autoscaler.pojo.policy.deployment.DeploymentPolicy; import org.apache.stratos.autoscaler.registry.RegistryManager; import org.apache.stratos.autoscaler.services.AutoscalerService; -import org.apache.stratos.autoscaler.stub.pojo.*; import org.apache.stratos.autoscaler.util.AutoscalerUtil; import org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidCartridgeTypeExceptionException; import org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidPartitionExceptionException; @@ -1044,13 +1042,13 @@ public class AutoscalerServiceImpl implements AutoscalerService { validateDeploymentPolicy(deploymentPolicy); if (log.isInfoEnabled()) { - log.info("Adding deployment policy: [deployment-policy-id] " + deploymentPolicy.getDeploymentPolicyID()); + log.info("Adding deployment policy: [deployment-policy-id] " + deploymentPolicy.getUuid()); } if (log.isDebugEnabled()) { log.debug("Deployment policy definition: " + deploymentPolicy.toString()); } - String deploymentPolicyID = deploymentPolicy.getDeploymentPolicyID(); + String deploymentPolicyID = deploymentPolicy.getUuid(); if (PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyID) != null) { String message = "Deployment policy already exists: [deployment-policy-id] " + deploymentPolicyID; log.error(message); @@ -1080,7 +1078,7 @@ public class AutoscalerServiceImpl implements AutoscalerService { } // deployment policy id can't be null or empty - String deploymentPolicyId = deploymentPolicy.getDeploymentPolicyID(); + String deploymentPolicyId = deploymentPolicy.getUuid(); if (StringUtils.isBlank(deploymentPolicyId)) { String msg = String.format("Deployment policy id is blank"); log.error(msg); @@ -1173,13 +1171,13 @@ public class AutoscalerServiceImpl implements AutoscalerService { validateDeploymentPolicy(deploymentPolicy); if (log.isInfoEnabled()) { - log.info("Updating deployment policy: [deployment-policy-id] " + deploymentPolicy.getDeploymentPolicyID()); + log.info("Updating deployment policy: [deployment-policy-id] " + deploymentPolicy.getUuid()); } if (log.isDebugEnabled()) { log.debug("Updating Deployment policy definition: " + deploymentPolicy.toString()); } - String deploymentPolicyID = deploymentPolicy.getDeploymentPolicyID(); + String deploymentPolicyID = deploymentPolicy.getUuid(); if (PolicyManager.getInstance().getDeploymentPolicy(deploymentPolicyID) == null) { String message = "Deployment policy not exists: [deployment-policy-id] " + deploymentPolicyID; log.error(message); @@ -1201,30 +1199,30 @@ public class AutoscalerServiceImpl implements AutoscalerService { for (ClusterMonitor clusterMonitor : AutoscalerContext.getInstance().getClusterMonitors().values()) { //Following if statement checks the relevant clusters for the updated deployment policy - if (deploymentPolicy.getDeploymentPolicyID().equals(clusterMonitor.getDeploymentPolicyId())) { + if (deploymentPolicy.getUuid().equals(clusterMonitor.getDeploymentPolicyId())) { for (NetworkPartitionRef networkPartition : deploymentPolicy.getNetworkPartitionRefs()) { ClusterLevelNetworkPartitionContext clusterLevelNetworkPartitionContext = clusterMonitor.getClusterContext().getNetworkPartitionCtxt(networkPartition.getId()); try { addNewPartitionsToClusterMonitor(clusterLevelNetworkPartitionContext, networkPartition, - deploymentPolicy.getDeploymentPolicyID(), clusterMonitor.getClusterContext().getServiceId()); + deploymentPolicy.getUuid(), clusterMonitor.getClusterContext().getServiceId()); } catch (RemoteException e) { String message = "Connection to cloud controller failed, Cluster monitor update failed for" + - " [deployment-policy] " + deploymentPolicy.getDeploymentPolicyID(); + " [deployment-policy] " + deploymentPolicy.getUuid(); log.error(message); throw new CloudControllerConnectionException(message, e); } catch (CloudControllerServiceInvalidPartitionExceptionException e) { String message = "Invalid partition, Cluster monitor update failed for [deployment-policy] " - + deploymentPolicy.getDeploymentPolicyID(); + + deploymentPolicy.getUuid(); log.error(message); throw new InvalidDeploymentPolicyException(message, e); } catch (CloudControllerServiceInvalidCartridgeTypeExceptionException e) { String message = "Invalid cartridge type, Cluster monitor update failed for [deployment-policy] " - + deploymentPolicy.getDeploymentPolicyID() + " [cartridge] " + + deploymentPolicy.getUuid() + " [cartridge] " + clusterMonitor.getClusterContext().getServiceId(); log.error(message); throw new InvalidDeploymentPolicyException(message, e); http://git-wip-us.apache.org/repos/asf/stratos/blob/829e3335/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/policy/deployment/DeploymentPolicyBean.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/policy/deployment/DeploymentPolicyBean.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/policy/deployment/DeploymentPolicyBean.java index 1837714..05eaa31 100644 --- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/policy/deployment/DeploymentPolicyBean.java +++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/policy/deployment/DeploymentPolicyBean.java @@ -28,6 +28,24 @@ import java.util.List; public class DeploymentPolicyBean { private String id; + private String uuid; + private int tenantId; + + public String getUuid() { + return uuid; + } + + public void setUuid(String uuid) { + this.uuid = uuid; + } + + public int getTenantId() { + return tenantId; + } + + public void setTenantId(int tenantId) { + this.tenantId = tenantId; + } private List<NetworkPartitionReferenceBean> networkPartitions; http://git-wip-us.apache.org/repos/asf/stratos/blob/829e3335/components/org.apache.stratos.manager.console/console/controllers/forms/default/configure/deployment-policies.json ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager.console/console/controllers/forms/default/configure/deployment-policies.json b/components/org.apache.stratos.manager.console/console/controllers/forms/default/configure/deployment-policies.json index f749ab4..f8ccf75 100644 --- a/components/org.apache.stratos.manager.console/console/controllers/forms/default/configure/deployment-policies.json +++ b/components/org.apache.stratos.manager.console/console/controllers/forms/default/configure/deployment-policies.json @@ -1,4 +1,5 @@ { + "uuid": "", "id": "deployment-policy-1", "networkPartitions": [ { http://git-wip-us.apache.org/repos/asf/stratos/blob/829e3335/components/org.apache.stratos.manager.console/console/controllers/forms/schema/configure/deployment-policies.json ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager.console/console/controllers/forms/schema/configure/deployment-policies.json b/components/org.apache.stratos.manager.console/console/controllers/forms/schema/configure/deployment-policies.json index 396a26b..2c78bee 100644 --- a/components/org.apache.stratos.manager.console/console/controllers/forms/schema/configure/deployment-policies.json +++ b/components/org.apache.stratos.manager.console/console/controllers/forms/schema/configure/deployment-policies.json @@ -1,6 +1,6 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "id": "root", + "uuid": "root", "type": "object", "title":"Deployment Policy Definition", "name": "Deployment Policy", @@ -9,6 +9,11 @@ "disable_collapse": true }, "properties": { + "uuid": { + "id": "root/uuid", + "type": "string", + "title":"UUID" + }, "id": { "id": "root/id", "type": "string", http://git-wip-us.apache.org/repos/asf/stratos/blob/829e3335/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 bbbd3f2..40f193f 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 @@ -133,6 +133,10 @@ public class StratosApiV41 extends AbstractApi { DeploymentPolicyBean deploymentPolicyDefinitionBean) throws RestAPIException { String deploymentPolicyID = deploymentPolicyDefinitionBean.getId(); + deploymentPolicyDefinitionBean.setUuid(UUID.randomUUID().toString()); + + PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext(); + deploymentPolicyDefinitionBean.setTenantId(carbonContext.getTenantId()); try { StratosApiV41Utils.addDeploymentPolicy(deploymentPolicyDefinitionBean); } catch (AutoscalerServiceInvalidDeploymentPolicyExceptionException e) { http://git-wip-us.apache.org/repos/asf/stratos/blob/829e3335/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java index 5b12e59..13798d8 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java @@ -2760,7 +2760,7 @@ public class StratosApiV41Utils { if (networkPartitionRef.getId().equals(networkPartitionId)) { String message = String.format("Cannot remove the network partition %s, since" + " it is used in deployment policy %s", networkPartitionId, - deploymentPolicy.getDeploymentPolicyID()); + deploymentPolicy.getId()); log.error(message); throw new RestAPIException(message); } @@ -2875,22 +2875,35 @@ public class StratosApiV41Utils { /** * Get deployment policy by deployment policy id * - * @param deploymentPolicyID deployment policy id + * @param deploymentPolicyId deployment policy id * @return {@link DeploymentPolicyBean} */ - public static DeploymentPolicyBean getDeployementPolicy(String deploymentPolicyID) throws RestAPIException { + public static DeploymentPolicyBean getDeployementPolicy(String deploymentPolicyId) throws RestAPIException { DeploymentPolicyBean deploymentPolicyBean; try { + org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy[] deploymentPolicies + = AutoscalerServiceClient.getInstance().getDeploymentPolicies(); - org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy deploymentPolicy - = AutoscalerServiceClient.getInstance().getDeploymentPolicy(deploymentPolicyID); + DeploymentPolicy deploymentPolicy = null; + PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext(); + List<DeploymentPolicy> deploymentPoliciesForTenant = new ArrayList<DeploymentPolicy>(); + for (DeploymentPolicy deploymentPolicy1 : deploymentPolicies) { + if (carbonContext.getTenantId() == deploymentPolicy1.getTenantId()) { + deploymentPoliciesForTenant.add(deploymentPolicy1); + if (deploymentPolicy1.getId().equals(deploymentPolicyId)) { + deploymentPolicy = deploymentPolicy1; + } + } + } + //org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy deploymentPolicy + // = AutoscalerServiceClient.getInstance().getDeploymentPolicy(deploymentPolicyID); if (deploymentPolicy == null) { return null; } deploymentPolicyBean = ObjectConverter.convertCCStubDeploymentPolicyToDeploymentPolicy(deploymentPolicy); } catch (RemoteException e) { - String msg = "Could not find deployment policy: [deployment-policy-id] " + deploymentPolicyID; + String msg = "Could not find deployment policy: [deployment-policy-id] " + deploymentPolicyId; log.error(msg, e); throw new RestAPIException(msg); } @@ -2907,7 +2920,22 @@ public class StratosApiV41Utils { try { org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy[] deploymentPolicies = AutoscalerServiceClient.getInstance().getDeploymentPolicies(); - return ObjectConverter.convertASStubDeploymentPoliciesToDeploymentPolicies(deploymentPolicies); + + DeploymentPolicy[] deploymentPoliciesForTenantArray = new DeploymentPolicy[0]; + if (deploymentPolicies != null) { + PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext(); + List<DeploymentPolicy> deploymentPoliciesForTenant = new ArrayList<DeploymentPolicy>(); + for (DeploymentPolicy deploymentPolicy : deploymentPolicies) { + if (carbonContext.getTenantId() == deploymentPolicy.getTenantId()) { + deploymentPoliciesForTenant.add(deploymentPolicy); + } + } + if (deploymentPoliciesForTenant.size() != 0) { + deploymentPoliciesForTenantArray = deploymentPoliciesForTenant.toArray(new + DeploymentPolicy[deploymentPoliciesForTenant.size()]); + } + } + return ObjectConverter.convertASStubDeploymentPoliciesToDeploymentPolicies(deploymentPoliciesForTenantArray); } catch (RemoteException e) { String message = "Could not get deployment policies"; log.error(message); http://git-wip-us.apache.org/repos/asf/stratos/blob/829e3335/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 5f4b3d9..1900dcf 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 @@ -1978,7 +1978,9 @@ public class ObjectConverter { } DeploymentPolicyBean deploymentPolicyBean = new DeploymentPolicyBean(); - deploymentPolicyBean.setId(deploymentPolicy.getDeploymentPolicyID()); + deploymentPolicyBean.setId(deploymentPolicy.getId()); + deploymentPolicyBean.setUuid(deploymentPolicy.getUuid()); + deploymentPolicyBean.setTenantId(deploymentPolicy.getTenantId()); deploymentPolicyBean.setNetworkPartitions(convertASStubNetworkPartitionsToNetworkPartitionReferences( deploymentPolicy.getNetworkPartitionRefs())); return deploymentPolicyBean; @@ -2012,7 +2014,9 @@ public class ObjectConverter { } DeploymentPolicy deploymentPolicy = new DeploymentPolicy(); - deploymentPolicy.setDeploymentPolicyID(deploymentPolicyBean.getId()); + deploymentPolicy.setId(deploymentPolicyBean.getId()); + deploymentPolicy.setUuid(deploymentPolicyBean.getUuid()); + deploymentPolicy.setTenantId(deploymentPolicyBean.getTenantId()); if (deploymentPolicyBean.getNetworkPartitions() != null) { deploymentPolicy.setNetworkPartitionRefs(convertNetworkPartitionToASStubNetworkPartition( deploymentPolicyBean.getNetworkPartitions())); @@ -2045,7 +2049,9 @@ public class ObjectConverter { } DeploymentPolicyBean deploymentPolicyBean = new DeploymentPolicyBean(); - deploymentPolicyBean.setId(deploymentPolicy.getDeploymentPolicyID()); + deploymentPolicyBean.setId(deploymentPolicy.getId()); + deploymentPolicyBean.setUuid(deploymentPolicy.getUuid()); + deploymentPolicyBean.setTenantId(deploymentPolicy.getTenantId()); deploymentPolicyBean.setNetworkPartitions(convertASStubNetworkPartitionRefsToNetworkPartitions( deploymentPolicy.getNetworkPartitionRefs())); return deploymentPolicyBean;
