Commit Graph

2737 Commits

Author SHA1 Message Date
Daniel Haeser Rech 913fdeb168 JCLOUDS-1148: Fix token caches in OAuth flows 2016-09-01 09:55:23 +02:00
Ignasi Barrera 9662edf903 Update poms to include Docker and fixed groupId after promotion 2016-08-30 11:14:33 +02:00
Ignasi Barrera c493e2aa49 Promoted Docker from jclouds-labs 2016-08-30 11:14:20 +02:00
Josef Cacek a4e2110a63 JCLOUDS-1158 fix Docker find image Predicate for cases where repoTags field contains 'docker.io/' registry host prefix 2016-08-29 22:31:44 +02:00
Josef Cacek 71dd766227 Docker live test fix - SshToCustomPortLiveTest didn't work for remote docker endpoints due to wrong port number used 2016-08-29 22:27:32 +02:00
Josef Cacek c4605a32d4 [JCLOUDS-1157] fix networks in DockerComputeServiceAdapterLiveTest 2016-08-19 17:51:42 +02:00
Josef Cacek 58e11d42d1 Update Docker README.md 2016-08-19 17:49:25 +02:00
Iván Lomba 79e95c5a4c JCLOUDS-482: Add support for arbitrary CPU and RAM
This is a combination of 16 commits:

* First approach to ArbitraryCpuRamTemplateBuilderImpl
* Several fixes: refactoring some names, format, identation problems, some missing license headers and generateId method
* Refactored parse utility
* Added GoogleComputeEngineArbitraryCpuRamTemplateBuilderImpl to support GCE custom machine URI
* extracted hardware creation to automaticHardwareForCpuAndRam method
* Fixed ide automatic asterisk imports
* correcting WIP base case PR according to comments
* added machineTypeUriToHardware to set custom hardware in nodes
* fix checkstyle violations and other PR comments
* Set the providerId to custom machineType URI and fix adding node log
* Arbitrary hardware tests added to BaseTemplateBuilderLiveTest and GoogleComputeEngineTemplateBuilderLiveTest
* Added two more tests to BaseTemplateBuilderLiveTest
* Move repeated constants to TestUtils to reuse code
* Fix full path in the Hardware id and URI
* Add custom hardware tests to BaseComputeServiceLiveTest and GCEServiceLiveTest
* Change customHardware test to use buildTemplate and fix identation
2016-08-16 02:44:04 +02:00
Josef Cacek 9af449651d JCLOUDS-1153 Fix empty Docker repoTags field in ImageToImage function 2016-08-12 09:27:08 +02:00
Ignasi Barrera 449c6d8d84 Always take into account the configured template builder spec when building a template in live tests 2016-08-12 00:28:01 +02:00
Josef Cacek 0616b865ed [JCLOUDS-1147] upgrade snakeyaml version in byon and resolve removed deprecated Loader class 2016-08-02 15:28:41 +02:00
Andrew Donald Kennedy 6408c3a835 Add Network autovalue builder and tests 2016-08-01 11:42:31 +02:00
Andrew Donald Kennedy f2ce5679cc Connect container to list of networks in options 2016-08-01 11:42:26 +02:00
neonbunny e7bf9b1298 Ensure the canonicalRequest is logged properly
Resolves JCLOUDS-1143
2016-07-19 14:50:03 +01:00
Zack Shoylev 42079e1392 Parallel upload for BaseBlobStore 2016-07-15 04:15:17 -05:00
Andrea Turli a515ce2f22 Change line endings on files recursively 2016-07-14 00:02:13 +02:00
Andrew Gaul 4874a1eb18 JCLOUDS-1137: Handle TOCTOU during blobMetadata
A similar issue exists when getting a blob payload when a caller
simultaneously removes the blob.
2016-07-11 22:02:15 -07:00
Andrew Gaul 08e78c979e Add S3Proxy profile to skip failing tests 2016-07-11 16:42:09 -07:00
Zack Shoylev 6bff97b6d3 Changes the upload behavior to parallel, a TODO 2016-07-01 11:26:56 -05:00
Duncan Grant 7a979ba87b ImageId can be image name or id and will pull from hub 2016-06-28 09:47:43 +02:00
Andrew Gaul fff12293f9 JCLOUDS-1125: Add missing expected exception 2016-06-23 23:06:13 -07:00
Andrew Gaul 6df0472ab5 JCLOUDS-1125: local blobstore list MPUs 2016-06-23 21:45:04 -07:00
Arvind Nadendla 112c64e92a Make links nullable 2016-06-20 18:11:12 -05:00
Ignasi Barrera bde70457d0 JCLOUDS-1105: Do not create the default security group if custom groups are specified 2016-06-17 22:18:35 +02:00
urban 71b3a2b631 JCLOUDS-1129:Add more interfaces of the same network 2016-06-17 22:16:59 +02:00
Andrew Donald Kennedy 496fbae646 Fix incorrect key format check in Docker 2016-06-17 00:01:35 +02:00
Andrew Gaul 5fec2346a6 JCLOUDS-1028: Configure idempotent methods
Enable POST for Atmos, S3, and Swift.
2016-06-15 16:35:22 -07:00
Andrew Gaul 0bd2959410 JCLOUDS-1125: portable list multipart uploads
Only Azure, B2, and S3 support this operation.  Some MultipartUpload
fields become nullable.
2016-06-13 16:26:43 -07:00
Andrew Gaul 445664c9f1 JCLOUDS-1125: S3 list multipart uploads 2016-06-13 16:26:43 -07:00
Aled Sage 730a4cfe87 Docker.ContainerToNodeMetadata: remove needless mocking
Previously it mocked the container and the StateToStatus. It just
asserted that getter methods were called, rather than confirming the
resulting NodeMetadata had the right values.

