untill oct 16

Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/fff134d5
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/fff134d5
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/fff134d5

Branch: refs/heads/master
Commit: fff134d5370030ca304893b04effa33ca18003e8
Parents: 0c047de
Author: asankasa <[email protected]>
Authored: Thu Oct 16 11:51:52 2014 +0530
Committer: Imesh Gunaratne <[email protected]>
Committed: Thu Nov 13 10:56:28 2014 +0530

----------------------------------------------------------------------
 .../cloud/controller/iaases/CloudstackIaas.java | 51 +++++++++++++++-----
 .../util/CloudControllerConstants.java          |  1 +
 2 files changed, 40 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/fff134d5/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/CloudstackIaas.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/CloudstackIaas.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/CloudstackIaas.java
index ccf4701..926894f 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/CloudstackIaas.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/CloudstackIaas.java
@@ -26,6 +26,8 @@ import org.jclouds.compute.options.TemplateOptions;
 import org.jclouds.domain.Location;
 
 import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.TimeoutException;
 
@@ -157,7 +159,12 @@ public class CloudstackIaas extends Iaas{
                     
.tags(Arrays.asList(iaasInfo.getProperty(CloudControllerConstants.TAGS)
                             .split(CloudControllerConstants.ENTRY_SEPARATOR)));
         }
-        //todo add disk offering
+        //todo check whether this is working or not
+        if (iaasInfo.getProperty(CloudControllerConstants.DISK_OFFERING) != 
null) {
+            template.getOptions()
+                    .as(CloudStackTemplateOptions.class)
+                    
.diskOfferingId(iaasInfo.getProperty(CloudControllerConstants.DISK_OFFERING));
+        }
 
         // set Template
         iaasInfo.setTemplate(template);
@@ -165,7 +172,15 @@ public class CloudstackIaas extends Iaas{
 
     @Override
     public void setDynamicPayload() {
-        ///todo implement this method
+        System.out.println("=====================inside set setDynamicPayload 
method=================================");
+
+        IaasProvider iaasInfo = getIaasProvider();
+        if (iaasInfo.getTemplate() != null && iaasInfo.getPayload() != null) {
+        //todo check whether this is working or not
+         
iaasInfo.getTemplate().getOptions().as(CloudStackTemplateOptions.class)
+                 
.userMetadata(convertByteArrayToHashMap(iaasInfo.getPayload()));
+
+        }
     }
 
     @Override
@@ -183,16 +198,16 @@ public class CloudstackIaas extends Iaas{
     @Override
     public String associatePredefinedAddress(NodeMetadata node, String ip) {
 
-        System.out.println("======================This is the 
associatePredifinedAddress method=====================");
+        System.out.println("======================This is the 
associatePredefinedAddress method=====================");
         //todo implement this method
         return null;
     }
 
     @Override
     public void releaseAddress(String ip) {
-//todo test this method
+        //todo test this method
 
-        System.out.println("======================this is the release address 
method============");
+        System.out.println("======================this is the releaseAddress 
method============");
         IaasProvider iaasInfo = getIaasProvider();
 
         ComputeServiceContext context = 
iaasInfo.getComputeService().getContext();
@@ -211,12 +226,9 @@ public class CloudstackIaas extends Iaas{
     @Override
     public boolean isValidRegion(String region) throws InvalidRegionException {
 
-
-        //todo study more about this
-
         IaasProvider iaasInfo = getIaasProvider();
 
-        //no such a method in jclouds
+        //no such method in Jclouds cloudstack api
         String msg = "Invalid region: " + region +" in the iaas: " 
+iaasInfo.getType();
         log.error(msg);
         throw new InvalidRegionException(msg);
@@ -245,11 +257,9 @@ public class CloudstackIaas extends Iaas{
 
     @Override
     public boolean isValidHost(String zone, String host) throws 
InvalidHostException {
-        //todo study more about this
 
         IaasProvider iaasInfo = getIaasProvider();
-
-        // there's no such concept in cloudstack
+        // there's no such method in jclouds cloustack api
         String msg = "Invalid host: " + host +" in the zone: "+zone+ " and of 
the iaas: "+iaasInfo.getType();
         log.error(msg);
         throw new InvalidHostException(msg);
@@ -430,4 +440,21 @@ public class CloudstackIaas extends Iaas{
 
         return true;
     }
+
+    private Map<String,String> convertByteArrayToHashMap(byte[] byteArray){
+
+        Map<String, String> map = new HashMap<String, String>();
+
+        String stringFromByteArray =  new String(byteArray);
+        String[] keyValuePairs = stringFromByteArray.split(",");
+
+        for(String keyValuePair : keyValuePairs){
+            String[] keyValue = keyValuePair.split("=");
+            if(keyValue.length>1) {
+                map.put(keyValue[0], keyValue[1]);
+            }
+        }
+
+        return map;
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/fff134d5/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java
index 9063e1b..c72d0ba 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java
@@ -101,6 +101,7 @@ public final class CloudControllerConstants {
 
     public static final String USER_NAME = "userName";
     public static final String DOMAIN_ID = "domainId";
+    public static final String DISK_OFFERING = "diskOffering";
 
        /**
         * column names

Reply via email to