Updated Branches: refs/heads/master c64642df4 -> 3ff07ad14
fixing STRATOS-428; adding LB cluster id to Subscriptions so that it is available in listing subscriptions Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/09bfccf6 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/09bfccf6 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/09bfccf6 Branch: refs/heads/master Commit: 09bfccf66d5534a8d238a77e1804a27ab0a15913 Parents: 033086a Author: Isuru <[email protected]> Authored: Tue Feb 11 11:57:01 2014 +0530 Committer: Isuru <[email protected]> Committed: Tue Feb 11 11:57:01 2014 +0530 ---------------------------------------------------------------------- .../apache/stratos/manager/dto/Cartridge.java | 16 ++++++++--- .../manager/CartridgeSubscriptionManager.java | 10 ++++--- .../service/ApplicationManagementService.java | 2 +- .../subscription/CartridgeSubscription.java | 9 +++++++ .../rest/endpoint/services/ServiceUtils.java | 28 ++++++++++++++------ 5 files changed, 50 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/09bfccf6/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/dto/Cartridge.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/dto/Cartridge.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/dto/Cartridge.java index e435669..4460a7e 100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/dto/Cartridge.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/dto/Cartridge.java @@ -19,10 +19,10 @@ package org.apache.stratos.manager.dto; -import javax.xml.bind.annotation.XmlRootElement; - import org.apache.stratos.cloud.controller.pojo.PortMapping; +import javax.xml.bind.annotation.XmlRootElement; + @XmlRootElement public class Cartridge implements Comparable<Cartridge> { @@ -47,6 +47,9 @@ public class Cartridge implements Comparable<Cartridge> { private String dbUserName; private String password; + //LB cluster id + private String lbClusterId; + private String[] accessURLs; private PortMapping[] portMappings; @@ -221,5 +224,12 @@ public class Cartridge implements Comparable<Cartridge> { public void setPortMappings(PortMapping[] portMappings) { this.portMappings = portMappings; } - + + public String getLbClusterId() { + return lbClusterId; + } + + public void setLbClusterId(String lbClusterId) { + this.lbClusterId = lbClusterId; + } } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/09bfccf6/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java index 2ceaffd..4daa668 100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java @@ -85,7 +85,7 @@ public class CartridgeSubscriptionManager { String tenantDomain, int tenantId, String tenantAdminUsername, String repositoryType, String repositoryURL, boolean isPrivateRepository, - String repositoryUsername, String repositoryPassword) + String repositoryUsername, String repositoryPassword, String lbClusterId) throws ADCException, InvalidCartridgeAliasException, DuplicateCartridgeAliasException, PolicyException, UnregisteredCartridgeException, RepositoryRequiredException, RepositoryCredentialsRequiredException, @@ -94,13 +94,13 @@ public class CartridgeSubscriptionManager { return subscribeToCartridgeWithProperties(cartridgeType, subscriptionAlias, autoscalingPolicyName, deploymentPolicyName, tenantDomain, tenantId, tenantAdminUsername, repositoryType, repositoryURL, isPrivateRepository, repositoryUsername, - repositoryPassword, null); + repositoryPassword, lbClusterId, null); } public CartridgeSubscription subscribeToCartridgeWithProperties(String cartridgeType, String cartridgeAlias, String autoscalingPolicyName, String deploymentPolicyName, String tenantDomain, int tenantId, String tenantAdminUsername, String repositoryType, String repositoryURL, - boolean isPrivateRepository, String repositoryUsername, String repositoryPassword, Property[] props) + boolean isPrivateRepository, String repositoryUsername, String repositoryPassword, String lbClusterId, Property[] props) throws ADCException, InvalidCartridgeAliasException, @@ -182,6 +182,10 @@ public class CartridgeSubscriptionManager { cartridgeSubscription.createSubscription(subscriber, cartridgeAlias, autoscalingPolicyName, deploymentPolicyName, repository); + // set the lb cluster id if its available + if (lbClusterId != null && !lbClusterId.isEmpty()) { + cartridgeSubscription.setLbClusterId(lbClusterId); + } log.info("Tenant [" + tenantId + "] with username [" + tenantAdminUsername + " subscribed to " + "] Cartridge Alias " + cartridgeAlias + ", Cartridge Type: " + http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/09bfccf6/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/ApplicationManagementService.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/ApplicationManagementService.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/ApplicationManagementService.java index 4116b74..503bcec 100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/ApplicationManagementService.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/ApplicationManagementService.java @@ -388,7 +388,7 @@ public class ApplicationManagementService extends AbstractAdmin { CartridgeSubscription cartridgeSubscription = cartridgeSubsciptionManager.subscribeToCartridge(cartridgeType, alias.trim(), "economyPolicy", "economy-deployment", getTenantDomain(), ApplicationManagementUtil.getTenantId(configurationContext), - getUsername(), "git", repoURL, privateRepo, repoUsername, repoPassword); + getUsername(), "git", repoURL, privateRepo, repoUsername, repoPassword, null); if(dataCartridgeAlias != null && !dataCartridgeAlias.trim().isEmpty()) { http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/09bfccf6/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java index 241c02a..7f4019f 100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java @@ -52,6 +52,7 @@ public abstract class CartridgeSubscription implements Serializable { private CartridgeInfo cartridgeInfo; private PayloadData payloadData; private Cluster cluster; + private String lbClusterId; private String subscriptionStatus; //private String serviceStatus; private String mappedDomain; @@ -464,4 +465,12 @@ public abstract class CartridgeSubscription implements Serializable { ", repository=" + repository + ", cartridgeInfo=" + cartridgeInfo + ", payload=" + payloadData + ", cluster=" + cluster + "]"; } + + public String getLbClusterId() { + return lbClusterId; + } + + public void setLbClusterId(String lbClusterId) { + this.lbClusterId = lbClusterId; + } } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/09bfccf6/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 7c89955..e34705a 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 @@ -607,6 +607,10 @@ public class ServiceUtils { cartridge.setPassword(dataCartridgeSubscription.getDBPassword()); } + if (subscription.getLbClusterId() != null && !subscription.getLbClusterId().isEmpty()) { + cartridge.setLbClusterId(subscription.getLbClusterId()); + } + cartridge.setStatus(subscription.getSubscriptionStatus()); cartridge.setPortMappings(subscription.getCartridgeInfo().getPortMappings()); return cartridge; @@ -700,7 +704,7 @@ public class ServiceUtils { cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(cartridgeType, alias, autoscalingPolicy, deploymentPolicy ,tenantDomain, ApplicationManagementUtil.getTenantId(configurationContext), - userName, "git", repoURL, false, repoUsername, repoPassword, null); + userName, "git", repoURL, false, repoUsername, repoPassword, null, null); log.info(" --- ** -- "); return cartridgeSubsciptionManager.registerCartridgeSubscription(cartridgeSubscription); @@ -710,6 +714,7 @@ public class ServiceUtils { // get lb config reference LoadbalancerConfig lbConfig = cartridgeInfo.getLbConfig(); + String lbClusterId = null; if (lbConfig == null || lbConfig.getProperties() == null) { if (log.isDebugEnabled()) { @@ -723,6 +728,7 @@ public class ServiceUtils { Property property = new Property(); property.setName(org.apache.stratos.messaging.util.Constants.LOAD_BALANCER_REF); + for (org.apache.stratos.cloud.controller.pojo.Property prop : lbReferenceProperties.getProperties()) { String name = prop.getName(); @@ -802,7 +808,7 @@ public class ServiceUtils { String lbAlias = "lb" + new Random().nextInt(); if(lbCartridgeInfo != null) { lbCartridgeInfo.addProperties(property); - subscribeToLb(lbCartridgeType, cartridgeType, + lbClusterId = subscribeToLb(lbCartridgeType, cartridgeType, lbAlias, lbCartridgeInfo.getDefaultAutoscalingPolicy(), deploymentPolicy, configurationContext, @@ -880,7 +886,7 @@ public class ServiceUtils { lbCartridgeInfo.addProperties(property); lbCartridgeInfo.addProperties(loadBalancedServiceTypeProperty); - subscribeToLb(lbCartridgeType, cartridgeType, + lbClusterId = subscribeToLb(lbCartridgeType, cartridgeType, lbAlias, lbCartridgeInfo.getDefaultAutoscalingPolicy(), deploymentPolicy, @@ -924,6 +930,7 @@ public class ServiceUtils { privateRepo, repoUsername, repoPassword, + lbClusterId, lbRefProp.toArray(new Property[0])); if (dataCartridgeAlias != null && !dataCartridgeAlias.trim().isEmpty()) { @@ -1009,20 +1016,23 @@ public class ServiceUtils { } - - private static void subscribeToLb(String cartridgeType, String loadBalancedCartridgeType, String lbAlias, + + // return the cluster id for the lb. This is a temp fix. + private static String subscribeToLb(String cartridgeType, String loadBalancedCartridgeType, String lbAlias, String defaultAutoscalingPolicy, String deploymentPolicy, ConfigurationContext configurationContext, String userName, String tenantDomain, Property[] props) throws ADCException { - + + CartridgeSubscription cartridgeSubscription; + try { if(log.isDebugEnabled()) { log.debug("Subscribing to a load balancer [cartridge] "+cartridgeType+" [alias] "+lbAlias); } - CartridgeSubscription cartridgeSubscription = + cartridgeSubscription = cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(cartridgeType, lbAlias.trim(), defaultAutoscalingPolicy, deploymentPolicy ,tenantDomain, ApplicationManagementUtil.getTenantId(configurationContext), - userName, "git", null, false, null, null, props); + userName, "git", null, false, null, null, null, props); //set a payload parameter to indicate the load balanced cartridge type cartridgeSubscription.getPayloadData().add("LOAD_BALANCED_SERVICE_TYPE", loadBalancedCartridgeType); @@ -1037,6 +1047,8 @@ public class ServiceUtils { log.error(msg, e); throw new ADCException(msg, e); } + + return cartridgeSubscription.getClusterDomain(); } static void unsubscribe(String alias, String tenantDomain) throws RestAPIException {