By removing some of the mocks, it not only simplifies the code but
improves code-coverage. (e.g. if StateToStatus was being passed the
wrong value, the previous test would not have noticed).
2016-06-13 17:18:01 +02:00
Aled Sage fc88756d5a docker: get container’s IPs from all networks 2016-06-13 17:17:56 +02:00
Duncan Grant 91339b200e Node json should be optional
The Node element of the container json is optional
as well as nullable.
2016-06-13 12:56:05 +02:00
Zack Shoylev c1ce819f61 updateTemporaryUrlKey test 2016-06-07 17:37:39 -05:00
Duncan Grant ebc8f7568f Use container host ip not manager ip
When providing node ip in metadata jclouds was using the
ip of the docker manager which was fine for docker machine
but fails when using a swarm cluster.  This uses the ip returned
from docker.
2016-06-06 16:16:44 +02:00
Andrew Gaul a67ae3f27b Make inner classes static where possible
Found via error-prone.
2016-06-01 20:03:54 -07:00
Josef Cacek c0469cc9b7 [JCLOUDS-1118] fix configuration options location; mark some fields Nullable 2016-05-26 12:07:39 +02:00
Josef Cacek d4cf774389 [JCLOUDS-1117] fix for advanced Docker configuration - the Config.Builder should stay unchanged if used 2016-05-26 12:07:33 +02:00
Andrew Gaul 4ef28251c5 Add missing import
Regression from c5d845d368adf01909fd8ab5eeb824f7c44fb69e.
2016-05-23 20:26:01 -07:00
Andrew Donald Kennedy 61fb3ec145 Support supplying key and certificate to Docker as data 2016-05-23 17:52:24 +02:00
Jim Spring f46b38dd89 client credentials JWT support 2016-05-20 00:10:37 +02:00
Zack Shoylev c96cfb6176 Fix cleanup when the security group extension is not available. 2016-05-19 12:08:36 -05:00
Andrew Gaul 41bdd9c5a9 Skip unimplemented signed URL tests in S3 provider
jclouds aws-s3 provider supports these but s3 does not.  Also expect
failure in atmos and azureblob.  Follow on to
a4c40e15cd.
2016-05-12 12:12:52 -07:00
Andrew Gaul e423bc949e Avoid use of primitive wrapper constructors
Deprecated in Java 9.
2016-05-09 22:47:27 -07:00
Andrew Gaul 62410d31ae Handle missing containers in LocalBlobStore.list
Also fix FilesystemStorageStrategyImpl.getContainerMetadata to return
null on missing container as jdbc and transient already do.
2016-05-06 21:36:28 -07:00
Andrew Gaul a4c40e15cd Handle unimplemented signed URL tests in providers
This commit makes it evident in source code which providers do not
support this feature.
2016-05-06 10:31:37 -07:00
Andrew Gaul 0af3380a60 Address error-prone CheckReturnValue errors
Found via Guava 20.0.
2016-04-28 14:16:22 -07:00
Andrew Gaul da386ad0e2 Correct FindBugs warnings 2016-04-27 20:28:37 -07:00
Ignasi Barrera 34114dea00 JCLOUDS-1104: Extension namespaces are deprecated and can be null 2016-04-26 23:15:51 +02:00
Ignasi Barrera 04f1bb2b49 JCLOUDS-1104: Extension namespaces are deprecated and can be null 2016-04-26 22:38:45 +02:00
Andrew Donald Kennedy 42d0576aa9 Add openStdin option to Docker template options and set all port bindings explicitly 2016-04-26 10:33:17 +02:00
Andrew Gaul 6446627aad Correct equals with incompatible types
Found via error-prone.
2016-04-24 23:28:55 -07:00
Andrew Gaul 66cda12b50 Avoid eager evaluation of Preconditions messages
Found via error-prone.
2016-04-24 23:28:55 -07:00
Andrew Donald Kennedy 49f7bc37af Make DockerTemplateOptions values null safe 2016-04-19 17:01:18 +02:00
Andrew Gaul 3cf4e3d79c JCLOUDS-1101: Correct generics wildcard errors
Always incorrect but previously broken on Java 9.  Reference:

