You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by sa...@apache.org on 2014/03/28 10:04:46 UTC

[1/2] git commit: setting cluster id to subscription from existing default LB

Repository: incubator-stratos
Updated Branches:
  refs/heads/master 60b2f3fac -> 2651d6aab


setting cluster id to subscription from existing default LB


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

Branch: refs/heads/master
Commit: 0a06ab55fffdfb7cc24d02b7eded9f544f97d698
Parents: 75d5b26
Author: Sajith Kariyawasam <sa...@wso2.com>
Authored: Fri Mar 28 14:32:25 2014 +0530
Committer: Sajith Kariyawasam <sa...@wso2.com>
Committed: Fri Mar 28 14:32:25 2014 +0530

----------------------------------------------------------------------
 .../behaviour/CartridgeMgtBehaviour.java        | 21 +++++++---
 .../client/CloudControllerServiceClient.java    |  4 ++
 .../category/DefaultLoadBalancerCategory.java   | 43 +++++++++++++-------
 .../lb/category/LoadBalancerCategory.java       | 17 +++-----
 4 files changed, 52 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0a06ab55/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/behaviour/CartridgeMgtBehaviour.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/behaviour/CartridgeMgtBehaviour.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/behaviour/CartridgeMgtBehaviour.java
index 3de87eb..b083d56 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/behaviour/CartridgeMgtBehaviour.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/behaviour/CartridgeMgtBehaviour.java
@@ -18,7 +18,6 @@ package org.apache.stratos.manager.behaviour;
  * under the License.
  */
 
