adding subscription payload properties to the payload, which is needed in container scenario
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/06816a16 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/06816a16 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/06816a16 Branch: refs/heads/master Commit: 06816a1688672f9efe1ad11b0311bd378f2dd2e4 Parents: 5dd5c29 Author: R-Rajkumar <[email protected]> Authored: Sat Nov 8 09:58:33 2014 +0530 Committer: R-Rajkumar <[email protected]> Committed: Sat Nov 8 09:58:33 2014 +0530 ---------------------------------------------------------------------- .../autoscaler/applications/ApplicationUtils.java | 16 ++++++++++++++-- .../parser/DefaultApplicationParser.java | 6 +++--- 2 files changed, 17 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/06816a16/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationUtils.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationUtils.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationUtils.java index e82882c..a8aab5e 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationUtils.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/ApplicationUtils.java @@ -192,7 +192,8 @@ public class ApplicationUtils { } public static PayloadData createPayload(String appId, String groupName, CartridgeInfo cartridgeInfo, String subscriptionKey, int tenantId, String clusterId, - String hostName, String repoUrl, String alias, Map<String, String> customPayloadEntries, String[] dependencyAliases) + String hostName, String repoUrl, String alias, Map<String, String> customPayloadEntries, String[] dependencyAliases, + org.apache.stratos.cloud.controller.stub.pojo.Properties properties) throws ApplicationDefinitionException { //Create the payload @@ -223,7 +224,18 @@ public class ApplicationUtils { } } } - + + // get subscription payload parameters (MB_IP, MB_PORT so on) and set them to payload (kubernetes scenario) + if (properties != null && properties.getProperties() != null && properties.getProperties().length != 0) { + for (Property property : properties.getProperties()) { + if (property.getName().startsWith("payload_parameter.")) { + String payloadParamName = property.getName(); + String payloadParamSubstring = payloadParamName.substring(payloadParamName.indexOf(".") + 1); + payloadData.add(payloadParamSubstring, property.getValue()); + } + } + } + // DEPLOYMENT payload param must be set because its used by puppet agent // to generate the hostname. Therefore, if DEPLOYMENT is not set in cartridgeInfo properties, // adding the DEPLOYMENT="default" param http://git-wip-us.apache.org/repos/asf/stratos/blob/06816a16/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java index ff0dcf1..a1dad1c 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/parser/DefaultApplicationParser.java @@ -644,7 +644,7 @@ public class DefaultApplicationParser implements ApplicationParser { assert subscribableInfoCtxt != null; ApplicationClusterContext appClusterCtxt = createApplicationClusterContext(appId, groupName, cartridgeInfo, key, tenantId, subscribableInfoCtxt.getRepoUrl(), subscribableCtxt.getAlias(), - clusterId, hostname, subscribableInfoCtxt.getDeploymentPolicy(), false, subscribableInfoCtxt.getDependencyAliases()); + clusterId, hostname, subscribableInfoCtxt.getDeploymentPolicy(), false, subscribableInfoCtxt.getDependencyAliases(), subscribableInfoCtxt.getProperties()); appClusterCtxt.setAutoscalePolicyName(subscribableInfoCtxt.getAutoscalingPolicy()); appClusterCtxt.setProperties(subscribableInfoCtxt.getProperties()); @@ -678,12 +678,12 @@ public class DefaultApplicationParser implements ApplicationParser { private ApplicationClusterContext createApplicationClusterContext (String appId, String groupName, CartridgeInfo cartridgeInfo, String subscriptionKey, int tenantId, String repoUrl, String alias, String clusterId, String hostname, - String deploymentPolicy, boolean isLB, String[] dependencyAliases) + String deploymentPolicy, boolean isLB, String[] dependencyAliases, Properties properties) throws ApplicationDefinitionException { // Create text payload String textPayload = ApplicationUtils.createPayload(appId, groupName, cartridgeInfo, subscriptionKey, tenantId, clusterId, - hostname, repoUrl, alias, null, dependencyAliases).toString(); + hostname, repoUrl, alias, null, dependencyAliases, properties).toString(); return new ApplicationClusterContext(cartridgeInfo.getType(), clusterId, hostname, textPayload, deploymentPolicy, isLB); }
