You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ni...@apache.org on 2013/12/11 15:27:40 UTC
[2/7] git commit: a new operation to set properties while subscribing
a new operation to set properties while subscribing
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/271bb5c5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/271bb5c5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/271bb5c5
Branch: refs/heads/master
Commit: 271bb5c5e27a33635a7bfc585045e729e4f745e7
Parents: 9f2da65
Author: Nirmal Fernando <ni...@apache.org>
Authored: Wed Dec 11 19:25:12 2013 +0530
Committer: Nirmal Fernando <ni...@apache.org>
Committed: Wed Dec 11 19:56:16 2013 +0530
----------------------------------------------------------------------
.../manager/CartridgeSubscriptionManager.java | 127 +++++++++++++------
.../ApplicationCartridgeSubscription.java | 2 +
2 files changed, 89 insertions(+), 40 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/271bb5c5/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 5cdeb06..7c30fbe 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
@@ -95,28 +95,58 @@ public class CartridgeSubscriptionManager {
UnregisteredCartridgeException, RepositoryRequiredException, RepositoryCredentialsRequiredException,
RepositoryTransportException, AlreadySubscribedException, InvalidRepositoryException {
- //validate cartridge alias
+ return subscribeToCartridgeWithProperties(cartridgeType, cartridgeAlias, autoscalingPolicyName,
+ deploymentPolicyName, tenantDomain, tenantId, tenantAdminUsername,
+ repositoryType, repositoryURL, isPrivateRepository, repositoryUsername,
+ repositoryPassword, null);
+ }
+
+ public CartridgeSubscription subscribeToCartridgeWithProperties(String cartridgeType, String cartridgeAlias,
+ String autoscalingPolicyName, String deploymentPolicyName, String tenantDomain,
+ int tenantId, String tenantAdminUsername, String repositoryType, String repositoryURL,
+ boolean isPrivateRepository, String repositoryUsername, String repositoryPassword, Property[] props)
+
+ throws ADCException,
+ InvalidCartridgeAliasException,
+ DuplicateCartridgeAliasException,
+ PolicyException,
+ UnregisteredCartridgeException,
+ RepositoryRequiredException,
+ RepositoryCredentialsRequiredException,
+ RepositoryTransportException,
+ AlreadySubscribedException,
+ InvalidRepositoryException {
+
+ // validate cartridge alias
ApplicationManagementUtil.validateCartridgeAlias(cartridgeAlias, cartridgeType);
- //TODO - remove, now autoscaling policy is at autoscaler. Just need to pass the name
- /*Policy autoScalingPolicy;
- if(autoscalingPolicyName != null && !autoscalingPolicyName.isEmpty()) {
- autoScalingPolicy = PolicyHolder.getInstance().getPolicy(autoscalingPolicyName);
- } else {
- autoScalingPolicy = PolicyHolder.getInstance().getDefaultPolicy();
- }
-
- if(autoScalingPolicy == null) {
- throw new PolicyException("Could not load the auto scaling policy.");
- } */
+ // TODO - remove, now autoscaling policy is at autoscaler. Just need to pass the name
+ /*
+ * Policy autoScalingPolicy;
+ * if(autoscalingPolicyName != null && !autoscalingPolicyName.isEmpty()) {
+ * autoScalingPolicy = PolicyHolder.getInstance().getPolicy(autoscalingPolicyName);
+ * } else {
+ * autoScalingPolicy = PolicyHolder.getInstance().getDefaultPolicy();
+ * }
+ *
+ * if(autoScalingPolicy == null) {
+ * throw new PolicyException("Could not load the auto scaling policy.");
+ * }
+ */
CartridgeInfo cartridgeInfo;
try {
- cartridgeInfo = CloudControllerServiceClient.getServiceClient().getCartridgeInfo(cartridgeType);
+ cartridgeInfo =
+ CloudControllerServiceClient.getServiceClient()
+ .getCartridgeInfo(cartridgeType);
+ if (props != null) {
+ cartridgeInfo.setProperties(props);
+ }
} catch (UnregisteredCartridgeException e) {
- String message = cartridgeType
- + " is not a valid cartridgeSubscription type. Please try again with a valid cartridgeSubscription type.";
+ String message =
+ cartridgeType +
+ " is not a valid cartridgeSubscription type. Please try again with a valid cartridgeSubscription type.";
log.error(message);
throw e;
@@ -128,55 +158,72 @@ public class CartridgeSubscriptionManager {
Subscriber subscriber = new Subscriber(tenantAdminUsername, tenantId, tenantDomain);
- CartridgeSubscription cartridgeSubscription = CartridgeSubscriptionFactory.getCartridgeSubscriptionInstance(cartridgeInfo);
-
- Repository repository = cartridgeSubscription.manageRepository(repositoryURL, repositoryUsername,
- repositoryPassword, isPrivateRepository, cartridgeAlias, cartridgeInfo, tenantDomain);
-
- cartridgeSubscription.createSubscription(subscriber, cartridgeAlias, autoscalingPolicyName, deploymentPolicyName, repository);
- cartridgeSubscription.setSubscriptionKey(generateSubscriptionKey()); // TODO ---- fix properly
+ CartridgeSubscription cartridgeSubscription =
+ CartridgeSubscriptionFactory.getCartridgeSubscriptionInstance(cartridgeInfo);
- log.info("Tenant [" + tenantId + "] with username [" + tenantAdminUsername +
- " subscribed to " + "] Cartridge Alias " + cartridgeAlias + ", Cartridge Type: " + cartridgeType +
- ", Repo URL: " + repositoryURL + ", Policy: " + autoscalingPolicyName);
+ Repository repository =
+ cartridgeSubscription.manageRepository(repositoryURL,
+ repositoryUsername,
+ repositoryPassword,
+ isPrivateRepository,
+ cartridgeAlias,
+ cartridgeInfo, tenantDomain);
- Payload payload = PayloadFactory.getPayloadInstance(cartridgeInfo.getProvider(), cartridgeType,
- "/tmp/" + tenantDomain + "-" + cartridgeAlias + ".zip");
+ cartridgeSubscription.createSubscription(subscriber, cartridgeAlias, autoscalingPolicyName,
+ deploymentPolicyName, repository);
+ cartridgeSubscription.setSubscriptionKey(generateSubscriptionKey()); // TODO ---- fix
+ // properly
+
+ log.info("Tenant [" + tenantId + "] with username [" + tenantAdminUsername +
+ " subscribed to " + "] Cartridge Alias " + cartridgeAlias + ", Cartridge Type: " +
+ cartridgeType + ", Repo URL: " + repositoryURL + ", Policy: " +
+ autoscalingPolicyName);
+
+ Payload payload =
+ PayloadFactory.getPayloadInstance(cartridgeInfo.getProvider(),
+ cartridgeType, "/tmp/" + tenantDomain +
+ "-" + cartridgeAlias +
+ ".zip");
PayloadArg payloadArg = cartridgeSubscription.createPayloadParameters();
if (payloadArg != null) {
- //populate the payload
+ // populate the payload
payload.populatePayload(payloadArg);
cartridgeSubscription.setPayload(payload);
}
- //get the payload parameters defined in the cartridge definition file for this cartridge type
+ // 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)) {
+ 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(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
+ // if valid payload related parameters are found in the cartridge definition file, add
+ // them to the payload
String customPayloadParamString = customPayloadParamsBuilder.toString();
- if(!customPayloadParamString.isEmpty()) {
+ if (!customPayloadParamString.isEmpty()) {
payload.populatePayload(customPayloadParamString);
cartridgeSubscription.setPayload(payload);
}
}
- //CartridgeInstanceCache.getCartridgeInstanceCache().
- // addCartridgeInstance(new CartridgeInstanceCacheKey(tenantId, cartridgeAlias), cartridgeSubscription);
+ // CartridgeInstanceCache.getCartridgeInstanceCache().
+ // addCartridgeInstance(new CartridgeInstanceCacheKey(tenantId, cartridgeAlias),
+ // cartridgeSubscription);
return cartridgeSubscription;
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/271bb5c5/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 b406048..ecacc37 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
@@ -32,6 +32,8 @@ import org.apache.stratos.cloud.controller.pojo.Properties;
public class ApplicationCartridgeSubscription extends CartridgeSubscription {
+ private static final long serialVersionUID = 3969055979835359336L;
+
/**
* Constructor
*