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 <[email protected]>
Authored: Fri Mar 21 13:43:49 2014 +0530
Committer: Sajith Kariyawasam <[email protected]>
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

Reply via email to