https://bugs.openjdk.java.net/browse/JDK-8075793
2016-04-18 09:49:58 -07:00
Ignasi Barrera 819141a608 Fixed OAuth authentication flow injections 2016-04-07 10:10:10 +02:00
Andrew Donald Kennedy 047595c7bb Added volumesFrom to Docker template options 2016-04-05 10:22:56 +02:00
Jim Spring 0420741690 Add support for Azure AD authentication using Service Principal and Password 2016-04-01 14:50:09 +02:00
Oleg 74a2a2683f JCLOUDS-1102: Fix. Rackspace returns a new structure for volume types. 2016-04-01 14:48:12 +02:00
Fernando Ribeiro 80beb9b397 JCLOUDS-1098: Fix OpenStack Marconi Unit Tests 2016-03-23 16:28:34 +01:00
Fernando Ribeiro 92e6319cd7 JCLOUDS-1095: Update OpenStack KeyStone Support for Zaqar 2016-03-23 10:29:07 +01:00
Zack Shoylev 760995a46e Use non-privileged mode for compute 2016-03-21 12:49:07 -05:00
Andrew Gaul 6e7801ad58 JCLOUDS-766: Fix issues with chunked upload signer
Previously we created a new builder instead of using the one the
method modified and did not preserve content encoding.  Addresses
AWSS3BlobIntegrationLiveTest.testPutInputStream test failures.
2016-03-20 16:06:51 -07:00
Andrew Gaul 8053abb530 JCLOUDS-766: Check metadata and headers for MD5
Addresses AWSS3ClientLiveTest.testMultipartSynchronously test
failures.
2016-03-18 22:56:54 -07:00
Andrew Gaul 35c5d7ffc0 JCLOUDS-766: Include Content-MD5 in v4 signature
Addresses AWSS3BlobIntegrationLiveTest.deleteMultipleObjects test
failures.
2016-03-18 16:58:03 -07:00
Andrew Gaul feae011c4d JCLOUDS-766: URL encode path for v4 signatures
Addresses AWSS3BlobIntegrationLiveTest.deleteObject test failures.
2016-03-18 15:05:05 -07:00
IgnacioCalvo 7d2f1e8b4d JCLOUDS-1080: Force JSON format for requests
Also make all fields optional.
2016-03-17 20:40:51 -07:00
Josef Cacek f3ee898c13 [JCLOUDS-1089] Add image history support to Docker ImageApi 2016-03-08 23:06:21 +01:00
Josef Cacek 831cdc67c3 [JCLOUDS-1002] provide access to Docker container Config object in the Node template options 2016-03-08 23:01:52 +01:00
Zack Shoylev f8ebbfdf8a Fixes an intermittently failing swift live test. 2016-03-08 12:38:13 -06:00
Andrew Gaul c18371a793 JCLOUDS-766: Add eu-central-1 to AWS S3 regions
Also clean up some missing and duplicated properties.
2016-03-07 21:21:08 -08:00
Andrew Gaul dd670f3f78 JCLOUDS-1064: More helpful error for null length 2016-03-06 19:08:26 -08:00
Zack Shoylev 243afed278 Add alias fallback info to keystone and nova extensions. 2016-02-24 11:22:10 -06:00
Josef Cacek 3f1fe271ed [JCLOUDS-1084] Docker live tests fixed and made more robust 2016-02-22 17:16:40 +01:00
Josef Cacek e0ab5d848a [JCLOUDS-1079] Make Floating IPs public in the NodeMetadata in openstack-nova provider 2016-02-19 11:59:52 +01:00
Zack Shoylev 8bbcfed312 Ensures the Swift container list call requests JSON as per spec 2016-02-18 18:48:55 -06:00
Zack Shoylev 738121d934 Renames extension resolver 2016-02-16 22:50:41 -06:00
Andrew Gaul e0a7ea7fdf Only quote ETag if it does not already have quotes 2016-02-16 16:29:54 -08:00
Andrew Gaul 7eb46cce36 JCLOUDS-651: Swift support for conditional copies 2016-02-16 16:29:54 -08:00
Andrew Gaul 6cdb1216a7 JCLOUDS-651: S3 support for conditional copies 2016-02-16 16:29:54 -08:00
Andrew Gaul cc8af838e8 JCLOUDS-651: Atmos support for conditional copies 2016-02-16 16:29:54 -08:00
Andrew Gaul 293d3f864e Convert CopyOptions into an AutoValue
This commit requires an interface change since AutoValue lacks support
for Optional and uses Nullable annotations instead.
2016-02-16 16:29:54 -08:00
Zack Shoylev c8bbb44f37 Enhance the way openstack extensions are resolved. Needed for new openstack versions. 2016-02-16 15:18:39 -06:00
rongallagher 27b3a844f8 JCLOUDS-1072: Add support for environment-specific run lists to Role 2016-02-10 12:09:19 +01:00
Andrew Gaul 2bd0550110 Add support for Swift conditional copy 2016-02-09 16:34:48 -08:00
Zack Shoylev 288235f2d5 Adds more information about the neutron extensions. Name can already be used for automatic resolution. Needed because namespace is being deprecated. Alias should also be added at some point. 2016-02-09 08:28:58 -06:00
Reijhanniel Jearl Campos 01ca3425cc JCLOUDS-691: Remove 404 fallbacks of PUT and POST calls from OpenStack APIs 2016-02-06 08:02:16 +08:00
Andrew Gaul 6371235568 Null out tmpFile to avoid remove after rename 2016-02-05 12:35:27 -08:00
Andrew Gaul 6cefc99cf0 Always delete tmpFile in filesystem putBlob
Previously we would only do this on the exceptional path.  Also throw
IOException on failed rename for consistency.
2016-02-05 00:52:37 -08:00
Andrew Gaul 9feeee8347 Set xattr before rename to make blob create atomic
Previously concurrent operations could expose an object before put had
completed.  Note that the temporary file is still exposed to the
client.
2016-02-04 23:14:54 -08:00
Andrew Gaul be96b9f270 Suppress spurious ignored return value errors
Found with Guava 20.
2016-02-04 14:57:46 -08:00
Reijhanniel Jearl Campos d83282ca53 JCLOUDS-691: Remove 404 fallbacks of PUT and POST calls from OpenStack APIs 2016-02-04 12:10:06 +01:00
Andrew Gaul de333e8b3c Check Content-Length in local blobstore putBlob 2016-02-03 22:03:48 -08:00
Andrew Gaul 19b3a41c90 Remove unnecessary static imports
Found via error-prone.
2016-01-29 09:23:54 -08:00
Andrew Gaul 6360023f09 Remove unnecessary static imports
Found via error-prone.
2016-01-29 09:14:55 -08:00
Andrew Gaul 86e947dded Revert "Always return ETag from filesystem object store"
This reverts commit 496e27f1af.  This
commit imposed too much computational overhead when listing blobs.
2016-01-28 23:04:12 -08:00
Andrew Gaul a8f5401f6c Enable filesystem service tests 2016-01-28 22:42:05 -08:00
Ignasi Barrera 773aa30c64 JCLOUDS-1067: Fix cookbook grouping mapping in Chef metadata 2016-01-28 15:12:29 +01:00
Andrew Gaul 02b2e80b27 Delete single- and multi-part objects in Swift
Due to Swift's wonky MPU implementation we must try the multi-part
delete first followed by a single-part delete if it fails.  Previously
delete would leave orphan subobjects.  Fixes andrewgaul/s3proxy#92.
2016-01-26 21:22:54 -08:00
Andrew Gaul 68ff250c38 Return response from StaticLargeObjectApi.delete 2016-01-25 13:26:03 -08:00
Andrew Gaul 3a65df1e2e JCLOUDS-988: Subclass StaticLargeObjectApiLiveTest in Cloudfiles providers
This allows tests to run.
2016-01-22 14:01:49 -08:00
Ignasi Barrera ef7b85130e JCLOUDS-1056: Configure OSGi packaging 2016-01-22 11:34:07 +01:00
Andrea Turli a4a255fa4a improve roll-back strategy when floating-ip are not available
- improve destroyNodes to clean up securityGroups and keyPair created explicitly for that node
- refactor clean up server in one place
2016-01-22 11:02:44 +01:00
Andrew Gaul 100d1dac6c Do not override S3 provider methods
Fixes Guice 4.0 support.
2016-01-21 10:12:19 -08:00
Andrew Gaul 7b3a300d51 Skip testBlobAccess on filesytem
Follow on to 52dc1a3ccf.
2016-01-20 23:47:06 -08:00
Andrew Gaul 52dc1a3ccf Add BaseBlobIntegrationTest.testSetBlobAccess
Similar to BaseContainerIntegrationTest.testSetContainerAccess.
2016-01-19 14:40:55 -08:00
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
Andrew Gaul 6bc2ff7e00 JCLOUDS-1042: Remove unused bucketAcls 2016-01-17 17:35:12 -08:00
Andrew Gaul 68e6539192 JCLOUDS-1042: Remove unneeded ACL swizzling
Follow on to 750c5d5316.
2016-01-17 17:30:06 -08:00
Andrew Gaul b63f74a6eb JCLOUDS-948: Swift Cache-Control support
Not supported.
2016-01-15 13:22:15 -08:00
Andrew Gaul f292408af4 JCLOUDS-948: S3 Cache-Control support
Deprecate older S3-specific Cache-Control mechanism.
2016-01-15 13:22:14 -08:00
Andrew Gaul 82ad05e98e JCLOUDS-948: Filesystem Cache-Control support 2016-01-15 04:43:39 -08:00
Andrew Gaul 77d3db0058 JCLOUDS-948: Atmos Cache-Control support
Not supported.
2016-01-15 04:41:01 -08:00
Zhao Jin 8bddbb496a JCLOUDS-480: AWS S3 v4 signature
This includes support for chunked uploads.
2016-01-13 15:08:18 -08:00
Andrew Gaul c20fcb8cda Do not compare MPU ETag contents
AWS S3 MPU ETag are hashes of the part ETag headers but some
implementations, specifically S3Proxy with the filesystem provider,
represent multi-part objects as a single object.  Remove these checks
since they add nothing.
2016-01-12 15:36:37 -08:00
Rita Zhang a12ce5a8b7 Add support for AzureBlobStore.getBlobAccess and RegionScopedSwiftBlobStore.getBlobAccess.
They are currently throwing UnsupportedOperationException exception.
2016-01-05 15:33:50 -08:00
Andrew Gaul 91b202f4ea JCLOUDS-844: Swift putBlob ACLs 2015-12-22 00:46:34 -08:00
Andrew Gaul 85951e2af9 JCLOUDS-844: S3 putBlob ACLs 2015-12-22 00:46:34 -08:00
Andrew Gaul cc0d0d40c5 JCLOUDS-844: Atmos putBlob ACLs 2015-12-22 00:46:33 -08:00
Andrew Gaul 86491bc607 JCLOUDS-844: Portable putBlob ACLs 2015-12-22 00:46:33 -08:00
Andrew Gaul 37f307ecd0 Skip testSetContainerAccess for local blobstores
These lack a public HTTP endpoint needed for this test.
2015-12-20 01:14:33 -08:00
Andrew Gaul ffa7c5c587 Update via canned ACLs instead of XML ACLs for S3
These are simpler than the full XML API and better supported by
non-AWS S3 implementations, e.g., Ceph, S3Proxy.  Further this makes
the provider more consistent when creating a bucket or object which
only supports setting canned ACLs.
2015-12-19 19:28:03 -08:00
Andrew Gaul c2ba0bef32 Allow updating S3 canned ACLs
These are simpler than the full XML API and better supported by
non-AWS S3 implementations, e.g., Ceph, S3Proxy.
2015-12-19 19:28:03 -08:00
Andrew Gaul 4c8f758e3a Loosen restrictions for S3 bucket naming
US Standard and most S3 clones allow more bucket names than DNS
allows.
2015-12-19 15:10:01 -08:00
Andrew Gaul 750c5d5316 JCLOUDS-1042: Remove unneeded ACL swizzling
The previous commit shows that we do not need this.
2015-12-18 23:28:39 -08:00
Andrew Gaul e59039a109 Update namespaceAliasBinder reference
Regression from 415a8a6600.
2015-12-18 21:56:25 -08:00
Zack Shoylev 7d73a0392a Adds nova extension names and an example test 2015-12-16 11:35:09 -06:00
Ignasi Barrera 962de83e86 JCLOUDS-1050: Fix BootstrapConfig deserialization in Chef 2015-12-16 16:05:09 +01:00
Zack Shoylev 415a8a6600 Allows extensions to fall back on using an optional name in keystone/openstack 2015-12-14 10:24:59 -06:00
Andrew Gaul b6e20822d8 Remove @Nullable from methods returning primitives
Found via error-prone.
2015-12-12 10:20:34 +08:00
Andrew Gaul b47c50b7a5 Correct malformed format strings
Found via error-prone.
2015-12-12 08:53:08 +08:00
Andrew Gaul 06e379d7a5 Remove @Nullable from methods returning primitives
Found via error-prone.
2015-12-12 08:53:07 +08:00
Graeme-Miller 75e2c6999c Instead of setting up static NAT for all networks, we setup static NAT for default network only 2015-12-11 16:39:20 +01:00
Andrew Gaul 4abd5dd16f Revert "Delete parts when removing Swift multipart objects"
This reverts commit 3c1588527d.
2015-12-08 10:08:22 +08:00
Josef Cacek 0fb1b459a6 JCLOUDS-1044 fix handling NULL JsonTokens in adapters under NullFilteringTypeAdapterFactories class 2015-12-05 22:45:24 +01:00
Ignasi Barrera 90423d7b9b Fix filesystem api in OSX 2015-11-24 15:38:10 +01:00
Ignasi Barrera 86dadc3a75 JCLOUDS-1038: Fix date deserialization in EC2 apis 2015-11-24 14:53:18 +01:00
Zack Shoylev 02b79106c3 Fixes tenantId when using the keystone admin extension 2015-11-23 16:03:02 -06:00
Zack Shoylev ab25fc7259 putblob fails when file exists 2015-11-23 16:01:46 -06:00
Ignasi Barrera 29a8474ba0 JCLOUDS-1041: Fix NPE when deserializing Port in Docker 1.9.1 2015-11-23 22:31:01 +01:00
Ka-Hing Cheung ca70d44143 don't remove directory if it's a blob
the filesystem blob store was always removing a/ when a/b was
removed, even if the client explicitly created a/. this patch
fixes that
2015-11-20 17:27:19 -08:00
Andrew Gaul f706d9c13a JCLOUDS-835: Atomically put filesystem blobs
Write to a temporary file and rename to the desired destination to
better match object store semantics.
2015-11-20 14:44:02 -08:00
Zack Shoylev 2efcb2c5a9 Fixes a windows locale bug with the "Everyone" principal 2015-11-19 11:50:15 -06:00
Andrew Gaul 3c1588527d Delete parts when removing Swift multipart objects
Swift implements multi-part upload with user-visible parts and an
explicit manifest.  When deleting an MPU blob it can delete only the
manifest or both the manifest and parts.  For consistency with other
providers, we now do the latter in the portable abstraction.  Swift
ignores the multipart-manifest=delete parameter for single-part
objects.  Fixes andrewgaul/s3proxy#92.
2015-11-17 23:06:33 -08:00
Andrew Gaul 721a0dbd3c Add support for standard_ia storage class
This enables storage with lower at-rest prices, higher request prices,
and lower availability.  Also rework existing reduced redundancy
parsing into a more generic storage class.  More background on
standard_ia:

