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
