Commit Graph

886 Commits

Author SHA1 Message Date
Ignasi Barrera d98348d503 Better predicate signature for node operations 2016-09-23 10:22:23 +02:00
Iván Lomba aac9b5fd5d JCLOUDS-482: Add support for ProfitBricks 2016-08-16 02:44:13 +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
Ivana Yovcheva cf5a66ab14 Fix for ssh reload for CentOS 7 2016-08-16 00:42:57 +02:00
Ignasi Barrera 7dc73ee0bf Do not try to connect to ssh if already connected 2016-08-12 00:39:28 +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
Ignasi Barrera 87154bf89e Isolate the task cancellation in a test 2016-07-18 08:09:30 +02:00
Andrea Turli a515ce2f22 Change line endings on files recursively 2016-07-14 00:02:13 +02:00
Ignasi Barrera d197a9e0cb Allow subclasses to override the scripts 2016-06-22 00:26:18 +02:00
Andrew Gaul 1d192dfe56 Remove scoping annotations on abstract types
These annotations are not meaningful.  Found via error-prone.
2016-06-20 10:54:52 -07:00
Ignasi Barrera 179ed3b2f6 Properly set the permissions in the ~/.ssh folder
When writing the ~/.ssh/authorized_keys file in a script that is being
run as sudo, the file is created with the root owner, instead of the
user defined by the node credentials. File ownership should be enforced
to make sure the right owner is alwaays set.
2016-06-17 22:16:19 +02:00
Zack Shoylev de88a72e7a Change the template to use CentOS instead. Avoids some openjdk-6 problems. 2016-06-07 17:37:33 -05:00
Ignasi Barrera d05af2246b Allow to override the Image and Security extension bindings
Some providers, such as Azure ARM, might need additional
resources present in order to be able to use the extension.
This change allows to override its binding (Guice 4 by default does not
allow to override provider bindings, so we need to define them as final
ones and provide an alternate method for subclasses that need to
override the binding).
2016-05-25 21:14:26 +02:00
Sergey Tselovalnikov 0e41b45af5 Fix NPE when node is null 2016-05-17 16:46:24 +02:00
Andrew Gaul da386ad0e2 Correct FindBugs warnings 2016-04-27 20:28:37 -07: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
kilida 59a0014bdf Duplicate conditional and body in VirtualSystemSettingDataHandler.java 2016-03-28 16:12:58 +02:00
Aled Sage 60e58dc989 Fix TemplateOptions.clone; adds RunScriptOptions.copyTo
Previously not all fields of RunScriptOptions were included in copyTo
(e.g. runAsRoot and initScript).

Also options.equals(options.clone()) failed if options.loginPassword
was originally null - in the cloned object, it would be Optional.absent.

Fixes RunScriptOptions.toString, to only say “loginPasswordPresent”
if optional.isPresent().
2016-03-08 21:49:55 +01:00
Zack Shoylev 5e3924947a Fix testSupplierExpirationReloadsTheCache sometimes failing 2016-02-17 16:39:14 -06:00
Reijhanniel Jearl Campos a4b8a73790 JCLOUDS-1053: Fallback to -1 when sshj exit status returns null 2016-01-22 12:40:35 +01: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 df48540cb7 Enable FindBugs CheckRelaxingNullnessAnnotation
Also fix up warnings.
2015-11-13 17:44:55 -08:00
Nikolay Sokolov 060b66a4f7 Close connection during ExecChannel 2015-10-25 23:02:33 +01:00
Aled Sage 502d96d22b UserAdd: guard groupadd with check if group exists
On SUSE, the “-f” force option is not available for groupadd,
so `groupadd -f wheel` returns exit code 9 if the group already
exists. To avoid this, first check if the group exists.

In normal usage, this doesn’t matter: the script continues with the
next command anyway.