https://aws.amazon.com/blogs/aws/aws-storage-update-new-lower-cost-s3-storage-option-glacier-price-reduction/
2015-11-16 14:04:51 -08:00
Andrew Gaul 22c789da9e JCLOUDS-894: Use prefix when listing MPU on Swift
Previously we only used the blob name and not the blob
name/slo/timestamp/part size cookie which yield extra parts when
listing an MPU with parts from a previous MPU.  Listing using the
stricter prefix gives the expected results.
Fixes andrewgaul/s3proxy#91.
2015-11-13 12:15:29 -08:00
Andrea Turli 33522b8945 add docker NetworkAPI
- bump api version to 1.21
- use `alpine/3.2` image for liveTests
- use `kwart/alpine-ext:3.2-ssh` image as ssh-able image
- assert request bodies created correctly in NetworkApiMockTest
2015-11-13 16:47:01 +01:00
Zack Shoylev 41ce90ec36 Fixes tests failing on windows filesystems Makes windows behavior more consistent, especially for deletes 2015-11-11 21:01:13 -06:00
Ignasi Barrera 9df30c5a09 JCLOUDS-717: Join Enterprise and OpenSource Chef 2015-10-30 01:02:53 +01:00
Ignasi Barrera 985d45122b JCLOUDS-987: Create security groups in AWS if subnetId is specified 2015-10-29 01:54:03 +01:00
Ignasi Barrera 0e7283e191 Convert logback.xml to unix format 2015-10-28 23:15:28 +01:00
Andrew Gaul 592a4e7cce JCLOUDS-786: Remove legacy swift provider
The modern openstack-swift provider obsoletes this.
2015-10-25 20:39:39 -07:00
Stuart Hendren ada17d3e47 [elasticstack] fix for incorrect logging message
Was logging when it was present rather than when it had failed to find it.
2015-10-24 21:39:40 -07:00
Josef Cacek 746038e8b2 [JCLOUDS-1021] Add JavaDoc to cover behavior of repoTags() method in org.jclouds.docker.domain.Image 2015-10-21 17:16:27 +02:00
Josef Cacek 3260fa5803 Add LiveTest to cover loginPort (SSH) customization in Docker. 2015-10-21 16:10:29 +02:00
Josef Cacek f0fc31e299 [JCLOUDS-1020] fix query parameter name in Docker's BuildOptions 2015-10-21 16:10:25 +02:00
Josef Cacek 3342e88f80 [JCLOUDS-1017] add tagImage() method to ImageApi 2015-10-21 16:10:21 +02:00
Josef Cacek 9271c11b67 [JCLOUDS-1010] use a lightweight image as a base for Docker build test 2015-10-21 16:10:18 +02:00
Ignasi Barrera 01d43f503b JCLOUDS-1014: Make the login port lookup function configurable 2015-10-19 16:14:05 +02:00
Andrew Gaul 4829bbbd2c JCLOUDS-964: S3 multipart copy 2015-10-14 23:17:40 -07:00
John McDonnell ef816119b1 AS per JCLOUDS-1012 project and projectId parameters are not supported. This commits adds the 2 parameters to the usage response. 2015-10-13 10:35:13 +02:00
John McDonnell c73b82b58b As in JCLOUDS-991 it appears size is missing as a UsageResponse parameter, particularily for Volume usages. This commit adds it into the UsageRecord class. 2015-10-07 20:42:47 +02:00
googlielmo 8ca3a326c8 Fix dnsSearch type
- dnsSearch declared as String, corrected to List<String>
2015-10-05 12:36:43 +02:00
Josef Cacek f6ad2cc380 [JCLOUDS-1007] Implemented Docker Exec support in MiscApi 2015-10-02 16:29:50 +02:00
Josef Cacek d7b3f5d98f [JCLOUDS-1011] force closing HTTP client connection after using Docker build REST API method 2015-10-02 15:58:42 +02:00
Josef Cacek 288d387610 Format code of DockerUntrustedSSLContextSupplier to fit jclouds code conventions and checkstyle settings 2015-09-28 11:20:30 +02:00
Josef Cacek 4e308868bd [JCLOUDS-1006] Fix DockerUntrustedSSLContextSupplier to allow tests runs against endpoints without TLS configured 2015-09-28 11:19:02 +02:00
Josef Cacek e21767dbde JCLOUDS-997 Allow nullable docker configuration - the null has another meaning than empty list/map (e.g. CMD: null=default, emptyList=no-command) 2015-09-18 10:28:37 +02:00
Timur Alperovich 2c2b498066 JCLOUDS-217: Old Swift should encode blob names.
When constructing the URI from the blob names, the deprecated Swift
provider should encode the blob names.
2015-09-17 13:08:44 -07:00
Timur Alperovich 7151a3875b JCLOUDS-217: Cloudstack: avoid encoded strings.
jclouds should not use encoded strings in tests for Cloudstack.
2015-09-17 13:08:44 -07:00
Andrew Kennedy 3901403379 Added ExtraHosts option to template 2015-09-17 14:48:30 +02:00
Josef Cacek 15651822be JCLOUDS-996 fix location of NetworkMode parameter from Docker Remote API and make it configurable from DockerTemplateOptions 2015-09-17 12:01:34 +02:00
Timur Alperovich 85357cf92a JCLOUDS-217: Filesystem: avoid trailing spaces.
On Windows, we need to avoid trailing spaces, as the test fails to
create the required blob. Specifically, we should not test blobs named
" " and "%20 ".
2015-09-08 15:19:03 -07:00
Timur Alperovich f7370d2b12 JCLOUDS-217: Nova: do encode form parameters.
OpenStack Nova tests should not pre-encode parameters before passing
them to generate the HTTP requests, as they end up encoded twice.
2015-09-08 15:19:03 -07:00
Timur Alperovich 9b15fdfde8 JCLOUDS-217: SQS: Do not encode parameters.
SQS API tests should not encode parameters when constructing the
expected HTTP requests.
2015-09-08 15:19:03 -07: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
Timur Alperovich b87ca1b33a JCLOUDS-217: CloudStack do not encode parameters.
Parameters when creating an HTTP request should not be encoded in the
CloudStack tests, as they end up being doubly encoded.
2015-09-08 15:19:03 -07:00
Timur Alperovich 6df2233867 JCLOUDS-217: Do not encode strings in STS tests.
When constructing the expected HTTP requests in STS tests, STS API
should not pre-encode the strings. The form parameters are already
encoded and are otherwise encoded twice.
2015-09-08 15:19:02 -07:00
Timur Alperovich a0b95ea7a3 JCLOUDS-217: Fix encoding handling in S3.
When constructing the query path, S3 does not properly handle encoded
paths. For example, if a blob named %20 is to be placed into the blob
store, S3 would end up placing blob named " " (what %20 represents).
This occurs because the S3 provider examines the URI's path portion
(which is presented in a decoded fasion to the caller). After
examining the path, it is not encoded again. Instead, we should call
getRawPath() to avoid this issue.

