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 2013/12/18 14:31:31 UTC
git commit: Fixing cartridge deployment issue for multitenant
Updated Branches:
refs/heads/master 12adc174d -> f75f87b0d
Fixing cartridge deployment issue for multitenant
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/f75f87b0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/f75f87b0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/f75f87b0
Branch: refs/heads/master
Commit: f75f87b0dc246512c53ed4210d6df5e216c856c2
Parents: 12adc17
Author: Sajith Kariyawasam <sa...@wso2.com>
Authored: Wed Dec 18 19:01:02 2013 +0530
Committer: Sajith Kariyawasam <sa...@wso2.com>
Committed: Wed Dec 18 19:01:02 2013 +0530
----------------------------------------------------------------------
.../stratos/adc/mgt/deploy/service/Service.java | 5 +--
.../service/ServiceDeploymentManager.java | 15 +++++---
.../service/multitenant/MultiTenantService.java | 5 +--
.../manager/CartridgeSubscriptionManager.java | 12 +++++++
.../adc/mgt/utils/PersistenceManager.java | 37 ++++++++++++++++++++
.../rest/endpoint/services/ServiceUtils.java | 17 +++------
6 files changed, 70 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f75f87b0/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/deploy/service/Service.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/deploy/service/Service.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/deploy/service/Service.java
index 4b1cad3..d5b6597 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/deploy/service/Service.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/deploy/service/Service.java
@@ -40,14 +40,15 @@ public abstract class Service implements Serializable {
private CartridgeInfo cartridgeInfo;
private PayloadData payloadData;
- public Service (String type, String autoscalingPolicyName, String deploymentPolicyName, int tenantId, CartridgeInfo cartridgeInfo) {
+ public Service (String type, String autoscalingPolicyName, String deploymentPolicyName, int tenantId, CartridgeInfo cartridgeInfo,
+ String tenantRange) {
this.type = type;
this.autoscalingPolicyName = autoscalingPolicyName;
this.deploymentPolicyName = deploymentPolicyName;
this.tenantId = tenantId;
this.cartridgeInfo = cartridgeInfo;
- this.tenantRange = "*";
+ this.tenantRange = tenantRange;
this.subscriptionKey = CartridgeSubscriptionUtils.generateSubscriptionKey();
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f75f87b0/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/deploy/service/ServiceDeploymentManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/deploy/service/ServiceDeploymentManager.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/deploy/service/ServiceDeploymentManager.java
index fe043c9..8a03a14 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/deploy/service/ServiceDeploymentManager.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/deploy/service/ServiceDeploymentManager.java
@@ -30,6 +30,7 @@ import org.apache.stratos.adc.mgt.payload.PayloadData;
import org.apache.stratos.adc.mgt.payload.PayloadFactory;
import org.apache.stratos.adc.mgt.subscription.utils.CartridgeSubscriptionUtils;
import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
+import org.apache.stratos.adc.mgt.utils.PersistenceManager;
import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
import org.apache.stratos.cloud.controller.pojo.Property;
@@ -37,7 +38,7 @@ public class ServiceDeploymentManager {
private static Log log = LogFactory.getLog(ServiceDeploymentManager.class);
- public Service deployService (String type, String autoscalingPolicyName, String deploymentPolicyName, int tenantId)
+ public Service deployService (String type, String autoscalingPolicyName, String deploymentPolicyName, int tenantId, String tenantRange)
throws ADCException, UnregisteredCartridgeException {
//get deployed Cartridge Definition information
@@ -62,7 +63,7 @@ public class ServiceDeploymentManager {
throw new ADCException(errorMsg);
}
- Service service = new MultiTenantService(type, autoscalingPolicyName, deploymentPolicyName, tenantId, cartridgeInfo);
+ Service service = new MultiTenantService(type, autoscalingPolicyName, deploymentPolicyName, tenantId, cartridgeInfo, tenantRange);
//generate the cluster ID (domain)for the service
service.setClusterId(type + "." + cartridgeInfo.getHostName() + ".domain");
@@ -97,8 +98,14 @@ public class ServiceDeploymentManager {
//deploy the service
service.deploy();
- //TODO: persist Service
-
+ //persist Service
+ try {
+ PersistenceManager.persistService(service);
+ } catch (Exception e) {
+ String message = "Error getting info for " + type;
+ log.error(message, e);
+ throw new ADCException(message, e);
+ }
return service;
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f75f87b0/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/deploy/service/multitenant/MultiTenantService.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/deploy/service/multitenant/MultiTenantService.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/deploy/service/multitenant/MultiTenantService.java
index 2a3b07d..3ce5626 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/deploy/service/multitenant/MultiTenantService.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/deploy/service/multitenant/MultiTenantService.java
@@ -32,8 +32,9 @@ public class MultiTenantService extends Service {
private static Log log = LogFactory.getLog(MultiTenantService.class);
- public MultiTenantService (String type, String autoscalingPolicyName, String deploymentPolicyName, int tenantId, CartridgeInfo cartridgeInfo) {
- super(type, autoscalingPolicyName, deploymentPolicyName, tenantId, cartridgeInfo);
+ public MultiTenantService (String type, String autoscalingPolicyName, String deploymentPolicyName, int tenantId, CartridgeInfo cartridgeInfo,
+ String tenantRange) {
+ super(type, autoscalingPolicyName, deploymentPolicyName, tenantId, cartridgeInfo, tenantRange);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f75f87b0/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/manager/CartridgeSubscriptionManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/manager/CartridgeSubscriptionManager.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/manager/CartridgeSubscriptionManager.java
index 600e5cc..92b5dd4 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/manager/CartridgeSubscriptionManager.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/manager/CartridgeSubscriptionManager.java
@@ -31,6 +31,7 @@ import org.apache.stratos.adc.mgt.exception.*;
import org.apache.stratos.adc.mgt.payload.BasicPayloadData;
import org.apache.stratos.adc.mgt.payload.PayloadData;
import org.apache.stratos.adc.mgt.payload.PayloadFactory;
+import org.apache.stratos.adc.mgt.publisher.ArtifactUpdatePublisher;
import org.apache.stratos.adc.mgt.repository.Repository;
import org.apache.stratos.adc.mgt.subscriber.Subscriber;
import org.apache.stratos.adc.mgt.subscription.CartridgeSubscription;
@@ -215,6 +216,17 @@ public class CartridgeSubscriptionManager {
// Publish tenant subscribed event to message broker
CartridgeSubscriptionUtils.publishTenantSubscribedEvent(cartridgeSubscription.getSubscriber().getTenantId(),
cartridgeSubscription.getCartridgeInfo().getType());
+
+ // publish artifact-deployment event for multi-tenant subscription
+ //CartridgeSubscriptionInfo subscription = PersistenceManager.getSubscriptionFromClusterId(clusterId);
+
+ if(cartridgeInfo.getMultiTenant()) {
+ log.info(" Multitenant --> Publishing Artifact update event -- ");
+ ArtifactUpdatePublisher publisher = new ArtifactUpdatePublisher(cartridgeSubscription.getRepository(),
+ cartridgeSubscription.getClusterDomain(), // clusterId
+ String.valueOf(cartridgeSubscription.getSubscriber().getTenantId()));
+ publisher.publish();
+ }
return cartridgeSubscription;
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f75f87b0/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/PersistenceManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/PersistenceManager.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/PersistenceManager.java
index 1d7492c..e96e8db 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/PersistenceManager.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/PersistenceManager.java
@@ -34,6 +34,7 @@ import org.apache.stratos.adc.mgt.dao.CartridgeSubscriptionInfo;
import org.apache.stratos.adc.mgt.dao.DataCartridge;
import org.apache.stratos.adc.mgt.dao.PortMapping;
import org.apache.stratos.adc.mgt.dao.RepositoryCredentials;
+import org.apache.stratos.adc.mgt.deploy.service.Service;
import org.apache.stratos.adc.mgt.repository.Repository;
/**
@@ -844,6 +845,42 @@ public class PersistenceManager {
return cartridgeSubscriptionInfo;
}
+
+
+ public static void persistService(Service service) throws Exception {
+
+ Connection con = null;
+ PreparedStatement insertServiceStmt = null;
+
+ String insertServiceSQL = "INSERT INTO SERVICE (TYPE, AUTOSCALING_POLICY,DEPLOYMENT_POLICY,TENANT_RANGE,"
+ + "CLUSTER_ID,HOST_NAME,SUBSCRIPTION_KEY)"
+ + " VALUES (?,?,?,?,?,?,?)";
+
+ try {
+
+ con = StratosDBUtils.getConnection();
+ insertServiceStmt = con.prepareStatement(insertServiceSQL);
+ insertServiceStmt.setString(1, service.getType());
+ insertServiceStmt.setString(2, service.getAutoscalingPolicyName());
+ insertServiceStmt.setString(3, service.getDeploymentPolicyName());
+ insertServiceStmt.setString(4, service.getTenantRange());
+ insertServiceStmt.setString(5, service.getClusterId());
+ insertServiceStmt.setString(6, service.getHostName());
+ insertServiceStmt.setString(7, service.getSubscriptionKey());
+ insertServiceStmt.executeUpdate();
+ con.commit();
+ if (log.isDebugEnabled()) {
+ log.debug(" Service " + service.getType() + " is inserted into DB");
+ }
+ } catch (Exception e) {
+ String msg = "Error while sql connection :" + e.getMessage();
+ log.error(msg, e);
+ throw e;
+ } finally {
+ StratosDBUtils.closeStatement(insertServiceStmt);
+ }
+
+ }
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f75f87b0/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 f89090d..acde631 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
@@ -25,6 +25,7 @@ import org.apache.commons.logging.LogFactory;
import org.apache.stratos.adc.mgt.client.AutoscalerServiceClient;
import org.apache.stratos.adc.mgt.client.CloudControllerServiceClient;
import org.apache.stratos.adc.mgt.dao.CartridgeSubscriptionInfo;
+import org.apache.stratos.adc.mgt.deploy.service.ServiceDeploymentManager;
import org.apache.stratos.adc.mgt.dto.Cartridge;
import org.apache.stratos.adc.mgt.dto.SubscriptionInfo;
import org.apache.stratos.adc.mgt.exception.*;
@@ -58,6 +59,7 @@ import java.util.regex.Pattern;
public class ServiceUtils {
private static Log log = LogFactory.getLog(StratosAdmin.class);
private static CartridgeSubscriptionManager cartridgeSubsciptionManager = new CartridgeSubscriptionManager();
+ private static ServiceDeploymentManager serviceDeploymentManager = new ServiceDeploymentManager();
static void deployCartridge (CartridgeDefinitionBean cartridgeDefinitionBean, ConfigurationContext ctxt,
String userName, String tenantDomain) throws RestAPIException {
@@ -909,23 +911,12 @@ public class ServiceUtils {
*/
static void deployService (String cartridgeType, String alias, String autoscalingPolicy, String deploymentPolicy,
String tenantDomain, int tenantId, String clusterDomain, String clusterSubdomain, String tenantRange) {
-
- // create the subscription and persist.
- CartridgeSubscription cartridgeSubscription = null;
+ log.info("Deploying service..");
try {
- //cartridgeSubscription = cartridgeSubsciptionManager.deployMultitenantService(cartridgeType, alias, autoscalingPolicy,
- // deploymentPolicy, tenantDomain, tenantId, "tenant-admin-user-name", clusterDomain, clusterSubdomain, null, false, null, null,
- // tenantRange);
- //cartridgeSubsciptionManager.registerCartridgeSubscription(cartridgeSubscription);
+ serviceDeploymentManager.deployService(cartridgeType, autoscalingPolicy, deploymentPolicy, tenantId, tenantRange);
} catch (Exception e) {
e.printStackTrace();
}
-
- /*CartridgeSubscription cartridgeSubscription = cartridgeSubsciptionManager.subscribeToCartridge(cartridgeType,
- alias.trim(), autoscalingPolicy, deploymentPolicy ,tenantDomain, tenantId,
- userName, "git", repoURL, privateRepo, repoUsername, repoPassword);*/
-
- //
}
}