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