There are two issues on the decoding path:
1. Given a blob named " ", S3 API will throw a RuntimeException due to
a NULL check -- the key that it uses is NULL to represent the XML
content " " corresponding to the blob name.
2. Given a blob named "%20 ", S3 API will generate a URI for a blob
named "%20%20", which is also incorrect. The correct URI would be
"%2520%20" (escaping the first "%" and " " characters).

The first issue is due to the currentOrNull() helper, which calls
trim() on the string and then compares the string to an empty string.
This means that a blob named " " will be parsed as "" and then
converted to NULL as the result of that method. Passing "null" as the
key then fails in a number of places (notably, appendPath()).

The second issue is due to the appendPath() method in the jclouds Uris
class. The issue here is that appendPath() calls urlDecode() and
passes the result to path(). The path() method, in turn, also calls
urlDecode(). After these transformations, a properly encoded blob of
the form %2520%20 turns into "%20 " and then "  " (two spaces). After
these transformations the path is encoded again, resulting in "%20%20"
(which is wrong).
2015-09-08 15:19:02 -07:00
Irmo Manie 9be7339c32 JCLOUDS-993 - Add missing parameters to `VirtualMachineApi`
- `serviceOfferingId` at `#changeServiceForVirtualMachine`
- `options` of type `UpdateVirtualMachineOptions` at
  `#updateVirtualMachine`
