You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by is...@apache.org on 2013/10/22 19:26:59 UTC
[1/2] git commit: adding support to define payload parameter
name=value pairs in cartridge.xml, as properties
Updated Branches:
refs/heads/master e56c1ed24 -> 84f159075
adding support to define payload parameter name=value pairs in cartridge.xml, as properties
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/2cac1e43
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/2cac1e43
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/2cac1e43
Branch: refs/heads/master
Commit: 2cac1e438915c0df071cb7facca3035b0797f7c0
Parents: cc755b6
Author: Isuru <is...@wso2.com>
Authored: Tue Oct 22 22:56:12 2013 +0530
Committer: Isuru <is...@wso2.com>
Committed: Tue Oct 22 22:56:12 2013 +0530
----------------------------------------------------------------------
.../manager/CartridgeSubscriptionManager.java | 64 +++++++++++++++-----
.../apache/stratos/adc/mgt/payload/Payload.java | 21 +++++--
.../adc/mgt/utils/CartridgeConstants.java | 2 +
3 files changed, 67 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/2cac1e43/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 ec35a33..bf3c938 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
@@ -37,9 +37,11 @@ import org.apache.stratos.adc.mgt.subscriber.Subscriber;
import org.apache.stratos.adc.mgt.subscription.CartridgeSubscription;
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;
import org.apache.stratos.adc.mgt.utils.PersistenceManager;
import org.apache.stratos.adc.mgt.utils.PolicyHolder;
import org.apache.stratos.cloud.controller.util.xsd.CartridgeInfo;
+import org.apache.stratos.cloud.controller.util.xsd.Property;
import org.wso2.carbon.context.CarbonContext;
import java.util.List;
@@ -133,17 +135,41 @@ public class CartridgeSubscriptionManager {
" 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) {
- Payload payload = PayloadFactory.getPayloadInstance(cartridgeInfo.getProvider(), cartridgeType,
- "/tmp/" + tenantDomain + "-" + cartridgeAlias + ".zip");
+ if (payloadArg != null) {
+ //populate the payload
payload.populatePayload(payloadArg);
-
- //set the payload to the cartridge subscription
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);
+ }
+ }
+
//CartridgeInstanceCache.getCartridgeInstanceCache().
// addCartridgeInstance(new CartridgeInstanceCacheKey(tenantId, cartridgeAlias), cartridgeSubscription);
@@ -154,21 +180,22 @@ public class CartridgeSubscriptionManager {
* Connects / groups cartridges
*
* @param tenantDomain Tenant's domain
- * @param cartridgeSubscription CartridgeSubscriptionInfo object to which the CartridgeSubscriptionInfo denoted by
- * connectingCartridgeAlias will be connected to
- * @param connectingCartridgeAlias Alias of the connecting cartridge
+ * @param cartridgeSubscription CartridgeSubscription instance to which the CartridgeSubscription denoted by
+ * connectingSubscriptionAlias will be connected to
+ * @param connectingSubscriptionAlias Alias of the connecting cartridge
*
* @throws ADCException
* @throws NotSubscribedException
* @throws AxisFault
*/
public void connectCartridges (String tenantDomain, CartridgeSubscription cartridgeSubscription,
- String connectingCartridgeAlias)
+ String connectingSubscriptionAlias)
throws ADCException, NotSubscribedException, AxisFault {
//TODO: retrieve from the cache and connect. For now, new objects are created
- CartridgeSubscription connectingCartridgeSubscription = getCartridgeSubscription(tenantDomain, connectingCartridgeAlias);
+ CartridgeSubscription connectingCartridgeSubscription = getCartridgeSubscription(tenantDomain,
+ connectingSubscriptionAlias);
if(cartridgeSubscription == null) {
String errorMsg = "No cartridge subscription found in cache for tenant " + tenantDomain + ", alias " +
@@ -179,7 +206,7 @@ public class CartridgeSubscriptionManager {
if(connectingCartridgeSubscription == null) {
String errorMsg = "No cartridge subscription found in cache for tenant " + tenantDomain + ", alias " +
- connectingCartridgeAlias + ", connecting aborted";
+ connectingSubscriptionAlias + ", connecting aborted";
log.error(errorMsg);
return;
}
@@ -187,7 +214,7 @@ public class CartridgeSubscriptionManager {
CartridgeSubscriptionConnector cartridgeSubscriptionConnector = CartridgeSubscriptionConnectorFactory.
getCartridgeInstanceConnector(connectingCartridgeSubscription.getType());
- cartridgeSubscription.connect(connectingCartridgeAlias);
+ cartridgeSubscription.connect(connectingSubscriptionAlias);
//PayloadArg payloadArg = cartridgeSubscription.createPayloadParameters();
@@ -204,8 +231,17 @@ public class CartridgeSubscriptionManager {
connectionParamsBuilder.append(payloadParamEntry.getValue().toString());
}
- //add additional connection relates parameters to the payload
- cartridgeSubscription.getPayload().populatePayload(connectionParamsBuilder.toString());
+ //add connection relates parameters to the payload
+ if(cartridgeSubscription.getPayload() != null) {
+ cartridgeSubscription.getPayload().populatePayload(connectionParamsBuilder.toString());
+ } else {
+ //no existing payload
+ Payload payload = PayloadFactory.getPayloadInstance(cartridgeSubscription.getCartridgeInfo().getProvider(),
+ cartridgeSubscription.getType(), "/tmp/" + tenantDomain + "-" + cartridgeSubscription.getAlias() +
+ ".zip");
+ payload.populatePayload(connectionParamsBuilder.toString());
+ cartridgeSubscription.setPayload(payload);
+ }
/*
payloadArg.setUserDefinedPayload(connectionParamsBuilder.toString());
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/2cac1e43/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 1e17c2d..addacac 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
@@ -81,9 +81,6 @@ public abstract class Payload {
}
}
- //
- //
-
/**
* Add the user defined payload String (if any). This should be of the format
* <key_1>=<value_1>,<key_2>=<value_2>,....<key_n>=<value_n>
@@ -92,10 +89,22 @@ public abstract class Payload {
*/
public void populatePayload (String payloadString) {
- if(!payloadBuilder.toString().endsWith(",")) {
- payloadBuilder.append(",");
+ if(payloadBuilder.toString().isEmpty()) {
+ if(payloadString.startsWith(",")) {
+ payloadBuilder.append(payloadString.substring(1));
+ }
+ } else {
+ if(!payloadBuilder.toString().endsWith(",") && !payloadString.startsWith(",")) {
+ payloadBuilder.append(",");
+ payloadBuilder.append(payloadString);
+ }
+ else if (payloadBuilder.toString().endsWith(",") && payloadString.startsWith(",")) {
+ payloadBuilder.append(payloadString.substring(1));
+ }
+ else {
+ payloadBuilder.append(payloadString);
+ }
}
- payloadBuilder.append(payloadString);
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/2cac1e43/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/CartridgeConstants.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/CartridgeConstants.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/CartridgeConstants.java
index 83e2d91..8c18742 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/CartridgeConstants.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/CartridgeConstants.java
@@ -74,6 +74,8 @@ public class CartridgeConstants {
public static final String INTERNAL_GIT_USERNAME = "internal.repo.username";
public static final String INTERNAL_GIT_PASSWORD = "internal.repo.password";
+ public static final String CUSTOM_PAYLOAD_PARAM_NAME_PREFIX = "payload_parameter.";
+
public static final class DomainMappingInfo {
public static final String ACTUAL_HOST = "actual.host";
public static final String HOSTINFO = "hostinfo/";
[2/2] git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/incubator-stratos
Posted by is...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-stratos
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/84f15907
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/84f15907
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/84f15907
Branch: refs/heads/master
Commit: 84f159075b1a0b70cdcacc313f7a4e0ee7093e9b
Parents: 2cac1e4 e56c1ed
Author: Isuru <is...@wso2.com>
Authored: Tue Oct 22 22:56:33 2013 +0530
Committer: Isuru <is...@wso2.com>
Committed: Tue Oct 22 22:56:33 2013 +0530
----------------------------------------------------------------------
.../org.apache.stratos.autoscaler/pom.xml | 1 +
.../cloud/controller/CloudControllerClient.java | 17 ++
.../event/AverageRequestsInFlightEvent.java | 49 ++++++
.../event/GradientOfRequestsInFlightEvent.java | 49 ++++++
...SecondDerivativeOfRequestsInFlightEvent.java | 49 ++++++
.../internal/AutoscalerServerComponent.java | 24 ++-
.../autoscaler/internal/EventSubscriber.java | 128 --------------
.../AverageRequestInFlightEventProcessor.java | 79 +++++++++
...GradientOfRequestInFlightEventProcessor.java | 81 +++++++++
.../processor/HealthStatEventProcessor.java | 31 ++++
...rivativeOfRequestInFlightEventProcessor.java | 82 +++++++++
.../receiver/TopicSubscriberManager.java | 70 ++++++++
.../health/HealthEventMessageDelegator.java | 79 +++++++++
.../health/HealthEventMessageReceiver.java | 50 ++++++
.../receiver/health/HealthEventQueue.java | 44 +++++
.../topology/TopologyEventMessageDelegator.java | 110 ++++++++++++
.../topology/TopologyEventMessageReceiver.java | 50 ++++++
.../receiver/topology/TopologyEventQueue.java | 44 +++++
.../policy/InvalidPolicyException.java | 40 +++++
.../autoscaler/policy/PolicyManager.java | 135 +++++++++++++++
.../policy/deployers/PolicyDeployer.java | 113 +++++++++++++
.../policy/deployers/PolicyReader.java | 169 +++++++++++++++++++
.../policy/model/AutoscalePolicy.java | 153 +++++++++++++++++
.../autoscaler/policy/model/HAPolicy.java | 67 ++++++++
.../autoscaler/policy/model/LoadAverage.java | 74 ++++++++
.../autoscaler/policy/model/LoadThresholds.java | 103 +++++++++++
.../policy/model/MemoryConsumption.java | 75 ++++++++
.../autoscaler/policy/model/Partition.java | 112 ++++++++++++
.../policy/model/RequestsInFlight.java | 73 ++++++++
.../autoscaler/rule/ExecutorTaskScheduler.java | 41 +++++
.../src/main/resources/META-INF/component.xml | 27 +++
.../src/main/resources/META-INF/services.xml | 21 ---
.../org.apache.stratos.lb.endpoint/pom.xml | 27 +++
.../stratos/lb/endpoint/ClusterContext.java | 63 +++++++
.../lb/endpoint/LoadBalancerContext.java | 39 ++++-
.../stratos/lb/endpoint/RequestProcessor.java | 103 +++++++++++
.../stratos/lb/endpoint/ServiceContext.java | 56 ++++++
.../lb/endpoint/algorithm/AlgorithmContext.java | 51 ++++++
.../algorithm/LoadBalanceAlgorithm.java | 65 +++++++
.../algorithm/LoadBalanceAlgorithmFactory.java | 71 ++++++++
.../lb/endpoint/algorithm/RoundRobin.java | 98 +++++++++++
.../TenantAwareLoadBalanceEndpoint.java | 89 +++++-----
.../LoadBalanceEndpointServiceComponent.java | 22 +++
.../endpoint/mediators/ResponseInterceptor.java | 58 +++++++
.../stat/LoadBalancingStatsCollector.java | 110 ++++++++++++
.../stat/observers/WSO2CEPStatsObserver.java | 102 +++++++++++
.../topology/TopologyEventMessageDelegator.java | 29 ++--
.../stratos/lb/endpoint/util/Constants.java | 24 +++
.../messaging/domain/topology/Cluster.java | 50 +++++-
.../messaging/domain/topology/Member.java | 35 ++--
.../messaging/domain/topology/MemberStatus.java | 2 +-
.../messaging/domain/topology/Service.java | 7 +-
.../event/topology/ClusterCreatedEvent.java | 23 ++-
.../event/topology/InstanceSpawnedEvent.java | 80 +++++++++
.../event/topology/MemberActivatedEvent.java | 29 ++--
.../event/topology/MemberSpawnedEvent.java | 83 ---------
.../event/topology/MemberStartedEvent.java | 18 +-
.../event/topology/MemberSuspendedEvent.java | 18 +-
.../event/topology/MemberTerminatedEvent.java | 18 +-
.../event/topology/ServiceCreatedEvent.java | 2 +-
.../processor/ClusterCreatedEventProcessor.java | 21 +--
.../processor/ClusterRemovedEventProcessor.java | 18 +-
.../CompleteTopologyEventProcessor.java | 14 +-
.../InstanceSpawnedEventProcessor.java | 91 ++++++++++
.../MemberActivatedEventProcessor.java | 27 ++-
.../processor/MemberStartedEventProcessor.java | 43 +++--
.../MemberSuspendedEventProcessor.java | 20 +--
.../MemberTerminatedEventProcessor.java | 28 ++-
.../message/processor/MessageProcessor.java | 43 -----
.../processor/ServiceCreatedEventProcessor.java | 22 +--
.../processor/ServiceRemovedEventProcessor.java | 14 +-
.../processor/TopologyMessageProcessor.java | 43 +++++
.../stratos/messaging/util/Constants.java | 3 +-
73 files changed, 3429 insertions(+), 570 deletions(-)
----------------------------------------------------------------------