Updated Branches:
  refs/heads/master 3ce7f9fff -> 8997301ed

Fixing instance artifact location issue in cartrige agent. Adding a check for 
multitenancy


Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/8997301e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/8997301e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/8997301e

Branch: refs/heads/master
Commit: 8997301ed4fb085baebf34544444e64d33ddc79d
Parents: 3ce7f9f
Author: Sajith Kariyawasam <[email protected]>
Authored: Sun Jan 19 07:56:57 2014 +0530
Committer: Sajith Kariyawasam <[email protected]>
Committed: Sun Jan 19 07:56:57 2014 +0530

----------------------------------------------------------------------
 .../stratos/cartridge/agent/CartridgeAgent.java |  2 +
 .../synchronizer/RepositoryInformation.java     |  7 +++
 .../git/impl/GitBasedArtifactRepository.java    | 45 ++++++++++++--------
 .../config/CartridgeAgentConfiguration.java     | 14 +++++-
 .../agent/util/CartridgeAgentConstants.java     |  1 +
 5 files changed, 50 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8997301e/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 0e35bd6..6de3f9c 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
@@ -148,6 +148,7 @@ public class CartridgeAgent implements Runnable {
         String repoPassword = 
CartridgeAgentUtils.decryptPassword(artifactUpdatedEvent.getRepoPassword());
         String repoUsername = artifactUpdatedEvent.getRepoUserName();
         String tenantId = artifactUpdatedEvent.getTenantId();
+        boolean isMultitenant = 
CartridgeAgentConfiguration.getInstance().isMultitenant();
 
         if(StringUtils.isNotEmpty(repoURL) && (clusterIdInPayload != null) && 
clusterIdInPayload.equals(clusterIdInMessage)) {
             if(log.isInfoEnabled()) {
@@ -159,6 +160,7 @@ public class CartridgeAgent implements Runnable {
             repoInformation.setRepoUrl(repoURL);
             repoInformation.setRepoPath(localRepoPath);
             repoInformation.setTenantId(tenantId);
+            repoInformation.setMultitenant(isMultitenant);
             boolean cloneExists = 
GitBasedArtifactRepository.getInstance().cloneExists(repoInformation);
             GitBasedArtifactRepository.getInstance().checkout(repoInformation);
 

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8997301e/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/artifact/deployment/synchronizer/RepositoryInformation.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/artifact/deployment/synchronizer/RepositoryInformation.java
 
b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/artifact/deployment/synchronizer/RepositoryInformation.java
index 57d6042..1be78a4 100644
--- 
a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/artifact/deployment/synchronizer/RepositoryInformation.java
+++ 
b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/artifact/deployment/synchronizer/RepositoryInformation.java
@@ -30,6 +30,7 @@ public class RepositoryInformation {
        private String repoPassword;
        private String repoPath;
        private String tenantId;
+       private boolean isMultitenant;
        
        public String getRepoUrl() {
                return repoUrl;
@@ -61,5 +62,11 @@ public class RepositoryInformation {
        public void setTenantId(String tenantId) {
                this.tenantId = tenantId;
        }
+       public boolean isMultitenant() {
+               return isMultitenant;
+       }
+       public void setMultitenant(boolean isMultitenant) {
+               this.isMultitenant = isMultitenant;
+       }
        
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8997301e/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/artifact/deployment/synchronizer/git/impl/GitBasedArtifactRepository.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/artifact/deployment/synchronizer/git/impl/GitBasedArtifactRepository.java
 
b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/artifact/deployment/synchronizer/git/impl/GitBasedArtifactRepository.java
index 3500b02..5e1d0af 100644
--- 
a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/artifact/deployment/synchronizer/git/impl/GitBasedArtifactRepository.java
+++ 
b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/artifact/deployment/synchronizer/git/impl/GitBasedArtifactRepository.java
@@ -49,7 +49,9 @@ import java.util.concurrent.*;
  */
 public class GitBasedArtifactRepository {
 
-    private static final Log log = 
LogFactory.getLog(GitBasedArtifactRepository.class);
+    private static final int SUPER_TENANT_ID = -1234;
+
+       private static final Log log = 
LogFactory.getLog(GitBasedArtifactRepository.class);
 
     //Map to keep track of git context per tenant (remote urls, jgit git 
objects, etc.)
     private static ConcurrentHashMap<Integer, RepositoryContext>
@@ -82,8 +84,6 @@ public class GitBasedArtifactRepository {
      */
     private void initGitContext (RepositoryInformation repositoryInformation)  
{
 
-     /*   if (tenantId == GitDeploymentSynchronizerConstants.SUPER_TENANT_ID)
-            return;*/
        
        log.info("Initializing git context.");
        
@@ -91,13 +91,14 @@ public class GitBasedArtifactRepository {
        String gitLocalRepoPath = repositoryInformation.getRepoPath();
         RepositoryContext gitRepoCtx = new RepositoryContext();
         String gitRemoteRepoUrl = repositoryInformation.getRepoUrl();
+        boolean isMultitenant = repositoryInformation.isMultitenant();
         
         log.info("local path " + gitLocalRepoPath);
         log.info("remote url " + gitRemoteRepoUrl);
         log.info("tenant " + tenantId);
         
         gitRepoCtx.setTenantId(tenantId);
-        
gitRepoCtx.setGitLocalRepoPath(getRepoPathForTenantId(tenantId,gitLocalRepoPath));
        
+        
gitRepoCtx.setGitLocalRepoPath(getRepoPathForTenantId(tenantId,gitLocalRepoPath,isMultitenant));
        
         gitRepoCtx.setGitRemoteRepoUrl(gitRemoteRepoUrl);
                
                
gitRepoCtx.setRepoUsername(repositoryInformation.getRepoUsername());
@@ -133,21 +134,29 @@ public class GitBasedArtifactRepository {
 
     // If tenant id is "-1234", then its super tenant, else tenant
     private static String getRepoPathForTenantId(int tenantId,
-                       String gitLocalRepoPath) {
+                       String gitLocalRepoPath, boolean isMultitenant) {
                
-       StringBuilder repoPathBuilder = new StringBuilder();
-       
-       if(tenantId == -1234) {
-               
repoPathBuilder.append(gitLocalRepoPath).append(SUPER_TENANT_APP_PATH);
-       } else {
-               // create folder with tenant id
-               createTenantDir(tenantId, gitLocalRepoPath);                    
-               
repoPathBuilder.append(gitLocalRepoPath).append(TENANT_PATH).append(tenantId);
-       }
-       
-               String repoPath = repoPathBuilder.toString();
-               log.info("Repo path returned : " + repoPath);
-               return repoPath;
+       
+               StringBuilder repoPathBuilder = new StringBuilder();
+               String repoPath = null;
+
+               if (isMultitenant) {
+                       if (tenantId == SUPER_TENANT_ID) {
+                               repoPathBuilder.append(gitLocalRepoPath).append(
+                                               SUPER_TENANT_APP_PATH);
+                       } else {
+                               // create folder with tenant id
+                               createTenantDir(tenantId, gitLocalRepoPath);
+                               
repoPathBuilder.append(gitLocalRepoPath).append(TENANT_PATH)
+                                               .append(tenantId);
+                       }
+
+                       repoPath = repoPathBuilder.toString();
+               } else {
+                       repoPath = gitLocalRepoPath;
+               }
+               log.info("Repo path returned : " + repoPath);
+               return repoPath;
        }
 
        private static void createTenantDir(int tenantId, String path) {

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8997301e/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 48fd05b..673ce2d 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
@@ -27,6 +27,7 @@ public class CartridgeAgentConfiguration {
     private final String appPath;
     private final String repoUrl;
     private final List<Integer> ports;
+    private boolean isMultitenant;
 
     private CartridgeAgentConfiguration() {
         serviceName = readParameterValue(CartridgeAgentConstants.SERVICE_NAME);
@@ -38,6 +39,7 @@ public class CartridgeAgentConfiguration {
         appPath = readParameterValue(CartridgeAgentConstants.APP_PATH);
         repoUrl = readParameterValue(CartridgeAgentConstants.REPO_URL);
         ports = readPorts();
+        isMultitenant = readMultitenant(CartridgeAgentConstants.MULTITENANT);
 
         if(log.isInfoEnabled()) {
             log.info("Cartridge agent configuration initialized");
@@ -56,7 +58,12 @@ public class CartridgeAgentConfiguration {
         }
     }
 
-    /**
+    private boolean readMultitenant(String multitenant) {
+       String multitenantStringValue = readParameterValue(multitenant);
+       return Boolean.parseBoolean(multitenantStringValue);
+       }
+
+       /**
      * Get cartridge agent configuration singleton instance.
      *
      * @return
@@ -142,4 +149,9 @@ public class CartridgeAgentConfiguration {
     public List<Integer> getPorts() {
         return ports;
     }
+
+       public boolean isMultitenant() {
+               return isMultitenant;
+       }  
+    
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8997301e/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 65a7594..9914f6f 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
@@ -45,4 +45,5 @@ public class CartridgeAgentConstants implements Serializable{
     public static final String MEMORY_CONSUMPTION = "memory_consumption";
     public static final String LOAD_AVERAGE = "load_average";
     public static final String PORTS_NOT_OPEN = "ports_not_open";
+    public static final String MULTITENANT = "MULTITENANT";
 }

Reply via email to