Introduction
The 1.2 release of jclouds includes results of almost 2 months effort by our contributors. A total of 55 Issues were addressed between jclouds 1.1 and the current revision of jclouds 1.2 (1.2.1).
jclouds 1.2 is a stabilizing release which addresses numerous timeout and script invocation issues. This release also increases our reach to 8 new data centers due to new support for CloudSigma, Go2Cloud, and SoftLayer.
As always, we keep our examples site up to date so you can see how to work this stuff. Next release will be in approximately 1-months time. Look out for progress including vCloud 1.5, Voxel, and VirtualBox.
Please submit your own ideas and let us know if there are features you'd like to see, need help on, or are interested in contributing. Make sure you follow us on Twitter for updates.
Credits
Many thanks to everyone who contributed their time and effort in order to make this release happen. Specifically (in alphabetical order): Adam Lowe(adam.p.lowe), Adrian Cole(adrian.f.cole), Alex Heneveld (alex.heneveld at cloudsoftcorp.com), Andrei Savu(savu.andrei), Andrew Kennedy(andrewinternational), Andrew Phillips(sharedocs1), Andrew Turli (andrea.turli), Allen Rohner (arohner), David Ralves(davidralves), Dmitry Durnev (ddurnev at griddynamics.com), Hugo Duncan(duncan.hugo), Andrew Gaul (gaul at maginatics.com), Jason King(jason.king at cloudsoftcorp.com), Mattias Holmqvist(mattias.holmqvist), Phil Jackson at softlayer, Tom White(tom.e.white)
New Features
CloudSigma Las Vegas
We now support the CloudSigma Las Vegas data center. Check out their site for more details.
Go2Cloud
We now support the Go2Cloud Johannesburg data center. Check out their site for more details.
SoftLayer Support
We now support the SoftLayer provider Softlayer currently has a cloud service offering in 6 Data Centres (Dallas1, Dallas 5, Seattle, Washington DC, San Jose and Singapore) with Amsterdam to follow shortly.
Users have a flexible range of instance sizes to choose from (e.g. 1GB-16GB ram, 1-16 2.0Ghz Cores). They can also choose between multi-tenant or private cores and have a range of disk options available (for example SAN or local boot disk). The network uplink speed is 10Mbit by default and this can be upgraded to 100 or 1000 if required. Operating systems available are CentOS, Debian, Fedora, RHEL, Ubuntu and Windows.
Amazon EC2 Enhancements
We now support the cloud watch api, users can use 'tags' and we have upgraded to the latest Amazon Linux version. The example below shows adding a tags to an instance using the org.jclouds.aws.ec2.services.TagClient:
client.createTagsInRegion("us-east-1", ImmutableList.of("instanceId"),
ImmutableMap.of("test-key", "test-value", "only-key", ""));
See below for example code for creating tags when launching a node.
Timeouts when running scripts
Users can manage their own timeouts when running scripts. It borrows all semantics from the Future interface in java.
ListenableFuture<ExecResponse> future = client.submitScriptOnNode(node.getId(), Statements.exec("sleep 300"), nameTask("sleeper").runAsRoot(false));
ExecResponse response = null;
try {
response = future.get(1, TimeUnit.MILLISECONDS);
} catch (TimeoutException e) {
...
}
key/value pairs on nodes
Users can now set key/value pairs on nodes upon startup. This is supported in byon, aws-ec2, cloudservers-us|uk nova and can be used to set the Name field in ec2
The example below shows how to create a node with it's name set:
String myName = ...;
TemplateOptions options = client.templateOptions();
options.userMetadata(ImmutableMap.of("Name", myName));
client.createNodesInGroup(group, 1, options);
Upgrades
We have updated various components to new versions including Clojure 1.3, Guava 10.0.1, Sshkj 0.6.1, Gson 1.7.2 and the latest version of Elastic Stack.
We have removed a dependency on an unofficial library for jsr305 and introduced our own annotation org.jclouds.javax.annotation.Nullable instead.
All new features
- log ssh key fingerprints on auth attempts, instance launches, and auth failure
- Support setting of name-value "tags" on Nodes
- Make jclouds clojure 1.3 compatable
- add softlayer provider
- allow users to override timeouts on sync interface
- Support cloud watch api
- configurable endpoint for transient blobstore
- Missing support for file injection and script running in Terremark express
- support Go2Cloud Johannesburg
- new annotations @SelectJson @OnlyElement
- Update license headers to jclouds, Inc. and setup NOTICE file
- The vcenterprise Bluelock component can be removed in future releases
- Range requests using BlobStore: get the last n bytes/ everything starting at an offset.
- update to latest ElasticStack
- Add override-credentials-with template option to clojure api
- Avoid using a non official jsr and use our own annotations
- Update to guava 10.0.1
- CloudSigma ssh password support
- add ability to supply node object directly to byon
- add Statements.createOrOverwriteFile.
- update to sshj 0.6.1
- add support for CloudSigma Las Vegas
- support userMetadata in createNodesInGroup
- update to latest amazon linux
- Allow for asynchronous script execution and client script execution handling
- add ubuntu precise to the supported versions
- enable ubuntu Natty on cloudsigma-zrh
Defects Addressed
- null group on nodes from aws-ec2 provider
- org.jclouds.rest.AuthorizationException: ...: Exhausted available authentication method
- ssh drivers aren't logging or running live test profile
- Connect errors not automatically retried in sshj
- Jsch script builder has a problem in forget.sh
- add caller stack trace to exceptions
- support runScriptOnNodesMatching(.. where runAsRoot is true, wrapAsInitScript is false and the content is multiline
- transient blobstore createContainerInLocation always returns true
- filesystem blobstore does not support signing
- mvn package BUILD ERROR
- PROPERTY_MAX_CONNECTIONS_PER_CONTEXT has spurious underscore
- Specify non-default key pair for boot script in EC2
- ec2 ami query syntax from < 1.1.0 doesn't work on >= 1.1.0
- Explicit check and error for private keys that require a passphrase, as they're currently unsupported.
- cannot specifiy a different ssh login_port
- When a proxy blocks an ec2 region, jclouds throws an exception
- NPE when tranforming nova.domain.Image into compute.domain.Image
- Race in authorizeGroupToItself and node launch
- UserAdd fails with combination of runAsRoot set to true and wrapInInitScript set to false
- The security group 'X' does not exist error when creating nodes
- add more details to NPE when user passes a null value to a parameter not marked @Nullable
- support curly braces in Statements
- intermittent gson test failures
- ec2 keypairs are cached, even after being deleted
- Unable to resolve symbol: -?> in this context
- :map-ebs-snapshot-to-device-name doesn't work, due to name mangling
- parse errors on GoGrid
- test failures in CI
- Permission denied executing scripts
API Breakers
There are no api breakers in this release and nothing new has been deprecated. Deprecated methods will be removed in the next release.
Cool Stuff
The Ambatu project now has jclouds support!
Tracking
Status of release 1.2.0 is tracked in issue 714 Status of release 1.2.1 is tracked in issue 726
Test Results
| maven dependency | abstraction | iso 3166 codes | result | notes | ||
|---|---|---|---|---|---|---|
| o.j.p/aws-cloudwatch | US-VA,US-CA,IE,SG | 1/1 | ||||
| o.j.p/aws-ec2 | compute | US-VA,US-CA,IE,SG | 147/147 | |||
| o.j.p/aws-s3 | blobstore | US,US-CA,IE,SG | 102/102 | |||
| o.j.p/azureblob | blobstore | US-TX,US-IL,IE-D,SG,NL-NH,HK | 94/96 | failures | ||
| o.j.p/bluelock-vcloud-zone01 | compute | US-IN | 139/139 | |||
| o.j.p/cloudfiles-uk | blobstore | GB-SLG | 89/89 | |||
| o.j.p/cloudfiles-us | blobstore | US-TX | 90/90 | |||
| o.j.p/cloudloadbalancers-us | loadbalancer | US-IL,US-TX | 3/3 | lbs now take a couple mins to provision | ||
| o.j.p/cloudonestorage | blobstore | US-GA,US-TX | 63/65 | failures | ||
| o.j.p/cloudservers-uk | compute | GB-SLG | 125/125 | |||
| o.j.p/cloudservers-us | compute | US-IL,US-TX | 125/125 | |||
| o.j.p/cloudsigma-zrh | compute | CH-ZH | 134/149 | failures | ||
| o.j.p/cloudsigma-lvs | compute | US-NV | 134/142 | failures | ||
| o.j.p/elastichosts-lon-b | compute | GB-LND | 123/123 | |||
| o.j.p/elastichosts-lon-p | compute | GB-LND | 121/123 | failures | ||
| o.j.p/elastichosts-sat-p | compute | US-TX | 123/132 | failures | ||
| o.j.p/eucalyptus-partnercloud-ec2 | compute | US-CA | 109/122 | failures | ||
| o.j.p/eucalyptus-partnercloud-s3 | blobstore | US-CA | 100/108 | failures | ||
| o.j.p/go2cloud-jhb1 | compute | ZA-GP | 122/122 | |||
| o.j.p/gogrid | compute | US-CA,US-VA,NL-NH | 109/109 | |||
| o.j.p/greenhousedata-element-vcloud | compute | US-WY | 138/138 | |||
| o.j.p/ninefold-storage | blobstore | AU-NSW | 63/69 | failures | ||
| o.j.p/openhosting-east1 | compute | US-VA | 122/122 | |||
| o.j.p/rimuhosting | compute | NZ-AUK,US-TX,AU-NSW,GB-LND | 111/121 | failures | ||
| o.j.p/savvis-symphonyvpdc | compute | US,CA | 96/109 | failures; it took 14hrs for all important tests to fail | ||
| o.j.p/serverlove-z1-man | compute | GB-MAN | 123/123 | |||
| o.j.p/skalicloud-sdg-my | compute | MY-10 | 122/122 | |||
| o.j.p/slicehost | compute | US-IL,US-TX,US-MO | 124/134 | failures | ||
| o.j.p/softlayer | compute | SG,US-CA,US-TX,US-VA,US-WA,US-TX | 127/127 | |||
| o.j.p/stratogen-vcloud-mycloud | compute | GB | 134/165 | failures | ||
| o.j.p/synaptic-storage | blobstore | US-VA,US-TX | 63/65 | failures | ||
| o.j.p/trmk-ecloud | compute | US-FL,US-VA,NL-NH,BR-SP | 138/148 | failures | ||
| o.j.p/trmk-vcloudexpress | compute | US-FL | 139/146 | failures |
| maven dependency | abstraction | endpoint tested | result | notes | ||
|---|---|---|---|---|---|---|
| o.j.a/atmos | blobstore | pending | ||||
| o.j.a/byon | compute | pending | ||||
| o.j.a/cloudfiles | blobstore | pending | ||||
| o.j.a/cloudservers | blobstore | pending | ||||
| o.j.a/deltacloud | compute | https://api.deltacloud.org/ | fail | jclouds needs to be updated to 0.4.1 | ||
| o.j.a/elasticstack | compute | pending | ||||
| o.j.a/eucalyptus | compute | pending | ||||
| o.j.a/filesystem | blobstore | pending | ||||
| o.j.a/nova | compute | pending | ||||
| o.j.a/swift | blobstore | http://50.16.106.110:8080/auth | 89/95 | failures | ||
| o.j.a/vcloud | compute | pending | ||||
| o.j.a/walrus | blobstore | pending |