However, if the statements generated by UserAdd or AdminAccess are
used outside of that context (e.g. by code external to jclouds), then
this can cause them to fail.
2015-10-25 22:02:31 +01:00
Ignasi Barrera 042222b647 GCE hardware profiles might not have volumes 2015-09-18 10:05:34 +02:00
Oliver Gondža edde721937 JCLOUDS-962: Make all @Provider methods final 2015-09-02 23:54:44 +02:00
Oliver Gondža 6cd716f1ea JCLOUDS-962: Do not override provider methods 2015-09-02 23:54:44 +02:00
Yavor Yanchev d45f08e82e JCLOUDS-973 Extending the sudo's configuration
- Adding env_reset to the default configuration in /etc/sudoers
- Adding secure_path to the default configuration in /etc/sudoers
- secure_path value is
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
2015-09-01 00:29:17 +02:00
Andrew Gaul 98b3105669 Address error-prone errors
Mostly of the form, Collection.size() >= 0.
2015-07-30 15:40:03 -07:00
Ignasi Barrera 5d30f859aa Fix AWS and EC2 TemplateBuilder live tests 2015-07-29 11:58:19 +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
Zack Shoylev a472a878b0 Updates live tests and template builder settings for compute 2015-07-14 10:21:32 -05:00
Reijhanniel Jearl Campos 107c9d0d55 Fix template equals assertion to consider location scope 2015-06-25 14:25:47 +02:00
Ignasi Barrera 8182f8c4ae Improve image check in the BaseImageExtensionLiveTest 2015-06-15 22:18:07 +02:00
Ignasi Barrera 278ada8b19 Added CoreOS to the OSFamily enum 2015-06-11 10:34:41 +02:00
Svetoslav Neykov 3bdac1cc33 Make home folder globally accessible when creating a user
Certain hardened images will have "umask 0077" set for the root user, making the newly created /home/users folder inaccessible to non-root. This results in a failure when trying to ssh with the new account. Explicitly set permissions to be independent of default umask.
2015-05-13 22:01:10 +02:00
Ignasi Barrera 058c0fa54b Properly clone the login credentials 2015-04-08 16:00:29 +02:00
Andrew Gaul 6a7a52642a Convert Windows to Unix line endings
Converted with:

mvn checkstyle:checkstyle --quiet -Dcheckstyle.output.file=/dev/stdout -Dcheckstyle.output.format=plain | grep warn | cut -f1 -d: | uniq | xargs -n 1 dos2unix
2015-03-31 18:25:54 -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
Hugo Viejo b54c788e7c Update setupPublicCurl.sh
Add the fqdn to /etc/hosts file becouse if you only add the hostname then it is posible to lose the fqdn
changed expected script adding  "`hostname -f` "
Added "-s" option to ensure to get the short name
Added "-s" option to ensure search using the short name
2015-03-11 22:51:49 +01:00
Zack Shoylev 07f1fb69a7 Fixes more tests with timing problems 2015-02-18 03:46:37 -06:00
Zack Shoylev 66457ff8f8 fix jclouds live tests failing when a keypair is missing. 2015-02-05 17:00:49 -06:00
Zack Shoylev c64470e0b1 Fixes flavor and template tests to be more robust. 2015-01-30 15:19:55 -06: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
Andrea Turli 9128448de0 add support for recent centos and ubuntu versions 2014-11-19 17:31:42 +01:00
Adrian Cole 278a735272 JCLOUDS-778 Remove OS support tests from TemplateBuilderLiveTest, as people are ignoring failures, 2014-11-17 09:42:06 -08:00
Adrian Cole 6f974f34b5 JCLOUDS-780 Remove vcloud. 2014-11-17 08:18:39 -08:00
Adrian Cole 5641efa0c2 Make TemplateBuilderImplTest less brittle. 2014-10-29 17:01:27 -07:00
Adrian Cole 3980cd791b Revert "JCLOUDS-653: Address Guava 18 deprecations"
This reverts commit 95cfc0d950.

