EMMA Coverage Report (generated Wed Jun 22 19:47:49 EDT 2011)
[all classes][org.jclouds.aws.ec2.options]

COVERAGE SUMMARY FOR SOURCE FILE [AWSRunInstancesOptions.java]

nameclass, %method, %block, %line, %
AWSRunInstancesOptions.java100% (2/2)88%  (23/26)87%  (225/260)91%  (46.7/51)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class AWSRunInstancesOptions100% (1/1)93%  (14/15)87%  (154/178)94%  (29/31)
getLaunchSpecificationBuilder (): LaunchSpecification$Builder 0%   (0/1)0%   (0/24)0%   (0/2)
<static initializer> 100% (1/1)100% (5/5)100% (1/1)
AWSRunInstancesOptions (): void 100% (1/1)100% (6/6)100% (3/3)
asType (String): AWSRunInstancesOptions 100% (1/1)100% (12/12)100% (2/2)
enableMonitoring (): AWSRunInstancesOptions 100% (1/1)100% (14/14)100% (3/3)
inPlacementGroup (String): AWSRunInstancesOptions 100% (1/1)100% (10/10)100% (2/2)
withBlockDeviceMappings (Set): AWSRunInstancesOptions 100% (1/1)100% (12/12)100% (2/2)
withKernelId (String): AWSRunInstancesOptions 100% (1/1)100% (12/12)100% (2/2)
withKeyName (String): AWSRunInstancesOptions 100% (1/1)100% (12/12)100% (2/2)
withRamdisk (String): AWSRunInstancesOptions 100% (1/1)100% (12/12)100% (2/2)
withSecurityGroup (String): AWSRunInstancesOptions 100% (1/1)100% (12/12)100% (2/2)
withSecurityGroups (Iterable): AWSRunInstancesOptions 100% (1/1)100% (12/12)100% (2/2)
withSecurityGroups (String []): AWSRunInstancesOptions 100% (1/1)100% (13/13)100% (2/2)
withSubnetId (String): AWSRunInstancesOptions 100% (1/1)100% (10/10)100% (2/2)
withUserData (byte []): AWSRunInstancesOptions 100% (1/1)100% (12/12)100% (2/2)
     
class AWSRunInstancesOptions$Builder100% (1/1)82%  (9/11)87%  (71/82)86%  (18/21)
AWSRunInstancesOptions$Builder (): void 0%   (0/1)0%   (0/3)0%   (0/1)
inPlacementGroup (String): AWSRunInstancesOptions 0%   (0/1)0%   (0/8)0%   (0/2)
asType (String): AWSRunInstancesOptions 100% (1/1)100% (8/8)100% (2/2)
enableMonitoring (): AWSRunInstancesOptions 100% (1/1)100% (7/7)100% (2/2)
withBlockDeviceMappings (Set): AWSRunInstancesOptions 100% (1/1)100% (8/8)100% (2/2)
withKernelId (String): AWSRunInstancesOptions 100% (1/1)100% (8/8)100% (2/2)
withKeyName (String): AWSRunInstancesOptions 100% (1/1)100% (8/8)100% (2/2)
withRamdisk (String): AWSRunInstancesOptions 100% (1/1)100% (8/8)100% (2/2)
withSecurityGroup (String): AWSRunInstancesOptions 100% (1/1)100% (8/8)100% (2/2)
withSubnetId (String): AWSRunInstancesOptions 100% (1/1)100% (8/8)100% (2/2)
withUserData (byte []): AWSRunInstancesOptions 100% (1/1)100% (8/8)100% (2/2)