2015-09-06 23:59:15 +02:00
Irmo Manie 89f81840d2 JCLOUDS-995 - Add `userData` property to `CloudStackTemplateOptions` and map it in the underlying adapter. 2015-09-06 23:58:21 +02:00
Oliver Gondža edde721937 JCLOUDS-962: Make all @Provider methods final 2015-09-02 23:54:44 +02:00
Nate Rosenblum 496e27f1af Always return ETag from filesystem object store
If the Content-MD5 extended attribute is missing for an object,
recompute it and return as the ETag. Primarily affects OS X.
2015-08-20 14:46:17 -07:00
Timur Alperovich 238cc525f9 JCLOUDS-992: Old Swift: treat directories as blobs 2015-08-20 12:42:11 -07:00
Timur Alperovich a2d8dfcb27 JCLOUDS-992: Handle directories as blobs in S3. 2015-08-20 12:42:11 -07:00
Timur Alperovich 2c417c83a6 JCLOUDS-992: Handle directories as blobs in Swift. 2015-08-20 12:42:10 -07:00
Josef Cacek 644541a2f4 JCLOUDS-990: fix condition DockerTemplateOptions.copyTo() method 2015-08-19 14:15:25 +02:00
Zack Shoylev 92ccea8c4f Adds a mock test for a much longer token format for Rackspace identity 2015-08-17 18:01:28 -05:00
Ignasi Barrera 586e31805a [JCLOUDS-898] Allow insecure connection in Docker.
Original author was @andreaturli and the original patch was #172.
2015-08-14 10:56:07 +02:00
Andrew Gaul e2b6950462 JCLOUDS-872: Swift copy object and append metadata
The existing method replaces metadata.
2015-08-11 13:26:56 -07:00
Andrew Gaul 4f32e863ad JCLOUDS-883: Replace metadata during Swift copy
Previously Swift copy would append metadata instead of replacing it.
2015-08-06 11:26:45 -07:00
Adrian Bravo eafdeb5266 JCLOUDS-967: Chef Client Model update with public key attribute
JCLOUDS-967: Made PubKey nullable and added tests to verify serialization works with and without it
2015-08-05 09:40:28 +02:00
Andrew Gaul d86a6c9ee1 Correct Checkstyle violations 2015-07-31 15:28:25 -07:00
Andrew Gaul 86f47394bf Correct FindBugs violations 2015-07-31 14:53:58 -07:00
Andrew Gaul 98b3105669 Address error-prone errors
Mostly of the form, Collection.size() >= 0.
2015-07-30 15:40:03 -07:00
Arvind Nadendla ba55ab4b12 Fix bug where password information is printed in logs in case of exceptions 2015-07-30 12:16:16 -05:00
Ignasi Barrera 5d30f859aa Fix AWS and EC2 TemplateBuilder live tests 2015-07-29 11:58:19 +02:00
Zack Shoylev 632e0c3f66 Fixes an error caused by not using an assert by @CheckReturnValue. Also see jsr305 2015-07-28 12:01:57 -05:00
Marcus Wanner 35b71c5728 Add awareness of Manila and SHARED_FILESYSTEM openstack projects to keystone 2015-07-27 07:22:43 -05:00
Arvind Nadendla d7c4867752 add os-hypervisors extension for openstack-nova 2015-07-27 07:05:06 -05:00
Csaba Palfi 55a7d8ce3c [docker] upgrade to docker 1.7 and refactor TLS support 2015-07-22 10:22:36 +02:00
Ka-Hing Cheung 2c578d7bcb marker should be null when there are no more items 2015-07-21 15:46:58 -07: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
Arvind Nadendla a38ee21207 Split availability Zone API to return Basic Info and Detailed info 2015-07-16 13:11:52 -05:00
Zack Shoylev ca3c2622ff Adds missing floating-ip-pool expect test
Fixes broken namespace for the ip pool extension
2015-07-15 16:25:01 +02:00
Zack Shoylev dcba6fe51a Fixes missing @Deprecated annotation 2015-07-15 16:11:12 +02:00
Ka-Hing Cheung ad38e48205 range get of manifest object has no etag 2015-07-14 17:20:14 -07:00
Arvind Nadendla 537f411ebd Adding missing "hosts" field to OpenStack Nova AvailabilityZone 2015-07-14 18:54:40 -05:00
Timur Alperovich e4161a59bb Move tests to test the file system API.
Move the prefix and delimiter tests from BaseContainerLiveTest to
BaseContainerIntegrationTest, as that class is subclassed in
Filesystem integration tests. This will make sure the file system blob
store will not regress.

