You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2015/01/29 14:46:38 UTC
[2/2] stratos git commit: Adding logic to parse application
definition once and reuse it in application deployment
Adding logic to parse application definition once and reuse it in application deployment
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/15cbd21b
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/15cbd21b
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/15cbd21b
Branch: refs/heads/master
Commit: 15cbd21be322615f6452020bfbd19c50941de837
Parents: fbd4416
Author: Imesh Gunaratne <im...@apache.org>
Authored: Thu Jan 29 19:15:15 2015 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Thu Jan 29 19:16:31 2015 +0530
----------------------------------------------------------------------
.../applications/pojo/ComponentContext.java | 10 ++++++++++
.../services/impl/AutoscalerServiceImpl.java | 19 +++++++++++++------
samples/applications/complex-app/README.md | 2 +-
3 files changed, 24 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/15cbd21b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ComponentContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ComponentContext.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ComponentContext.java
index 8d42c89..b8faedb 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ComponentContext.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/pojo/ComponentContext.java
@@ -20,6 +20,7 @@
package org.apache.stratos.autoscaler.applications.pojo;
import java.io.Serializable;
+import java.util.Set;
public class ComponentContext implements Serializable {
@@ -28,6 +29,7 @@ public class ComponentContext implements Serializable {
private GroupContext[] groupContexts;
private CartridgeContext[] cartridgeContexts;
private DependencyContext dependencyContext;
+ private Set<ApplicationClusterContext> applicationClusterContexts;
public GroupContext[] getGroupContexts() {
return groupContexts;
@@ -52,4 +54,12 @@ public class ComponentContext implements Serializable {
public void setDependencyContext(DependencyContext dependencyContext) {
this.dependencyContext = dependencyContext;
}
+
+ public void setApplicationClusterContexts(Set<ApplicationClusterContext> applicationClusterContexts) {
+ this.applicationClusterContexts = applicationClusterContexts;
+ }
+
+ public Set<ApplicationClusterContext> getApplicationClusterContexts() {
+ return applicationClusterContexts;
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/15cbd21b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
index 98f4807..d38e244 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/services/impl/AutoscalerServiceImpl.java
@@ -198,7 +198,12 @@ public class AutoscalerServiceImpl implements AutoscalerService {
}
ApplicationParser applicationParser = new DefaultApplicationParser();
- applicationParser.parse(applicationContext);
+ Application application = applicationParser.parse(applicationContext);
+ RegistryManager.getInstance().persistApplication(application);
+
+ Set<ApplicationClusterContext> applicationClusterContexts = applicationParser.getApplicationClusterContexts();
+ applicationContext.getComponents().setApplicationClusterContexts(applicationClusterContexts);
+
applicationContext.setStatus(ApplicationContext.STATUS_CREATED);
AutoscalerContext.getInstance().addApplicationContext(applicationContext);
if(log.isInfoEnabled()) {
@@ -221,16 +226,18 @@ public class AutoscalerServiceImpl implements AutoscalerService {
@Override
public boolean deployApplication(String applicationId, DeploymentPolicy deploymentPolicy) throws ApplicationDefinitionException {
try {
- ApplicationContext applicationContext = RegistryManager.getInstance().getApplicationContext(applicationId);
- if (applicationContext == null) {
+ Application application = RegistryManager.getInstance().getApplication(applicationId);
+ if (application == null) {
throw new RuntimeException("Application not found: " + applicationId);
}
- ApplicationParser applicationParser = new DefaultApplicationParser();
- Application application = applicationParser.parse(applicationContext);
+ ApplicationContext applicationContext = RegistryManager.getInstance().getApplicationContext(applicationId);
+ if (applicationContext == null) {
+ throw new RuntimeException("Application context not found: " + applicationId);
+ }
// Create application clusters in cloud controller and send application created event
- ApplicationBuilder.handleApplicationCreatedEvent(application, applicationParser.getApplicationClusterContexts());
+ ApplicationBuilder.handleApplicationCreatedEvent(application, applicationContext.getComponents().getApplicationClusterContexts());
try {
// Update kubernetes cluster ids
http://git-wip-us.apache.org/repos/asf/stratos/blob/15cbd21b/samples/applications/complex-app/README.md
----------------------------------------------------------------------
diff --git a/samples/applications/complex-app/README.md b/samples/applications/complex-app/README.md
index e6de773..f48f6d4 100644
--- a/samples/applications/complex-app/README.md
+++ b/samples/applications/complex-app/README.md
@@ -1,4 +1,4 @@
Complex App
===========
-TODO: Add an description about the application
+TODO: Add a description about the application