You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by sa...@apache.org on 2013/12/11 14:17:30 UTC
[1/2] git commit: Implementing a service operation to deploy services
for super tenant, STRATOS-267
Updated Branches:
refs/heads/master a10d95fb0 -> 0bfb3bea7
Implementing a service operation to deploy services for super tenant, STRATOS-267
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/75493a80
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/75493a80
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/75493a80
Branch: refs/heads/master
Commit: 75493a807a536e697156d671e1be9a5cd77475fc
Parents: b62ed0c
Author: Sajith Kariyawasam <sa...@wso2.com>
Authored: Wed Dec 11 18:02:01 2013 +0530
Committer: Sajith Kariyawasam <sa...@wso2.com>
Committed: Wed Dec 11 18:02:01 2013 +0530
----------------------------------------------------------------------
.../manager/CartridgeSubscriptionManager.java | 114 +++++++++++++++++
.../apache/stratos/adc/mgt/payload/Payload.java | 12 +-
.../ApplicationCartridgeSubscription.java | 7 +-
.../mgt/subscription/CartridgeSubscription.java | 25 ++--
.../subscription/DataCartridgeSubscription.java | 5 +-
.../FrameworkCartridgeSubscription.java | 10 +-
.../subscription/LBCartridgeSubscription.java | 5 +-
.../factory/CartridgeSubscriptionFactory.java | 6 +-
.../ServiceDeploymentMultiTenantBehaviour.java | 125 +++++++++++++++++++
.../SubscriptionMultiTenantBehaviour.java | 2 +-
.../definition/ServiceDefinitionBean.java | 78 ++++++++++++
.../rest/endpoint/services/AbstractAdmin.java | 4 +
.../rest/endpoint/services/ServiceUtils.java | 30 +++++
.../rest/endpoint/services/StratosAdmin.java | 19 +++
.../src/main/resources/addTenantRequest.txt | 2 +-
.../src/main/resources/getTenantList.txt | 2 +-
16 files changed, 417 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/75493a80/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/manager/CartridgeSubscriptionManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/manager/CartridgeSubscriptionManager.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/manager/CartridgeSubscriptionManager.java
index 04daa0e..5cdeb06 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/manager/CartridgeSubscriptionManager.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/manager/CartridgeSubscriptionManager.java
@@ -35,6 +35,7 @@ import org.apache.stratos.adc.mgt.payload.PayloadFactory;
import org.apache.stratos.adc.mgt.repository.Repository;
import org.apache.stratos.adc.mgt.subscriber.Subscriber;
import org.apache.stratos.adc.mgt.subscription.CartridgeSubscription;
+import org.apache.stratos.adc.mgt.subscription.FrameworkCartridgeSubscription;
import org.apache.stratos.adc.mgt.subscription.factory.CartridgeSubscriptionFactory;
import org.apache.stratos.adc.mgt.utils.ApplicationManagementUtil;
import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
@@ -367,6 +368,119 @@ public class CartridgeSubscriptionManager {
return populateCartridgeSubscriptionInformation(cartridgeInfo, cartridgeSubscriptionInfo);
}
+
+
+ /****
+ * TODO - complete method...
+ *
+ *
+ * @param cartridgeType
+ * @param cartridgeAlias
+ * @param autoscalingPolicyName
+ * @param deploymentPolicyName
+ * @param tenantDomain
+ * @param tenantId
+ * @param tenantAdminUsername
+ * @param repositoryType
+ * @param repositoryURL
+ * @param isPrivateRepository
+ * @param repositoryUsername
+ * @param repositoryPassword
+ */
+
+ public CartridgeSubscription deployMultitenantService(String cartridgeType, String cartridgeAlias,
+ String autoscalingPolicyName, String deploymentPolicyName,
+ String tenantDomain, int tenantId,
+ String tenantAdminUsername,
+ String clusterDomain, String clusterSubdomain,
+ String repositoryURL, boolean isPrivateRepository,
+ String repositoryUsername, String repositoryPassword, String tenantRange) throws ADCException, InvalidCartridgeAliasException, DuplicateCartridgeAliasException, PolicyException,
+ UnregisteredCartridgeException, RepositoryRequiredException, RepositoryCredentialsRequiredException,
+ RepositoryTransportException, AlreadySubscribedException, InvalidRepositoryException {
+
+ log.info(" ---- in deploy multitenant service ---- ");
+ //validate cartridge alias
+ ApplicationManagementUtil.validateCartridgeAlias(cartridgeAlias, cartridgeType);
+
+ CartridgeInfo cartridgeInfo;
+ try {
+ cartridgeInfo = CloudControllerServiceClient.getServiceClient().getCartridgeInfo(cartridgeType);
+
+ } catch (UnregisteredCartridgeException e) {
+ String message = cartridgeType
+ + " is not a valid cartridgeSubscription type. Please try again with a valid cartridgeSubscription type.";
+ log.error(message);
+ throw e;
+
+ } catch (Exception e) {
+ String message = "Error getting info for " + cartridgeType;
+ log.error(message, e);
+ throw new ADCException(message, e);
+ }
+
+ Subscriber subscriber = new Subscriber(tenantAdminUsername, tenantId, tenantDomain);
+
+ CartridgeSubscription cartridgeSubscription = new FrameworkCartridgeSubscription(cartridgeInfo,true);
+ log.info("-- Cartridge subscription is created --- ");
+ Repository repository = cartridgeSubscription.manageRepository(repositoryURL, repositoryUsername,
+ repositoryPassword, isPrivateRepository, cartridgeAlias, cartridgeInfo, tenantDomain);
+ log.info("-- Repository creation is done --- ");
+ cartridgeSubscription.createSubscription(subscriber, cartridgeAlias, autoscalingPolicyName, deploymentPolicyName, repository);
+ cartridgeSubscription.setSubscriptionKey(generateSubscriptionKey());
+
+ //cartridgeSubscription.setClusterDomain(clusterDomain);
+ //cartridgeSubscription.setClusterSubDomain(clusterDomain);
+
+ log.info("-- subscription key is generated --- ");
+ log.info("Tenant [" + tenantId + "] with username [" + tenantAdminUsername +
+ " subscribed to " + "] Cartridge Alias " + cartridgeAlias + ", Cartridge Type: " + cartridgeType +
+ ", Repo URL: " + repositoryURL + ", Policy: " + autoscalingPolicyName);
+
+ // TODO -- payload would need some additional params - like Puppet master IP .. etc
+
+ Payload payload = PayloadFactory.getPayloadInstance(cartridgeInfo.getProvider(), cartridgeType,
+ "/tmp/" + tenantDomain + "-" + cartridgeAlias + ".zip");
+ PayloadArg payloadArg = cartridgeSubscription.createPayloadParameters();
+
+ if (payloadArg != null) {
+ //populate the payload
+ payload.populatePayload(payloadArg);
+
+ // populate payload from UI here
+ payloadArg.setTenantRange(tenantRange);
+ payloadArg.setDeployment("default");
+ payloadArg.setServiceDomain(cartridgeAlias+"."+cartridgeInfo.getHostName()+".domain"); // This is cluster id
+ cartridgeSubscription.setPayload(payload);
+ }
+
+ //get the payload parameters defined in the cartridge definition file for this cartridge type
+ if (cartridgeInfo.getProperties() != null && cartridgeInfo.getProperties().length != 0) {
+
+ StringBuilder customPayloadParamsBuilder = new StringBuilder();
+ for(Property property : cartridgeInfo.getProperties()) {
+ //check if a property is related to the payload. Currently this is done by checking if the
+ //property name starts with 'payload_parameter.' suffix. If so the payload param name will
+ //be taken as the substring from the index of '.' to the end of the property name.
+ if(property.getName().startsWith(CartridgeConstants.CUSTOM_PAYLOAD_PARAM_NAME_PREFIX)) {
+ String payloadParamName = property.getName();
+ customPayloadParamsBuilder.append(",");
+ customPayloadParamsBuilder.append(payloadParamName.
+ substring(payloadParamName.indexOf(".") + 1));
+ customPayloadParamsBuilder.append("=");
+ customPayloadParamsBuilder.append(property.getValue());
+ }
+ }
+ //if valid payload related parameters are found in the cartridge definition file, add them to the payload
+ String customPayloadParamString = customPayloadParamsBuilder.toString();
+ if(!customPayloadParamString.isEmpty()) {
+ payload.populatePayload(customPayloadParamString);
+ cartridgeSubscription.setPayload(payload);
+ }
+ }
+
+ return cartridgeSubscription;
+
+ }
private CartridgeSubscriptionInfo getCartridgeSubscriptionInfo(String tenantDomain, String alias)
throws ADCException, NotSubscribedException {
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/75493a80/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/Payload.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/Payload.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/Payload.java
index 724c32d..bb587f4 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/Payload.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/Payload.java
@@ -63,17 +63,17 @@ public abstract class Payload {
payloadBuilder.append(",");
payloadBuilder.append("TENANT_RANGE=" + payloadArg.getTenantRange());
payloadBuilder.append(",");
- payloadBuilder.append("TENANT_CONTEXT=" + payloadArg.getTenantDomain());
+ payloadBuilder.append("TENANT_CONTEXT=" + payloadArg.getTenantDomain()); // No need to send those now
payloadBuilder.append(",");
payloadBuilder.append("CARTRIDGE_ALIAS=" + payloadArg.getCartridgeAlias());
payloadBuilder.append(",");
- payloadBuilder.append("MB_IP=" + System.getProperty(CartridgeConstants.MB_IP));
+ payloadBuilder.append("MB_IP=" + System.getProperty(CartridgeConstants.MB_IP)); // No need to send those now, will get from Puppet
payloadBuilder.append(",");
- payloadBuilder.append("MB_PORT=" + System.getProperty(CartridgeConstants.MB_PORT));
+ payloadBuilder.append("MB_PORT=" + System.getProperty(CartridgeConstants.MB_PORT)); // No need to send those now, will get from Puppet
payloadBuilder.append(",");
- payloadBuilder.append("CEP_IP=" + System.getProperty(CartridgeConstants.CEP_IP));
+ payloadBuilder.append("CEP_IP=" + System.getProperty(CartridgeConstants.CEP_IP)); // No need to send those now, will get from Puppet
payloadBuilder.append(",");
- payloadBuilder.append("CEP_PORT=" + System.getProperty(CartridgeConstants.CEP_PORT));
+ payloadBuilder.append("CEP_PORT=" + System.getProperty(CartridgeConstants.CEP_PORT)); // No need to send those now, will get from Puppet
payloadBuilder.append(",");
payloadBuilder.append("CLUSTER_ID=" + payloadArg.getServiceDomain());
payloadBuilder.append(",");
@@ -81,7 +81,7 @@ public abstract class Payload {
if(payloadArg.getCartridgeInfo() != null) {
payloadBuilder.append(",");
- payloadBuilder.append("SERVICE_NAME=" + payloadArg.getCartridgeInfo().getType());
+ payloadBuilder.append("SERVICE=" + payloadArg.getCartridgeInfo().getType()); // TODO -- rename to SERVICE_NAME and rename puppet agent too
}
//add the user defined payload String (if any)
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/75493a80/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/ApplicationCartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/ApplicationCartridgeSubscription.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/ApplicationCartridgeSubscription.java
index 8ed62c6..d63e13a 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/ApplicationCartridgeSubscription.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/ApplicationCartridgeSubscription.java
@@ -24,6 +24,7 @@ import org.apache.stratos.adc.mgt.exception.*;
import org.apache.stratos.adc.mgt.payload.PayloadArg;
import org.apache.stratos.adc.mgt.repository.Repository;
import org.apache.stratos.adc.mgt.subscriber.Subscriber;
+import org.apache.stratos.adc.mgt.subscription.tenancy.SubscriptionTenancyBehaviour;
import org.apache.stratos.adc.mgt.utils.ApplicationManagementUtil;
import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
@@ -37,8 +38,8 @@ public class ApplicationCartridgeSubscription extends CartridgeSubscription {
*
* @param cartridgeInfo CartridgeInfo subscription
*/
- public ApplicationCartridgeSubscription(CartridgeInfo cartridgeInfo) {
- super(cartridgeInfo);
+ public ApplicationCartridgeSubscription(CartridgeInfo cartridgeInfo, boolean isServiceDeployment) {
+ super(cartridgeInfo, isServiceDeployment);
}
public void createSubscription(Subscriber subscriber, String alias, String autoscalingPolicyName,
@@ -82,4 +83,6 @@ public class ApplicationCartridgeSubscription extends CartridgeSubscription {
PayloadArg payloadArg = super.createPayloadParameters();
return subscriptionTenancyBehaviour.createPayloadParameters(payloadArg);
}
+
+
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/75493a80/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java
index 567ffb7..d868745 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java
@@ -32,6 +32,7 @@ import org.apache.stratos.adc.mgt.payload.PayloadArg;
import org.apache.stratos.adc.mgt.repository.Repository;
import org.apache.stratos.adc.mgt.service.RepositoryInfoBean;
import org.apache.stratos.adc.mgt.subscriber.Subscriber;
+import org.apache.stratos.adc.mgt.subscription.tenancy.ServiceDeploymentMultiTenantBehaviour;
import org.apache.stratos.adc.mgt.subscription.tenancy.SubscriptionMultiTenantBehaviour;
import org.apache.stratos.adc.mgt.subscription.tenancy.SubscriptionSingleTenantBehaviour;
import org.apache.stratos.adc.mgt.subscription.tenancy.SubscriptionTenancyBehaviour;
@@ -43,7 +44,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
-public abstract class CartridgeSubscription {
+public abstract class CartridgeSubscription /*implements TempBehaviourInterface*/ {
private static Log log = LogFactory.getLog(CartridgeSubscription.class);
private int subscriptionId;
@@ -67,7 +68,8 @@ public abstract class CartridgeSubscription {
*
* @param cartridgeInfo CartridgeInfo subscription
*/
- public CartridgeSubscription(CartridgeInfo cartridgeInfo) {
+ // TODO - temp fix to identify service deployment
+ public CartridgeSubscription(CartridgeInfo cartridgeInfo, boolean isServiceDeployment) {
this.setCartridgeInfo(cartridgeInfo);
this.setType(cartridgeInfo.getType());
@@ -79,12 +81,14 @@ public abstract class CartridgeSubscription {
getCluster().setHostName(cartridgeInfo.getHostName());
this.setSubscriptionStatus(CartridgeConstants.SUBSCRIBED);
this.connectedSubscriptionAliases = new ArrayList<String>();
- if(getCartridgeInfo().getMultiTenant()) {
+ if(isServiceDeployment) {
+ subscriptionTenancyBehaviour = new ServiceDeploymentMultiTenantBehaviour(this);
+ } else if(getCartridgeInfo().getMultiTenant()) {
subscriptionTenancyBehaviour = new SubscriptionMultiTenantBehaviour(this);
}
else {
subscriptionTenancyBehaviour = new SubscriptionSingleTenantBehaviour(this);
- }
+ }
}
/**
@@ -113,11 +117,14 @@ public abstract class CartridgeSubscription {
DuplicateCartridgeAliasException, RepositoryRequiredException, AlreadySubscribedException,
RepositoryCredentialsRequiredException, InvalidRepositoryException, RepositoryTransportException {
+ log.info(" ---- in super type cartridge subscription --");
setSubscriber(subscriber);
setAlias(alias);
setAutoscalingPolicyName(autoscalingPolicy);
setDeploymentPolicyName(deploymentPolicyName);
setRepository(repository);
+ // TODOOO... remove followig
+ //subscriptionTenancyBehaviour.createSubscription(this);
}
/**
@@ -210,8 +217,9 @@ public abstract class CartridgeSubscription {
}
}
- Repository repository = new Repository();
+ Repository repository = null;
if (repoURL != null && repoURL.trim().length() > 0) {
+ repository = new Repository();
log.info("External REPO URL is provided as [" + repoURL +
"]. Therefore not creating a new repo.");
//repository.setRepoName(repoURL.substring(0, repoURL.length()-4)); // remove .git part
@@ -220,12 +228,13 @@ public abstract class CartridgeSubscription {
repository.setPassword(repoUserPassword);
repository.setPrivateRepository(privateRepo);
- } else {
+ }
+ // Commenting out, since internal git repos are no longer used
+ /*else {
log.info("External git repo url not provided for tenant "
+ tenantDomain + ", creating an git internal repository");
- // for internal repos internal git server username and password is used.
repository.setUserName(System.getProperty(CartridgeConstants.INTERNAL_GIT_USERNAME));
repository.setPassword(System.getProperty(CartridgeConstants.INTERNAL_GIT_PASSWORD));
try {
@@ -239,7 +248,7 @@ public abstract class CartridgeSubscription {
String repoName = tenantDomain + "/" + cartridgeAlias;
repository.setUrl("https://" + System.getProperty(CartridgeConstants.GIT_HOST_NAME) + ":8443/git/" +
repoName);
- }
+ }*/
// Validate Remote Repository.
ApplicationManagementUtil.validateRepository(repoURL, repoUserName, repoUserPassword, privateRepo,
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/75493a80/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription.java
index 5ec5fd3..821f078 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription.java
@@ -25,6 +25,7 @@ import org.apache.stratos.adc.mgt.exception.*;
import org.apache.stratos.adc.mgt.payload.PayloadArg;
import org.apache.stratos.adc.mgt.repository.Repository;
import org.apache.stratos.adc.mgt.subscriber.Subscriber;
+import org.apache.stratos.adc.mgt.subscription.tenancy.SubscriptionTenancyBehaviour;
import org.apache.stratos.adc.mgt.utils.ApplicationManagementUtil;
import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
@@ -42,9 +43,9 @@ public class DataCartridgeSubscription extends CartridgeSubscription {
*
* @param cartridgeInfo CartridgeInfo subscription
*/
- public DataCartridgeSubscription(CartridgeInfo cartridgeInfo) {
+ public DataCartridgeSubscription(CartridgeInfo cartridgeInfo, boolean isServiceDeployment) {
- super(cartridgeInfo);
+ super(cartridgeInfo, isServiceDeployment);
this.setHost("localhost");
this.setUsername(CartridgeConstants.MYSQL_DEFAULT_USER);
this.setPassword(ApplicationManagementUtil.generatePassword());
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/75493a80/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/FrameworkCartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/FrameworkCartridgeSubscription.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/FrameworkCartridgeSubscription.java
index 640aa9f..637c83f 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/FrameworkCartridgeSubscription.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/FrameworkCartridgeSubscription.java
@@ -19,25 +19,28 @@
package org.apache.stratos.adc.mgt.subscription;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.stratos.adc.mgt.dao.CartridgeSubscriptionInfo;
import org.apache.stratos.adc.mgt.exception.*;
import org.apache.stratos.adc.mgt.payload.PayloadArg;
import org.apache.stratos.adc.mgt.repository.Repository;
import org.apache.stratos.adc.mgt.subscriber.Subscriber;
+import org.apache.stratos.adc.mgt.subscription.tenancy.SubscriptionTenancyBehaviour;
import org.apache.stratos.adc.mgt.utils.ApplicationManagementUtil;
import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
import java.util.Properties;
public class FrameworkCartridgeSubscription extends CartridgeSubscription {
-
+ private static Log log = LogFactory.getLog(FrameworkCartridgeSubscription.class);
/**
* Constructor
*
* @param cartridgeInfo CartridgeInfo subscription
*/
- public FrameworkCartridgeSubscription(CartridgeInfo cartridgeInfo) {
- super(cartridgeInfo);
+ public FrameworkCartridgeSubscription(CartridgeInfo cartridgeInfo, boolean isServiceDeployment) {
+ super(cartridgeInfo, isServiceDeployment);
}
@Override
@@ -47,6 +50,7 @@ public class FrameworkCartridgeSubscription extends CartridgeSubscription {
RepositoryCredentialsRequiredException, RepositoryTransportException, UnregisteredCartridgeException,
AlreadySubscribedException, RepositoryRequiredException, InvalidRepositoryException, PolicyException {
+ log.info(" -- in create Subscription ---");
super.createSubscription(subscriber, alias, autoscalingPolicyName, deploymentPolicyName, repository);
subscriptionTenancyBehaviour.createSubscription();
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/75493a80/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/LBCartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/LBCartridgeSubscription.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/LBCartridgeSubscription.java
index 151f157..37455c2 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/LBCartridgeSubscription.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/LBCartridgeSubscription.java
@@ -23,6 +23,7 @@ import org.apache.stratos.adc.mgt.dao.CartridgeSubscriptionInfo;
import org.apache.stratos.adc.mgt.exception.ADCException;
import org.apache.stratos.adc.mgt.exception.NotSubscribedException;
import org.apache.stratos.adc.mgt.exception.UnregisteredCartridgeException;
+import org.apache.stratos.adc.mgt.subscription.tenancy.SubscriptionTenancyBehaviour;
import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
import java.util.Properties;
@@ -34,8 +35,8 @@ public class LBCartridgeSubscription extends CartridgeSubscription {
*
* @param cartridgeInfo CartridgeInfo subscription
*/
- public LBCartridgeSubscription(CartridgeInfo cartridgeInfo) {
- super(cartridgeInfo);
+ public LBCartridgeSubscription(CartridgeInfo cartridgeInfo, boolean isServiceDeployment) {
+ super(cartridgeInfo, isServiceDeployment);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/75493a80/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/factory/CartridgeSubscriptionFactory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/factory/CartridgeSubscriptionFactory.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/factory/CartridgeSubscriptionFactory.java
index 395d8bd..b6f0202 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/factory/CartridgeSubscriptionFactory.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/factory/CartridgeSubscriptionFactory.java
@@ -65,15 +65,15 @@ public class CartridgeSubscriptionFactory {
//TODO: fix the logic properly
CartridgeSubscription cartridgeSubscription = null;
if(cartridgeInfo.getMultiTenant()) {
- cartridgeSubscription = new FrameworkCartridgeSubscription(cartridgeInfo);
+ cartridgeSubscription = new FrameworkCartridgeSubscription(cartridgeInfo, false);
} else {
if(cartridgeInfo.getProvider().equals(CartridgeConstants.DATA_CARTRIDGE_PROVIDER)) {
- cartridgeSubscription = new DataCartridgeSubscription(cartridgeInfo);
+ cartridgeSubscription = new DataCartridgeSubscription(cartridgeInfo, false);
}
else {
//cartridgeSubscription = new SingleTenantCartridgeSubscription(cartridgeInfo);
- cartridgeSubscription = new FrameworkCartridgeSubscription(cartridgeInfo);
+ cartridgeSubscription = new FrameworkCartridgeSubscription(cartridgeInfo, false);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/75493a80/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/ServiceDeploymentMultiTenantBehaviour.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/ServiceDeploymentMultiTenantBehaviour.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/ServiceDeploymentMultiTenantBehaviour.java
new file mode 100644
index 0000000..4e0b08e
--- /dev/null
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/ServiceDeploymentMultiTenantBehaviour.java
@@ -0,0 +1,125 @@
+/*
+ * 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.adc.mgt.subscription.tenancy;
+
+import java.util.Properties;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.adc.mgt.exception.ADCException;
+import org.apache.stratos.adc.mgt.exception.AlreadySubscribedException;
+import org.apache.stratos.adc.mgt.exception.UnregisteredCartridgeException;
+import org.apache.stratos.adc.mgt.internal.DataHolder;
+import org.apache.stratos.adc.mgt.payload.PayloadArg;
+import org.apache.stratos.adc.mgt.subscription.CartridgeSubscription;
+import org.apache.stratos.adc.mgt.utils.ApplicationManagementUtil;
+import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
+import org.apache.stratos.adc.mgt.utils.PersistenceManager;
+import org.apache.stratos.adc.topology.mgt.service.TopologyManagementService;
+import org.apache.stratos.adc.topology.mgt.serviceobjects.DomainContext;
+
+public class ServiceDeploymentMultiTenantBehaviour extends
+ SubscriptionMultiTenantBehaviour {
+
+ private static Log log = LogFactory.getLog(ServiceDeploymentMultiTenantBehaviour.class);
+
+ public ServiceDeploymentMultiTenantBehaviour(
+ CartridgeSubscription cartridgeSubscription) {
+ super(cartridgeSubscription);
+ }
+
+ @Override
+ public void createSubscription() throws ADCException,
+ AlreadySubscribedException {
+
+ log.info(" --- in Service Deployment Multitenant Behaviour create subscription ---- ");
+
+ boolean allowMultipleSubscription = Boolean.
+ valueOf(System.getProperty(CartridgeConstants.FEATURE_MULTI_TENANT_MULTIPLE_SUBSCRIPTION_ENABLED));
+
+ if (!allowMultipleSubscription) {
+ // If the cartridge is multi-tenant. We should not let users
+ // createSubscription twice.
+ boolean subscribed;
+ try {
+ subscribed = PersistenceManager.isAlreadySubscribed(
+ cartridgeSubscription.getType(), cartridgeSubscription
+ .getSubscriber().getTenantId());
+ } catch (Exception e) {
+ String msg = "Error checking whether the cartridge type "
+ + cartridgeSubscription.getType()
+ + " is already subscribed";
+ log.error(msg, e);
+ throw new ADCException(msg, e);
+ }
+
+ if (subscribed) {
+ String msg = "Already subscribed to "
+ + cartridgeSubscription.getType()
+ + ". This multi-tenant cartridge will not be available to createSubscription";
+ if (log.isDebugEnabled()) {
+ log.debug(msg);
+ }
+ throw new AlreadySubscribedException(msg,
+ cartridgeSubscription.getType());
+ }
+ }
+
+ /*if (domainContext.getSubDomain().equalsIgnoreCase("mgt")) {
+ cartridgeSubscription.getCluster().setMgtClusterDomain(
+ domainContext.getDomain());
+ cartridgeSubscription.getCluster().setMgtClusterSubDomain(
+ domainContext.getSubDomain());
+ } else {
+ cartridgeSubscription.getCluster().setClusterDomain(
+ domainContext.getDomain());
+ cartridgeSubscription.getCluster().setClusterSubDomain(
+ domainContext.getSubDomain());
+ }*/
+
+ }
+
+
+ @Override
+ public void registerSubscription(Properties properties)
+ throws ADCException, UnregisteredCartridgeException {
+
+ // register subscription to start up the cartridge instances
+ ApplicationManagementUtil.registerService(cartridgeSubscription.getType(),
+ cartridgeSubscription.getCluster().getClusterDomain(),
+ cartridgeSubscription.getCluster().getClusterSubDomain(),
+ cartridgeSubscription.getPayload().createPayload(),
+ cartridgeSubscription.getPayload().getPayloadArg().getTenantRange(),
+ cartridgeSubscription.getCluster().getHostName(),
+ cartridgeSubscription.getAutoscalingPolicyName(),
+ cartridgeSubscription.getDeploymentPolicyName(),
+ properties);
+ // TODO -- Commented out for testing. Uncomment for release.
+ //cartridgeSubscription.getPayload().delete();
+ }
+
+ @Override
+ public PayloadArg createPayloadParameters(PayloadArg payloadArg)
+ throws ADCException {
+
+ return payloadArg;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/75493a80/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
index 7d7122c..2ca93ed 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
@@ -115,5 +115,5 @@ public class SubscriptionMultiTenantBehaviour extends SubscriptionTenancyBehavio
//payload not used
return null;
- }
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/75493a80/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/ServiceDefinitionBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/ServiceDefinitionBean.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/ServiceDefinitionBean.java
new file mode 100644
index 0000000..3766b3c
--- /dev/null
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/ServiceDefinitionBean.java
@@ -0,0 +1,78 @@
+/*
+ * 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.cartridge.definition;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement(name = "serviceDefinitionBean")
+public class ServiceDefinitionBean {
+
+ private String serviceName;
+ private String cartridgeType;
+ private String deploymentPolicyName;
+ private String autoscalingPolicyName;
+ private String clusterDomain;
+ private String clusterSubDomain;
+ private String tenantRange;
+
+ public String getServiceName() {
+ return serviceName;
+ }
+ public void setServiceName(String serviceName) {
+ this.serviceName = serviceName;
+ }
+ public String getCartridgeType() {
+ return cartridgeType;
+ }
+ public void setCartridgeType(String cartridgeType) {
+ this.cartridgeType = cartridgeType;
+ }
+ public String getDeploymentPolicyName() {
+ return deploymentPolicyName;
+ }
+ public void setDeploymentPolicyName(String deploymentPolicyName) {
+ this.deploymentPolicyName = deploymentPolicyName;
+ }
+ public String getAutoscalingPolicyName() {
+ return autoscalingPolicyName;
+ }
+ public void setAutoscalingPolicyName(String autoscalingPolicyName) {
+ this.autoscalingPolicyName = autoscalingPolicyName;
+ }
+ public String getClusterDomain() {
+ return clusterDomain;
+ }
+ public void setClusterDomain(String clusterDomain) {
+ this.clusterDomain = clusterDomain;
+ }
+ public String getClusterSubDomain() {
+ return clusterSubDomain;
+ }
+ public void setClusterSubDomain(String clusterSubDomain) {
+ this.clusterSubDomain = clusterSubDomain;
+ }
+ public String getTenantRange() {
+ return tenantRange;
+ }
+ public void setTenantRange(String tenantRange) {
+ this.tenantRange = tenantRange;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/75493a80/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/AbstractAdmin.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/AbstractAdmin.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/AbstractAdmin.java
index bbe39b3..37b1905 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/AbstractAdmin.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/AbstractAdmin.java
@@ -61,4 +61,8 @@ public class AbstractAdmin {
protected String getUsername(){
return CarbonContext.getThreadLocalCarbonContext().getUsername();
}
+
+ protected int getTenantId(){
+ return CarbonContext.getThreadLocalCarbonContext().getTenantId();
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/75493a80/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 f99a16d..194945b 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
@@ -531,5 +531,35 @@ public class ServiceUtils {
cartridgeSubsciptionManager.unsubscribeFromCartridge(tenantDomain, alias);
}
+
+ /**
+ *
+ * Super tenant will deploy multitenant service.
+ *
+ * get domain , subdomain as well..
+ * @param clusterDomain
+ * @param clusterSubdomain
+ *
+ */
+ static void deployService (String cartridgeType, String alias, String autoscalingPolicy, String deploymentPolicy,
+ String tenantDomain, int tenantId, String clusterDomain, String clusterSubdomain, String tenantRange) {
+
+ // create the subscription and persist.
+ CartridgeSubscription cartridgeSubscription = null;
+ try {
+ cartridgeSubscription = cartridgeSubsciptionManager.deployMultitenantService(cartridgeType, alias, autoscalingPolicy,
+ deploymentPolicy, tenantDomain, tenantId, "tenant-admin-user-name", clusterDomain, clusterSubdomain, null, false, null, null,
+ tenantRange);
+ cartridgeSubsciptionManager.registerCartridgeSubscription(cartridgeSubscription);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ /*CartridgeSubscription cartridgeSubscription = cartridgeSubsciptionManager.subscribeToCartridge(cartridgeType,
+ alias.trim(), autoscalingPolicy, deploymentPolicy ,tenantDomain, tenantId,
+ userName, "git", repoURL, privateRepo, repoUsername, repoPassword);*/
+
+ //
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/75493a80/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 67a48be..3bfeb97 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
@@ -36,6 +36,7 @@ import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.PartitionGroup
import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.AutoscalePolicy;
import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy;
import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean;
+import org.apache.stratos.rest.endpoint.bean.cartridge.definition.ServiceDefinitionBean;
import org.apache.stratos.rest.endpoint.exception.RestAPIException;
import org.apache.stratos.tenant.mgt.util.TenantMgtUtil;
import org.wso2.carbon.context.PrivilegedCarbonContext;
@@ -52,6 +53,7 @@ import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
import javax.ws.rs.*;
import java.util.ArrayList;
import java.util.List;
+import java.util.UUID;
@Path("/admin/")
public class StratosAdmin extends AbstractAdmin {
@@ -596,6 +598,23 @@ public class StratosAdmin extends AbstractAdmin {
}
+ @POST
+ @Path("/service/definition")
+ @Produces("application/json")
+ @Consumes("application/json")
+ @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+ @SuperTenantService(true)
+ public void deployService (ServiceDefinitionBean serviceDefinitionBean)
+ throws RestAPIException {
+
+ log.info("Service definition request.. : " + serviceDefinitionBean.getServiceName());
+ // super tenant Deploying service (MT)
+ // -- note -- here an alias is generated
+ ServiceUtils.deployService(serviceDefinitionBean.getCartridgeType(), UUID.randomUUID().toString(), serviceDefinitionBean.getAutoscalingPolicyName(),
+ serviceDefinitionBean.getDeploymentPolicyName(), getTenantDomain(), getTenantId(),
+ serviceDefinitionBean.getClusterDomain(), serviceDefinitionBean.getClusterSubDomain(),
+ serviceDefinitionBean.getTenantRange());
+ }
private List<TenantInfoBean> getAllTenants() throws Exception {
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/75493a80/components/org.apache.stratos.rest.endpoint/src/main/resources/addTenantRequest.txt
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/resources/addTenantRequest.txt b/components/org.apache.stratos.rest.endpoint/src/main/resources/addTenantRequest.txt
index 644bea3..8bccb12 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/resources/addTenantRequest.txt
+++ b/components/org.apache.stratos.rest.endpoint/src/main/resources/addTenantRequest.txt
@@ -1,4 +1,4 @@
{"tenantInfo":{"admin":"admin","firstname":"Frank","lastname":"Myers","adminPassword":"admin123","email":"foo@bar.com","tenantDomain":"frank.com"}}
-curl -X POST -H "Content-Type: application/json" -d '{"tenantInfo":{"admin":"admin","firstname":"Frank","lastname":"Myers","adminPassword":"admin123","email":"foo@bar.com","tenantDomain":"frank.com"}}' -v -u admin:admin http://localhost:9763/stratos/admin/tenant/create
\ No newline at end of file
+curl -X POST -H "Content-Type: application/json" -d '{"tenantInfo":{"admin":"admin","firstname":"Frank","lastname":"Myers","adminPassword":"admin123","email":"foo@bar.com","tenantDomain":"frank.com"}}' -v -u admin:admin http://localhost:9763/stratos/admin/tenant
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/75493a80/components/org.apache.stratos.rest.endpoint/src/main/resources/getTenantList.txt
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/resources/getTenantList.txt b/components/org.apache.stratos.rest.endpoint/src/main/resources/getTenantList.txt
index 3d0cc29..136eaf6 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/resources/getTenantList.txt
+++ b/components/org.apache.stratos.rest.endpoint/src/main/resources/getTenantList.txt
@@ -1 +1 @@
-curl -v -u admin:admin http://localhost:9763/stratos/admin/tenant/list
\ No newline at end of file
+curl -X GET -v -u admin:admin http://ec2-54-251-211-89.ap-southeast-1.compute.amazonaws.com:9765/stratos/admin/tenant/list
[2/2] git commit: Resolving conflicts
Posted by sa...@apache.org.
Resolving conflicts
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/0bfb3bea
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/0bfb3bea
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/0bfb3bea
Branch: refs/heads/master
Commit: 0bfb3bea75733917e71d3d2072d415eb044e9732
Parents: 75493a8 a10d95f
Author: Sajith Kariyawasam <sa...@wso2.com>
Authored: Wed Dec 11 18:46:55 2013 +0530
Committer: Sajith Kariyawasam <sa...@wso2.com>
Committed: Wed Dec 11 18:46:55 2013 +0530
----------------------------------------------------------------------
.../adc/mgt/client/AutoscalerServiceClient.java | 119 +-
.../client/CloudControllerServiceClient.java | 11 +-
.../org/apache/stratos/adc/mgt/dao/Cluster.java | 4 +-
.../internal/ADCManagementServerComponent.java | 13 +
.../mgt/listener/InstanceStatusListener.java | 6 +-
.../adc/mgt/listener/TenantStatusListner.java | 42 +
.../adc/mgt/listener/TopologyEventListner.java | 40 +
.../ClusterIdToCartridgeSubscriptionMap.java | 70 +
.../adc/mgt/lookup/LookupDataHolder.java | 254 ++
...criptionAliasToCartridgeSubscriptionMap.java | 71 +
.../apache/stratos/adc/mgt/payload/Payload.java | 7 +-
.../DatabaseBasedPersistenceManager.java | 2816 +++++++++---------
.../adc/mgt/persistence/PersistenceManager.java | 28 +-
.../RegistryBasedPersistenceManager.java | 125 +
.../adc/mgt/registry/RegistryManager.java | 138 +
.../stratos/adc/mgt/repository/Repository.java | 4 +-
.../adc/mgt/retriever/DataRetrievalManager.java | 184 ++
.../stratos/adc/mgt/subscriber/Subscriber.java | 4 +-
.../ApplicationCartridgeSubscription.java | 8 +-
.../mgt/subscription/CartridgeSubscription.java | 23 +-
.../subscription/DataCartridgeSubscription.java | 7 +-
.../FrameworkCartridgeSubscription.java | 11 +-
.../subscription/LBCartridgeSubscription.java | 3 +-
.../ServiceDeploymentMultiTenantBehaviour.java | 10 +-
.../SubscriptionMultiTenantBehaviour.java | 27 +-
.../SubscriptionSingleTenantBehaviour.java | 2 +-
.../tenancy/SubscriptionTenancyBehaviour.java | 6 +-
.../processor/ClusterStatusEventProcessor.java | 113 +
.../CompleteTopologyEventProcessor.java | 122 +
.../processor/InstanceStatusEventProcessor.java | 412 +++
.../event/processor/TopologyEventProcessor.java | 33 +
.../processor/TopologyEventProcessorChain.java | 65 +
.../model/TopologyClusterInformationModel.java | 477 +++
.../mgt/utils/ApplicationManagementUtil.java | 16 +-
.../stratos/adc/mgt/utils/Deserializer.java | 52 +
.../stratos/adc/mgt/utils/Serializer.java | 83 +
.../apache/stratos/autoscaler/Constants.java | 3 +
.../autoscaler/NetworkPartitionContext.java | 201 ++
.../autoscaler/api/AutoScalerServiceImpl.java | 169 +-
.../deployment/policy/DeploymentPolicy.java | 22 +-
.../exception/NonExistingLBException.java | 43 +
.../interfaces/AutoScalerServiceInterface.java | 42 +-
.../internal/AutoscalerServerComponent.java | 217 +-
.../autoscaler/partition/PartitionManager.java | 89 +-
.../partition/deployers/PartitionDeployer.java | 2 +-
.../autoscaler/policy/PolicyManager.java | 132 +-
.../deployers/AutoscalerPolicyDeployer.java | 7 +-
.../deployers/DeploymentPolicyDeployer.java | 6 +-
.../policy/model/AutoscalePolicy.java | 5 +-
.../autoscaler/policy/model/LoadAverage.java | 7 +-
.../autoscaler/policy/model/LoadThresholds.java | 5 +-
.../policy/model/MemoryConsumption.java | 7 +-
.../policy/model/RequestsInFlight.java | 7 +-
.../autoscaler/registry/RegistryManager.java | 23 +-
.../rule/AutoscalerRuleEvaluator.java | 36 +-
.../autoscaler/util/AutoScalerConstants.java | 2 +
.../stratos/autoscaler/util/AutoscalerUtil.java | 2 +
.../stratos/autoscaler/util/Deserializer.java | 96 +
.../cartridge/mgt/ui/CartridgeAdminClient.java | 8 +-
.../web/cartridge-mgt/available_cartridges.jsp | 4 +-
.../cartridge-mgt/map_domain_ajaxprocessor.jsp | 2 +-
.../remove_domain_ajaxprocessor.jsp | 2 +-
.../resources/web/cartridge-mgt/subscribe.jsp | 2 +-
.../cartridge-mgt/subscribe_ajaxprocessor.jsp | 4 +-
.../web/cartridge-mgt/subscribed_cartridges.jsp | 4 +-
.../subscribed_cartridges_ajaxprocessor.jsp | 4 +-
.../cartridge-mgt/sync_repo_ajaxprocessor.jsp | 2 +-
.../cartridge-mgt/test_git_ajaxprocessor.jsp | 2 +-
.../cartridge-mgt/unsubscribe_ajaxprocessor.jsp | 2 +-
components/org.apache.stratos.cli/pom.xml | 5 +
.../java/org/apache/stratos/cli/Cartridge.java | 202 ++
.../apache/stratos/cli/CartridgeInfoBean.java | 106 +
.../apache/stratos/cli/CommandLineService.java | 14 +-
.../apache/stratos/cli/GenericRestClient.java | 58 +
.../java/org/apache/stratos/cli/RestClient.java | 189 ++
.../stratos/cli/RestCommandLineService.java | 563 ++++
.../apache/stratos/cli/StratosApplication.java | 50 +-
.../apache/stratos/cli/SubscriptionInfo.java | 44 +
.../org/apache/stratos/cli/TenantInfoBean.java | 85 +
.../apache/stratos/cli/WebClientWrapper.java | 63 +
.../stratos/cli/commands/AddTenantCommand.java | 188 ++
.../AutoscalingPolicyDeploymentCommand.java | 138 +
.../commands/CartridgeDeploymentCommand.java | 140 +
.../stratos/cli/commands/CartridgesCommand.java | 10 +-
.../DeploymentPolicyDeploymentCommand.java | 138 +
.../stratos/cli/commands/ListCommand.java | 13 +-
.../commands/PartitionDeploymentCommand.java | 138 +
.../stratos/cli/commands/SubscribeCommand.java | 10 +-
.../cli/commands/UnsubscribeCommand.java | 5 +-
.../apache/stratos/cli/utils/CliConstants.java | 48 +
.../cloud/controller/iaases/AWSEC2Iaas.java | 10 -
.../controller/iaases/OpenstackNovaIaas.java | 26 +-
.../impl/CloudControllerServiceImpl.java | 4 -
.../cloud/controller/pojo/Cartridge.java | 20 +
.../cloud/controller/pojo/CartridgeConfig.java | 20 +
.../cloud/controller/pojo/CartridgeInfo.java | 20 +
.../controller/pojo/LoadbalancerConfig.java | 70 +
.../cloud/controller/pojo/MemberContext.java | 10 +
.../controller/topology/TopologyBuilder.java | 6 +
.../topology/TopologyEventSender.java | 6 +-
.../controller/topology/TopologyManager.java | 1 -
.../util/CloudControllerConstants.java | 2 +-
.../controller/util/CloudControllerUtil.java | 9 +
.../LoadBalancerCommonServiceComponent.java | 2 +-
.../statistics/LoadBalancerStatsPublisher.java | 4 +-
.../WSO2CEPFaultyMemberPublisher.java | 6 +-
.../WSO2CEPInFlightRequestPublisher.java | 18 +-
.../statistics/WSO2CEPStatsPublisher.java | 3 -
...oadBalancerInFlightRequestCountNotifier.java | 25 +-
.../extension/api/LoadBalancerStatsReader.java | 3 +-
.../TenantAwareLoadBalanceEndpoint.java | 31 +-
.../balancer/mediators/ResponseInterceptor.java | 26 +-
...adBalancerInFlightRequestCountCollector.java | 71 +-
.../WSO2CEPInFlightRequestCountObserver.java | 36 +-
.../stratos/load/balancer/util/Constants.java | 3 +
.../messaging/domain/topology/Cloud.java | 84 -
.../messaging/domain/topology/Cluster.java | 64 +-
.../messaging/domain/topology/Member.java | 7 +
.../messaging/domain/topology/MemberStatus.java | 3 +
.../messaging/domain/topology/Region.java | 79 -
.../stratos/messaging/domain/topology/Zone.java | 55 -
.../instance/status/InstanceActivatedEvent.java | 60 +
.../instance/status/InstanceStartedEvent.java | 59 +
.../instance/status/MemberActivatedEvent.java | 59 -
.../instance/status/MemberStartedEvent.java | 59 -
.../event/topology/ClusterCreatedEvent.java | 12 +-
.../event/topology/ClusterRemovedEvent.java | 13 +-
.../event/topology/CompleteTopologyEvent.java | 11 +-
.../event/topology/InstanceSpawnedEvent.java | 24 +-
.../event/topology/MemberActivatedEvent.java | 26 +-
.../event/topology/MemberStartedEvent.java | 7 +-
.../event/topology/MemberSuspendedEvent.java | 7 +-
.../event/topology/MemberTerminatedEvent.java | 7 +-
.../event/topology/PartitionCreatedEvent.java | 39 -
.../event/topology/PartitionRemovedEvent.java | 37 -
.../event/topology/PartitionUpdatedEvent.java | 81 -
.../event/topology/ServiceCreatedEvent.java | 2 +-
.../event/topology/ServiceRemovedEvent.java | 11 +-
.../util/bean/type/map/MapAdapter.java | 52 +
.../util/bean/type/map/MapEntryType.java | 32 +
.../messaging/util/bean/type/map/MapType.java | 28 +
.../apache/stratos/rest/endpoint/Constants.java | 6 +-
.../autoscaler/partition/PartitionGroup.java | 2 +-
.../policy/deployment/DeploymentPolicy.java | 4 +
.../definition/CartridgeDefinitionBean.java | 3 +
.../cartridge/definition/LoadBalancerBean.java | 4 +
.../bean/util/converter/PojoConverter.java | 165 +-
.../endpoint/bean/util/type/map/MapAdapter.java | 52 +
.../bean/util/type/map/MapEntryType.java | 32 +
.../endpoint/bean/util/type/map/MapType.java | 28 +
.../rest/endpoint/services/ServiceUtils.java | 377 ++-
.../rest/endpoint/services/StratosAdmin.java | 107 +-
.../LoadBalancerStatisticsEventBuilder.xml | 4 +-
.../AverageRequestsInflightFinder.xml | 4 +-
.../GradientOfRequestsInFlightFinder.xml | 6 +-
...SecondDerivativeOfRequestsInFlightFinder.xml | 6 +-
.../stream-manager-config.xml | 9 +-
.../haproxy/extension/HAProxyStatsReader.java | 34 +-
.../ec2/load-balancer/start-load-balancer.sh | 70 +
.../templates/loadbalancer.conf.template | 126 +
.../event/subscriber/ArtifactListener.java | 13 +-
.../subscriber/CartridgeAgentConstants.java | 7 +-
.../cartridge/agent/event/subscriber/Main.java | 11 +-
.../org.apache.stratos.adc.mgt.stub/pom.xml | 9 +-
.../pom.xml | 2 +-
.../pom.xml | 9 +-
.../src/main/resources/AutoScalerService.wsdl | 278 +-
.../main/resources/CloudControllerService.wsdl | 22 +-
tools/stratos-installer/conf/setup.conf | 173 +-
.../stratos-installer/config/sc/bin/stratos.sh | 301 --
.../config/sc/repository/conf/axis2/axis2.xml | 724 -----
.../config/sc/repository/conf/carbon.xml | 586 ----
.../repository/conf/cartridge-config.properties | 56 -
.../conf/datasources/master-datasources.xml | 129 -
.../conf/datasources/stratos-datasources.xml | 51 -
.../sc/repository/conf/etc/logging-config.xml | 40 -
.../config/sc/repository/conf/log4j.properties | 171 --
.../resources/user-data/ssl-cert-snakeoil.key | 16 -
.../resources/user-data/ssl-cert-snakeoil.pem | 14 -
.../config/sm/repository/conf/carbon.xml | 586 ++++
.../repository/conf/cartridge-config.properties | 51 +
.../conf/datasources/master-datasources.xml | 129 +
.../conf/datasources/stratos-datasources.xml | 51 +
.../config/sm/repository/conf/jndi.properties | 4 +
tools/stratos-installer/setup.sh | 633 ++--
tools/stratos-installer/start-servers.sh | 2 +-
186 files changed, 10063 insertions(+), 5166 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0bfb3bea/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/Payload.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0bfb3bea/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/ApplicationCartridgeSubscription.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/ApplicationCartridgeSubscription.java
index d63e13a,7192ef0..b406048
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/ApplicationCartridgeSubscription.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/ApplicationCartridgeSubscription.java
@@@ -24,11 -24,9 +24,10 @@@ import org.apache.stratos.adc.mgt.excep
import org.apache.stratos.adc.mgt.payload.PayloadArg;
import org.apache.stratos.adc.mgt.repository.Repository;
import org.apache.stratos.adc.mgt.subscriber.Subscriber;
+import org.apache.stratos.adc.mgt.subscription.tenancy.SubscriptionTenancyBehaviour;
import org.apache.stratos.adc.mgt.utils.ApplicationManagementUtil;
import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
-
- import java.util.Properties;
+ import org.apache.stratos.cloud.controller.pojo.Properties;
public class ApplicationCartridgeSubscription extends CartridgeSubscription {
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0bfb3bea/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java
index d868745,a379f83..fb08da3
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java
@@@ -39,13 -38,15 +39,16 @@@ import org.apache.stratos.adc.mgt.subsc
import org.apache.stratos.adc.mgt.utils.*;
import org.apache.stratos.adc.topology.mgt.service.TopologyManagementService;
import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
+ import org.apache.stratos.cloud.controller.pojo.Properties;
+ import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
- import java.util.Properties;
- public abstract class CartridgeSubscription /*implements TempBehaviourInterface*/ {
+ public abstract class CartridgeSubscription implements Serializable {
++
+ private static final long serialVersionUID = -5197430500059231924L;
private static Log log = LogFactory.getLog(CartridgeSubscription.class);
private int subscriptionId;
private String type;
@@@ -63,6 -65,6 +67,7 @@@
private String subscriptionKey;
protected SubscriptionTenancyBehaviour subscriptionTenancyBehaviour;
++
/**
* Constructor
*
@@@ -81,14 -82,13 +86,14 @@@
getCluster().setHostName(cartridgeInfo.getHostName());
this.setSubscriptionStatus(CartridgeConstants.SUBSCRIBED);
this.connectedSubscriptionAliases = new ArrayList<String>();
+ boolean isMultiTenant = getCartridgeInfo().getMultiTenant();
- if(isMultiTenant) {
+ if(isServiceDeployment) {
+ subscriptionTenancyBehaviour = new ServiceDeploymentMultiTenantBehaviour(this);
- } else if(getCartridgeInfo().getMultiTenant()) {
++ } else if(isMultiTenant) {
subscriptionTenancyBehaviour = new SubscriptionMultiTenantBehaviour(this);
-- }
-- else {
++ } else {
subscriptionTenancyBehaviour = new SubscriptionSingleTenantBehaviour(this);
- }
+ }
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0bfb3bea/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0bfb3bea/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/FrameworkCartridgeSubscription.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/FrameworkCartridgeSubscription.java
index 637c83f,25f2063..33a2d84
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/FrameworkCartridgeSubscription.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/FrameworkCartridgeSubscription.java
@@@ -26,14 -24,15 +26,18 @@@ import org.apache.stratos.adc.mgt.excep
import org.apache.stratos.adc.mgt.payload.PayloadArg;
import org.apache.stratos.adc.mgt.repository.Repository;
import org.apache.stratos.adc.mgt.subscriber.Subscriber;
+import org.apache.stratos.adc.mgt.subscription.tenancy.SubscriptionTenancyBehaviour;
import org.apache.stratos.adc.mgt.utils.ApplicationManagementUtil;
import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
+ import org.apache.stratos.cloud.controller.pojo.Properties;
- import java.util.Properties;
public class FrameworkCartridgeSubscription extends CartridgeSubscription {
+
+ private static Log log = LogFactory.getLog(FrameworkCartridgeSubscription.class);
+ private static final long serialVersionUID = 1633832232416272756L;
+
++
/**
* Constructor
*
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0bfb3bea/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/LBCartridgeSubscription.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/LBCartridgeSubscription.java
index 37455c2,d49ec09..f2f69ae
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/LBCartridgeSubscription.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/LBCartridgeSubscription.java
@@@ -23,10 -23,8 +23,9 @@@ import org.apache.stratos.adc.mgt.dao.C
import org.apache.stratos.adc.mgt.exception.ADCException;
import org.apache.stratos.adc.mgt.exception.NotSubscribedException;
import org.apache.stratos.adc.mgt.exception.UnregisteredCartridgeException;
+import org.apache.stratos.adc.mgt.subscription.tenancy.SubscriptionTenancyBehaviour;
import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
-
- import java.util.Properties;
+ import org.apache.stratos.cloud.controller.pojo.Properties;
public class LBCartridgeSubscription extends CartridgeSubscription {
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0bfb3bea/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/ServiceDeploymentMultiTenantBehaviour.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/ServiceDeploymentMultiTenantBehaviour.java
index 4e0b08e,0000000..77ced4e
mode 100644,000000..100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/ServiceDeploymentMultiTenantBehaviour.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/ServiceDeploymentMultiTenantBehaviour.java
@@@ -1,125 -1,0 +1,121 @@@
+/*
+ * 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.adc.mgt.subscription.tenancy;
+
- import java.util.Properties;
-
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.adc.mgt.exception.ADCException;
+import org.apache.stratos.adc.mgt.exception.AlreadySubscribedException;
+import org.apache.stratos.adc.mgt.exception.UnregisteredCartridgeException;
- import org.apache.stratos.adc.mgt.internal.DataHolder;
+import org.apache.stratos.adc.mgt.payload.PayloadArg;
+import org.apache.stratos.adc.mgt.subscription.CartridgeSubscription;
+import org.apache.stratos.adc.mgt.utils.ApplicationManagementUtil;
+import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
+import org.apache.stratos.adc.mgt.utils.PersistenceManager;
- import org.apache.stratos.adc.topology.mgt.service.TopologyManagementService;
- import org.apache.stratos.adc.topology.mgt.serviceobjects.DomainContext;
++import org.apache.stratos.cloud.controller.pojo.Properties;
+
+public class ServiceDeploymentMultiTenantBehaviour extends
+ SubscriptionMultiTenantBehaviour {
+
+ private static Log log = LogFactory.getLog(ServiceDeploymentMultiTenantBehaviour.class);
+
+ public ServiceDeploymentMultiTenantBehaviour(
+ CartridgeSubscription cartridgeSubscription) {
+ super(cartridgeSubscription);
+ }
+
+ @Override
+ public void createSubscription() throws ADCException,
+ AlreadySubscribedException {
+
+ log.info(" --- in Service Deployment Multitenant Behaviour create subscription ---- ");
+
+ boolean allowMultipleSubscription = Boolean.
+ valueOf(System.getProperty(CartridgeConstants.FEATURE_MULTI_TENANT_MULTIPLE_SUBSCRIPTION_ENABLED));
+
+ if (!allowMultipleSubscription) {
+ // If the cartridge is multi-tenant. We should not let users
+ // createSubscription twice.
+ boolean subscribed;
+ try {
+ subscribed = PersistenceManager.isAlreadySubscribed(
+ cartridgeSubscription.getType(), cartridgeSubscription
+ .getSubscriber().getTenantId());
+ } catch (Exception e) {
+ String msg = "Error checking whether the cartridge type "
+ + cartridgeSubscription.getType()
+ + " is already subscribed";
+ log.error(msg, e);
+ throw new ADCException(msg, e);
+ }
+
+ if (subscribed) {
+ String msg = "Already subscribed to "
+ + cartridgeSubscription.getType()
+ + ". This multi-tenant cartridge will not be available to createSubscription";
+ if (log.isDebugEnabled()) {
+ log.debug(msg);
+ }
+ throw new AlreadySubscribedException(msg,
+ cartridgeSubscription.getType());
+ }
+ }
+
+ /*if (domainContext.getSubDomain().equalsIgnoreCase("mgt")) {
+ cartridgeSubscription.getCluster().setMgtClusterDomain(
+ domainContext.getDomain());
+ cartridgeSubscription.getCluster().setMgtClusterSubDomain(
+ domainContext.getSubDomain());
+ } else {
+ cartridgeSubscription.getCluster().setClusterDomain(
+ domainContext.getDomain());
+ cartridgeSubscription.getCluster().setClusterSubDomain(
+ domainContext.getSubDomain());
+ }*/
+
+ }
+
+
+ @Override
+ public void registerSubscription(Properties properties)
+ throws ADCException, UnregisteredCartridgeException {
+
+ // register subscription to start up the cartridge instances
+ ApplicationManagementUtil.registerService(cartridgeSubscription.getType(),
+ cartridgeSubscription.getCluster().getClusterDomain(),
+ cartridgeSubscription.getCluster().getClusterSubDomain(),
+ cartridgeSubscription.getPayload().createPayload(),
+ cartridgeSubscription.getPayload().getPayloadArg().getTenantRange(),
+ cartridgeSubscription.getCluster().getHostName(),
+ cartridgeSubscription.getAutoscalingPolicyName(),
+ cartridgeSubscription.getDeploymentPolicyName(),
+ properties);
- // TODO -- Commented out for testing. Uncomment for release.
- //cartridgeSubscription.getPayload().delete();
++
++ cartridgeSubscription.getPayload().delete();
+ }
+
+ @Override
+ public PayloadArg createPayloadParameters(PayloadArg payloadArg)
+ throws ADCException {
+
+ return payloadArg;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0bfb3bea/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0bfb3bea/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0bfb3bea/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
index 3bfeb97,e16b2a6..850a8ff
--- 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
@@@ -597,26 -668,6 +670,26 @@@ public class StratosAdmin extends Abstr
}
}
+
+ @POST
+ @Path("/service/definition")
+ @Produces("application/json")
+ @Consumes("application/json")
+ @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+ @SuperTenantService(true)
+ public void deployService (ServiceDefinitionBean serviceDefinitionBean)
+ throws RestAPIException {
+
+ log.info("Service definition request.. : " + serviceDefinitionBean.getServiceName());
+ // super tenant Deploying service (MT)
- // -- note -- here an alias is generated
++ // here an alias is generated
+ ServiceUtils.deployService(serviceDefinitionBean.getCartridgeType(), UUID.randomUUID().toString(), serviceDefinitionBean.getAutoscalingPolicyName(),
+ serviceDefinitionBean.getDeploymentPolicyName(), getTenantDomain(), getTenantId(),
+ serviceDefinitionBean.getClusterDomain(), serviceDefinitionBean.getClusterSubDomain(),
+ serviceDefinitionBean.getTenantRange());
+ }
+
+
private List<TenantInfoBean> getAllTenants() throws Exception {
TenantManager tenantManager = ServiceHolder.getTenantManager();
Tenant[] tenants;