Skip to content
This repository has been archived by the owner on May 12, 2021. It is now read-only.

Commit

Permalink
fixing update payload parameters from cartridge issue. This closes #504
Browse files Browse the repository at this point in the history
  • Loading branch information
Vishanth authored and Sajith committed Feb 9, 2016
1 parent c795440 commit 5781994
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -124,14 +124,7 @@ public boolean addApplication(ApplicationContext applicationContext)
log.info(String.format("Adding application: [application-id] %s", applicationContext.getApplicationId()));
}

ApplicationParser applicationParser = new DefaultApplicationParser();
Application application = applicationParser.parse(applicationContext);
ApplicationHolder.persistApplication(application);

List<ApplicationClusterContext> applicationClusterContexts = applicationParser.getApplicationClusterContexts();
ApplicationClusterContext[] applicationClusterContextsArray = applicationClusterContexts
.toArray(new ApplicationClusterContext[applicationClusterContexts.size()]);
applicationContext.getComponents().setApplicationClusterContexts(applicationClusterContextsArray);
Application application = parseApplication(applicationContext);

applicationContext.setStatus(ApplicationContext.STATUS_CREATED);
AutoscalerContext.getInstance().addApplicationContext(applicationContext);
Expand All @@ -146,6 +139,29 @@ public boolean addApplication(ApplicationContext applicationContext)
return true;
}

/**
* Parse application context, generate application cluster contexts with
* payload parameters and build the application object.
* @param applicationContext
* @return
* @throws ApplicationDefinitionException
* @throws CartridgeGroupNotFoundException
* @throws CartridgeNotFoundException
*/
private Application parseApplication(ApplicationContext applicationContext) throws ApplicationDefinitionException,
CartridgeGroupNotFoundException, CartridgeNotFoundException {

ApplicationParser applicationParser = new DefaultApplicationParser();
Application application = applicationParser.parse(applicationContext);
ApplicationHolder.persistApplication(application);

List<ApplicationClusterContext> applicationClusterContexts = applicationParser.getApplicationClusterContexts();
ApplicationClusterContext[] applicationClusterContextsArray = applicationClusterContexts
.toArray(new ApplicationClusterContext[applicationClusterContexts.size()]);
applicationContext.getComponents().setApplicationClusterContexts(applicationClusterContextsArray);
return application;
}

@Override
public boolean updateApplication(ApplicationContext applicationContext)
throws ApplicationDefinitionException, CartridgeGroupNotFoundException, CartridgeNotFoundException {
Expand Down Expand Up @@ -236,6 +252,9 @@ public boolean deployApplication(String applicationId, String applicationPolicyI
throw new RuntimeException("Application context not found: " + applicationId);
}

// Parse application to update payload parameters
application = parseApplication(applicationContext);

// validating application policy against the application
AutoscalerUtil.validateApplicationPolicyAgainstApplication(applicationId, applicationPolicyId);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

package org.apache.stratos.rest.endpoint.util.converter;

import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.stratos.autoscaler.stub.deployment.policy.ApplicationPolicy;
import org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy;
Expand Down Expand Up @@ -1567,13 +1568,15 @@ private static List<String> convertScalingDependentsBeansToStringList(
*/
private static DeploymentBean convertDeploymentToDeploymentBean(String[] directories,
String baseDir) {
if (baseDir == null || directories == null || directories[0] == null) {
if (baseDir == null && (directories == null || directories[0] == null)) {
return null;
}

DeploymentBean deploymentBean = new DeploymentBean();
deploymentBean.setBaseDir(baseDir);
deploymentBean.setDir(Arrays.asList(baseDir));
if (ArrayUtils.isNotEmpty(directories) && (directories[0] != null)) {
deploymentBean.setDir(Arrays.asList(directories));
}
return deploymentBean;
}

Expand Down
11 changes: 3 additions & 8 deletions samples/kubernetes-clusters/kubernetes-cluster-2.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
"privateIPAddress": "172.17.8.101",
"publicIPAddress": "172.17.8.101",
"property": [
{ "name": "KUBERNETES_MASTER_PORT",
"value": "8080"
}
]
},
"portRange": {
Expand All @@ -21,14 +24,6 @@
"publicIPAddress": "172.17.8.102",
"property": [
]
},
{
"hostId": "minion-2",
"hostname": "minion-2.dev.kubernetes.org",
"privateIPAddress": "172.17.8.103",
"publicIPAddress": "172.17.8.103",
"property": [
]
}
],
"property": [
Expand Down

0 comments on commit 5781994

Please sign in to comment.