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 <[email protected]>
Authored: Fri Jan 10 11:31:34 2014 +0530
Committer: Isuru <[email protected]>
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.
+    }
+}

Reply via email to