You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by sa...@apache.org on 2014/03/21 09:14:21 UTC
git commit: Adding a flag to control upstream commits in cartridge
instances. Option has to set when subscribing. Fixing STRATOS-248
Repository: incubator-stratos
Updated Branches:
refs/heads/master 1fdac0b5a -> 6e1c4e92e
Adding a flag to control upstream commits in cartridge instances. Option has to set when subscribing. Fixing STRATOS-248
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/6e1c4e92
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/6e1c4e92
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/6e1c4e92
Branch: refs/heads/master
Commit: 6e1c4e92e8731ac17708b6d9b17403d3e15bc684
Parents: 1fdac0b
Author: Sajith Kariyawasam <sa...@wso2.com>
Authored: Fri Mar 21 13:43:49 2014 +0530
Committer: Sajith Kariyawasam <sa...@wso2.com>
Committed: Fri Mar 21 13:43:49 2014 +0530
----------------------------------------------------------------------
.../stratos/cartridge/agent/CartridgeAgent.java | 17 ++++++++++++----
.../config/CartridgeAgentConfiguration.java | 21 +++++++++++++++++++-
.../agent/util/CartridgeAgentConstants.java | 1 +
.../stratos/cli/RestCommandLineService.java | 7 +++++--
.../cli/beans/cartridge/CartridgeInfoBean.java | 11 ++++++++++
.../stratos/cli/commands/SubscribeCommand.java | 15 +++++++++++++-
.../apache/stratos/cli/utils/CliConstants.java | 3 +++
.../manager/CartridgeSubscriptionManager.java | 4 ++++
.../manager/subscription/SubscriptionData.java | 10 ++++++++++
.../manager/utils/CartridgeConstants.java | 2 ++
.../rest/endpoint/bean/CartridgeInfoBean.java | 10 ++++++++++
.../rest/endpoint/services/ServiceUtils.java | 1 +
12 files changed, 94 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6e1c4e92/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java
index 81f9361..4457024 100644
--- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java
+++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/CartridgeAgent.java
@@ -25,6 +25,9 @@ import org.apache.stratos.messaging.message.receiver.instance.notifier.InstanceN
import org.apache.stratos.messaging.message.receiver.instance.notifier.InstanceNotifierEventMessageReceiver;
import java.util.List;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
/**
* Cartridge agent runnable.
@@ -64,16 +67,22 @@ public class CartridgeAgent implements Runnable {
// Publish instance activated event
CartridgeAgentEventPublisher.publishInstanceActivatedEvent();
+ } else {
+ //Start periodical file checker task
+ if (CartridgeAgentConfiguration.getInstance().isCommitsEnabled()) {
+ log.info(" Commits enabled. Starting File listener ");
+ ScheduledExecutorService scheduler = Executors
+ .newScheduledThreadPool(1);
+ scheduler.scheduleWithFixedDelay(new RepositoryFileListener(), 0,
+ 10, TimeUnit.SECONDS);
+ }
}
String persistanceMappingsPayload = CartridgeAgentConfiguration.getInstance().getPersistenceMappings();
if(persistanceMappingsPayload != null) {
ExtensionUtils.executeVolumeMountExtension(persistanceMappingsPayload);
}
- // TODO: Start this thread only if this node is configured as a commit true node
- // Start periodical file checker task
- // ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
- // scheduler.scheduleWithFixedDelay(new RepositoryFileListener(), 0, 10, TimeUnit.SECONDS);
+
// Keep the thread live until terminated
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6e1c4e92/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/config/CartridgeAgentConfiguration.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/config/CartridgeAgentConfiguration.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/config/CartridgeAgentConfiguration.java
index 3ddf801..1a893cb 100644
--- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/config/CartridgeAgentConfiguration.java
+++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/config/CartridgeAgentConfiguration.java
@@ -34,6 +34,7 @@ public class CartridgeAgentConfiguration {
private Map<String, String> parameters;
private boolean isMultitenant;
private String persistenceMappings;
+ private final boolean isCommitsEnabled;
private CartridgeAgentConfiguration() {
parameters = loadParametersFile();
@@ -51,6 +52,7 @@ public class CartridgeAgentConfiguration {
logFilePaths = readLogFilePaths();
isMultitenant = readMultitenant(CartridgeAgentConstants.MULTITENANT);
persistenceMappings = readPersisenceMapping();
+ isCommitsEnabled = readCommitsEnabled(CartridgeAgentConstants.COMMIT_ENABLED);
} catch (ParameterNotFoundException e) {
throw new RuntimeException(e);
@@ -73,7 +75,18 @@ public class CartridgeAgentConfiguration {
}
}
- private boolean readMultitenant(String multitenant) throws ParameterNotFoundException {
+ private boolean readCommitsEnabled(String commitEnabled) {
+ boolean isCommitEnabled = false;
+ try {
+ isCommitEnabled = Boolean.parseBoolean(readParameterValue(commitEnabled));
+ } catch (ParameterNotFoundException e) {
+ // Missing commits enabled flag is not an exception
+ log.error(" Commits enabled payload parameter is not found");
+ }
+ return isCommitEnabled;
+ }
+
+ private boolean readMultitenant(String multitenant) throws ParameterNotFoundException {
String multitenantStringValue = readParameterValue(multitenant);
return Boolean.parseBoolean(multitenantStringValue);
}
@@ -230,4 +243,10 @@ public class CartridgeAgentConfiguration {
return persistenceMappings;
}
+ public boolean isCommitsEnabled() {
+ return isCommitsEnabled;
+ }
+
+
+
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6e1c4e92/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/CartridgeAgentConstants.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/CartridgeAgentConstants.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/CartridgeAgentConstants.java
index 80e3bc2..ba8c99b 100644
--- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/CartridgeAgentConstants.java
+++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/util/CartridgeAgentConstants.java
@@ -50,4 +50,5 @@ public class CartridgeAgentConstants implements Serializable{
public static final String MULTITENANT = "MULTITENANT";
public static final String ENABLE_ARTIFACT_UPDATE = "enable.artifact.update";
public static final String ARTIFACT_UPDATE_INTERVAL = "artifact.update.interval";
+ public static final String COMMIT_ENABLED = "COMMIT_ENABLED";
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6e1c4e92/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java
index 52e2a97..890e888 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/RestCommandLineService.java
@@ -719,7 +719,8 @@ public class RestCommandLineService {
// This method does the cartridge subscription
public void subscribe(String cartridgeType, String alias, String externalRepoURL, boolean privateRepo, String username,
String password, String dataCartridgeType, String dataCartridgeAlias, String asPolicy,
- String depPolicy, String size, boolean remoOnTermination, boolean persistanceMapping)
+ String depPolicy, String size, boolean remoOnTermination, boolean persistanceMapping,
+ boolean enableCommits)
throws CommandException {
DefaultHttpClient httpClient = new DefaultHttpClient();
@@ -737,6 +738,7 @@ public class RestCommandLineService {
cartridgeInfoBean.setSize(size);
cartridgeInfoBean.setRemoveOnTermination(remoOnTermination);
cartridgeInfoBean.setPersistanceRequired(persistanceMapping);
+ cartridgeInfoBean.setCommitsEnabled(enableCommits);
GsonBuilder gsonBuilder = new GsonBuilder();
Gson gson = gsonBuilder.create();
@@ -800,7 +802,8 @@ public class RestCommandLineService {
cartridgeInfoBean.setSize(size);
cartridgeInfoBean.setRemoveOnTermination(remoOnTermination);
cartridgeInfoBean.setPersistanceRequired(persistanceMapping);
-
+ cartridgeInfoBean.setCommitsEnabled(enableCommits);
+
jsonSubscribeString = gson.toJson(cartridgeInfoBean, CartridgeInfoBean.class);
HttpResponse response = restClientService.doPost(httpClient, restClientService.getUrl() + subscribCartridgeRestEndpoint,
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6e1c4e92/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/beans/cartridge/CartridgeInfoBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/beans/cartridge/CartridgeInfoBean.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/beans/cartridge/CartridgeInfoBean.java
index 66795e8..02a3091 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/beans/cartridge/CartridgeInfoBean.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/beans/cartridge/CartridgeInfoBean.java
@@ -37,6 +37,7 @@ public class CartridgeInfoBean {
boolean privateRepo;
private boolean removeOnTermination;
private boolean persistanceRequired;
+ private boolean commitsEnabled;
public String getCartridgeType() {
return cartridgeType;
@@ -149,4 +150,14 @@ public class CartridgeInfoBean {
public void setPersistanceRequired(boolean persistanceRequired) {
this.persistanceRequired = persistanceRequired;
}
+
+ public boolean isCommitsEnabled() {
+ return commitsEnabled;
+ }
+
+ public void setCommitsEnabled(boolean commitsEnabled) {
+ this.commitsEnabled = commitsEnabled;
+ }
+
+
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6e1c4e92/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/SubscribeCommand.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/SubscribeCommand.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/SubscribeCommand.java
index 4917708..f19c57c 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/SubscribeCommand.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/commands/SubscribeCommand.java
@@ -108,6 +108,12 @@ public class SubscribeCommand implements Command<StratosCommandContext> {
passwordOption.setArgName("password");
passwordOption.setOptionalArg(true);
options.addOption(passwordOption);
+
+ Option upstreamCommitsEnabledOption = new Option(CliConstants.ENABLE_COMMITS_OPTION, CliConstants.ENABLE_COMMITS_LONG_OPTION, true,
+ "Enable Git commit upstream");
+ upstreamCommitsEnabledOption.setArgName("enable-commits");
+ upstreamCommitsEnabledOption.setOptionalArg(true);
+ options.addOption(upstreamCommitsEnabledOption);
return options;
}
@@ -141,6 +147,7 @@ public class SubscribeCommand implements Command<StratosCommandContext> {
boolean removeOnTermination = false;
boolean privateRepo = false;
boolean persistanceMapping = false;
+ boolean commitsEnabled = false;
final CommandLineParser parser = new GnuParser();
CommandLine commandLine;
@@ -235,6 +242,12 @@ public class SubscribeCommand implements Command<StratosCommandContext> {
}
dataCartridgeAlias = commandLine.getOptionValue(CliConstants.DATA_ALIAS_OPTION);
}
+ if (commandLine.hasOption(CliConstants.ENABLE_COMMITS_OPTION)) {
+ if (logger.isTraceEnabled()) {
+ logger.trace("Upstream git commits are enabled");
+ }
+ commitsEnabled = true;
+ }
if (depPolicy == null) {
System.out.println("Deployment policy is required.");
@@ -266,7 +279,7 @@ public class SubscribeCommand implements Command<StratosCommandContext> {
RestCommandLineService.getInstance().subscribe(type, alias, repoURL, privateRepo, username,
password, dataCartridgeType, dataCartridgeAlias, asPolicy, depPolicy, size, removeOnTermination,
- persistanceMapping);
+ persistanceMapping, commitsEnabled);
return CliConstants.SUCCESSFUL_CODE;
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6e1c4e92/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/utils/CliConstants.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/utils/CliConstants.java b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/utils/CliConstants.java
index e15f487..892b465 100644
--- a/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/utils/CliConstants.java
+++ b/components/org.apache.stratos.cli/src/main/java/org/apache/stratos/cli/utils/CliConstants.java
@@ -254,6 +254,9 @@ public class CliConstants {
public static final String TRACE_OPTION = "trace";
public static final String DEBUG_OPTION = "debug";
+
+ public static final String ENABLE_COMMITS_OPTION = "cm";
+ public static final String ENABLE_COMMITS_LONG_OPTION = "enable-commits";
// Add tenant options
public static final String FIRST_NAME_OPTION = "f";
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6e1c4e92/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
index b0fdb5b..24cfa66 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
@@ -258,6 +258,10 @@ public class CartridgeSubscriptionManager {
//create subscription
cartridgeSubscription.createSubscription(subscriber, subscriptionData.getCartridgeAlias(), subscriptionData.getAutoscalingPolicyName(),
subscriptionData.getDeploymentPolicyName(), repository);
+
+ // Add whether the subscription is enabled upstream git commits
+ cartridgeSubscription.getPayloadData().add(CartridgeConstants.COMMIT_ENABLED, String.valueOf(subscriptionData.isCommitsEnabled()));
+
log.info("Tenant [" + subscriptionData.getTenantId() + "] with username [" + subscriptionData.getTenantAdminUsername() +
" subscribed to " + "] Cartridge with Alias " + subscriptionData.getCartridgeAlias() + ", Cartridge Type: " +
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6e1c4e92/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java
index 1c986da..b258400 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java
@@ -40,6 +40,7 @@ public class SubscriptionData {
private String repositoryPassword;
private Property[] properties;
private PersistenceContext persistanceCtxt;
+ private boolean isCommitsEnabled;
public String getCartridgeType() {
return cartridgeType;
@@ -152,4 +153,13 @@ public class SubscriptionData {
public void setPersistanceCtxt(PersistenceContext persistanceCtxt) {
this.persistanceCtxt = persistanceCtxt;
}
+
+ public boolean isCommitsEnabled() {
+ return isCommitsEnabled;
+ }
+
+ public void setCommitsEnabled(boolean isCommitsEnabled) {
+ this.isCommitsEnabled = isCommitsEnabled;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6e1c4e92/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConstants.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConstants.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConstants.java
index a64a235..ab98b69 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConstants.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConstants.java
@@ -66,6 +66,8 @@ public class CartridgeConstants {
public static final String CC_CONNECTION_TIMEOUT = "cc.connection.timeout";
public static final String AUTOSCALER_SOCKET_TIMEOUT = "autoscaler.socket.timeout";
public static final String AUTOSCALER_CONNECTION_TIMEOUT = "autoscaler.connection.timeout";
+
+ public static final String COMMIT_ENABLED = "COMMIT_ENABLED";
public static final class DomainMappingInfo {
public static final String ACTUAL_HOST = "actual.host";
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6e1c4e92/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java
index 3afd1da..656e4e0 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java
@@ -31,6 +31,7 @@ public class CartridgeInfoBean {
String repoPassword;
String dataCartridgeType;
String dataCartridgeAlias;
+ boolean commitsEnabled;
private boolean persistanceRequired;
private String size;
@@ -139,4 +140,13 @@ public class CartridgeInfoBean {
public void setRemoveOnTermination(boolean removeOnTermination) {
this.removeOnTermination = removeOnTermination;
}
+
+ public boolean isCommitsEnabled() {
+ return commitsEnabled;
+ }
+
+ public void setCommitsEnabled(boolean commitsEnabled) {
+ this.commitsEnabled = commitsEnabled;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6e1c4e92/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
index 82e1e8e..ce3bcf1 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
@@ -984,6 +984,7 @@ public class ServiceUtils {
subscriptionData.setRepositoryURL(cartridgeInfoBean.getRepoURL());
subscriptionData.setRepositoryUsername(cartridgeInfoBean.getRepoUsername());
subscriptionData.setRepositoryPassword(cartridgeInfoBean.getRepoPassword());
+ subscriptionData.setCommitsEnabled(cartridgeInfoBean.isCommitsEnabled());
if (cartridgeInfoBean.isPersistanceRequired()) {
// Add persistence related properties to PersistenceContext