You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by is...@apache.org on 2014/01/10 07:02:14 UTC
[1/2] git commit: MT Service deployment for LB
Updated Branches:
refs/heads/master 8a76a55f3 -> 4c027278f
MT Service deployment for LB
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/192c8671
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/192c8671
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/192c8671
Branch: refs/heads/master
Commit: 192c86712ce73b3f191ebc396b49b64072318ad0
Parents: 70aa62e
Author: Isuru <is...@wso2.com>
Authored: Fri Jan 10 11:31:34 2014 +0530
Committer: Isuru <is...@wso2.com>
Committed: Fri Jan 10 11:31:34 2014 +0530
----------------------------------------------------------------------
.../stratos/manager/deploy/service/Service.java | 37 ++++++++++-
.../service/ServiceDeploymentManager.java | 65 ++++++++++----------
.../service/multitenant/MultiTenantService.java | 2 +
.../multitenant/lb/MultiTenantLBService.java | 54 ++++++++++++++++
4 files changed, 126 insertions(+), 32 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/192c8671/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/Service.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/Service.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/Service.java
index 6121931..2dc29bc 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/Service.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/Service.java
@@ -19,11 +19,15 @@
package org.apache.stratos.manager.deploy.service;
+import org.apache.stratos.cloud.controller.pojo.Property;
import org.apache.stratos.manager.exception.ADCException;
import org.apache.stratos.manager.exception.UnregisteredCartridgeException;
+import org.apache.stratos.manager.payload.BasicPayloadData;
import org.apache.stratos.manager.payload.PayloadData;
+import org.apache.stratos.manager.payload.PayloadFactory;
import org.apache.stratos.manager.subscription.utils.CartridgeSubscriptionUtils;
import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
+import org.apache.stratos.manager.utils.CartridgeConstants;
import java.io.Serializable;
@@ -52,7 +56,38 @@ public abstract class Service implements Serializable {
this.subscriptionKey = CartridgeSubscriptionUtils.generateSubscriptionKey();
}
- public abstract void deploy () throws ADCException, UnregisteredCartridgeException;
+ public void deploy () throws ADCException, UnregisteredCartridgeException {
+
+ //generate the cluster ID (domain)for the service
+ setClusterId(type + "." + cartridgeInfo.getHostName() + ".domain");
+ //host name is the hostname defined in cartridge definition
+ setHostName(cartridgeInfo.getHostName());
+
+ //Create payload
+ BasicPayloadData basicPayloadData = CartridgeSubscriptionUtils.createBasicPayload(this);
+ //populate
+ basicPayloadData.populatePayload();
+ PayloadData payloadData = PayloadFactory.getPayloadDataInstance(cartridgeInfo.getProvider(),
+ cartridgeInfo.getType(), basicPayloadData);
+
+ // get the payload parameters defined in the cartridge definition file for this cartridge type
+ if (cartridgeInfo.getProperties() != null && cartridgeInfo.getProperties().length != 0) {
+
+ for (Property property : cartridgeInfo.getProperties()) {
+ // check if a property is related to the payload. Currently this is done by checking if the
+ // property name starts with 'payload_parameter.' suffix. If so the payload param name will
+ // be taken as the substring from the index of '.' to the end of the property name.
+ if (property.getName()
+ .startsWith(CartridgeConstants.CUSTOM_PAYLOAD_PARAM_NAME_PREFIX)) {
+ String payloadParamName = property.getName();
+ payloadData.add(payloadParamName.substring(payloadParamName.indexOf(".") + 1), property.getValue());
+ }
+ }
+ }
+
+ //set PayloadData instance
+ setPayloadData(payloadData);
+ }
public abstract void undeploy (String clusterId) throws ADCException;
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/192c8671/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/ServiceDeploymentManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/ServiceDeploymentManager.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/ServiceDeploymentManager.java
index 4610615..195b0cf 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/ServiceDeploymentManager.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/ServiceDeploymentManager.java
@@ -19,32 +19,26 @@
package org.apache.stratos.manager.deploy.service;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Random;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
+import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
+import org.apache.stratos.cloud.controller.pojo.LoadbalancerConfig;
+import org.apache.stratos.cloud.controller.pojo.Properties;
+import org.apache.stratos.cloud.controller.pojo.Property;
import org.apache.stratos.manager.client.AutoscalerServiceClient;
import org.apache.stratos.manager.client.CloudControllerServiceClient;
+import org.apache.stratos.manager.deploy.service.multitenant.lb.MultiTenantLBService;
import org.apache.stratos.manager.deploy.service.multitenant.MultiTenantService;
import org.apache.stratos.manager.exception.ADCException;
import org.apache.stratos.manager.exception.UnregisteredCartridgeException;
import org.apache.stratos.manager.manager.CartridgeSubscriptionManager;
-import org.apache.stratos.manager.payload.BasicPayloadData;
-import org.apache.stratos.manager.payload.PayloadData;
-import org.apache.stratos.manager.payload.PayloadFactory;
-import org.apache.stratos.manager.subscription.CartridgeSubscription;
-import org.apache.stratos.manager.subscription.utils.CartridgeSubscriptionUtils;
-import org.apache.stratos.manager.utils.CartridgeConstants;
import org.apache.stratos.manager.utils.PersistenceManager;
-import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
-import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
-import org.apache.stratos.cloud.controller.pojo.LoadbalancerConfig;
-import org.apache.stratos.cloud.controller.pojo.Properties;
-import org.apache.stratos.cloud.controller.pojo.Property;
import org.apache.stratos.messaging.util.Constants;
+import java.util.ArrayList;
+import java.util.List;
+
public class ServiceDeploymentManager {
private static Log log = LogFactory.getLog(ServiceDeploymentManager.class);
@@ -91,6 +85,8 @@ public class ServiceDeploymentManager {
}
} else {
+ Service lbService;
+
CartridgeInfo lbCartridgeInfo;
String lbCartridgeType = lbConfig.getType();
try {
@@ -168,15 +164,20 @@ public class ServiceDeploymentManager {
if (!AutoscalerServiceClient.getServiceClient().checkDefaultLBExistenceAgainstPolicy(deploymentPolicyName)) {
// if lb cluster doesn't exist
- String lbAlias = "lb" + new Random().nextInt();
lbCartridgeInfo.addProperties(property);
- subscribeToLb(lbCartridgeType,
+ /*subscribeToLb(lbCartridgeType,
lbAlias,
lbCartridgeInfo.getDefaultAutoscalingPolicy(),
deploymentPolicyName, tenantId,
userName,
tenantDomain,
- lbCartridgeInfo.getProperties());
+ lbCartridgeInfo.getProperties());*/
+ lbService = new MultiTenantLBService(lbCartridgeType,
+ lbCartridgeInfo.getDefaultAutoscalingPolicy(),
+ deploymentPolicyName, tenantId,
+ lbCartridgeInfo,
+ tenantRange);
+ lbService.deploy();
}
}
}
@@ -210,19 +211,21 @@ public class ServiceDeploymentManager {
if (!AutoscalerServiceClient.getServiceClient().checkServiceLBExistenceAgainstPolicy(type,
deploymentPolicyName)) {
- // if lb cluster doesn't exist
- String lbAlias =
- "lb" + type +
- new Random().nextInt();
lbCartridgeInfo.addProperties(property);
- subscribeToLb(lbCartridgeType,
+ /*subscribeToLb(lbCartridgeType,
lbAlias,
lbCartridgeInfo.getDefaultAutoscalingPolicy(),
deploymentPolicyName,
tenantId,
userName,
tenantDomain,
- lbCartridgeInfo.getProperties());
+ lbCartridgeInfo.getProperties());*/
+ lbService = new MultiTenantLBService(lbCartridgeType,
+ lbCartridgeInfo.getDefaultAutoscalingPolicy(),
+ deploymentPolicyName, tenantId,
+ lbCartridgeInfo,
+ tenantRange);
+ lbService.deploy();
}
}
}
@@ -240,13 +243,13 @@ public class ServiceDeploymentManager {
}
}
}
-
-
-
+
+
+
Service service = new MultiTenantService(type, autoscalingPolicyName, deploymentPolicyName, tenantId, cartridgeInfo, tenantRange);
- //generate the cluster ID (domain)for the service
+ /*//generate the cluster ID (domain)for the service
service.setClusterId(type + "." + cartridgeInfo.getHostName() + ".domain");
//host name is the hostname defined in cartridge definition
service.setHostName(cartridgeInfo.getHostName());
@@ -274,7 +277,7 @@ public class ServiceDeploymentManager {
}
//set PayloadData instance
- service.setPayloadData(payloadData);
+ service.setPayloadData(payloadData);*/
//deploy the service
service.deploy();
@@ -301,7 +304,7 @@ public class ServiceDeploymentManager {
}
- private void subscribeToLb(String cartridgeType, String lbAlias,
+ /*private void subscribeToLb(String cartridgeType, String lbAlias,
String defaultAutoscalingPolicy, String deploymentPolicy,
int tenantId, String userName, String tenantDomain, Property[] props) throws ADCException {
@@ -326,5 +329,5 @@ public class ServiceDeploymentManager {
log.error(msg, e);
throw new ADCException(msg, e);
}
- }
+ }*/
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/192c8671/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/MultiTenantService.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/MultiTenantService.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/MultiTenantService.java
index 629f34a..65cbbb0 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/MultiTenantService.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/MultiTenantService.java
@@ -40,6 +40,8 @@ public class MultiTenantService extends Service {
@Override
public void deploy() throws ADCException, UnregisteredCartridgeException {
+ super.deploy();
+
//register the service
ApplicationManagementUtil.registerService(getType(), getClusterId(), CartridgeConstants.DEFAULT_SUBDOMAIN,
getPayloadData().getCompletePayloadData(), getTenantRange(), getHostName(), getAutoscalingPolicyName(),
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/192c8671/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/lb/MultiTenantLBService.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/lb/MultiTenantLBService.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/lb/MultiTenantLBService.java
new file mode 100644
index 0000000..34b140c
--- /dev/null
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/lb/MultiTenantLBService.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.manager.deploy.service.multitenant.lb;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
+import org.apache.stratos.manager.deploy.service.Service;
+import org.apache.stratos.manager.exception.ADCException;
+import org.apache.stratos.manager.exception.UnregisteredCartridgeException;
+import org.apache.stratos.manager.utils.ApplicationManagementUtil;
+import org.apache.stratos.manager.utils.CartridgeConstants;
+
+public class MultiTenantLBService extends Service {
+
+ private static Log log = LogFactory.getLog(MultiTenantLBService.class);
+
+ public MultiTenantLBService(String type, String autoscalingPolicyName, String deploymentPolicyName, int tenantId, CartridgeInfo cartridgeInfo, String tenantRange) {
+ super(type, autoscalingPolicyName, deploymentPolicyName, tenantId, cartridgeInfo, tenantRange);
+ }
+
+ @Override
+ public void deploy() throws ADCException, UnregisteredCartridgeException {
+
+ super.deploy();
+
+ //register the service
+ ApplicationManagementUtil.registerService(getType(), getClusterId(), CartridgeConstants.DEFAULT_SUBDOMAIN,
+ getPayloadData().getCompletePayloadData(), getTenantRange(), getHostName(), getAutoscalingPolicyName(),
+ getDeploymentPolicyName(), null);
+ }
+
+ @Override
+ public void undeploy(String clusterId) throws ADCException {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+}
[2/2] git commit: Merge branch 'lb_service_deployment'
Posted by is...@apache.org.
Merge branch 'lb_service_deployment'
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/4c027278
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/4c027278
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/4c027278
Branch: refs/heads/master
Commit: 4c027278ff3b800f4a8f30f505f7e4c48422ae13
Parents: 8a76a55 192c867
Author: Isuru <is...@wso2.com>
Authored: Fri Jan 10 11:31:58 2014 +0530
Committer: Isuru <is...@wso2.com>
Committed: Fri Jan 10 11:31:58 2014 +0530
----------------------------------------------------------------------
.../stratos/manager/deploy/service/Service.java | 37 ++++++++++-
.../service/ServiceDeploymentManager.java | 65 ++++++++++----------
.../service/multitenant/MultiTenantService.java | 2 +
.../multitenant/lb/MultiTenantLBService.java | 54 ++++++++++++++++
4 files changed, 126 insertions(+), 32 deletions(-)
----------------------------------------------------------------------