You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ra...@apache.org on 2015/08/14 15:07:56 UTC

[50/51] [abbrv] [partial] stratos git commit: Upgrading to jclouds 1.9.1

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/ec2/EC2Iaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/ec2/EC2Iaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/ec2/EC2Iaas.java
index 0ef92f4..ccd6d58 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/ec2/EC2Iaas.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/ec2/EC2Iaas.java
@@ -97,7 +97,7 @@ public class EC2Iaas extends JcloudsIaas {
                 if (location.getScope().toString().equalsIgnoreCase(CloudControllerConstants.ZONE_ELEMENT) &&
                         location.getId().equals(iaasInfo.getProperty(CloudControllerConstants.AVAILABILITY_ZONE))) {
                     templateBuilder.locationId(location.getId());
-                    log.info("ZONE has been set as " + iaasInfo.getProperty(CloudControllerConstants.AVAILABILITY_ZONE)
+                    log.info("zone has been set as " + iaasInfo.getProperty(CloudControllerConstants.AVAILABILITY_ZONE)
                             + " with id: " + location.getId());
                     break;
                 }
@@ -114,7 +114,7 @@ public class EC2Iaas extends JcloudsIaas {
 
         if (iaasInfo.getProperty(CloudControllerConstants.AVAILABILITY_ZONE) != null) {
             if (!template.getLocation().getId().equals(iaasInfo.getProperty(CloudControllerConstants.AVAILABILITY_ZONE))) {
-                log.warn("couldn't find assignable ZONE of id :" +
+                log.warn("couldn't find assignable zone of id :" +
                         iaasInfo.getProperty(CloudControllerConstants.AVAILABILITY_ZONE) + " in the IaaS. " +
                         "Hence using the default location as " + template.getLocation().getScope().toString() +
                         " with the id " + template.getLocation().getId());
@@ -374,7 +374,7 @@ public class EC2Iaas extends JcloudsIaas {
 
         if (region == null || iaasInfo == null) {
             String msg =
-                    "Region or IaaSProvider is null: region: " + region + " - IaaSProvider: " +
+                    "Region or IaaSProvider is null. [region] " + region + ", [IaaSProvider] " +
                             iaasInfo;
             log.error(msg);
             throw new InvalidRegionException(msg);
@@ -402,7 +402,7 @@ public class EC2Iaas extends JcloudsIaas {
 
         if (zone == null || iaasInfo == null) {
             String msg =
-                    "Zone or IaaSProvider is null: zone: " + zone + " - IaaSProvider: " +
+                    "Zone or IaaSProvider is null. [zone] " + zone + ", [IaaSProvider] " +
                             iaasInfo;
             log.error(msg);
             throw new InvalidZoneException(msg);

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/ec2/EC2PartitionValidator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/ec2/EC2PartitionValidator.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/ec2/EC2PartitionValidator.java
index 03f57df..8fbeabc 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/ec2/EC2PartitionValidator.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/ec2/EC2PartitionValidator.java
@@ -28,7 +28,7 @@ import org.apache.stratos.cloud.controller.iaases.Iaas;
 import org.apache.stratos.cloud.controller.iaases.PartitionValidator;
 import org.apache.stratos.cloud.controller.services.impl.CloudControllerServiceUtil;
 import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
-import org.apache.stratos.messaging.domain.topology.Scope;
+import org.apache.stratos.cloud.controller.util.Scope;
 
 import java.util.Properties;
 
@@ -46,13 +46,13 @@ public class EC2PartitionValidator implements PartitionValidator {
     public IaasProvider validate(Partition partition, Properties properties) throws InvalidPartitionException {
         // validate the existence of the region and zone properties.
         try {
-            if (properties.containsKey(Scope.region.toString())) {
-                String region = properties.getProperty(Scope.region.toString());
+            if (properties.containsKey(Scope.REGION.toString())) {
+                String region = properties.getProperty(Scope.REGION.toString());
 
                 if (iaasProvider.getImage() != null && !iaasProvider.getImage().contains(region)) {
 
-                    String message = "Invalid partition detected, invalid region: [partition-id] " + partition.getId() +
-                            " [region] " + region;
+                    String message = "Invalid partition detected, invalid region. [partition-id] " + partition.getId() +
+                            ", [region] " + region;
                     log.error(message);
                     throw new InvalidPartitionException(message);
                 }
@@ -63,8 +63,8 @@ public class EC2PartitionValidator implements PartitionValidator {
                 Iaas updatedIaas = CloudControllerServiceUtil.buildIaas(updatedIaasProvider);
                 updatedIaas.setIaasProvider(updatedIaasProvider);
 
-                if (properties.containsKey(Scope.zone.toString())) {
-                    String zone = properties.getProperty(Scope.zone.toString());
+                if (properties.containsKey(Scope.ZONE.toString())) {
+                    String zone = properties.getProperty(Scope.ZONE.toString());
                     iaas.isValidZone(region, zone);
                     updatedIaasProvider.setProperty(CloudControllerConstants.AVAILABILITY_ZONE, zone);
                     updatedIaas = CloudControllerServiceUtil.buildIaas(updatedIaasProvider);
@@ -80,7 +80,6 @@ public class EC2PartitionValidator implements PartitionValidator {
             }
         } catch (Exception ex) {
             String message = "Invalid partition detected: [partition-id] " + partition.getId();
-            log.error(message, ex);
             throw new InvalidPartitionException(message, ex);
         }
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/gce/GCEIaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/gce/GCEIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/gce/GCEIaas.java
index 975fe0c..141e266 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/gce/GCEIaas.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/gce/GCEIaas.java
@@ -37,23 +37,23 @@ import org.apache.stratos.cloud.controller.iaases.PartitionValidator;
 import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
 import org.apache.stratos.cloud.controller.util.ComputeServiceBuilderUtil;
 import org.jclouds.ContextBuilder;
-import org.jclouds.collect.IterableWithMarker;
 import org.jclouds.compute.ComputeService;
 import org.jclouds.compute.ComputeServiceContext;
 import org.jclouds.compute.domain.NodeMetadata;
 import org.jclouds.compute.domain.Template;
 import org.jclouds.compute.domain.TemplateBuilder;
-import org.jclouds.compute.options.TemplateOptions;
 import org.jclouds.domain.Location;
 import org.jclouds.googlecomputeengine.GoogleComputeEngineApi;
-import org.jclouds.googlecomputeengine.domain.*;
+import org.jclouds.googlecomputeengine.compute.options.GoogleComputeEngineTemplateOptions;
+import org.jclouds.googlecomputeengine.domain.AttachDisk;
+import org.jclouds.googlecomputeengine.domain.Disk;
+import org.jclouds.googlecomputeengine.domain.Instance;
+import org.jclouds.googlecomputeengine.domain.Operation;
 import org.jclouds.googlecomputeengine.features.DiskApi;
 import org.jclouds.googlecomputeengine.features.InstanceApi;
-import org.jclouds.googlecomputeengine.features.RegionApi;
-import org.jclouds.googlecomputeengine.features.ZoneApi;
-import org.jclouds.googlecomputeengine.options.AttachDiskOptions;
-import org.jclouds.googlecomputeengine.options.AttachDiskOptions.DiskType;
+import org.jclouds.googlecomputeengine.options.DiskCreationOptions;
 
+import java.net.URI;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicReference;
 
@@ -61,11 +61,8 @@ import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.jclouds.util.Predicates2.retry;
 
 public class GCEIaas extends JcloudsIaas {
-
-
     private static final Log log = LogFactory.getLog(GCEIaas.class);
-
-    private static final String PROJECTNAME = "projectName";
+    public static final int MAX_WAIT_TIME = 60; // seconds
 
     public GCEIaas(IaasProvider iaasProvider) {
         super(iaasProvider);
@@ -91,10 +88,10 @@ public class GCEIaas extends JcloudsIaas {
             throw new CloudControllerException(msg);
         }
 
-        log.info("gce buildTemplate");
-
-        TemplateBuilder templateBuilder = iaasInfo.getComputeService()
-                .templateBuilder();
+        if (log.isDebugEnabled()) {
+            log.debug("Building template for Google Compute Engine IaaS");
+        }
+        TemplateBuilder templateBuilder = iaasInfo.getComputeService().templateBuilder();
 
         // set image id specified
         templateBuilder.imageId(iaasInfo.getImage());
@@ -106,7 +103,7 @@ public class GCEIaas extends JcloudsIaas {
                 if (location.getScope().toString().equalsIgnoreCase(CloudControllerConstants.ZONE_ELEMENT) &&
                         location.getId().equals(zone)) {
                     templateBuilder.locationId(location.getId());
-                    log.info("ZONE has been set as " + zone
+                    log.info("zone has been set as " + zone
                             + " with id: " + location.getId());
                     break;
                 }
@@ -117,14 +114,14 @@ public class GCEIaas extends JcloudsIaas {
             // set instance type eg: m1.large
             templateBuilder.hardwareId(iaasInfo.getProperty(CloudControllerConstants.INSTANCE_TYPE));
         }
-
         // build the Template
         Template template = templateBuilder.build();
 
         if (zone != null) {
             if (!template.getLocation().getId().equals(zone)) {
-                log.warn("couldn't find assignable ZONE of id :" + zone +
-                        " in the IaaS. Hence using the default location as " + template.getLocation().getScope().toString() +
+                log.warn("couldn't find assignable zone of id :" + zone +
+                        " in the IaaS. Hence using the default location as " +
+                        template.getLocation().getScope().toString() +
                         " with the id " + template.getLocation().getId());
             }
         }
@@ -134,15 +131,11 @@ public class GCEIaas extends JcloudsIaas {
         // wish to assign IPs manually, it can be non-blocking.
         // is auto-assign-ip mode or manual-assign-ip mode? - default mode is
         // non-blocking
-        boolean blockUntilRunning = Boolean.parseBoolean(iaasInfo
-                .getProperty("autoAssignIp"));
-        template.getOptions().as(TemplateOptions.class)
-                .blockUntilRunning(blockUntilRunning);
+        boolean blockUntilRunning = Boolean.parseBoolean(iaasInfo.getProperty("autoAssignIp"));
+        template.getOptions().as(GoogleComputeEngineTemplateOptions.class).blockUntilRunning(blockUntilRunning);
 
-        // this is required in order to avoid creation of additional security
-        // groups by Jclouds.
-        template.getOptions().as(TemplateOptions.class)
-                .inboundPorts(22, 80, 8080, 443, 8243);
+        // this is required in order to avoid creation of additional security groups by Jclouds.
+        template.getOptions().as(GoogleComputeEngineTemplateOptions.class).inboundPorts(22, 80, 8080, 443, 8243);
 
         if (zone != null) {
             templateBuilder.locationId(zone);
@@ -154,8 +147,9 @@ public class GCEIaas extends JcloudsIaas {
 
         for (String propertyKey : iaasInfo.getProperties().keySet()) {
             if (propertyKey.startsWith(CloudControllerConstants.TAGS_AS_KEY_VALUE_PAIRS_PREFIX)) {
-                keyValuePairTagsMap.put(propertyKey.substring(CloudControllerConstants.TAGS_AS_KEY_VALUE_PAIRS_PREFIX.length()),
-                        iaasInfo.getProperties().get(propertyKey));
+                keyValuePairTagsMap
+                        .put(propertyKey.substring(CloudControllerConstants.TAGS_AS_KEY_VALUE_PAIRS_PREFIX.length()),
+                                iaasInfo.getProperties().get(propertyKey));
                 template.getOptions()
                         .userMetadata(keyValuePairTagsMap);
             }
@@ -168,7 +162,7 @@ public class GCEIaas extends JcloudsIaas {
                 networks.add(ni.getNetworkUuid());
                 log.info("using network interface " + ni.getNetworkUuid());
             }
-            template.getOptions().as(TemplateOptions.class).networks(networks);
+            template.getOptions().as(GoogleComputeEngineTemplateOptions.class).networks(networks);
             log.info("using network interface " + networks);
         }
 
@@ -226,25 +220,15 @@ public class GCEIaas extends JcloudsIaas {
     @Override
     public boolean isValidRegion(String region) throws InvalidRegionException {
         IaasProvider iaasInfo = getIaasProvider();
-
         if (region == null || iaasInfo == null) {
             String msg = "Region or IaaSProvider is null: region: " + region + " - IaaSProvider: " + iaasInfo;
             log.error(msg);
             throw new InvalidRegionException(msg);
         }
-
         GoogleComputeEngineApi api = getGCEApi();
-        RegionApi regionApi = api.getRegionApiForProject(iaasInfo.getProperty(PROJECTNAME));
-
-        for (IterableWithMarker<Region> page : regionApi.list()) {
-            for (Region r : page) {
-                if (region.equalsIgnoreCase(r.getName())) {
-                    log.debug("Found a matching region: " + region);
-                    return true;
-                }
-            }
+        if (api.regions().get(region) != null) {
+            return true;
         }
-
         String msg = "Invalid region: " + region + " in the iaas: " + iaasInfo.getType();
         log.error(msg);
         throw new InvalidRegionException(msg);
@@ -255,24 +239,16 @@ public class GCEIaas extends JcloudsIaas {
         IaasProvider iaasInfo = getIaasProvider();
 
         if (zone == null || iaasInfo == null) {
-            String msg = "Zone or IaaSProvider is null: region: " + region +
-                    " zone: " + zone + " - IaaSProvider: " + iaasInfo;
+            String msg = "Zone or IaaSProvider is null. [region] " + region + ", [zone] " + zone + ", [IaaSProvider] "
+                    + iaasInfo;
             log.error(msg);
             throw new InvalidZoneException(msg);
         }
 
         GoogleComputeEngineApi api = getGCEApi();
-        ZoneApi zoneApi = api.getZoneApiForProject(iaasInfo.getProperty(PROJECTNAME));
-
-        for (IterableWithMarker<Zone> page : zoneApi.list()) {
-            for (Zone z : page) {
-                if (zone.equalsIgnoreCase(z.getName())) {
-                    log.debug("Found a matching zone: " + zone);
-                    return true;
-                }
-            }
+        if (api.zones().get(zone) != null) {
+            return true;
         }
-
         String msg = "Invalid zone: " + zone + " in the region: " + region + " and of the iaas: " + iaasInfo.getType();
         log.error(msg);
         throw new InvalidZoneException(msg);
@@ -302,19 +278,23 @@ public class GCEIaas extends JcloudsIaas {
         String diskName = "stratos-disk-" + rand.nextInt(100000);
         DiskApi diskApi = getGCEDiskApi();
         String zone = getZone();
-
-        log.debug("Creating volume: " + diskName + " in zone: " + zone + " of size: " + sizeGB);
-
-        Operation oper = diskApi.createInZone(diskName, sizeGB, zone);
-
-        oper = waitGCEOperationDone(oper);
-        if (oper.getStatus() != Operation.Status.DONE) {
-            log.error("Failed to create volume: " + diskName + " of size: " + sizeGB +
-                    " in zone: " + zone + " operation: " + oper);
-            return null;
+        log.info("Creating volume: " + diskName + " in zone: " + zone + " of size: " + sizeGB);
+        try {
+            DiskCreationOptions diskCreationOptions = new DiskCreationOptions.Builder().sizeGb(sizeGB).sourceSnapshot
+                    (new URI(snapshotId)).build();
+            Operation oper = diskApi.create(diskName, diskCreationOptions);
+            oper = waitGCEOperationDone(oper);
+            if (!oper.status().equals(Operation.Status.DONE)) {
+                log.error("Failed to create volume: " + diskName + " of size: " + sizeGB +
+                        " in zone: " + zone + " operation: " + oper);
+                return null;
+            }
+            return diskName;
         }
-
-        return diskName;
+        catch (Exception e) {
+            log.error("Error creating volume", e);
+        }
+        return null;
     }
 
     @Override
@@ -323,64 +303,55 @@ public class GCEIaas extends JcloudsIaas {
         InstanceApi instApi = getGCEInstanceApi();
         String zone = getZone();
 
-        log.debug("Trying to attach volume: " + volumeId + " to instance: " + instanceId +
+        log.info("Trying to attach volume: " + volumeId + " to instance: " + instanceId +
                 " in zone: " + zone + " at devicename: " + deviceName);
 
-        Disk disk = diskApi.getInZone(zone, volumeId);
+        Disk disk = diskApi.get(volumeId);
         if (disk == null) {
             log.error("Failed to get volume: " + volumeId + " in zone: " + zone);
             return null;
         }
-
         log.debug("Found volumeId: " + volumeId + " volume: " + disk);
-
-        Operation oper = instApi.attachDiskInZone(zone, instanceId,
-                new AttachDiskOptions().type(DiskType.PERSISTENT)
-                        .source(disk.getSelfLink())
-                        .mode(AttachDiskOptions.DiskMode.READ_WRITE)
-                        .deviceName(deviceName));
-        oper = waitGCEOperationDone(oper);
-        if (oper.getStatus() != Operation.Status.DONE) {
-            log.error("Failed to attach volume: " + volumeId + " to instance: " + instanceId +
-                    " in zone: " + zone + " at device: " + deviceName + " operation: " + oper);
-            return null;
+        try {
+            Operation oper =
+                    instApi.attachDisk(instanceId, AttachDisk.create(AttachDisk.Type.PERSISTENT, AttachDisk.Mode
+                            .READ_WRITE, disk.selfLink(), deviceName, true, null, false, null, null));
+            oper = waitGCEOperationDone(oper);
+            if (!oper.status().equals(Operation.Status.DONE)) {
+                log.error("Failed to attach volume: " + volumeId + " to instance: " + instanceId +
+                        " in zone: " + zone + " at device: " + deviceName + " operation: " + oper);
+                return null;
+            }
+            return volumeId;
         }
-
-        return volumeId;
+        catch (Exception e) {
+            log.error("Error attaching volume", e);
+        }
+        return null;
     }
 
     @Override
     public void detachVolume(String instanceId, String volumeId) {
         InstanceApi instApi = getGCEInstanceApi();
         String zone = getZone();
-        Instance inst = instApi.getInZone(zone, instanceId);
-
-        log.debug("Trying to detach volume: " + volumeId + " from instance: " + instanceId +
-                " " + inst + " in zone: " + zone);
-
+        Instance inst = instApi.get(instanceId);
+        log.info("Trying to detach volume: " + volumeId + " from instance: " + instanceId + " in zone: " + zone);
         if (inst == null) {
             log.error("Failed to find instance: " + instanceId + " in zone: " + zone);
             return;
         }
-
-        for (Instance.AttachedDisk disk : inst.getDisks()) {
-            Instance.PersistentAttachedDisk persistentDisk = (Instance.PersistentAttachedDisk) disk;
-
-            log.debug("Found disk - src: " + persistentDisk.getSourceDiskName() +
-                    " devicename: " + persistentDisk.getDeviceName());
-
-            if (persistentDisk.getSourceDiskName().equals(volumeId)) {
-                Operation oper = instApi.detachDiskInZone(zone, instanceId, persistentDisk.getDeviceName().get());
+        for (Instance.AttachedDisk disk : inst.disks()) {
+            if (disk.deviceName().equals(volumeId)) {
+                log.info("Found disk to be detached. Source: " + disk.source() + " devicename: " + disk.deviceName());
+                Operation oper = instApi.detachDisk(instanceId, disk.deviceName());
                 oper = waitGCEOperationDone(oper);
-                if (oper.getStatus() != Operation.Status.DONE) {
+                if (!oper.status().equals(Operation.Status.DONE)) {
                     log.error("Failed to detach volume: " + volumeId + " to instance: " + instanceId +
-                            " in zone: " + zone + " at device: " + persistentDisk.getDeviceName() +
-                            " result operation: " + oper);
+                            " in zone: " + zone + " at device: " + disk.deviceName() + " result operation: " + oper);
                 }
                 return;
             }
         }
-
         log.error("Cannot find volume: " + volumeId + " in instance: " + instanceId);
     }
 
@@ -388,13 +359,11 @@ public class GCEIaas extends JcloudsIaas {
     public void deleteVolume(String volumeId) {
         DiskApi diskApi = getGCEDiskApi();
         String zone = getZone();
-
-        log.debug("Deleting volume: " + volumeId + " in zone: " + zone);
-
-        Operation oper = diskApi.deleteInZone(zone, volumeId);
+        log.info("Deleting volume: " + volumeId + " in zone: " + zone);
+        Operation oper = diskApi.delete(volumeId);
 
         oper = waitGCEOperationDone(oper);
-        if (oper.getStatus() != Operation.Status.DONE) {
+        if (!oper.status().equals(Operation.Status.DONE)) {
             log.error("Failed to delete volume: " + volumeId + " in zone: " + zone +
                     " operation: " + oper);
         }
@@ -419,19 +388,14 @@ public class GCEIaas extends JcloudsIaas {
     }
 
     private DiskApi getGCEDiskApi() {
-        IaasProvider iaasInfo = getIaasProvider();
-        String projectName = iaasInfo.getProperty(PROJECTNAME);
-        return getGCEApi().getDiskApiForProject(projectName);
+        return getGCEApi().disksInZone(getZone());
     }
 
     private InstanceApi getGCEInstanceApi() {
-        IaasProvider iaasInfo = getIaasProvider();
-        String projectName = iaasInfo.getProperty(PROJECTNAME);
-        return getGCEApi().getInstanceApiForProject(projectName);
+        return getGCEApi().instancesInZone(getZone());
     }
 
     private Operation waitGCEOperationDone(Operation operation) {
-        int maxWaitTime = 15; // 15 seconds
         IaasProvider iaasInfo = getIaasProvider();
         Injector injector = ContextBuilder.newBuilder(iaasInfo.getProvider())
                 .credentials(iaasInfo.getIdentity(), iaasInfo.getCredential())
@@ -440,9 +404,8 @@ public class GCEIaas extends JcloudsIaas {
                 injector.getInstance(Key.get(new TypeLiteral<Predicate<AtomicReference<Operation>>>() {
                 }, Names.named("zone")));
         AtomicReference<Operation> operationReference = Atomics.newReference(operation);
-        retry(zoneOperationDonePredicate, maxWaitTime, 1, SECONDS).apply(operationReference);
+        retry(zoneOperationDonePredicate, MAX_WAIT_TIME, 1, SECONDS).apply(operationReference);
 
         return operationReference.get();
     }
-}
-
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/gce/GCEPartitionValidator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/gce/GCEPartitionValidator.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/gce/GCEPartitionValidator.java
index 71d7aa3..2b0db62 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/gce/GCEPartitionValidator.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/gce/GCEPartitionValidator.java
@@ -22,9 +22,13 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.cloud.controller.domain.IaasProvider;
 import org.apache.stratos.cloud.controller.domain.Partition;
+import org.apache.stratos.cloud.controller.exception.InvalidIaasProviderException;
 import org.apache.stratos.cloud.controller.exception.InvalidPartitionException;
+import org.apache.stratos.cloud.controller.iaases.Iaas;
 import org.apache.stratos.cloud.controller.iaases.PartitionValidator;
-import org.apache.stratos.cloud.controller.iaases.vcloud.VCloudPartitionValidator;
+import org.apache.stratos.cloud.controller.services.impl.CloudControllerServiceUtil;
+import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
+import org.apache.stratos.cloud.controller.util.Scope;
 
 import java.util.Properties;
 
@@ -34,17 +38,75 @@ import java.util.Properties;
  */
 public class GCEPartitionValidator implements PartitionValidator {
 
-    private static final Log log = LogFactory.getLog(VCloudPartitionValidator.class);
-
+    private static final Log log = LogFactory.getLog(GCEPartitionValidator.class);
     private IaasProvider iaasProvider;
+    private Iaas iaas;
 
     @Override
     public IaasProvider validate(Partition partition, Properties properties) throws InvalidPartitionException {
-        return iaasProvider;
+        try {
+            if (properties.containsKey(Scope.REGION.toString())) {
+                String region = properties.getProperty(Scope.REGION.toString());
+
+                if (iaasProvider.getImage() != null && !iaasProvider.getImage().contains(region)) {
+
+                    String message = "Invalid partition detected, invalid region. [partition-id] " + partition.getId() +
+                            ", [region] " + region;
+                    log.error(message);
+                    throw new InvalidPartitionException(message);
+                }
+
+                iaas.isValidRegion(region);
+
+                IaasProvider updatedIaasProvider = new IaasProvider(iaasProvider);
+                Iaas updatedIaas = CloudControllerServiceUtil.buildIaas(updatedIaasProvider);
+                updatedIaas.setIaasProvider(updatedIaasProvider);
+
+                if (properties.containsKey(Scope.ZONE.toString())) {
+                    String zone = properties.getProperty(Scope.ZONE.toString());
+                    iaas.isValidZone(region, zone);
+                    updatedIaasProvider.setProperty(CloudControllerConstants.AVAILABILITY_ZONE, zone);
+                    updatedIaas = CloudControllerServiceUtil.buildIaas(updatedIaasProvider);
+                    updatedIaas.setIaasProvider(updatedIaasProvider);
+                }
+
+                updateOtherProperties(updatedIaasProvider, properties);
+                return updatedIaasProvider;
+            } else {
+                return iaasProvider;
+            }
+        }
+        catch (Exception ex) {
+            String message = "Invalid partition detected: [partition-id] " + partition.getId();
+            throw new InvalidPartitionException(message, ex);
+        }
+    }
+
+    private void updateOtherProperties(IaasProvider updatedIaasProvider, Properties properties) {
+        Iaas updatedIaas;
+        try {
+            updatedIaas = CloudControllerServiceUtil.buildIaas(updatedIaasProvider);
+
+            for (Object property : properties.keySet()) {
+                if (property instanceof String) {
+                    String key = (String) property;
+                    updatedIaasProvider.setProperty(key, properties.getProperty(key));
+                    if (log.isDebugEnabled()) {
+                        log.debug("Added property " + key + " to the IaasProvider.");
+                    }
+                }
+            }
+            updatedIaas = CloudControllerServiceUtil.buildIaas(updatedIaasProvider);
+            updatedIaas.setIaasProvider(updatedIaasProvider);
+        }
+        catch (InvalidIaasProviderException ignore) {
+        }
+
     }
 
     @Override
     public void setIaasProvider(IaasProvider iaasProvider) {
         this.iaasProvider = iaasProvider;
+        this.iaas = iaasProvider.getIaas();
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/openstack/OpenstackIaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/openstack/OpenstackIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/openstack/OpenstackIaas.java
index bcd10b1..9b0e21f 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/openstack/OpenstackIaas.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/openstack/OpenstackIaas.java
@@ -266,8 +266,8 @@ public class OpenstackIaas extends JcloudsIaas {
 
         // jclouds availability zone = stratos zone
         if (region == null || zone == null || iaasInfo == null) {
-            String msg = "Host or Zone or IaaSProvider is null: region: " + region + " - zone: " +
-                    zone + " - IaaSProvider: " + iaasInfo;
+            String msg = "Host or Zone or IaaSProvider is null. [region] " + region + ", [zone] " +
+                    zone + ", [IaaSProvider] " + iaasInfo;
             log.error(msg);
             throw new InvalidZoneException(msg);
         }
@@ -295,7 +295,8 @@ public class OpenstackIaas extends JcloudsIaas {
         IaasProvider iaasInfo = getIaasProvider();
 
         if (host == null || zone == null || iaasInfo == null) {
-            String msg = String.format("Host or Zone or IaaSProvider is null: host: %s - zone: %s - IaaSProvider: %s", host, zone, iaasInfo);
+            String msg = String.format("Host or Zone or IaaSProvider is null. [host] %s, [zone] %s, [IaaSProvider] %s",
+                    host, zone, iaasInfo);
             log.error(msg);
             throw new InvalidHostException(msg);
         }
@@ -313,7 +314,8 @@ public class OpenstackIaas extends JcloudsIaas {
             }
         }
 
-        String msg = String.format("Invalid host: %s in the zone: %s and of the iaas: %s", host, zone, iaasInfo.getType());
+        String msg = String.format("Invalid host: %s in the zone: %s and of the iaas: %s", host, zone, iaasInfo.getType
+                ());
         log.error(msg);
         throw new InvalidHostException(msg);
     }
@@ -357,7 +359,8 @@ public class OpenstackIaas extends JcloudsIaas {
         }
 
         if (volume == null) {
-            log.fatal(String.format("Volume creation was unsuccessful. [region] : %s [zone] : %s of Iaas : %s", region, zone, iaasInfo));
+            log.fatal(String.format("Volume creation was unsuccessful. [region] %s, [zone] %s, [Iaas] %s", region,
+                    zone, iaasInfo));
             return null;
         }
 
@@ -378,7 +381,8 @@ public class OpenstackIaas extends JcloudsIaas {
             return volumeId;
         }
         */
-        log.info(String.format("Successfully created a new volume [id]: %s in [region] : %s [zone] : %s of Iaas : %s [Volume ID]%s", volume.getId(), region, zone, iaasInfo, volume.getId()));
+        log.info(String.format("Successfully created a new volume [id]: %s in [region] : %s [zone] : %s of Iaas : %s " +
+                "[Volume ID]%s", volume.getId(), region, zone, iaasInfo, volume.getId()));
         return volumeId;
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/openstack/OpenstackPartitionValidator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/openstack/OpenstackPartitionValidator.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/openstack/OpenstackPartitionValidator.java
index 24f8e01..6a77421 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/openstack/OpenstackPartitionValidator.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/openstack/OpenstackPartitionValidator.java
@@ -28,7 +28,7 @@ import org.apache.stratos.cloud.controller.iaases.Iaas;
 import org.apache.stratos.cloud.controller.iaases.PartitionValidator;
 import org.apache.stratos.cloud.controller.services.impl.CloudControllerServiceUtil;
 import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
-import org.apache.stratos.messaging.domain.topology.Scope;
+import org.apache.stratos.cloud.controller.util.Scope;
 
 import java.util.Properties;
 
@@ -47,13 +47,13 @@ public class OpenstackPartitionValidator implements PartitionValidator {
     public IaasProvider validate(Partition partition, Properties properties) throws InvalidPartitionException {
         try {
             // validate the existence of the zone and hosts properties.
-            if (properties.containsKey(Scope.region.toString())) {
-                String region = properties.getProperty(Scope.region.toString());
+            if (properties.containsKey(Scope.REGION.toString())) {
+                String region = properties.getProperty(Scope.REGION.toString());
 
                 if (iaasProvider.getImage() != null && !iaasProvider.getImage().contains(region)) {
 
-                    String msg = "Invalid partition detected, invalid region: [partition-id] " + partition.getId() +
-                            " [region] " + region;
+                    String msg = "Invalid partition detected, invalid region. [partition-id] " + partition.getId() +
+                            ", [region] " + region;
                     log.error(msg);
                     throw new InvalidPartitionException(msg);
                 }
@@ -64,8 +64,8 @@ public class OpenstackPartitionValidator implements PartitionValidator {
                 Iaas updatedIaas = CloudControllerServiceUtil.buildIaas(updatedIaasProvider);
                 updatedIaas.setIaasProvider(updatedIaasProvider);
 
-                if (properties.containsKey(Scope.zone.toString())) {
-                    String zone = properties.getProperty(Scope.zone.toString());
+                if (properties.containsKey(Scope.ZONE.toString())) {
+                    String zone = properties.getProperty(Scope.ZONE.toString());
                     iaas.isValidZone(region, zone);
 
                     updatedIaasProvider.setProperty(CloudControllerConstants.AVAILABILITY_ZONE, zone);

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/openstack/networking/NeutronNetworkingApi.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/openstack/networking/NeutronNetworkingApi.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/openstack/networking/NeutronNetworkingApi.java
index 1a90386..2bf9130 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/openstack/networking/NeutronNetworkingApi.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/openstack/networking/NeutronNetworkingApi.java
@@ -526,11 +526,13 @@ public class NeutronNetworkingApi implements OpenstackNetworkingApi {
         }
 
         this.portApi = neutronApi.getPortApi(region);
-        String portApiNullOrEmptyErrorMessage = String.format("Unable to get port Api from neutron Api for region ", region);
+        String portApiNullOrEmptyErrorMessage = String.format("Unable to get port Api from neutron Api for region: %s",
+                region);
         assertNotNull(portApi, portApiNullOrEmptyErrorMessage);
 
         this.floatingIPApi = neutronApi.getFloatingIPApi(region).get();
-        String floatingIPApiNullOrEmptyErrorMessage = String.format("Unable to get floatingIP Api from neutron Api for region ", region);
+        String floatingIPApiNullOrEmptyErrorMessage = String.format("Unable to get floatingIP Api from neutron Api " +
+                "for region: %s", region);
         assertNotNull(floatingIPApi, floatingIPApiNullOrEmptyErrorMessage);
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/vcloud/VCloudIaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/vcloud/VCloudIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/vcloud/VCloudIaas.java
deleted file mode 100644
index d87e04d..0000000
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/vcloud/VCloudIaas.java
+++ /dev/null
@@ -1,392 +0,0 @@
-/*
- * 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.cloud.controller.iaases.vcloud;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.cloud.controller.domain.IaasProvider;
-import org.apache.stratos.cloud.controller.domain.NetworkInterface;
-import org.apache.stratos.cloud.controller.exception.CloudControllerException;
-import org.apache.stratos.cloud.controller.iaases.JcloudsIaas;
-import org.apache.stratos.cloud.controller.iaases.PartitionValidator;
-import org.apache.stratos.cloud.controller.util.ComputeServiceBuilderUtil;
-import org.jclouds.compute.ComputeService;
-import org.jclouds.compute.ComputeServiceContext;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.domain.Template;
-import org.jclouds.compute.domain.TemplateBuilder;
-import org.jclouds.compute.options.TemplateOptions;
-import org.jclouds.vcloud.VCloudApi;
-import org.jclouds.vcloud.compute.options.VCloudTemplateOptions;
-import org.jclouds.vcloud.domain.DiskAttachOrDetachParams;
-import org.jclouds.vcloud.domain.NetworkConnection;
-import org.jclouds.vcloud.domain.Task;
-import org.jclouds.vcloud.domain.Vm;
-import org.jclouds.vcloud.domain.network.IpAddressAllocationMode;
-import org.jclouds.vcloud.domain.network.OrgNetwork;
-import org.jclouds.vcloud.features.VAppApi;
-import org.jclouds.vcloud.features.VmApi;
-import org.wso2.carbon.utils.CarbonUtils;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.Hashtable;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-
-
-public class VCloudIaas extends JcloudsIaas {
-
-
-    private static final Log log = LogFactory.getLog(VCloudIaas.class);
-
-    private static final String SHELL_TYPE = "shellType";
-    private static final String SCRIPTS_PATH = "scripts";
-    private static final String CUSTOMIZATION_SCRIPT = "customization";
-    private static final String PAYLOAD = "PAYLOAD";
-
-    public VCloudIaas(IaasProvider iaasProvider) {
-        super(iaasProvider);
-    }
-
-    @Override
-    public void buildComputeServiceAndTemplate() {
-        // builds and sets Compute Service
-        ComputeService computeService = ComputeServiceBuilderUtil.buildDefaultComputeService(getIaasProvider());
-        getIaasProvider().setComputeService(computeService);
-
-        // builds and sets Template
-        buildTemplate();
-
-    }
-
-    public void buildTemplate() {
-        IaasProvider iaasInfo = getIaasProvider();
-
-        if (iaasInfo.getComputeService() == null) {
-            String msg = "Compute service is null for IaaS provider: "
-                    + iaasInfo.getName();
-            log.fatal(msg);
-            throw new CloudControllerException(msg);
-        }
-
-        //get 'native' version of jclouds' vCloud API.
-        ComputeServiceContext context = iaasInfo.getComputeService().getContext();
-        VCloudApi api = context.unwrapApi(VCloudApi.class);
-
-
-        TemplateBuilder templateBuilder = iaasInfo.getComputeService()
-                .templateBuilder();
-
-        // set image id specified
-        templateBuilder.imageId(iaasInfo.getImage());
-
-        // build the Template
-        Template template = templateBuilder.build();
-
-        // if you wish to auto assign IPs, instance spawning call should be
-        // blocking, but if you
-        // wish to assign IPs manually, it can be non-blocking.
-        // is auto-assign-ip mode or manual-assign-ip mode? - default mode is
-        // non-blocking
-        boolean blockUntilRunning = Boolean.parseBoolean(iaasInfo
-                .getProperty("autoAssignIp"));
-        template.getOptions().as(TemplateOptions.class)
-                .blockUntilRunning(blockUntilRunning);
-
-        // this is required in order to avoid creation of additional security
-        // groups by Jclouds.
-        template.getOptions().as(TemplateOptions.class)
-                .inboundPorts(22, 80, 8080, 443, 8243);
-
-        if (iaasInfo.getNetworkInterfaces() != null) {
-            Set<String> networksSet = new LinkedHashSet<String>(iaasInfo.getNetworkInterfaces().length);
-            Hashtable<String, NetworkConnection> vcloudNetworkOptions = new Hashtable<String, NetworkConnection>(iaasInfo.getNetworkInterfaces().length);
-
-            int i = 0;
-            for (NetworkInterface ni : iaasInfo.getNetworkInterfaces()) {
-
-                String networkUuid = ni.getNetworkUuid();
-                String networkName = null;
-                IpAddressAllocationMode ipAllocMode = IpAddressAllocationMode.NONE;
-                if (ni.getFixedIp() != null && !ni.getFixedIp().equals("")) {
-                    ipAllocMode = IpAddressAllocationMode.MANUAL;
-                } else {
-                    ipAllocMode = IpAddressAllocationMode.POOL;
-                }
-
-                //fetch network name.
-                try {
-                    OrgNetwork orgNet = api.getNetworkApi().getNetwork(new URI(networkUuid));
-                    networkName = orgNet.getName();
-                } catch (URISyntaxException e) {
-                    log.error("Network UUID '" + networkUuid + "' is not a URI/href.");
-                }
-                NetworkConnection nc = new NetworkConnection(networkName, i, ni.getFixedIp(), null, true,
-                        null, //TODO: support fixed Mac addrs.
-                        ipAllocMode);
-                networksSet.add(networkUuid);
-                vcloudNetworkOptions.put(networkUuid, nc);
-
-                i++;
-            }
-            //new NetworkConnectionSection()
-
-            //VmApi vmApi = api.getVmApi();
-            //vmApi.updateNetworkConnectionOfVm();
-
-            template.getOptions().networks(networksSet);
-            template.getOptions().as(VCloudTemplateOptions.class).networkConnections(vcloudNetworkOptions);
-        }
-
-        //template.getOptions().as(VCloudTemplateOptions.class)
-        //		.ipAddressAllocationMode(IpAddressAllocationMode.POOL);
-
-        // set Template
-        iaasInfo.setTemplate(template);
-    }
-
-    @Override
-    public void setDynamicPayload(byte[] payload) {
-        // in vCloud case we need to run a script
-        IaasProvider iaasProvider = getIaasProvider();
-
-        if (iaasProvider.getTemplate() == null || payload == null) {
-            if (log.isDebugEnabled()) {
-                log.debug("Payload for vCloud not found");
-            }
-            return;
-        }
-
-        String shellType = iaasProvider.getProperty(SHELL_TYPE);
-
-        if (shellType == null || shellType.isEmpty()) {
-            if (log.isDebugEnabled()) {
-                log.debug("Shell Type for vCloud Customization script not found from properties");
-            }
-            return;
-        }
-
-        if (log.isDebugEnabled()) {
-            log.debug(String.format("Shell Type '%s' will be used for vCloud Customization script", shellType));
-        }
-
-        // Payload is a String value
-        String payloadStr = new String(payload);
-
-        if (log.isDebugEnabled()) {
-            log.debug(String.format("Payload '%s' will be used for vCloud Customization script", payload));
-        }
-
-        Template template = iaasProvider.getTemplate();
-
-        File scriptPath = new File(CarbonUtils.getCarbonConfigDirPath(), SCRIPTS_PATH);
-
-        File customizationScriptFile = new File(new File(scriptPath, shellType), CUSTOMIZATION_SCRIPT);
-
-        if (!customizationScriptFile.exists()) {
-            if (log.isWarnEnabled()) {
-                log.warn(String.format("The vCloud Customization script '%s' does not exist",
-                        customizationScriptFile.getAbsolutePath()));
-            }
-            return;
-        }
-
-        String customizationScript = null;
-
-        try {
-            customizationScript = FileUtils.readFileToString(customizationScriptFile);
-        } catch (IOException e) {
-            if (log.isErrorEnabled()) {
-                log.error(
-                        String.format("Error reading the vCloud Customization script '%s'",
-                                customizationScriptFile.getAbsolutePath()), e);
-            }
-        }
-
-        if (StringUtils.isEmpty(customizationScript)) {
-            if (log.isDebugEnabled()) {
-                log.debug("No content vCloud Customization script not found from properties");
-            }
-            return;
-        }
-
-        // Set payload
-        customizationScript = customizationScript.replaceAll(PAYLOAD, payloadStr);
-
-        if (log.isDebugEnabled()) {
-            log.debug(String.format("The vCloud Customization script\n%s", customizationScript));
-        }
-
-        // Ensure the script is run.
-        if (customizationScript.length() >= 49000) {
-            log.warn("The vCloud customization script is >=49000 bytes in size; uploading dummy script and running real script via ssh.");
-            String dummyCustomizationScript = "#!/bin/sh\n"
-                    + "#STRATOS: the real customization script will be invoked via ssh, since it exceeds the 49000 byte limit "
-                    + "imposed by vCloud;\n"
-                    + "#see "
-                    + "http://pubs.vmware.com/vcd-55/topic/com.vmware.vcloud.api.doc_55/GUID-1BA3B7C5-B46C-48F7-8704-945BC47A940D.html\n";
-            template.getOptions().as(VCloudTemplateOptions.class).customizationScript(dummyCustomizationScript);
-            template.getOptions().runScript(customizationScript);
-        } else {
-            template.getOptions().as(VCloudTemplateOptions.class).customizationScript(customizationScript);
-        }
-
-        // Run the script
-        //template.getOptions().runScript(customizationScript);
-    }
-
-    @Override
-    public boolean createKeyPairFromPublicKey(String region, String keyPairName, String publicKey) {
-
-        // TODO
-        return false;
-    }
-
-    @Override
-    public List<String> associateAddresses(NodeMetadata node) {
-
-        // TODO
-        return null;
-
-    }
-
-    @Override
-    public String associatePredefinedAddress(NodeMetadata node, String ip) {
-        return "";
-    }
-
-    @Override
-    public void releaseAddress(String ip) {
-        // TODO
-    }
-
-    @Override
-    public boolean isValidRegion(String region) {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public boolean isValidZone(String region, String zone) {
-        // TODO Auto-generated method stub
-        return true;
-    }
-
-    @Override
-    public boolean isValidHost(String zone, String host) {
-        // TODO Auto-generated method stub
-        return true;
-    }
-
-    @Override
-    public PartitionValidator getPartitionValidator() {
-        return new VCloudPartitionValidator();
-    }
-
-    @Override
-    public String createVolume(int sizeGB, String snapshotId) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public String attachVolume(String instanceId, String volumeId, String deviceName) {
-        IaasProvider iaasInfo = getIaasProvider();
-
-        if (StringUtils.isEmpty(volumeId)) {
-            log.error("Volume provided to attach can not be null");
-        }
-
-        if (StringUtils.isEmpty(instanceId)) {
-            log.error("Instance provided to attach can not be null");
-        }
-
-        URI instanceIdHref = null;
-        URI volumeIdHref = null;
-        try {
-            //the instanceId format is a bit silly for vCloud.
-            instanceIdHref = new URI("https:/" + instanceId);
-        } catch (URISyntaxException e) {
-            log.error("Failed to attach volume, because the instance id cannot be converted into a url by concatenating "
-                    + "'https:/' with " + instanceId + ". Full stacktrace: " + e.toString());
-            return null;
-        }
-        try {
-            volumeIdHref = new URI(volumeId);
-        } catch (URISyntaxException e) {
-            log.error("Failed to attach voluume, because the volume id '" + volumeId + "' is not a valid href (URI))"
-                    + e.toString());
-        }
-
-        //get 'native' version of jclouds' vCloud API.
-        ComputeServiceContext context = iaasInfo.getComputeService()
-                .getContext();
-
-        VCloudApi api = context.unwrapApi(VCloudApi.class);
-
-        //Disks need to be attached to individual VMs, not vApps. The instanceId is the VApp.
-        VAppApi vAppApi = api.getVAppApi();
-        Set<Vm> vmsInVapp = vAppApi.getVApp(instanceIdHref).getChildren();
-        //Each vApp today has just 1 VM in it. Validate assumption.
-        assert (vmsInVapp.size() == 1);
-        Vm vm = vmsInVapp.iterator().next();
-        URI vmHref = vm.getHref();
-        VmApi vmApi = api.getVmApi();
-
-        // invest
-        /*
-        VCloudHardDisk.Builder hardDiskBuilder = new VCloudHardDisk.Builder();
-        VCloudHardDisk hardDisk = hardDiskBuilder.instanceID(volumeId).build();
-        VCloudVirtualHardwareSection vvhs = vm.getVirtualHardwareSection();
-        VCloudHardDisk.Builder Vchd = new VCloudHardDisk.Builder();
-        vvhs.toBuilder().item(Vchd.capacity(3).instanceID("hgfhgf").build()).build();
-        VApp va = vAppApi.getVApp(instanceIdHref);
-
-        */ //EO invest
-        DiskAttachOrDetachParams params = new DiskAttachOrDetachParams(volumeIdHref);
-        Task t = vmApi.attachDisk(vmHref, params);
-
-        log.info(String.format("Volume [id]: %s attachment for instance [id]: %s was successful [status]: Attaching. Iaas : %s, Task: %s", volumeId, instanceId, iaasInfo, t));
-        return "Attaching";
-    }
-
-    @Override
-    public void detachVolume(String instanceId, String volumeId) {
-        // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void deleteVolume(String volumeId) {
-        // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public String getIaasDevice(String device) {
-        return device;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/vcloud/VCloudPartitionValidator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/vcloud/VCloudPartitionValidator.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/vcloud/VCloudPartitionValidator.java
deleted file mode 100644
index 5a19741..0000000
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/vcloud/VCloudPartitionValidator.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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.cloud.controller.iaases.vcloud;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.cloud.controller.domain.IaasProvider;
-import org.apache.stratos.cloud.controller.domain.Partition;
-import org.apache.stratos.cloud.controller.exception.InvalidPartitionException;
-import org.apache.stratos.cloud.controller.iaases.Iaas;
-import org.apache.stratos.cloud.controller.iaases.PartitionValidator;
-
-import java.util.Properties;
-
-
-/**
- * The VCloud {@link org.apache.stratos.cloud.controller.iaases.PartitionValidator} implementation.
- */
-public class VCloudPartitionValidator implements PartitionValidator {
-
-    @SuppressWarnings("unused")
-    private static final Log log = LogFactory.getLog(VCloudPartitionValidator.class);
-    private IaasProvider iaasProvider;
-    @SuppressWarnings("unused")
-    private Iaas iaas;
-
-    @Override
-    public IaasProvider validate(Partition partition, Properties properties) throws InvalidPartitionException {
-        //TODO: implement real validation logic 
-        return iaasProvider;
-
-    }
-
-    @Override
-    public void setIaasProvider(IaasProvider iaas) {
-        this.iaasProvider = iaas;
-        this.iaas = iaas.getIaas();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/ComputeServiceBuilderUtil.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/ComputeServiceBuilderUtil.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/ComputeServiceBuilderUtil.java
index ee9d57b..19098cf 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/ComputeServiceBuilderUtil.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/ComputeServiceBuilderUtil.java
@@ -92,7 +92,7 @@ public class ComputeServiceBuilderUtil {
         // try to find region
         if ((region = iaas.getProperty(CloudControllerConstants.REGION_PROPERTY)) == null) {
             // if the property, isn't specified, try to obtain from the image id
-            // image id can be in following format - {region}/{UUID}
+            // image id can be in following format - {REGION}/{UUID}
             region = (iaas.getImage() != null) && (iaas.getImage().contains("/"))
                     ? iaas.getImage().split("/")[0] : null;
         }

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/Scope.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/Scope.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/Scope.java
new file mode 100644
index 0000000..984494e
--- /dev/null
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/Scope.java
@@ -0,0 +1,26 @@
+/*
+* 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.cloud.controller.util;
+
+/**
+ * represents the scope of each partition which can be configured in stratos.
+ */
+public enum Scope {
+    PROVIDER, REGION, ZONE, HOST
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-1.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-1.xml b/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-1.xml
index 2d31871..24445d8 100644
--- a/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-1.xml
+++ b/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-1.xml
@@ -33,7 +33,7 @@
         <deployment baseDir="xyz">
             <dir>abc</dir>
         </deployment>
-        <!-- A cartridge element should add a reference to an existing IaaS provider (specified
+        <!-- A cartridge element should add a reference to an existing IaaS PROVIDER (specified
              in the above &lt;iaasProviders&gt; section) or it can create a completely new IaaS
              Provider (which should have a unique "type" attribute. -->
         <iaasProvider type="openstack">

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-2.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-2.xml b/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-2.xml
index ac89e87..2d7386f 100644
--- a/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-2.xml
+++ b/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-2.xml
@@ -26,7 +26,7 @@
          specified under iaasProvider child elements of cartridge element. -->
     <property name="ss" value="slsls"/>
 
-    <!-- A cartridge element should add a reference to an existing IaaS provider (specified
+    <!-- A cartridge element should add a reference to an existing IaaS PROVIDER (specified
          in the above &lt;iaasProviders&gt; section) or it can create a completely new IaaS
          Provider (which should have a unique "type" attribute. -->
     <iaasProvider type="openstack">

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-4.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-4.xml b/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-4.xml
index 496e373..bc78906 100644
--- a/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-4.xml
+++ b/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-4.xml
@@ -28,7 +28,7 @@
         <!-- cartridge element can have 0..n properties, and they'll be overwritten by the properties
              specified under iaasProvider child elements of cartridge element. -->
         <property name="ss" value="slsls"/>
-        <!-- A cartridge element should add a reference to an existing IaaS provider (specified
+        <!-- A cartridge element should add a reference to an existing IaaS PROVIDER (specified
              in the above &lt;iaasProviders&gt; section) or it can create a completely new IaaS
              Provider (which should have a unique "type" attribute. -->
         <iaasProvider type="openstack">

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-5.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-5.xml b/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-5.xml
index 65dadaa..b4a3ee7 100644
--- a/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-5.xml
+++ b/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-5.xml
@@ -26,7 +26,7 @@
     <!-- You can have 1..n cartridge elements. -->
     <cartridge type="php">
 
-        <!-- A cartridge element should add a reference to an existing IaaS provider (specified
+        <!-- A cartridge element should add a reference to an existing IaaS PROVIDER (specified
              in the above &lt;iaasProviders&gt; section) or it can create a completely new IaaS
              Provider (which should have a unique "type" attribute. -->
         <iaasProvider type="openstack">

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-6.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-6.xml b/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-6.xml
index 6f42c4e..37c9b9d 100644
--- a/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-6.xml
+++ b/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-6.xml
@@ -26,7 +26,7 @@
     <!-- You can have 1..n cartridge elements. -->
     <cartridge type="php">
 
-        <!-- A cartridge element should add a reference to an existing IaaS provider (specified
+        <!-- A cartridge element should add a reference to an existing IaaS PROVIDER (specified
              in the above &lt;iaasProviders&gt; section) or it can create a completely new IaaS
              Provider (which should have a unique "type" attribute. -->
         <iaasProvider type="openstack">

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-7.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-7.xml b/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-7.xml
index 993e3cd..214e68f 100644
--- a/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-7.xml
+++ b/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-7.xml
@@ -27,7 +27,7 @@
     <cartridge type="php" version="5.1">
         <!-- Display name of this cartridge -->
         <displayName>PHP</displayName>
-        <!-- A cartridge element should add a reference to an existing IaaS provider (specified
+        <!-- A cartridge element should add a reference to an existing IaaS PROVIDER (specified
              in the above &lt;iaasProviders&gt; section) or it can create a completely new IaaS
              Provider (which should have a unique "type" attribute. -->
         <iaasProvider type="openstack">
@@ -47,7 +47,7 @@
 <cartridge type="php" version="5.1">
     <!-- Display name of this cartridge -->
     <displayName>PHP</displayName>
-    <!-- A cartridge element should add a reference to an existing IaaS provider (specified
+    <!-- A cartridge element should add a reference to an existing IaaS PROVIDER (specified
          in the above &lt;iaasProviders&gt; section) or it can create a completely new IaaS
          Provider (which should have a unique "type" attribute. -->
     <iaasProvider type="openstack">

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-8.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-8.xml b/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-8.xml
index 1bc3cd4..e0aa4d9 100644
--- a/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-8.xml
+++ b/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-8.xml
@@ -28,7 +28,7 @@
          specified under iaasProvider child elements of cartridge element. -->
     <property name="ss" value="slsls"/>
 
-    <!-- A cartridge element should add a reference to an existing IaaS provider (specified
+    <!-- A cartridge element should add a reference to an existing IaaS PROVIDER (specified
          in the above &lt;iaasProviders&gt; section) or it can create a completely new IaaS
          Provider (which should have a unique "type" attribute. -->
     <iaasProvider type="openstack">
@@ -85,7 +85,7 @@
      specified under iaasProvider child elements of cartridge element. -->
 <property name="ss" value="slsls"/>
 
-<!-- A cartridge element should add a reference to an existing IaaS provider (specified
+<!-- A cartridge element should add a reference to an existing IaaS PROVIDER (specified
      in the above &lt;iaasProviders&gt; section) or it can create a completely new IaaS
      Provider (which should have a unique "type" attribute. -->
 <iaasProvider type="openstack">

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-9.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-9.xml b/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-9.xml
index 9d2070d..5f42a36 100644
--- a/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-9.xml
+++ b/components/org.apache.stratos.cloud.controller/src/test/resources/cartridges-9.xml
@@ -33,7 +33,7 @@
         <deployment baseDir="xyz">
             <dir>abc</dir>
         </deployment>
-        <!-- A cartridge element should add a reference to an existing IaaS provider (specified
+        <!-- A cartridge element should add a reference to an existing IaaS PROVIDER (specified
              in the above &lt;iaasProviders&gt; section) or it can create a completely new IaaS
              Provider (which should have a unique "type" attribute. -->
         <iaasProvider type="openstack">
@@ -66,7 +66,7 @@
     <deployment baseDir="xyz">
         <dir>abc</dir>
     </deployment>
-    <!-- A cartridge element should add a reference to an existing IaaS provider (specified
+    <!-- A cartridge element should add a reference to an existing IaaS PROVIDER (specified
          in the above &lt;iaasProviders&gt; section) or it can create a completely new IaaS
          Provider (which should have a unique "type" attribute. -->
     <iaasProvider type="openstack">

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.cloud.controller/src/test/resources/cloud-controller.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/test/resources/cloud-controller.xml b/components/org.apache.stratos.cloud.controller/src/test/resources/cloud-controller.xml
index 677b020..8305ad9 100644
--- a/components/org.apache.stratos.cloud.controller/src/test/resources/cloud-controller.xml
+++ b/components/org.apache.stratos.cloud.controller/src/test/resources/cloud-controller.xml
@@ -49,7 +49,7 @@
         is not necessary [0..1]. But you can use this section to avoid specifying
         same property over and over again. -->
     <iaasProviders>
-        <!--<iaasProvider type="ec2" name="EC2 specific details"> <provider>aws-ec2</provider>
+        <!--<iaasProvider type="ec2" name="EC2 specific details"> <PROVIDER>aws-ec2</PROVIDER>
             <identity svns:secretAlias="elastic.scaler.ec2.identity">cdcd</identity>
             <credential svns:secretAlias="elastic.scaler.ec2.credential">cdccdc</credential>
             <scaleUpOrder>2</scaleUpOrder> <scaleDownOrder>1</scaleDownOrder> <property

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.load.balancer/src/test/resources/sample/configuration/loadbalancer1.conf
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/test/resources/sample/configuration/loadbalancer1.conf b/components/org.apache.stratos.load.balancer/src/test/resources/sample/configuration/loadbalancer1.conf
index 8bdced5..11c2a92 100755
--- a/components/org.apache.stratos.load.balancer/src/test/resources/sample/configuration/loadbalancer1.conf
+++ b/components/org.apache.stratos.load.balancer/src/test/resources/sample/configuration/loadbalancer1.conf
@@ -106,7 +106,7 @@ loadbalancer {
 
     # Rewrite location header
     # If this property is set to true, load balancer will rewrite HTTP Location header values found in response
-    # messages if the host is set to an ip address of a known member. The resulting Location header host will be
+    # messages if the HOST is set to an ip address of a known member. The resulting Location header HOST will be
     # set to corresponding cluster hostname and the port will be set to corresponding transport proxy port.
     rewrite-location-header: true;
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.load.balancer/src/test/resources/sample/configuration/loadbalancer2.conf
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/test/resources/sample/configuration/loadbalancer2.conf b/components/org.apache.stratos.load.balancer/src/test/resources/sample/configuration/loadbalancer2.conf
index 5d4e950..5680eca 100755
--- a/components/org.apache.stratos.load.balancer/src/test/resources/sample/configuration/loadbalancer2.conf
+++ b/components/org.apache.stratos.load.balancer/src/test/resources/sample/configuration/loadbalancer2.conf
@@ -106,7 +106,7 @@ loadbalancer {
 
     # Rewrite location header
     # If this property is set to true, load balancer will rewrite HTTP Location header values found in response
-    # messages if the host is set to an ip address of a known member. The resulting Location header host will be
+    # messages if the HOST is set to an ip address of a known member. The resulting Location header HOST will be
     # set to corresponding cluster hostname and the port will be set to corresponding transport proxy port.
     rewrite-location-header: false;
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.load.balancer/src/test/resources/sample/configuration/loadbalancer3.conf
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/test/resources/sample/configuration/loadbalancer3.conf b/components/org.apache.stratos.load.balancer/src/test/resources/sample/configuration/loadbalancer3.conf
index 2f723e8..a82397d 100755
--- a/components/org.apache.stratos.load.balancer/src/test/resources/sample/configuration/loadbalancer3.conf
+++ b/components/org.apache.stratos.load.balancer/src/test/resources/sample/configuration/loadbalancer3.conf
@@ -106,7 +106,7 @@ loadbalancer {
 
     # Rewrite location header
     # If this property is set to true, load balancer will rewrite HTTP Location header values found in response
-    # messages if the host is set to an ip address of a known member. The resulting Location header host will be
+    # messages if the HOST is set to an ip address of a known member. The resulting Location header HOST will be
     # set to corresponding cluster hostname and the port will be set to corresponding transport proxy port.
     rewrite-location-header: true;
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.manager/src/scripts/append_zone_file.sh
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/scripts/append_zone_file.sh b/components/org.apache.stratos.manager/src/scripts/append_zone_file.sh
index 007cc58..aff5ee1 100644
--- a/components/org.apache.stratos.manager/src/scripts/append_zone_file.sh
+++ b/components/org.apache.stratos.manager/src/scripts/append_zone_file.sh
@@ -24,7 +24,7 @@ appending_file=$3
 subdomain=$1
 ip=$2
 
-#appending the zone file
+#appending the ZONE file
 echo $subdomain'\t'IN'\t'A'\t'$ip>> $appending_file
 
 #increasing the count

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Scope.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Scope.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Scope.java
deleted file mode 100644
index 4c228b3..0000000
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Scope.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
-* 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.messaging.domain.topology;
-
-/**
- * represents the scope of each partition which can be configured in stratos.
- */
-public enum Scope {
-    provider, region, zone, host
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.metadata.service/src/main/resources/axis2_client.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.metadata.service/src/main/resources/axis2_client.xml b/components/org.apache.stratos.metadata.service/src/main/resources/axis2_client.xml
index b9f2eb6..707e241 100644
--- a/components/org.apache.stratos.metadata.service/src/main/resources/axis2_client.xml
+++ b/components/org.apache.stratos.metadata.service/src/main/resources/axis2_client.xml
@@ -73,7 +73,7 @@
     <!--POJO deployer , this will alow users to drop .class file and make that into a service-->
     <deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>
 
-    <!-- Following parameter will set the host name for the epr-->
+    <!-- Following parameter will set the HOST name for the epr-->
     <!--<parameter name="hostname" locked="true">myhost.com</parameter>-->
 
     <!-- ================================================= -->
@@ -159,7 +159,7 @@
     <transportReceiver name="http"
                        class="org.apache.axis2.transport.http.SimpleHTTPServer">
         <parameter name="port">6071</parameter>
-        <!--If you want to give your own host address for EPR generation-->
+        <!--If you want to give your own HOST address for EPR generation-->
         <!--uncomment following parameter , and set as you required.-->
         <!--<parameter name="hostname">http://myApp.com/ws</parameter>-->
     </transportReceiver>
@@ -168,7 +168,7 @@
     <!--<transportReceiver name="tcp"
                        class="org.apache.axis2.transport.tcp.TCPServer">
         <parameter name="port">6061</parameter>-->
-    <!--If you want to give your own host address for EPR generation-->
+    <!--If you want to give your own HOST address for EPR generation-->
     <!--uncomment following parameter , and set as you required.-->
     <!--<parameter name="hostname">tcp://myApp.com/ws</parameter>-->
     <!--</transportReceiver>-->

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/databridge/thrift/thrift/transport/THttpClient.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/databridge/thrift/thrift/transport/THttpClient.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/databridge/thrift/thrift/transport/THttpClient.py
index 9ef9535..5288bf7 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/databridge/thrift/thrift/transport/THttpClient.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/databridge/thrift/thrift/transport/THttpClient.py
@@ -34,14 +34,14 @@ class THttpClient(TTransportBase):
   def __init__(self, uri_or_host, port=None, path=None):
     """THttpClient supports two different types constructor parameters.
 
-    THttpClient(host, port, path) - deprecated
+    THttpClient(HOST, port, path) - deprecated
     THttpClient(uri)
 
     Only the second supports https.
     """
     if port is not None:
       warnings.warn(
-        "Please use the THttpClient('http://host:port/path') syntax",
+        "Please use the THttpClient('http://HOST:port/path') syntax",
         DeprecationWarning,
         stacklevel=2)
       self.host = uri_or_host

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/databridge/thrift/thrift/transport/TSSLSocket.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/databridge/thrift/thrift/transport/TSSLSocket.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/databridge/thrift/thrift/transport/TSSLSocket.py
index df35be4..9166a0a 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/databridge/thrift/thrift/transport/TSSLSocket.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/databridge/thrift/thrift/transport/TSSLSocket.py
@@ -152,7 +152,7 @@ class TSSLSocket(TSocket.TSocket):
     raise TTransportException(
       type=TTransportException.UNKNOWN,
       message='Could not validate SSL certificate from '
-              'host "%s".  Cert=%s' % (self.host, cert))
+              'HOST "%s".  Cert=%s' % (self.host, cert))
 
 
 class TSSLServerSocket(TSocket.TServerSocket):

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/databridge/thrift/thrift/transport/TSocket.py
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/databridge/thrift/thrift/transport/TSocket.py b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/databridge/thrift/thrift/transport/TSocket.py
index 9e2b384..1a7d2af 100644
--- a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/databridge/thrift/thrift/transport/TSocket.py
+++ b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/databridge/thrift/thrift/transport/TSocket.py
@@ -50,10 +50,10 @@ class TSocket(TSocketBase):
   def __init__(self, host='localhost', port=9090, unix_socket=None):
     """Initialize a TSocket
 
-    @param host(str)  The host to connect to.
+    @param host(str)  The HOST to connect to.
     @param port(int)  The (TCP) port to connect to.
     @param unix_socket(str)  The filename of a unix socket to connect to.
-                             (host and port will be ignored.)
+                             (HOST and port will be ignored.)
     """
     self.host = host
     self.port = port

http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
index 74397d4..bf99edf 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
@@ -418,8 +418,8 @@ public class StratosApiV41Utils {
             throw new RestAPIException(errorMsg, axisFault);
         } catch (RemoteException e) {
             String errorMsg =
-                    String.format("Error while getting cartridge information for provider %s  Cause: %s ", provider,
-                            e.getMessage());
+                    String.format("Error while getting cartridge information for [provider] %s,  [cause] %s ",
+                            provider, e.getMessage());
             log.error(errorMsg, e);
             throw new RestAPIException(errorMsg, e);
         }