The ListContainerTest is updated to _not_ use a file separator
character, as that leads to a possible creation of directories.
Instead, "-" is used as the delimiter for the delimiter option tests.
2015-07-14 14:11:34 -07:00
Timur Alperovich fe13b07233 JCLOUDS-929: Implement delimiter support in S3.
Plumb the delimiter option to the S3 API.
2015-07-13 14:34:59 -07:00
Timur Alperovich 6ec11fd6ec JCLOUDS-929: Implement delimiter support in Swift.
The patch adds the delimiter support in the openstack-swift API. As
part of the change, the subdirectory support in results is introduced.
This occurs when a prefix and delimiter options are set and there are
subdirectories present in the listing (i.e. multiple objects under the
same prefix/delimiter). In this case, Swift will return a list of
"subdir" objects (similar to CommonPrefixes in S3), which need to be
treated differently.
2015-07-13 14:34:59 -07:00
Timur Alperovich a29d75a5d1 JCLOUDS-929: Implement generic delimiter support.
The patch adds delimiter option support in the generic blob store
interface. A live integration test is added to verify that jclouds
correctly lists objects separated by a delimiter.
2015-07-13 14:34:58 -07:00
Andrew Bayer 1fe90b03c9 JCLOUDS-961 - Add d2, m4, t2 instance types for EC2 2015-07-13 16:10:58 +02:00
Zack Shoylev 65b7bdf282 Removes CopyObjectException in favor of jclouds-standard blobstore exceptions 2015-07-09 18:28:14 -05:00
Zack Shoylev 6945b04243 Fixes a small test bug on windows 2015-07-08 20:19:33 -05:00
Timur Alperovich 86af0753bf Swift: do not assume only 1 container in tests.
Openstack Swift ContainerApiLiveTest testListWithOptions assumes that
there are no other containers and that ContainerApiLiveTest container
will _always_ be the first container.

The patch changes the behavior of the test to instead pull out the
container from the returned list.
2015-07-07 18:05:20 -07:00
Timur Alperovich 5383148d9e Filesystem: disable directory integration test.
There is no notion of marker blobs in the file system blob store,
which means that when listing results after issuing the
"createDirectory" request, the marker blob will not be in the result
set.
2015-07-07 18:00:32 -07:00
Timur Alperovich 6d27fbb18a JCLOUDS-930: Handle subdir entries correctly.
When listing blobs, Swift returns an array of "subdir" entries for
every common prefix. The openstack-swift provider needs to process
such entries and add them to the result set. The subdir array is an
array of strings, so additional metadata needs to be added to the
objects (bogus ETag, bogus LastModifiedDate, and so on).

When directory marker blobs are used, this means that potential _two_
entries are generated for every directory if:
1. the delimiter is set and matches the directory blob (e.g. dir/ and
   delimiter /)
2. there are objects under the directory name (e.g. dir/blob), which
   will result in results that include common prefixes (subdir)

In the above example, we should expect two results: "dir" and "dir/"
representing the directory marker blob and the common prefix,
respectively.

This is caught in the testDirectory integration test.