Many conflicts due to duration between above commit and now
2014-10-24 10:45:58 -07:00
Andrew Phillips 024009f211 Updating Javadoc for exclusion CIDR blocks
Follow-up to e5fb0b6
2014-10-12 19:02:34 -04:00
Andrew Phillips 3e082c8945 Minor formatting cleanup
Follow-up to e5fb0b6
2014-10-11 21:44:22 -04:00
Ignasi Barrera e5fb0b607d Allow to configure CIDR exclusion blocks 2014-10-11 14:04:00 +02:00
Adrian Cole 0a236f59ad JCLOUDS-153 remove IO Executor and usage of it. 2014-10-06 07:56:31 -07:00
Adrian Cole d190040018 fix checkstyle 2014-10-05 16:16:29 -07:00
Adrian Cole 1a54f0fb09 JCLOUDS-153 Remove deprecated ExecutorService and HttpAsyncClient accessors. 2014-10-05 16:16:28 -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 195998b3b6 Miscellaneous FindBugs fixes 2014-08-30 14:33:10 -07:00
Andrew Gaul 5399cb6877 Avoid unnecessary boxing
Found with FindBugs.
2014-08-30 14:30:47 -07:00
Andrew Gaul 480f0e883d Prevent instantiation of utility classes
Also prevent extension.
2014-08-26 12:23:36 -07:00
Andrew Gaul 967f55c2e4 Enforce type naming via Checkstyle 2014-08-26 11:29:25 -07:00
Andrew Gaul 9c2c2e0c44 Remove spurious whitespace
Also remove spurious unary operator plus.
2014-08-26 11:15:55 -07:00
Jeremy Daggett e711275fb1 Prefer isEmpty() for collections rather than size() 2014-08-20 11:07:48 -07:00
Stuart Hendren f3778b6cbd JCLOUDS-661: Adding a test for single-port firewall rules 2014-08-14 12:49:06 -04: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 fb60d76704 JCLOUDS-622: Remove most vestiges of InputSupplier
Guava 16 deprecated InputSupplier and a future release will remove it.
2014-07-16 16:07:59 -07:00
Werner Buck 22c5fbbd78 JCLOUDS-625: Set VolumeBuilder id to nullable in VolumeImpl
VolumeBuilder does not allow null id while VolumeImpl allows it to be nullable.
2014-07-16 00:43:47 +02:00
Andrea Turli 4cf6efe39a refactor BaseComputeServiceLiveTest to simplify the extension of this base test 2014-07-07 10:53:13 +02:00
Andrew Gaul a68eb38901 JCLOUDS-612: Securely create temporary directories
This commit addresses a potential security issue where an attacker
could hijack the ScriptBuilder payload by predicting the temporary
directory name.
2014-06-25 23:23:06 +02:00
Christopher Dancy 8598ee858a JCLOUDS-610: Return the affected nodes from resumeNodesMatching, suspendNodesMatching and rebootNodesMatching
Methods have been refactored to match the functionality provided by destroyNodesMatching.
2014-06-24 22:58:34 +02:00
Andrew Gaul 5b5e713cba Avoid unnecessary object creation
Prefer StringBuffer.append(string, index1, index2) over
StringBuffer.append(String.substring(index1, index2).
2014-06-24 13:15:18 -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
Christopher Dancy ea68554244 NodePredicates gained static predicate SUSPENDED
Replaced hard-coded Strings in toString methods of static predicates with their enum.toString counterparts

Added test 'testNodeRunningFailsOnSuspended'

Revert "Added test 'testNodeRunningFailsOnSuspended'"

This reverts commit 2a543bfe20540bb4f10ef4f86e845a63bdbe90e3.

Removed test 'testNodeRunningFailsOnSuspended'. Added test 'testNodeSuspendedReturnsTrueWhenSuspended'.

Renamed '

Revert "Renamed '"

This reverts commit 061e9292a812066562ab47ba5eea15337fc13c3d.

Renamed 'AtomicNodeSuspended.nodeRunning' to 'AtomicNodeSuspended.nodeSuspended'.\nWhere applicable combined all calls to 'replay(Object...)' instead of the old 'replay(node);replay(computeService);'
2014-06-16 16:58:35 -05:00
Chris Custine c857ccc479 JCLOUDS-583: Updates HP Cloud compute provider to work with 13.5 release 2014-06-10 09:41:46 +02:00
Andrew Phillips 9b50754c24 Cleaning up Checkstyle violations from b1c1636 and 39f77ad 2014-06-09 23:17:37 -04: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
Ignasi Barrera 22a6028336 JCLOUDS-573: Make sure to destroy all nodes created in the tests 2014-05-21 09:21:31 +02:00
Andrew Gaul 1f1f4f0a49 Override hashCode when equals overridden
Java 8 added a warning for this:

https://bugs.openjdk.java.net/browse/JDK-6563143
2014-05-20 21:22:43 -07:00
Andrew Gaul 62a6842748 Address CheckStyle violations 2014-05-17 00:49:40 -07:00
Andrew Gaul baddf8fe80 Replace InputSupplierMap with Map<K, ByteSource>
A future version of Guava will remove InputSupplier.
2014-05-16 18:10:52 -07:00
Andrew Gaul d9d8d421cb Migrate InputSupplier callers to ByteSource
A future version of Guava will remove InputSupplier.
2014-05-16 18:08:19 -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 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
Andrew Gaul 82e9e9e42f JCLOUDS-534: Upgrade to Guava 17.0-rc2
This commit accommodates changes to Predicates.and.toString and
PublicSuffixPatterns.EXACT.  Release notes:

https://code.google.com/p/guava-libraries/wiki/Release17
2014-04-14 18:38:15 -07:00
Andrew Gaul 7af18d4843 JCLOUDS-534: Address Guava 17 compatibility issues
Corrected with:

find -name \*.java | xargs sed -i 's/new Stopwatch();/Stopwatch.createUnstarted();/'
find -name \*.java | xargs sed -i 's/new Stopwatch().start();/Stopwatch.createStarted();/'
2014-04-11 14:24:12 -07:00
ashley-taylor b5218e0ce6 JCLOUDS-528: Ability to control interfaces to test for SocketFinder 2014-04-11 14:35:17 -04:00
Pasi Niemi 85a1a8c1dd JCLOUDS-516: Add ssh agent support via sch agentproxy 2014-03-27 09:04:34 +01:00
Andrew Gaul 266d7f847b Prefer ByteSource over deprecated InputSupplier 2014-02-18 22:35:10 -08:00
Andrew Gaul 9416416ff4 Address Checkstyle violations 2014-01-19 20:51:51 -08:00
Andrew Bayer e2cd6d8322 JCLOUDS-416. Add TemplateOptions#networks.
- Adds networks field/methods to TemplateOptions.
- Adds them to children as well for legacy reasons.
- Deprecates CloudStackTemplateOptions#networkIds methods in favor of #networks.
- TODO: Modify compute abstraction layer for provisioning for nova,
    EC2, et al to take advantage of this.
2014-01-07 16:15:48 -08:00
Andrew Gaul c7b0f66544 Replace calls to Closeables.closeQuietly
Guava 16 removes this API.  Replace with Closeables2.closeQuietly.
References JCLOUDS-413 and JCLOUDS-415.
2013-12-21 12:30:59 -08:00
Andrew Gaul f9e98681b6 Address miscellaneous Guava deprecations
References JCLOUDS-415.
2013-12-20 14:05:44 -08:00
Andrew Bayer c1ee11d9bd Updating to 1.8.0-SNAPSHOT 2013-12-17 11:31:56 -08:00
Andrew Gaul 0398276be3 Remove redundant imports
Also enforce no new ones via Checkstyle
2013-12-12 18:23:43 -08:00