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(-)
----------------------------------------------------------------------