The patch changes the behavior of the Swift provider to correctly
handle the results in the subdir stanza and changes the test to expect
the directory marker to be returned in the list.
2015-07-07 17:55:50 -07:00
Andrea Turli 82da165fdd [JCLOUDS-956] synchronizing allocateFloatingIPForNode helps 2015-07-03 13:29:54 +02:00
Andrew Gaul 41d598b03f JCLOUDS-894: Skip multipart tests on Atmos 2015-07-02 22:28:42 -07:00
Andrea Turli 289cce042a add FWaaS extension to openstack-neutron 2015-07-02 15:00:36 -05:00
Timur Alperovich 8c9344b501 JCLOUDS-930: Regression in a File System test.
Fix a regression in the file system blob store, where a test does not
expect the trailing delimiter character.
2015-06-29 21:41:33 -07:00
Andrew Gaul 1dcd4500ea JCLOUDS-930: disable testListDirectoryBlobsS3FS
Regression from 8677ffcb21.
2015-06-29 19:36:20 -07:00
Timur Alperovich 1cb0822972 JCLOUDS-930: Add prefix option to OpenStack Swift.
Plumbs the prefix option to the openstack-swift provider. In the
process, the support for the recursive option is modified to avoid
setting the _path_ parameter, but rather use the delimiter if required
(setting the delimiter is sufficient for a non-recursive listing).
2015-06-29 17:31:56 -07:00
Timur Alperovich c409c19ff3 JCLOUDS-930: Plumb prefix support down to S3.
Plumbs the ListContainerOptions.prefix setting down to the S3 API.
2015-06-29 17:31:56 -07:00
Timur Alperovich 7c7d2e2df6 JCLOUDS-930: Add the prefix option.
Add a prefix option to the ListContainerOptions class.
2015-06-29 17:31:55 -07:00
Andrew Kennedy 4edaf18226 Minor fixes for the Docker provider
- Tidy up DockerTemplateOptions and add tests for new options
- Make Dns a list of strings in HostConfig
- Change template option builder to remove use of optionals
- Update tests to verify HostConfig.Dns as list
2015-06-29 11:17:53 +02:00
Andrea Turli 61b06329d8 create java-xmlbuilder.version property for maven
add java-xmlbuilder to dependencyManagement so downstream project don't need to specify the version
2015-06-29 08:47:54 +02:00
Andrea Turli aa64e0d3e2 [NOVA] change some access modifiers to simplify the downstream provider impl
modify the BasicAuthenticator in Keystone
destroy node if creation timeouts
2015-06-26 15:05:06 +02:00
Zack Shoylev 87b885306b Remove old cloudfiles providers 2015-06-26 02:32:16 -05:00
Andrew Gaul 46493ed3b5 Avoid using internal testng methods 2015-06-25 11:43:17 -07:00
Ka-Hing Cheung 8b325d585e object stores typically sort the list of containers 2015-06-24 15:08:23 -07:00
Ka-Hing Cheung e0bafd4c10 list MPU parts with prefix listing instead of marker
we now use segment conventions that allow us to do more
efficient listing
2015-06-23 20:06:10 -07:00
Andrew Gaul 38fa41d056 JCLOUDS-941: Ignore metadata tests on Mac OS X
Also make testOverwriteBlobMetadata consistent with other tests.
2015-06-22 11:50:20 -07:00
Iván López 37a014ae00 JCLOUDS-941: Auto-detect filesystem Content-Type
When a filesystem blob does not have content metadata and when users
set jclouds.filesystem.auto-detect-content-type to tru, probe the file
type to return to clients.  This is useful when using jclouds to serve
an existing filesystem.
2015-06-21 22:55:57 -07:00
Ka-Hing Cheung b8b20c16f5 use segment names similar to those created by python-swiftclient
Currently swift creates blob-1, blob-2... blob-n for multipart
upload segments, which are very common names that can easily
collide with normal objects. This changes the naming convention
to that of python-swiftclient (the `swift' command line).

python-swiftclient also uses a different segment container by
default, that's not implemented by this patch
2015-06-19 17:34:40 -07:00
Andrew Gaul 1f7f8c8c86 Refine HTTP 416 into IllegalArgumentException
Providers yield different messages so remove parsing from test.  Also
narrow exception handling scope.TTP 416 into IllegalArgumentException

Providers yield different messages so remove parsing from test.  Also
narrow exception handling scope.
2015-06-16 21:47:30 -07:00
Andrew Gaul b0dfae1092 Use a configurable timeout for awaitConsistency
This allows setting to zero for strongly-consistency implementations
of s3 and swift stores.
2015-06-15 15:45:17 -07:00
Ka-Hing Cheung 320742c6b5 send HEAD instead of GET for blobMetadata 2015-06-11 17:33:51 -07:00
Ka-Hing Cheung 6ed95d8968 fix range get for manifest object
swift doesn't return the etag if the client is doing a range
get of a manifest (SLO or DLO), this fixes SwiftObject so
etag is optional
2015-06-10 13:38:55 -07:00
Zack Shoylev 25ec655d74 Adds support for the orchestration type. 2015-06-10 12:39:10 -05:00
Andrew Gaul 454a30a484 Set Atmos object size to content metadata size 2015-06-08 14:28:42 -07:00
Andrew Gaul 4f6af13329 JCLOUDS-894: Swift portable MPU improvements 2015-06-08 11:20:09 -07:00
Andrew Gaul 04c4d5c916 JCLOUDS-894: Odds and ends for other providers 2015-06-06 16:32:16 -07:00
Andrew Gaul 9a02157a7f JCLOUDS-894: Add portable multipart upload for Swift 2015-06-06 16:32:16 -07:00
Andrew Gaul ae157991ba JCLOUDS-894: Add portable multipart upload for S3 2015-06-06 16:32:16 -07:00
Andrew Gaul 00734ee755 JCLOUDS-894: Move MultipartUploadSlicingAlgorithm to core 2015-06-06 16:32:16 -07:00
Ignasi Barrera 97c160879e Propagate an AuthorizationException on OAuth client errors 2015-06-05 14:32:49 +02:00
Andrew Gaul 5095590d60 JCLOUDS-894: Do not add unnecessary ETag quotes
Previously
AWSS3BlobIntegrationLiveTest.testMultipartUploadMultipleParts failed.
2015-05-26 11:19:58 -07:00