414 Commits

Author SHA1 Message Date
Ignasi Barrera
40f31786c5 JCLOUDS-512: Implement the ImageCache
This commit refactors the ImageCacheSupplier to act as a
proper cache. It is used by the ImageExtesion and all operations
on the images are propagated to the cache.

A method has also been added to the TemplateBuilder to let users
force a cache refresh. There have been several requests to provide a way
to disable image caching in the compute abstraction, and this new method
should fix that.
2016-01-19 11:25:09 +01:00
Ignasi Barrera
86dadc3a75 JCLOUDS-1038: Fix date deserialization in EC2 apis 2015-11-24 14:53:18 +01:00
Ignasi Barrera
985d45122b JCLOUDS-987: Create security groups in AWS if subnetId is specified 2015-10-29 01:54:03 +01:00
Timur Alperovich
d70127f126 JCLOUDS-217: EC2: Do not encode form parameters.
EC2 tests should not pre-encode form parameters when constructing the
expected HTTP responses.
2015-09-08 15:19:03 -07:00
Oliver Gondža
edde721937 JCLOUDS-962: Make all @Provider methods final 2015-09-02 23:54:44 +02:00
Ignasi Barrera
5d30f859aa Fix AWS and EC2 TemplateBuilder live tests 2015-07-29 11:58:19 +02:00
Ignasi Barrera
ed1149141d Added missing virtualization types after rebasing on top of 1fe90b0 2015-07-20 18:23:11 +02:00
Alex Heneveld
a6aff306e7 add deprecated flag to Hardware and prefer non-deprecated hardware types
deprecated hardware types in EC2 are flagged using this, according to latest AWS advice,
to fix situations where deprecated hardware types would be chosen when a non-deprecated alternative exists.
we also deprecate T2 because it requires a VPC.

also fixes semantics of ImagesToRegionAndIdMap to match the logic used in the TemplateBuilderImpl;
RegionAndName should contain the ID not the ProviderID.  this is only really used in tests so no external impact.
(previously the cache only worked if provider ID matched the non-location segment of the image ID.)
however this does now assert that image id's are in the right format for AWS, as suggested by @nacx.
2015-07-20 17:40:07 +02:00
Alex Heneveld
04a4095ca6 indicate virtualization type for all ec2 instance types 2015-07-20 17:40:06 +02:00
Andrew Bayer
1fe90b03c9 JCLOUDS-961 - Add d2, m4, t2 instance types for EC2 2015-07-13 16:10:58 +02:00
Stuart Hendren
31749cba5d JCLOUDS-207: Key Pair and Security Groups created by jclouds are not removed when the node is destroyed
The names created do not match those searched for.

They are created in FormatSharedNamesAndAppendUniqueStringToThoseWhichRepeat.java
and have are of this form jclouds#I-0#e96.

But for example jclouds#I-0#us-east-1#* is used as the search term.
2015-05-07 10:50:14 +02:00
Andrew Gaul
866ac3fabb Fix error-prone PreconditionsCheckNotNullPrimitive 2015-03-30 19:06:48 -07:00
Ignasi Barrera
f469cf8b51 Next development version 2.0.0-SNAPSHOT 2015-03-24 10:52:01 +01:00
Ignasi Barrera
bb41ed4341 Apache jclouds 1.9.0 release 2015-03-24 10:35:42 +01:00
Ignasi Barrera
acd06b3024 JCLOUDS-462: Fix AWSEC2TemplateBuilderLiveTest 2015-02-04 11:04:18 +01:00
Ignasi Barrera
9a8a604bac Added C4 instance types 2015-02-04 11:04:18 +01:00
Aled Sage
bdfd1facb9 JCLOUDS-529: fix aws-ec2 cleanupIncidentalResources
- Some users get a DependencyVioloation, rather than InvalidGroup.InUse,
  when attempting to delete the security group. This caused
  cleanupIncidentalResources to propagate an exception.