1/**
2 *
3 * Copyright (C) 2011 Cloud Conscious, LLC. <info@cloudconscious.com>
4 *
5 * ====================================================================
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 * ====================================================================
18 */
19package org.jclouds.aws.ec2.options;
20 
21import static com.google.common.base.Preconditions.checkNotNull;
22 
23import java.util.Set;
24 
25import org.jclouds.aws.ec2.domain.LaunchSpecification;
26import org.jclouds.ec2.domain.BlockDeviceMapping;
27import org.jclouds.ec2.domain.InstanceType;
28import org.jclouds.ec2.options.RunInstancesOptions;
29 
30import com.google.common.collect.ImmutableSet;
31 
32/**
33 * Contains options supported in the Form API for the RunInstances operation. <h2>
34 * Usage</h2> The recommended way to instantiate a RunInstancesOptions object is to statically
35 * import RunInstancesOptions.Builder.* and invoke a static creation method followed by an instance
36 * mutator (if needed):
37 * <p/>
38 * <code>
39 * import static org.jclouds.aws.ec2.options.RunInstancesOptions.Builder.*
40 * <p/>
41 * EC2Client connection = // get connection
42 * Future<ReservationInfo> instances = connection.runInstances(executableBy("123125").imageIds(1000, 1004));
43 * <code>
44 * 
45 * @author Adrian Cole
46 * @see <a href=
47 *      "http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/index.html?ApiReference-form-RunInstances.html"
48 *      />
49 */
50public class AWSRunInstancesOptions extends RunInstancesOptions {
51   private LaunchSpecification.Builder launchSpecificationBuilder = LaunchSpecification.builder();
52   public static final AWSRunInstancesOptions NONE = new AWSRunInstancesOptions();
53 
54   /**
55    * Specifies the name of an existing placement group you want to launch the instance into (for
56    * cluster compute instances).
57    * 
58    * @param placementGroup
59    *           name of an existing placement group
60    */
61   public AWSRunInstancesOptions inPlacementGroup(String placementGroup) {
62      formParameters.put("Placement.GroupName", checkNotNull(placementGroup, "placementGroup"));
63      return this;
64   }
65 
66   /**
67    * Enables monitoring for the instance.
68    */
69   public AWSRunInstancesOptions enableMonitoring() {
70      formParameters.put("Monitoring.Enabled", "true");
71      launchSpecificationBuilder.monitoringEnabled(true);
72      return this;
73   }
74 
75   /**
76    * Specifies the subnet ID within which to launch the instance(s) for Amazon Virtual Private
77    * Cloud.
78    */
79   public AWSRunInstancesOptions withSubnetId(String subnetId) {
80      formParameters.put("SubnetId", checkNotNull(subnetId, "subnetId"));
81      return this;
82   }
83 
84   public static class Builder extends RunInstancesOptions.Builder {
85 
86      /**
87       * @see AWSRunInstancesOptions#inPlacementGroup(String)
88       */
89      public static AWSRunInstancesOptions inPlacementGroup(String placementGroup) {
90         AWSRunInstancesOptions options = new AWSRunInstancesOptions();
91         return options.inPlacementGroup(placementGroup);
92      }
93 
94      /**
95       * @see AWSRunInstancesOptions#enableMonitoring()
96       */
97      public static AWSRunInstancesOptions enableMonitoring() {
98         AWSRunInstancesOptions options = new AWSRunInstancesOptions();
99         return options.enableMonitoring();
100      }
101 
102      /**
103       * @see AWSRunInstancesOptions#withSubnetId(String)
104       */
105      public static AWSRunInstancesOptions withSubnetId(String subnetId) {
106         AWSRunInstancesOptions options = new AWSRunInstancesOptions();
107         return options.withSubnetId(subnetId);
108      }
109 
110      /**
111       * @see AWSRunInstancesOptions#withKeyName(String)
112       */
113      public static AWSRunInstancesOptions withKeyName(String keyName) {
114         AWSRunInstancesOptions options = new AWSRunInstancesOptions();
115         return options.withKeyName(keyName);
116      }
117 
118      /**
119       * @see AWSRunInstancesOptions#withSecurityGroup(String)
120       */
121      public static AWSRunInstancesOptions withSecurityGroup(String securityGroup) {
122         AWSRunInstancesOptions options = new AWSRunInstancesOptions();
123         return options.withSecurityGroup(securityGroup);
124      }
125 
126      /**
127       * @see AWSRunInstancesOptions#withUserData(byte [])
128       */
129      public static AWSRunInstancesOptions withUserData(byte[] unencodedData) {
130         AWSRunInstancesOptions options = new AWSRunInstancesOptions();
131         return options.withUserData(unencodedData);
132      }
133 
134      /**
135       * @see AWSRunInstancesOptions#asType(InstanceType)
136       */
137      public static AWSRunInstancesOptions asType(String instanceType) {
138         AWSRunInstancesOptions options = new AWSRunInstancesOptions();
139         return options.asType(instanceType);
140      }
141 
142      /**
143       * @see AWSRunInstancesOptions#withKernelId(String)
144       */
145      public static AWSRunInstancesOptions withKernelId(String kernelId) {
146         AWSRunInstancesOptions options = new AWSRunInstancesOptions();
147         return options.withKernelId(kernelId);
148      }
149 
150      /**
151       * @see AWSRunInstancesOptions#withRamdisk(String)
152       */
153      public static AWSRunInstancesOptions withRamdisk(String ramdiskId) {
154         AWSRunInstancesOptions options = new AWSRunInstancesOptions();
155         return options.withRamdisk(ramdiskId);
156      }
157 
158      /**
159       * @see AWSRunInstancesOptions#withBlockDeviceMappings(Set<BlockDeviceMapping> mappings)
160       */
161      public static AWSRunInstancesOptions withBlockDeviceMappings(Set<? extends BlockDeviceMapping> mappings) {
162         AWSRunInstancesOptions options = new AWSRunInstancesOptions();
163         return options.withBlockDeviceMappings(mappings);
164      }
165 
166   }
167 
168   @Override
169   public AWSRunInstancesOptions withBlockDeviceMappings(Set<? extends BlockDeviceMapping> mappings) {
170      launchSpecificationBuilder.blockDeviceMappings(mappings);
171      return AWSRunInstancesOptions.class.cast(super.withBlockDeviceMappings(mappings));
172   }
173 
174   @Override
175   public AWSRunInstancesOptions withKernelId(String kernelId) {
176      launchSpecificationBuilder.kernelId(kernelId);
177      return AWSRunInstancesOptions.class.cast(super.withKernelId(kernelId));
178   }
179 
180   @Override
181   public AWSRunInstancesOptions withKeyName(String keyName) {
182      launchSpecificationBuilder.keyName(keyName);
183      return AWSRunInstancesOptions.class.cast(super.withKeyName(keyName));
184   }
185 
186   @Override
187   public AWSRunInstancesOptions withRamdisk(String ramDiskId) {
188      launchSpecificationBuilder.ramdiskId(ramDiskId);
189      return AWSRunInstancesOptions.class.cast(super.withRamdisk(ramDiskId));
190   }
191 
192   @Override
193   public AWSRunInstancesOptions withSecurityGroup(String securityGroup) {
194      launchSpecificationBuilder.groupId(securityGroup);
195      return AWSRunInstancesOptions.class.cast(super.withSecurityGroup(securityGroup));
196   }
197 
198   @Override
199   public AWSRunInstancesOptions withSecurityGroups(Iterable<String> securityGroups) {
200      launchSpecificationBuilder.groupIds(securityGroups);
201      return AWSRunInstancesOptions.class.cast(super.withSecurityGroups(securityGroups));
202   }
203 
204   @Override
205   public AWSRunInstancesOptions withSecurityGroups(String... securityGroups) {
206      launchSpecificationBuilder.groupIds(ImmutableSet.copyOf(securityGroups));
207      return AWSRunInstancesOptions.class.cast(super.withSecurityGroups(securityGroups));
208   }
209 
210   @Override
211   public AWSRunInstancesOptions withUserData(byte[] unencodedData) {
212      launchSpecificationBuilder.userData(unencodedData);
213      return AWSRunInstancesOptions.class.cast(super.withUserData(unencodedData));
214   }
215 
216   @Override
217   public AWSRunInstancesOptions asType(String type) {
218      launchSpecificationBuilder.instanceType(type);
219      return AWSRunInstancesOptions.class.cast(super.asType(type));
220   }
221 
222   public synchronized LaunchSpecification.Builder getLaunchSpecificationBuilder() {
223      try {
224         return launchSpecificationBuilder.imageId("fake").build().toBuilder().imageId(null);
225      } finally {
226         launchSpecificationBuilder.imageId(null);
227      }
228   }
229}

[all classes][org.jclouds.aws.ec2.options]
EMMA 2.0.5312 (C) Vladimir Roubtsov