-import org.apache.axis2.AxisFault;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo;
@@ -53,18 +52,28 @@ public abstract class CartridgeMgtBehaviour implements Serializable {
     public PayloadData create (String alias, Cluster cluster, Subscriber subscriber, Repository repository, CartridgeInfo cartridgeInfo,
                                String subscriptionKey, Map<String, String> customPayloadEntries) throws ADCException, AlreadySubscribedException {
 
+        // set cluster domain
+        cluster.setClusterDomain(generateClusterId(alias, cartridgeInfo.getType()));
+        // set hostname
+        cluster.setHostName(generateHostName(alias, cartridgeInfo.getHostName()));
 
-        String clusterId = alias + "." + cartridgeInfo.getType() + ".domain";
+        return createPayload(cartridgeInfo, subscriptionKey, subscriber, cluster, repository, alias, customPayloadEntries);
+    }
 
+    protected String generateClusterId (String alias, String cartridgeType) {
+
+        String clusterId = alias + "." + cartridgeType + ".domain";
         // limit the cartridge alias to 30 characters in length
         if (clusterId.length() > 30) {
             clusterId = CartridgeSubscriptionUtils.limitLengthOfString(clusterId, 30);
         }
-        cluster.setClusterDomain(clusterId);
-        // set hostname
-        cluster.setHostName(alias + "." + cluster.getHostName());
 
-        return createPayload(cartridgeInfo, subscriptionKey, subscriber, cluster, repository, alias, customPayloadEntries);
+        return clusterId;
+    }
+
+    protected String generateHostName (String alias, String cartridgeDefinitionHostName) {
+
+        return alias + "." + cartridgeDefinitionHostName;
     }
 
     protected PayloadData createPayload (CartridgeInfo cartridgeInfo, String subscriptionKey, Subscriber subscriber, Cluster cluster,

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0a06ab55/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java
index 6b77921..1bfd4ad 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java
@@ -152,4 +152,8 @@ public class CloudControllerServiceClient {
 	    stub.unregisterService(clusterId);
 	}
 
+    public ClusterContext getClusterContext (String clusterId) throws RemoteException {
+
+        return stub.getClusterContext(clusterId);
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0a06ab55/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/DefaultLoadBalancerCategory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/DefaultLoadBalancerCategory.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/DefaultLoadBalancerCategory.java
index 81521fc..ac368e8 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/DefaultLoadBalancerCategory.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/DefaultLoadBalancerCategory.java
@@ -19,15 +19,13 @@
 
 package org.apache.stratos.manager.lb.category;
 
-import java.rmi.RemoteException;
-import java.util.Map;
-
-import org.apache.axis2.AxisFault;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo;
+import org.apache.stratos.cloud.controller.stub.pojo.ClusterContext;
 import org.apache.stratos.cloud.controller.stub.pojo.Properties;
 import org.apache.stratos.manager.client.AutoscalerServiceClient;
+import org.apache.stratos.manager.client.CloudControllerServiceClient;
 import org.apache.stratos.manager.dao.Cluster;
 import org.apache.stratos.manager.exception.ADCException;
 import org.apache.stratos.manager.exception.AlreadySubscribedException;
@@ -35,7 +33,9 @@ import org.apache.stratos.manager.exception.UnregisteredCartridgeException;
 import org.apache.stratos.manager.payload.PayloadData;
 import org.apache.stratos.manager.repository.Repository;
 import org.apache.stratos.manager.subscriber.Subscriber;
-import org.apache.stratos.manager.subscription.utils.CartridgeSubscriptionUtils;
+
+import java.rmi.RemoteException;
+import java.util.Map;
 
 public class DefaultLoadBalancerCategory extends LoadBalancerCategory {
 
@@ -52,27 +52,40 @@ public class DefaultLoadBalancerCategory extends LoadBalancerCategory {
 		try {
 			clusterId = AutoscalerServiceClient.getServiceClient().getDefaultLBClusterId(getDeploymentPolicyName());
 		} catch (Exception e) {			
-			log.error("Error occurred in retrieving default LB cluster id.  " + e.getMessage());
+			log.error("Error occurred in retrieving default LB cluster id" + e.getMessage());
 			throw new ADCException(e);
 		}
 
         if (clusterId != null) {
-
             //set the cluster id to Cluster object
         	cluster.setClusterDomain(clusterId);
+            if (log.isDebugEnabled()) {
+                log.debug("Set existing default LB cluster id " + clusterId + " to the LB Subscription with alias: " + alias);
+            }
             defaultLBExists = true;
-            //need to check if we can get the host name as well..
 
-        } else {
-            clusterId = alias + "." + cartridgeInfo.getType() + ".domain";
+            //get the hostname for this cluster and set it
+            ClusterContext clusterContext;
+            try {
+                clusterContext = CloudControllerServiceClient.getServiceClient().getClusterContext(clusterId);
+
+            } catch (RemoteException e) {
+                log.error("Error occurred in retrieving Cluster Context for default LB" + e.getMessage());
+                throw new ADCException(e);
+            }
 
-            // limit the cartridge alias to 30 characters in length
-            if (clusterId.length() > 30) {
-                clusterId = CartridgeSubscriptionUtils.limitLengthOfString(clusterId, 30);
+            if (clusterContext != null) {
+                cluster.setHostName(clusterContext.getHostName());
+                if (log.isDebugEnabled()) {
+                    log.debug("Set existing default LB hostname " + clusterContext.getHostName() + " to the LB Subscription with alias: " + alias);
+                }
             }
-            cluster.setClusterDomain(clusterId);
+
+        } else {
+            // set cluster domain
+            cluster.setClusterDomain(generateClusterId(alias, cartridgeInfo.getType()));
             // set hostname
-            cluster.setHostName(alias + "." + cluster.getHostName());
+            cluster.setHostName(generateHostName(alias, cartridgeInfo.getHostName()));
         }
 
         return createPayload(cartridgeInfo, subscriptionKey, subscriber,

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0a06ab55/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/LoadBalancerCategory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/LoadBalancerCategory.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/LoadBalancerCategory.java
index 1243b12..43ae859 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/LoadBalancerCategory.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/LoadBalancerCategory.java
@@ -19,8 +19,6 @@
 
 package org.apache.stratos.manager.lb.category;
 
-import java.util.Map;
-
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo;
@@ -34,7 +32,8 @@ import org.apache.stratos.manager.payload.PayloadData;
 import org.apache.stratos.manager.repository.Repository;
 import org.apache.stratos.manager.retriever.DataInsertionAndRetrievalManager;
 import org.apache.stratos.manager.subscriber.Subscriber;
-import org.apache.stratos.manager.subscription.utils.CartridgeSubscriptionUtils;
+
+import java.util.Map;
 
 public abstract class LoadBalancerCategory extends CartridgeMgtBehaviour {
 
@@ -91,16 +90,10 @@ public abstract class LoadBalancerCategory extends CartridgeMgtBehaviour {
 			cluster.setHostName(deployedLBService.getHostName());
 
 		} else {
-			clusterId = alias + "." + cartridgeInfo.getType() + ".domain";
-
-			// limit the cartridge alias to 30 characters in length
-			if (clusterId.length() > 30) {
-				clusterId = CartridgeSubscriptionUtils.limitLengthOfString(
-						clusterId, 30);
-			}
-			cluster.setClusterDomain(clusterId);
+            // set cluster domain
+			cluster.setClusterDomain(generateClusterId(alias, cartridgeInfo.getType()));
 			// set hostname
-			cluster.setHostName(alias + "." + cluster.getHostName());
+			cluster.setHostName(generateHostName(alias, cartridgeInfo.getHostName()));
 		}
 
 		return createPayload(cartridgeInfo, subscriptionKey, subscriber,


[2/2] git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-stratos

Posted by sa...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-stratos


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

Branch: refs/heads/master
Commit: 2651d6aabdf46b0927aa9b25b0c855fdb106b72b
Parents: 0a06ab5 60b2f3f
Author: Sajith Kariyawasam <sa...@wso2.com>
Authored: Fri Mar 28 14:34:30 2014 +0530
Committer: Sajith Kariyawasam <sa...@wso2.com>
Committed: Fri Mar 28 14:34:30 2014 +0530

----------------------------------------------------------------------
 .../java/org/apache/stratos/cli/Command.java    |   2 +-
 .../stratos/cli/CommandLineApplication.java     |  10 +-
 .../apache/stratos/cli/CommandLineService.java  |  10 +-
 .../apache/stratos/cli/GenericRestClient.java   |  15 +-
 .../java/org/apache/stratos/cli/RestClient.java |  73 +-
 .../stratos/cli/RestCommandLineService.java     | 198 ++--
 .../apache/stratos/cli/StratosApplication.java  |  67 +-
 .../apache/stratos/cli/WebClientWrapper.java    |   1 +
 .../stratos/cli/commands/SyncCommand.java       |   8 +-
 .../console/controllers/mycartridges.jag        |  15 +
 .../console/data/clusters.json                  | 391 ++------
 .../themes/theme1/partials/cartridges.hbs       | 107 +-
 .../themes/theme1/partials/mycartridges.hbs     |  86 +-
 .../themes/theme1/renderers/cartridges.js       |  30 +-
 .../console/themes/theme1/renderers/index.js    |  45 +-
 .../console/themes/theme1/ui/css/main.css       |   9 +
 .../console/themes/theme1/ui/js/mycartridges.js |  11 +
 .../console/util/utility.jag                    |   6 +
 .../repository/RepositoryNotification.java      |  39 +-
 .../ClusterCreatedMessageProcessor.java         |   1 -
 .../ClusterRemovedMessageProcessor.java         |  17 +-
 .../InstanceSpawnedMessageProcessor.java        |  31 +-
 .../MemberActivatedMessageProcessor.java        |  26 +-
 .../MemberMaintenanceModeProcessor.java         |  21 +-
 .../MemberReadyToShutdownMessageProcessor.java  |  21 +-
 .../topology/MemberStartedMessageProcessor.java |  21 +-
 .../MemberSuspendedMessageProcessor.java        |  21 +-
 .../MemberTerminatedMessageProcessor.java       |  25 +-
 .../ServiceCreatedMessageProcessor.java         |  19 +-
 .../ServiceRemovedMessageProcessor.java         |  15 +-
 .../rest/endpoint/services/ServiceUtils.java    |  15 +
 .../rest/endpoint/services/StratosAdmin.java    |  11 +
 .../provider/aws-ec2/1.7.1-stratos/README.txt   |   8 +
 .../provider/aws-ec2/1.7.1-stratos/pom.xml      | 151 +++
 .../src/main/clojure/org/jclouds/aws/ec2.clj    |  62 ++
 .../java/org/jclouds/aws/ec2/AWSEC2Api.java     | 119 +++
 .../org/jclouds/aws/ec2/AWSEC2ApiMetadata.java  |  83 ++
 .../jclouds/aws/ec2/AWSEC2ProviderMetadata.java | 103 ++
 .../BindLaunchSpecificationToFormParams.java    |  92 ++
 ...otInstanceRequestIdsToIndexedFormParams.java |  37 +
 .../BindTagFiltersToIndexedFormParams.java      |  37 +
 .../binders/BindTagsToIndexedFormParams.java    |  37 +
 .../aws/ec2/compute/AWSEC2ComputeService.java   | 160 +++
 .../compute/AWSEC2ComputeServiceContext.java    |  31 +
 .../ec2/compute/AWSEC2TemplateBuilderImpl.java  |  51 +
 .../aws/ec2/compute/AWSEC2TemplateOptions.java  | 793 +++++++++++++++
 .../AWSEC2BindComputeSuppliersByClass.java      |  34 +
 .../AWSEC2ComputeServiceContextModule.java      | 182 ++++
 .../AWSEC2ComputeServiceDependenciesModule.java | 179 ++++
 .../aws/ec2/compute/config/ClusterCompute.java  |  37 +
 .../aws/ec2/compute/config/ImageQuery.java      |  37 +
 .../AWSEC2SecurityGroupExtension.java           | 220 +++++
 .../AWSEC2SecurityGroupToSecurityGroup.java     |  50 +
 .../AWSRunningInstanceToNodeMetadata.java       |  81 ++
 .../PresentSpotRequestsAndInstances.java        |  95 ++
 .../AWSEC2ComputeServiceContextImpl.java        |  48 +
 .../AWSEC2CreateSecurityGroupIfNeeded.java      | 140 +++
 .../AWSEC2CreateNodesInGroupThenAddToSet.java   | 116 +++
 .../strategy/AWSEC2DestroyNodeStrategy.java     |  75 ++
 .../strategy/AWSEC2GetNodeMetadataStrategy.java |  65 ++
 .../strategy/AWSEC2ListNodesStrategy.java       | 107 ++
 .../strategy/AWSEC2ReviseParsedImage.java       | 119 +++
 ...curityGroupsAsNeededAndReturnRunOptions.java | 190 ++++
 .../suppliers/AWSEC2HardwareSupplier.java       | 109 ++
 .../compute/suppliers/AWSEC2ImageSupplier.java  | 162 +++
 .../ec2/compute/suppliers/CallForImages.java    |  94 ++
 .../aws/ec2/config/AWSEC2HttpApiModule.java     |  82 ++
 .../aws/ec2/domain/AWSRunningInstance.java      | 337 +++++++
 .../aws/ec2/domain/LaunchSpecification.java     | 547 ++++++++++
 .../jclouds/aws/ec2/domain/MonitoringState.java |  50 +
 .../jclouds/aws/ec2/domain/PlacementGroup.java  | 157 +++
 .../domain/RegionNameAndPublicKeyMaterial.java  |  40 +
 .../java/org/jclouds/aws/ec2/domain/Spot.java   | 199 ++++
 .../aws/ec2/domain/SpotInstanceRequest.java     | 474 +++++++++
 .../org/jclouds/aws/ec2/features/AWSAMIApi.java | 126 +++
 .../aws/ec2/features/AWSInstanceApi.java        |  94 ++
 .../jclouds/aws/ec2/features/AWSKeyPairApi.java |  88 ++
 .../aws/ec2/features/AWSSecurityGroupApi.java   | 147 +++
 .../jclouds/aws/ec2/features/MonitoringApi.java |  97 ++
 .../aws/ec2/features/PlacementGroupApi.java     | 162 +++
 .../aws/ec2/features/SpotInstanceApi.java       | 247 +++++
 .../functions/CreatePlacementGroupIfNeeded.java |  81 ++
 .../ImportOrReturnExistingKeypair.java          |  90 ++
 ...SpotInstanceRequestToAWSRunningInstance.java |  63 ++
 .../ec2/options/AWSDescribeImagesOptions.java   | 152 +++
 .../aws/ec2/options/AWSRunInstancesOptions.java | 287 ++++++
 .../ec2/options/CreateSecurityGroupOptions.java |  63 ++
 .../DescribeSpotPriceHistoryOptions.java        | 115 +++
 .../options/RequestSpotInstancesOptions.java    | 139 +++
 .../ec2/predicates/PlacementGroupAvailable.java |  69 ++
 .../ec2/predicates/PlacementGroupDeleted.java   |  66 ++
 .../predicates/SpotInstanceRequestActive.java   |  75 ++
 .../aws/ec2/reference/AWSEC2Constants.java      |  39 +
 .../AWSDescribeInstancesResponseHandler.java    | 110 +++
 ...C2DescribeSecurityGroupsResponseHandler.java | 125 +++
 .../aws/ec2/xml/AWSEC2IpPermissionHandler.java  |  94 ++
 .../aws/ec2/xml/AWSEC2SecurityGroupHandler.java | 142 +++
 .../ec2/xml/AWSRunInstancesResponseHandler.java |  51 +
 .../aws/ec2/xml/BaseAWSReservationHandler.java  | 251 +++++
 .../xml/CreateSecurityGroupResponseHandler.java |  44 +
 .../DescribePlacementGroupsResponseHandler.java |  75 ++
 ...eservedInstancesOfferingResponseHandler.java |  74 ++
 ...DescribeSpotPriceHistoryResponseHandler.java |  76 ++
 .../aws/ec2/xml/LaunchSpecificationHandler.java | 147 +++
 .../aws/ec2/xml/MonitoringStateHandler.java     |  58 ++
 .../aws/ec2/xml/PlacementGroupHandler.java      |  70 ++
 .../aws/ec2/xml/ProductCodesHandler.java        |  51 +
 .../xml/ReservedInstancesOfferingHandler.java   |  90 ++
 .../org/jclouds/aws/ec2/xml/SpotHandler.java    |  77 ++
 .../aws/ec2/xml/SpotInstanceHandler.java        | 152 +++
 .../aws/ec2/xml/SpotInstancesHandler.java       |  81 ++
 .../org.jclouds.providers.ProviderMetadata      |   1 +
 .../test/clojure/org/jclouds/aws/ec2_test.clj   |  32 +
 .../aws/ec2/AWSEC2ContextBuilderTest.java       |  79 ++
 .../org/jclouds/aws/ec2/AWSEC2ProviderTest.java |  33 +
 ...BindLaunchSpecificationToFormParamsTest.java |  98 ++
 .../BindTagsToIndexedFormParamsTest.java        |  63 ++
 .../compute/AWSEC2ComputeServiceExpectTest.java | 280 ++++++
 .../compute/AWSEC2ComputeServiceLiveTest.java   | 196 ++++
 .../compute/AWSEC2TemplateBuilderLiveTest.java  | 367 +++++++
 .../AWSEC2ComputeServiceContextModuleTest.java  |  65 ++
 .../AWSEC2ImageExtensionLiveTest.java           |  62 ++
 .../AWSEC2SecurityGroupExtensionExpectTest.java | 364 +++++++
 .../AWSEC2SecurityGroupExtensionLiveTest.java   |  36 +
 .../AWSEC2SecurityGroupToSecurityGroupTest.java |  83 ++
 .../AWSRunningInstanceToNodeMetadataTest.java   | 220 +++++
 .../PresentSpotRequestsAndInstancesTest.java    | 100 ++
 .../BaseAWSEC2ComputeServiceExpectTest.java     | 153 +++
 .../AWSEC2CreateSecurityGroupIfNeededTest.java  | 103 ++
 .../options/AWSEC2TemplateOptionsTest.java      | 418 ++++++++
 .../compute/strategy/AWSEC2ImageParserTest.java | 242 +++++
 .../strategy/AWSEC2ReviseParsedImageTest.java   | 111 +++
 ...tyGroupsAsNeededAndReturnRunOptionsTest.java | 957 ++++++++++++++++++
 .../aws/ec2/features/AWSAMIApiLiveTest.java     |  58 ++
 .../jclouds/aws/ec2/features/AWSAMIApiTest.java | 497 ++++++++++
 .../ec2/features/AWSInstanceApiLiveTest.java    |  60 ++
 .../aws/ec2/features/AWSInstanceApiTest.java    | 539 ++++++++++
 .../aws/ec2/features/AWSKeyPairApiLiveTest.java | 208 ++++
 .../aws/ec2/features/AWSKeyPairApiTest.java     | 134 +++
 .../features/AWSSecurityGroupApiLiveTest.java   | 123 +++
 .../ec2/features/AWSSecurityGroupApiTest.java   | 207 ++++
 .../aws/ec2/features/AWSSubnetApiLiveTest.java  |  31 +
 .../aws/ec2/features/BaseAWSEC2ApiTest.java     | 135 +++
 .../aws/ec2/features/MonitoringApiLiveTest.java |  65 ++
 .../aws/ec2/features/MonitoringApiTest.java     |  73 ++
 .../features/PlacementGroupApiExpectTest.java   |  78 ++
 .../ec2/features/PlacementGroupApiLiveTest.java | 221 +++++
 .../aws/ec2/features/PlacementGroupApiTest.java | 136 +++
 .../ec2/features/SpotInstanceApiExpectTest.java |  78 ++
 .../ec2/features/SpotInstanceApiLiveTest.java   | 215 ++++
 .../aws/ec2/features/SpotInstanceApiTest.java   | 100 ++
 .../ec2/features/TagSecurityGroupLiveTest.java  |  56 ++
 .../ImportOrReturnExistingKeypairTest.java      | 115 +++
 ...InstanceRequestToAWSRunningInstanceTest.java |  91 ++
 .../options/AWSDescribeImagesOptionsTest.java   | 177 ++++
 .../ec2/options/AWSRunInstancesOptionsTest.java | 370 +++++++
 .../DescribeSpotPriceHistoryOptionsTest.java    | 119 +++
 .../RequestSpotInstancesOptionsTest.java        | 143 +++
 .../parse/DescribeInstancesResponseTest.java    | 112 +++
 .../DescribeSecurityGroupsResponseTest.java     |  77 ++
 ...AWSDescribeInstancesResponseHandlerTest.java | 167 ++++
 .../xml/AWSRunInstancesResponseHandlerTest.java | 114 +++
 ...cribePlacementGroupsResponseHandlerTest.java |  53 +
 ...vedInstancesOfferingResponseHandlerTest.java |  55 ++
 ...ribeSpotPriceHistoryResponseHandlerTest.java |  72 ++
 .../aws/ec2/xml/MonitoringStateHandlerTest.java |  50 +
 .../aws/ec2/xml/ProductCodesHandlerTest.java    |  49 +
 .../aws/ec2/xml/SpotInstanceHandlerTest.java    | 138 +++
 .../aws/ec2/xml/SpotInstancesHandlerTest.java   | 117 +++
 .../src/test/resources/alestic_canonical.xml    | 119 +++
 .../src/test/resources/amzn_images.xml          |  86 ++
 .../describe_image_attribute_productCodes.xml   |   9 +
 .../src/test/resources/describe_images_cc.xml   |  31 +
 .../src/test/resources/describe_instances_1.xml |  55 ++
 .../src/test/resources/describe_instances_2.xml | 986 +++++++++++++++++++
 .../src/test/resources/describe_instances_3.xml |   5 +
 .../resources/describe_instances_latest.xml     | 132 +++
 .../resources/describe_instances_pending.xml    |  82 ++
 .../resources/describe_placement_groups.xml     |  10 +
 .../describe_reserved_instances_offerings.xml   |  15 +
 .../resources/describe_security_groups_vpc.xml  |  35 +
 .../test/resources/describe_spot_instance.xml   |  45 +
 .../describe_spot_instance_requests.xml         | 425 ++++++++
 .../resources/describe_spot_instance_tags.xml   | 115 +++
 .../resources/describe_spot_instances_1.xml     | 207 ++++
 .../resources/describe_spot_price_history.xml   |  27 +
 .../src/test/resources/monitoring.xml           |  16 +
 .../resources/request_spot_instances-ebs.xml    |  52 +
 .../test/resources/request_spot_instances.xml   |  93 ++
 .../src/test/resources/rightscale_images.xml    |  94 ++
 .../src/test/resources/run_instances_1.xml      |  54 +
 .../1.7.1-stratos/src/test/resources/vostok.xml |  19 +
 .../synapse-configs/default/sequences/main.xml  |   8 +-
 tools/stratos-installer/stratos-setup.sh        |  17 +-
 194 files changed, 22300 insertions(+), 658 deletions(-)
----------------------------------------------------------------------