Updated Branches: refs/heads/master 704661adb -> 3999dc5d5
refactor subscription call which has many method parameters. Introduce a class SubscriptionData calss which holds the data such as cartridgetype, repoURL..... SO we don't need to send all the paramertes to method calls, just send the SubscriptionData object Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/680e592b Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/680e592b Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/680e592b Branch: refs/heads/master Commit: 680e592ba1b0f2d13878ddbf269942ae6e7a5532 Parents: 3bea806 Author: Udara Liyanage <[email protected]> Authored: Wed Feb 12 06:23:37 2014 -0500 Committer: Udara Liyanage <[email protected]> Committed: Wed Feb 12 06:23:37 2014 -0500 ---------------------------------------------------------------------- .../cloud/controller/pojo/Registrant.java | 9 ++ .../client/CloudControllerServiceClient.java | 3 +- .../apache/stratos/manager/dto/Cartridge.java | 8 + .../manager/CartridgeSubscriptionManager.java | 91 ++++------- .../manager/service/RepositoryInfoBean.java | 3 +- .../subscription/CartridgeSubscription.java | 11 ++ .../manager/subscription/SubscriptionData.java | 153 +++++++++++++++++++ .../utils/ApplicationManagementUtil.java | 2 +- .../rest/endpoint/bean/CartridgeInfoBean.java | 37 +++++ .../rest/endpoint/services/ServiceUtils.java | 84 ++++++---- .../rest/endpoint/services/StratosAdmin.java | 11 +- 11 files changed, 305 insertions(+), 107 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/680e592b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Registrant.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Registrant.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Registrant.java index fe7a7e9..aa429a1 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Registrant.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Registrant.java @@ -33,6 +33,7 @@ public class Registrant { private Properties properties; private String autoScalerPolicyName; private String deploymentPolicyName; + private boolean isPersistant; public String getTenantRange() { return tenantRange; @@ -91,4 +92,12 @@ public class Registrant { properties + ", autoScalerPolicyName=" + autoScalerPolicyName + ", deploymentPolicyName=" + deploymentPolicyName + "]"; } + + public boolean isPersistant() { + return isPersistant; + } + + public void setPersistant(boolean isPersistant) { + this.isPersistant = isPersistant; + } } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/680e592b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java index 42b7521..9603e96 100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java @@ -108,7 +108,7 @@ public class CloudControllerServiceClient { public boolean register(String clusterId, String cartridgeType, String payload, String tenantRange, String hostName, Properties properties, - String autoscalorPolicyName, String deploymentPolicyName) throws RemoteException, + String autoscalorPolicyName, String deploymentPolicyName, boolean isPersistant) throws RemoteException, CloudControllerServiceUnregisteredCartridgeExceptionException, CloudControllerServiceIllegalArgumentExceptionException { Registrant registrant = new Registrant(); @@ -120,6 +120,7 @@ public class CloudControllerServiceClient { registrant.setPayload(payload); registrant.setAutoScalerPolicyName(autoscalorPolicyName); registrant.setDeploymentPolicyName(deploymentPolicyName); + registrant.setPersistant(isPersistant); return stub.registerService(registrant); } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/680e592b/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 de610c6..40f4475 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 @@ -58,6 +58,7 @@ public class Cartridge implements Comparable<Cartridge> { private String defaultDeploymentPolicy; + private boolean isPersistant; public String getDisplayName() { return displayName; @@ -261,5 +262,12 @@ public class Cartridge implements Comparable<Cartridge> { public void setDefaultDeploymentPolicy(String defaultDeploymentPolicy) { this.defaultDeploymentPolicy = defaultDeploymentPolicy; +} + public boolean isPersistant() { + return isPersistant; + } + + public void setPersistant(boolean isPersistant) { + this.isPersistant = isPersistant; } } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/680e592b/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 1b63890..00a1757 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 @@ -31,6 +31,7 @@ import org.apache.stratos.manager.repository.Repository; import org.apache.stratos.manager.retriever.DataInsertionAndRetrievalManager; import org.apache.stratos.manager.subscriber.Subscriber; import org.apache.stratos.manager.subscription.CartridgeSubscription; +import org.apache.stratos.manager.subscription.SubscriptionData; import org.apache.stratos.manager.subscription.factory.CartridgeSubscriptionFactory; import org.apache.stratos.manager.subscription.tenancy.SubscriptionMultiTenantBehaviour; import org.apache.stratos.manager.subscription.tenancy.SubscriptionSingleTenantBehaviour; @@ -51,67 +52,31 @@ public class CartridgeSubscriptionManager { private static Log log = LogFactory.getLog(CartridgeSubscriptionManager.class); //private static DataInsertionAndRetrievalManager dataInsertionAndRetrievalManager = new DataInsertionAndRetrievalManager(); - - /** - * Subscribes to a cartridge - * - * @param cartridgeType Cartridge type - * @param subscriptionAlias Cartridge alias - * @param autoscalingPolicyName Autoscaling policy name - * @param deploymentPolicyName Deployment Policy name - * @param tenantDomain Subscriing tenant's domain - * @param tenantId Subscribing tenant's Id - * @param tenantAdminUsername Subscribing tenant's admin user name - * @param repositoryType Type of repository - * @param repositoryURL Repository URL - * @param isPrivateRepository If a private or a public repository - * @param repositoryUsername Repository username - * @param repositoryPassword Repository password - * - * @return Subscribed CartridgeSubscription object - * @throws ADCException - * @throws InvalidCartridgeAliasException - * @throws DuplicateCartridgeAliasException - * @throws PolicyException - * @throws UnregisteredCartridgeException - * @throws RepositoryRequiredException - * @throws RepositoryCredentialsRequiredException - * @throws RepositoryTransportException - * @throws AlreadySubscribedException - * @throws InvalidRepositoryException - */ - public CartridgeSubscription subscribeToCartridge (String cartridgeType, String subscriptionAlias, - String autoscalingPolicyName, String deploymentPolicyName, - String tenantDomain, int tenantId, - String tenantAdminUsername, String repositoryType, - String repositoryURL, boolean isPrivateRepository, - String repositoryUsername, String repositoryPassword, String lbClusterId) - - throws ADCException, InvalidCartridgeAliasException, DuplicateCartridgeAliasException, PolicyException, - UnregisteredCartridgeException, RepositoryRequiredException, RepositoryCredentialsRequiredException, - RepositoryTransportException, AlreadySubscribedException, InvalidRepositoryException { - - return subscribeToCartridgeWithProperties(cartridgeType, subscriptionAlias, autoscalingPolicyName, - deploymentPolicyName, tenantDomain, tenantId, tenantAdminUsername, - repositoryType, repositoryURL, isPrivateRepository, repositoryUsername, - 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, String lbClusterId, Property[] props) - - throws ADCException, - InvalidCartridgeAliasException, - DuplicateCartridgeAliasException, - PolicyException, - UnregisteredCartridgeException, - RepositoryRequiredException, - RepositoryCredentialsRequiredException, - RepositoryTransportException, - AlreadySubscribedException, - InvalidRepositoryException { + public CartridgeSubscription subscribeToCartridgeWithProperties(SubscriptionData subscriptionData) throws ADCException, + InvalidCartridgeAliasException, + DuplicateCartridgeAliasException, + PolicyException, + UnregisteredCartridgeException, + RepositoryRequiredException, + RepositoryCredentialsRequiredException, + RepositoryTransportException, + AlreadySubscribedException, + InvalidRepositoryException { + + int tenantId = subscriptionData.getTenantId(); + String cartridgeType = subscriptionData.getCartridgeType(); + String cartridgeAlias = subscriptionData.getCartridgeAlias(); + Property [] props = subscriptionData.getProperties(); + String repositoryPassword = subscriptionData.getRepositoryPassword(); + String repositoryUsername = subscriptionData.getRepositoryUsername(); + boolean isPrivateRepository = subscriptionData.isPrivateRepository(); + String repositoryURL = subscriptionData.getRepositoryURL(); + String tenantDomain = subscriptionData.getTenantDomain(); + String tenantAdminUsername = subscriptionData.getTenantAdminUsername(); + String autoscalingPolicyName = subscriptionData.getAutoscalingPolicyName(); + String deploymentPolicyName = subscriptionData.getDeploymentPolicyName(); + String lbClusterId = subscriptionData.getLbClusterId(); // validate cartridge alias CartridgeSubscriptionUtils.validateCartridgeAlias(tenantId, cartridgeType, cartridgeAlias); @@ -159,8 +124,10 @@ public class CartridgeSubscriptionManager { //Create the CartridgeSubscription instance CartridgeSubscription cartridgeSubscription = CartridgeSubscriptionFactory. getCartridgeSubscriptionInstance(cartridgeInfo, tenancyBehaviour); - + + String subscriptionKey = CartridgeSubscriptionUtils.generateSubscriptionKey(); + String encryptedRepoPassword = repositoryPassword != null && !repositoryPassword.isEmpty() ? RepoPasswordMgtUtil.encryptPassword(repositoryPassword, subscriptionKey) : ""; @@ -180,7 +147,7 @@ public class CartridgeSubscriptionManager { //create subscription cartridgeSubscription.createSubscription(subscriber, cartridgeAlias, autoscalingPolicyName, - deploymentPolicyName, repository); + deploymentPolicyName, repository); // set the lb cluster id if its available if (lbClusterId != null && !lbClusterId.isEmpty()) { http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/680e592b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/RepositoryInfoBean.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/RepositoryInfoBean.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/RepositoryInfoBean.java index 3ee4d83..bfd4c11 100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/RepositoryInfoBean.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/RepositoryInfoBean.java @@ -24,6 +24,7 @@ package org.apache.stratos.manager.service; */ +import org.apache.stratos.cloud.controller.pojo.CartridgeConfig; import org.apache.stratos.cloud.controller.pojo.CartridgeInfo; /** @@ -37,7 +38,7 @@ public class RepositoryInfoBean { private String userName; private String password; private String[] dirArray; - private CartridgeInfo cartridgeInfo; + private CartridgeInfo cartridgeInfo; public RepositoryInfoBean(String repoURL, String cartridgeAlias, String tenantDomain, http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/680e592b/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 e8245d3..9375829 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 @@ -69,6 +69,8 @@ public abstract class CartridgeSubscription implements Serializable { private String subscriptionKey; private SubscriptionTenancyBehaviour subscriptionTenancyBehaviour; + private String nothing; + /** * Constructor @@ -122,9 +124,18 @@ public abstract class CartridgeSubscription implements Serializable { setAutoscalingPolicyName(autoscalingPolicy); setDeploymentPolicyName(deploymentPolicyName); setRepository(repository); + setNothing(nothing); getSubscriptionTenancyBehaviour().createSubscription(this); } + public void setNothing(String nothing) { + this.nothing=nothing; + } + + public String getNothing(){ + return nothing; + } + /** * Unsubscribe from this cartridge subscription * http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/680e592b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java new file mode 100644 index 0000000..b6adf69 --- /dev/null +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java @@ -0,0 +1,153 @@ +package org.apache.stratos.manager.subscription; + +import org.apache.stratos.cloud.controller.pojo.Property; + +/** + * This holds the data that are gathered at the time of subscription. This is usefull when passing subscription details to the method calls. + */ +public class SubscriptionData { + + + private String cartridgeType; + private String cartridgeAlias; + + private String autoscalingPolicyName; + private String deploymentPolicyName; + private String tenantDomain; + private int tenantId; + private String tenantAdminUsername; + private String repositoryType = "git"; + private String repositoryURL; + private boolean isPrivateRepository; + private String repositoryUsername; + private String repositoryPassword; + private String lbClusterId; + private Property[] properties; + private String dataCartridgeAlias; + private String lbAlias; + + public String getCartridgeType() { + return cartridgeType; + } + + public void setCartridgeType(String cartridgeType) { + this.cartridgeType = cartridgeType; + } + + public String getCartridgeAlias() { + return cartridgeAlias; + } + + public void setCartridgeAlias(String cartridgeAlias) { + this.cartridgeAlias = cartridgeAlias; + } + + public String getAutoscalingPolicyName() { + return autoscalingPolicyName; + } + + public void setAutoscalingPolicyName(String autoscalingPolicyName) { + this.autoscalingPolicyName = autoscalingPolicyName; + } + + public String getDeploymentPolicyName() { + return deploymentPolicyName; + } + + public void setDeploymentPolicyName(String deploymentPolicyName) { + this.deploymentPolicyName = deploymentPolicyName; + } + + public String getTenantDomain() { + return tenantDomain; + } + + public void setTenantDomain(String tenantDomain) { + this.tenantDomain = tenantDomain; + } + + public int getTenantId() { + return tenantId; + } + + public void setTenantId(int tenantId) { + this.tenantId = tenantId; + } + + public String getTenantAdminUsername() { + return tenantAdminUsername; + } + + public void setTenantAdminUsername(String tenantAdminUsername) { + this.tenantAdminUsername = tenantAdminUsername; + } + + public String getRepositoryType() { + return repositoryType; + } + + public void setRepositoryType(String repositoryType) { + this.repositoryType = repositoryType; + } + + public String getRepositoryURL() { + return repositoryURL; + } + + public void setRepositoryURL(String repositoryURL) { + this.repositoryURL = repositoryURL; + } + + public boolean isPrivateRepository() { + return isPrivateRepository; + } + + public void setPrivateRepository(boolean isPrivateRepository) { + this.isPrivateRepository = isPrivateRepository; + } + + public String getRepositoryUsername() { + return repositoryUsername; + } + + public void setRepositoryUsername(String repositoryUsername) { + this.repositoryUsername = repositoryUsername; + } + + public String getRepositoryPassword() { + return repositoryPassword; + } + + public void setRepositoryPassword(String repositoryPassword) { + this.repositoryPassword = repositoryPassword; + } + + public String getLbClusterId() { + return lbClusterId; + } + + public void setLbClusterId(String lbClusterId) { + this.lbClusterId = lbClusterId; + } + + public Property[] getProperties() { + return properties; + } + + public void setProperties(Property[] properties) { + this.properties = properties; + } + + public void setDataCartridgeAlias(String dataCartridgeAlias) {this.dataCartridgeAlias = dataCartridgeAlias; } + + public String getDataCartridgeAlias() {return dataCartridgeAlias;} + + public String getLbAlias() { + return lbAlias; + } + + public void setLbAlias(String lbAlias) { + this.lbAlias = lbAlias; + } + +} http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/680e592b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/ApplicationManagementUtil.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/ApplicationManagementUtil.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/ApplicationManagementUtil.java index 10d16d1..9cc1903 100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/ApplicationManagementUtil.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/ApplicationManagementUtil.java @@ -256,7 +256,7 @@ public class ApplicationManagementUtil { log.info("Register service.."); try { CloudControllerServiceClient.getServiceClient().register(domain, cartridgeType, payload.toString(), tenantRange, - hostName, properties, autoscalingPoliyName, deploymentPolicyName); + hostName, properties, autoscalingPoliyName, deploymentPolicyName, ); } catch (CloudControllerServiceIllegalArgumentExceptionException e) { String msg = "Exception is occurred in register service operation. Reason :" + e.getMessage(); log.error(msg, e); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/680e592b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java index 7ff19b3..43e80c5 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java @@ -32,6 +32,11 @@ public class CartridgeInfoBean { String dataCartridgeType; String dataCartridgeAlias; + boolean persistanceRequired; + int persistaneVolumeSize; + boolean deleteOnTermination; + String devicetoMap; + public String getCartridgeType() { return cartridgeType; @@ -112,4 +117,36 @@ public class CartridgeInfoBean { public void setDeploymentPolicy(String deploymentPolicy) { this.deploymentPolicy = deploymentPolicy; } + + public boolean isPersistanceRequired() { + return persistanceRequired; + } + + public void setPersistanceRequired(boolean persistanceRequired) { + this.persistanceRequired = persistanceRequired; + } + + public int getPersistaneVolumeSize() { + return persistaneVolumeSize; + } + + public void setPersistaneVolumeSize(int persistaneVolumeSize) { + this.persistaneVolumeSize = persistaneVolumeSize; + } + + public boolean isDeleteOnTermination() { + return deleteOnTermination; + } + + public void setDeleteOnTermination(boolean deleteOnTermination) { + this.deleteOnTermination = deleteOnTermination; + } + + public String getDevicetoMap() { + return devicetoMap; + } + + public void setDevicetoMap(String devicetoMap) { + this.devicetoMap = devicetoMap; + } } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/680e592b/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 49afe32..207d0d6 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 @@ -35,6 +35,7 @@ import org.apache.stratos.manager.exception.*; import org.apache.stratos.manager.manager.CartridgeSubscriptionManager; import org.apache.stratos.manager.subscription.CartridgeSubscription; import org.apache.stratos.manager.subscription.DataCartridgeSubscription; +import org.apache.stratos.manager.subscription.SubscriptionData; import org.apache.stratos.manager.subscription.utils.CartridgeSubscriptionUtils; import org.apache.stratos.manager.topology.model.TopologyClusterInformationModel; import org.apache.stratos.manager.utils.ApplicationManagementUtil; @@ -43,6 +44,7 @@ import org.apache.stratos.messaging.domain.topology.Cluster; import org.apache.stratos.messaging.domain.topology.Member; import org.apache.stratos.messaging.domain.topology.MemberStatus; import org.apache.stratos.messaging.util.Constants; +import org.apache.stratos.rest.endpoint.bean.CartridgeInfoBean; import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.Partition; import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.PartitionGroup; import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.AutoscalePolicy; @@ -746,19 +748,16 @@ public class ServiceUtils { } - static SubscriptionInfo subscribe(String cartridgeType, String alias, String autoscalingPolicy, String deploymentPolicy, String repoURL, - boolean privateRepo, String repoUsername, String repoPassword, String dataCartridgeType, - String dataCartridgeAlias, ConfigurationContext configurationContext, String userName, String tenantDomain) + static SubscriptionInfo subscribe(CartridgeInfoBean cartridgeInfoBean, ConfigurationContext configurationContext, String tenantUsername, String tenantDomain) throws ADCException, PolicyException, UnregisteredCartridgeException, InvalidCartridgeAliasException, DuplicateCartridgeAliasException, RepositoryRequiredException, AlreadySubscribedException, RepositoryCredentialsRequiredException, InvalidRepositoryException, RepositoryTransportException { - // LB cartridges won't go thru this method. //TODO: this is a temp fix. proper fix is to move this logic to CartridgeSubscriptionManager // validate cartridge alias - CartridgeSubscriptionUtils.validateCartridgeAlias(ApplicationManagementUtil.getTenantId(configurationContext), cartridgeType, alias); + CartridgeSubscriptionUtils.validateCartridgeAlias(ApplicationManagementUtil.getTenantId(configurationContext), cartridgeInfoBean.getCartridgeType(), cartridgeInfoBean.getAlias()); AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient(); CloudControllerServiceClient cloudControllerServiceClient = @@ -766,22 +765,42 @@ public class ServiceUtils { CartridgeInfo cartridgeInfo; try { - cartridgeInfo = cloudControllerServiceClient.getCartridgeInfo(cartridgeType); + cartridgeInfo = cloudControllerServiceClient.getCartridgeInfo(cartridgeInfoBean.getCartridgeType()); } catch (Exception e) { - String msg = "Cannot get cartridge info: " + cartridgeType; + String msg = "Cannot get cartridge info: " + cartridgeInfoBean.getCartridgeType(); log.error(msg, e); throw new ADCException(msg, e); } + String cartridgeType = cartridgeInfoBean.getCartridgeType(); + String deploymentPolicy = cartridgeInfoBean.getDeploymentPolicy(); + String autoscalingPolicy = cartridgeInfoBean.getAutoscalePolicy(); + String dataCartridgeAlias = cartridgeInfoBean.getDataCartridgeAlias(); + + SubscriptionData subscriptionData = new SubscriptionData(); + subscriptionData.setCartridgeType(cartridgeType); + subscriptionData.setCartridgeAlias(cartridgeInfoBean.getAlias().trim()); + subscriptionData.setDataCartridgeAlias(dataCartridgeAlias); + subscriptionData.setAutoscalingPolicyName(autoscalingPolicy); + subscriptionData.setDeploymentPolicyName(deploymentPolicy); + subscriptionData.setTenantDomain(tenantDomain); + subscriptionData.setTenantId(ApplicationManagementUtil.getTenantId(configurationContext)); + subscriptionData.setTenantAdminUsername(tenantUsername); + subscriptionData.setRepositoryType("git"); + subscriptionData.setRepositoryURL(cartridgeInfoBean.getRepoURL()); + subscriptionData.setRepositoryUsername(cartridgeInfoBean.getRepoURL()); + subscriptionData.setRepositoryPassword(cartridgeInfoBean.getRepoPassword()); + // If multitenant, return for now. TODO -- fix properly if(cartridgeInfo != null && cartridgeInfo.getMultiTenant()) { log.info(" ******* MT cartridge ******* "); + + subscriptionData.setPrivateRepository(false); + subscriptionData.setLbClusterId(null); + subscriptionData.setProperties(null); - CartridgeSubscription cartridgeSubscription = - cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(cartridgeType, alias, autoscalingPolicy, - deploymentPolicy ,tenantDomain, - ApplicationManagementUtil.getTenantId(configurationContext), - userName, "git", repoURL, false, repoUsername, repoPassword, null, null); + CartridgeSubscription cartridgeSubscription = + cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(subscriptionData); log.info(" --- ** -- "); return cartridgeSubsciptionManager.registerCartridgeSubscription(cartridgeSubscription); @@ -889,7 +908,7 @@ public class ServiceUtils { lbAlias, lbCartridgeInfo.getDefaultAutoscalingPolicy(), deploymentPolicy, configurationContext, - userName, tenantDomain, + tenantUsername, tenantDomain, lbCartridgeInfo.getProperties()); } else { String msg = "Please specify a LB cartridge type for the cartridge: " @@ -967,7 +986,7 @@ public class ServiceUtils { lbAlias, lbCartridgeInfo.getDefaultAutoscalingPolicy(), deploymentPolicy, - configurationContext, userName, + configurationContext, tenantUsername, tenantDomain, lbCartridgeInfo.getProperties()); } else { @@ -994,21 +1013,12 @@ public class ServiceUtils { } } + subscriptionData.setPrivateRepository(cartridgeInfoBean.isPrivateRepo()); + subscriptionData.setLbClusterId(lbClusterId); + subscriptionData.setProperties(lbRefProp.toArray(new Property[0])); CartridgeSubscription cartridgeSubscription = - cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(cartridgeType, - alias.trim(), - autoscalingPolicy, - deploymentPolicy, - tenantDomain, - ApplicationManagementUtil.getTenantId(configurationContext), - userName, - "git", - repoURL, - privateRepo, - repoUsername, - repoPassword, - lbClusterId, - lbRefProp.toArray(new Property[0])); + cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(subscriptionData); + if (dataCartridgeAlias != null && !dataCartridgeAlias.trim().isEmpty()) { @@ -1105,11 +1115,21 @@ public class ServiceUtils { if(log.isDebugEnabled()) { log.debug("Subscribing to a load balancer [cartridge] "+cartridgeType+" [alias] "+lbAlias); } + + SubscriptionData subscriptionData = new SubscriptionData(); + subscriptionData.setCartridgeType(cartridgeType); + subscriptionData.setLbAlias(lbAlias.trim()); + subscriptionData.setAutoscalingPolicyName(defaultAutoscalingPolicy); + subscriptionData.setDeploymentPolicyName(deploymentPolicy); + subscriptionData.setTenantDomain(tenantDomain); + subscriptionData.setTenantId(ApplicationManagementUtil.getTenantId(configurationContext)); + subscriptionData.setTenantAdminUsername(userName); + subscriptionData.setRepositoryType("git"); + subscriptionData.setProperties(props); + subscriptionData.setPrivateRepository(false); + cartridgeSubscription = - cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(cartridgeType, lbAlias.trim(), defaultAutoscalingPolicy, - deploymentPolicy ,tenantDomain, - ApplicationManagementUtil.getTenantId(configurationContext), - userName, "git", null, false, null, null, null, props); + cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(subscriptionData); //set a payload parameter to indicate the load balanced cartridge type cartridgeSubscription.getPayloadData().add("LOAD_BALANCED_SERVICE_TYPE", loadBalancedCartridgeType); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/680e592b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java index 4437a75..d36f271 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java @@ -342,16 +342,7 @@ public class StratosAdmin extends AbstractAdmin { @AuthorizationAction("/permission/protected/manage/monitor/tenants") public SubscriptionInfo subscribe(CartridgeInfoBean cartridgeInfoBean) { try { - return ServiceUtils.subscribe(cartridgeInfoBean.getCartridgeType(), - cartridgeInfoBean.getAlias(), - cartridgeInfoBean.getAutoscalePolicy(), - cartridgeInfoBean.getDeploymentPolicy(), - cartridgeInfoBean.getRepoURL(), - cartridgeInfoBean.isPrivateRepo(), - cartridgeInfoBean.getRepoUsername(), - cartridgeInfoBean.getRepoPassword(), - cartridgeInfoBean.getDataCartridgeType(), - cartridgeInfoBean.getDataCartridgeAlias(), + return ServiceUtils.subscribe(cartridgeInfoBean, getConfigContext(), getUsername(), getTenantDomain());