- Fixes it by converting this to an IllegalStateException (in same
  way as is done for “InUse”)
- Adds tests (using MockWebServer) for happy-path and for failing
  to delete the security group with each of InUse and DependencyViolation
  responses.
- Adds Timeouts.cleanupIncidentalResources
- Use that timeout in EC2, when retrying the deletion of security group
  on VM deletion (previously hard-coded as 3 seconds).
- Configure that timeout in the tests, so deterministic number of retries
2015-01-30 11:07:25 +01:00
Jeremy Daggett
d3c1e2eab4 Use AutoService to generate service loader metadata 2015-01-09 11:22:12 -08:00
Ignasi Barrera
902f1b4105 JCLOUDS-744: Upgrade to OkHttp 2.1.0 and use its native API 2014-11-27 18:44:08 +01:00
Adrian Cole
a449b24e7d JCLOUDS-480 support version 4 signatures for aws-ec2. 2014-11-22 08:08:37 -08:00
Reynald Borer
60ba755219 JCLOUDS-621 add missing R3, t2.micro, t2.small and t2.medium instance types to EC2 2014-11-18 09:02:00 -08:00
Adrian Cole
054189d009 JCLOUDS-774 ec2 api was ignoring the jclouds.region property, which made exceptions possible on all zone-scoped api calls. 2014-11-16 19:06:42 -08:00
Adrian Cole
6040f749bd Revert 428b2bd2ea2d73354e15ffad52516105b15576cd as this hides inconsistency between regions and zones. 2014-11-16 13:39:02 -08:00
Adrian Cole
3980cd791b Revert "JCLOUDS-653: Address Guava 18 deprecations"
This reverts commit 95cfc0d950861e5bc753ee3b0669aa5c59c217e8.

Many conflicts due to duration between above commit and now
2014-10-24 10:45:58 -07:00
Adrian Cole
d735a9fa21 JCLOUDS-40 clear remaining references to Async. 2014-10-12 09:05:35 -07:00
Ignasi Barrera
e5fb0b607d Allow to configure CIDR exclusion blocks 2014-10-11 14:04:00 +02:00
Adrian Cole
b9525a0877 JCLOUDS-40 unasync Fallback 2014-10-06 13:14:59 -07:00
Adrian Cole
99e217b720 Move off confusing test names. 2014-10-05 17:22:18 -07:00
Jeremy Daggett
d2f181bc55 Remove unnecessary blobstore references 2014-09-16 12:50:25 -07:00
Andrew Gaul
8f8b6dd7ce Further FindBugs fixes 2014-09-02 15:24:33 -07:00
Andrew Gaul
34cfdbe266 Enforce Override annotation via Checkstyle
Also remove bogus inheritDoc on base and static methods.
2014-08-31 19:37:50 -07:00
Andrew Gaul
480f0e883d Prevent instantiation of utility classes
Also prevent extension.
2014-08-26 12:23:36 -07:00
Andrew Gaul
74fb8f0183 Add whitespace after semicolons
Also correct some bad line-wrapping.
2014-08-26 11:06:00 -07:00
Jeremy Daggett
e711275fb1 Prefer isEmpty() for collections rather than size() 2014-08-20 11:07:48 -07:00
Andrew Gaul
95cfc0d950 JCLOUDS-653: Address Guava 18 deprecations
Mostly renaming Objects.toStringHelper to MoreObjects.toStringHelper.
2014-08-08 11:12:21 -07:00
Andrew Gaul
59462747e7 Reset StringBuilder instead of creating new ones
This avoids unneeded garbage, especially during XML parsing.  Replaced
with:

find -name \*.java | xargs sed -i 's/^\( *[^ ]*\) = new StringBuilder();$/\1.setLength(0);/'
2014-08-06 11:22:49 -07:00
Andrew Phillips
e3d9851216 Up to 2.0.0-SNAPSHOT after the 1.8.0 release 2014-08-05 09:10:24 +02:00
Aled Sage
1fb286809e JCLOUDS-549: Fix NPE in LoginCredentials.toString
- also deprecates LoginCredentails.get(Password|PrivateKey)
- use getOptionalPassword and getOptionalPrivateKey instead
2014-07-18 14:09:18 +01:00
Andrew Gaul
7f8e6a03d7 Address Checkstyle violations 2014-07-01 09:33:46 -07:00
Andrew Bayer
5641f675da JCLOUDS-602. Added live tests for new EBS volume fields.
While they're implemented in apis/ec2, the tests are in
providers/aws-ec2, generally, to make sure ec2-alike clones won't barf
on them. We're exercising creation of volumes, images and instances
with the new options. I also had to do some sketchy wait-and-loop'ing
in AMIAPILiveTest.testCreateAndListEBSBackedImage() due to what seems
to be a delay on new AMIs showing up in filtered DescribeImages calls,
though they'll show up instantly when you specify the image ID. Go figure.
2014-06-20 12:27:17 -07:00
Andrew Bayer
6451098f72 JCLOUDS-602 - Add support for volumeType, iops and encrypted to EBS.
Adds CreateVolumeOptions for volume creation, adds support for the
above EBS configs in Image, Volume, BlockDeviceMapping, etc.
2014-06-20 12:27:17 -07:00
Ignasi Barrera
b0250cfb4f JCLOUDS-588: Register discovered images in the image cache
Images were cached in memory using a memoized supplier. To allow growing
this cache with the discovered images, the ImageCacheSupplier class has
been created. It provides an in-memory cache with all discovered images
and acts as a view over the image cache that also provides access to
them.

The in-memory cache for the discovered images expires with the session,
just as the image cache does.

The default memoized image supplier has been changed to the
ImageCacheSupplier, to make sure all providers get injected the right
instance, and the old supplier has been qualified with the 'imageCache'
name, in case a provider needs the basic image cache.
2014-06-20 12:35:18 +02:00
Andrew Gaul
9cdd53b0b7 JCLOUDS-546: Remove Javadoc @author annotations
Annotations removed with:

find -name \*.java | xargs sed -i /@author/d

Empty Javadoc removed with multiple iterations of:

find -name \*.java | xargs sed -i -z 's/ \*\n \*\// \*\//'
find -name \*.java | xargs sed -i -z 's/ \* \n \*\// \*\//'
find -name \*.java | xargs sed -i -z 's/\/\*\*\n \*\/\n//'
2014-06-07 21:44:54 -07:00
Ignasi Barrera
39f77ad3f8 JCLOUDS-570: Fallback to the GetImageStrategy
If the TemplateBuilderImpl is given an imageId but the image can not be
found in the image cache, fallback to the GetImageStrategy to perform a
call to the provider to try to get it.

We've seen that in some cases images are not returned in the image list
but they actually exist in the provider. This fix won't make them
available when filtering by other properties such as the operating system,
etc, but at least will make them available if their id is known.
2014-06-06 12:40:27 +02:00
Andrew Phillips
5239e0fea1 Updating EC2 test mocks to match changes in 79c289d 2014-05-18 14:18:35 -04:00
Andrew Gaul
79c289da9d Replace deprecated calls to LoadingCache.apply 2014-05-17 17:39:42 -07:00
Andrew Gaul
70cf3e1f7c Make constants final classes instead of interfaces
This commit prohibits implementation of the empty interface and
instantiation of the class.  Refer to _Effective Java_ item 19 for
more background.
2014-05-16 09:45:52 -07:00
Andrew Bayer
d15144cf45 JCLOUDS-564. Add ephemeral disks for m3.xlarge and m3.2xlarge sizes 2014-05-12 09:20:01 -07:00
Andrew Gaul
67c2b5f6b9 Enable whitespace around Checkstyle rule 2014-05-08 18:31:47 -07:00
Andrew Gaul
2d88f5164e Enforce that all commas have trailing whitespace 2014-05-08 18:28:08 -07:00