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/01/19 03:27:14 UTC
git commit: Fixing instance artifact location issue in cartrige
agent. Adding a check for multitenancy
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 <sa...@wso2.com>
Authored: Sun Jan 19 07:56:57 2014 +0530
Committer: Sajith Kariyawasam <sa...@wso2.com>
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";
}