Sub-task

  • [JCLOUDS-49] - Remove async interface from core openstack apis/providers, rename *Client to *Api
  • [JCLOUDS-152] - Remove the RestContext
  • [JCLOUDS-296] - Remove async interface from cloudservers (legacy rackspace API/providers)
  • [JCLOUDS-683] - Promote oauth API
  • [JCLOUDS-837] - Add support for operations on service certificates
  • [JCLOUDS-838] - Avoid deprecation
  • [JCLOUDS-841] - Implement support for operations on affinity groups
  • [JCLOUDS-842] - Add suport for operations on Traffic Manager
  • [JCLOUDS-846] - Complete missing mock tests
  • [JCLOUDS-849] - Add the live test that extends the BaseComputeServiceLiveTest
  • [JCLOUDS-850] - Add the live test that extends the BaseTemplateBuilderLiveTest
  • [JCLOUDS-852] - VMImage Operation Support
  • [JCLOUDS-873] - Complete Network Security Group API implementation
  • [JCLOUDS-879] - Reserved IP address support
  • [JCLOUDS-892] - GCE: Compute abstraction should use one network for all groups
  • [JCLOUDS-896] - Replace the GCETemplateOptions#network by the TemplateOptions#networks option
  • [JCLOUDS-908] - BaseComputeService#listNodes throwing an exception
  • [JCLOUDS-925] - GCE ComputeServiceAdapter should support suspendNode and resumeNode
  • [JCLOUDS-1095] - Update OpenStack KeyStone Support for Zaqar
  • [JCLOUDS-1098] - Fix OpenStack Marconi Unit Tests

Bug

  • [JCLOUDS-94] - Keeping % signs in bucket names
  • [JCLOUDS-121] - Missing trailing slash in blob names
  • [JCLOUDS-122] - BlobStore.clearContainer(), BlobStore.deleteContainer(), BlobStore.list() do not work
  • [JCLOUDS-217] - URL encoding/decoding issues
  • [JCLOUDS-333] - Glance failed to parse Image details which has microseconds in Date format
  • [JCLOUDS-391] - can't set user-defined metadata for Azure with multipart blobs
  • [JCLOUDS-461] - aws-s3 live tests have many bucket does not exist failures
  • [JCLOUDS-495] - GCE provider default template not picking an image
  • [JCLOUDS-496] - TemplateOptions securityGroups() method doesn't work in Openstack-Nova
  • [JCLOUDS-512] - Cannot start instance from newly created image in ComputeService
  • [JCLOUDS-529] - Getting exception while destroying an aws instance using jclouds
  • [JCLOUDS-532] - Potential for read on closed stream when handling HTTP 5xx errors
  • [JCLOUDS-548] - Azure java.lang.IllegalArgumentException: Illegal character in path at index
  • [JCLOUDS-641] - rackspace-cloudfiles-us integration tests fail
  • [JCLOUDS-643] - Fix Google and OAuth tests
  • [JCLOUDS-645] - Incorrect endpoint url chosen for default region of HPCloud Object Storage
  • [JCLOUDS-646] - Incorrect Keystone APIs in openstack-common
  • [JCLOUDS-648] - putBlob operation does not throw a ContainerNotFoundException against Swift based blobstores
  • [JCLOUDS-649] - Creating an image from a root persistent disk causes NullPointerException on GCE
  • [JCLOUDS-650] - getBlob for non-existent containers does not throw a ContainerNotFoundException
  • [JCLOUDS-656] - Headers are not normalized when parsing Swift authentication response
  • [JCLOUDS-657] - createNodesInGroup fails on GCE if there are existing instances which fail name validation
  • [JCLOUDS-661] - Can not create a single port firewall rule using google SecurityGroupExtension
  • [JCLOUDS-662] - Can't attach multiple disks with same size to SoftLayer CCI
  • [JCLOUDS-676] - Reflection warnings in Clojure wrapper
  • [JCLOUDS-678] - NPE on GCE attachDisk when VM not found (because user-error wrong region specified)
  • [JCLOUDS-690] - Remove the 404 fallbacks in the PUT and POST calls in the CloudSigma2Api
  • [JCLOUDS-691] - The 404 fallbacks should be removed from PUT and POST operations in the OpenStack APIs
  • [JCLOUDS-703] - Google Hardware no longer supports images
  • [JCLOUDS-707] - SSH key pairs must be unique in DigitalOcean
  • [JCLOUDS-709] - openstack-neutron Checkstyle violations
  • [JCLOUDS-717] - Join EnterpriseChef and Open Source Chef
  • [JCLOUDS-720] - Inconsistent Maven artifact IDs in jclouds-cli project
  • [JCLOUDS-761] - ElasticStack drives are leaked if the "imageDrive" operation fails
  • [JCLOUDS-792] - Allow to configure the Chef Server certificate
  • [JCLOUDS-800] - CloudFilesContainerApiLiveTest failures
  • [JCLOUDS-801] - AWS S3 Multipart upload does not work with InputStream payload
  • [JCLOUDS-811] - Update google-compute-engine driver to reflect recent API changes
  • [JCLOUDS-813] - Softlayer list private images
  • [JCLOUDS-822] - C4 instances missing in ec2 compute
  • [JCLOUDS-835] - filesystem blobstore does not atomically replace objects
  • [JCLOUDS-856] - openstack-swift provider mangles blob names that end with slash
  • [JCLOUDS-857] - Tests fail due to Incorrect number of names on @org.jclouds.json.SerializedNames(value=[loadSucceeded, loadErrors, testPassed, testFailures])
  • [JCLOUDS-860] - .templateOptions.networks("..") does not work
  • [JCLOUDS-870] - google-compute-engine provider doesn't support all available images
  • [JCLOUDS-876] - loginPassword / loginPrivateKey not initialized by RunScriptOptions
  • [JCLOUDS-883] - Swift portable copy blob cannot replace user metadata
  • [JCLOUDS-890] - Chef bootstrap fails if no attributes are defined
  • [JCLOUDS-897] - jclouds breaks with guice 4.0 because rocoto is evil
  • [JCLOUDS-898] - Docker driver does not work without TLS
  • [JCLOUDS-901] - Wrong javadocs in cloudstack VolumeApi
  • [JCLOUDS-904] - Using ContextBuilder to build new aws-s3 context throws NoClassDefFoundError
  • [JCLOUDS-911] - Jclouds cannot create CentOS in Google Compute Engine
  • [JCLOUDS-921] - Can not ssh with key and sudo password
  • [JCLOUDS-928] - GoogleCloudStorageBlobIntegrationLiveTest.testGetRangeOutOfRange fails
  • [JCLOUDS-935] - Specify disk type in AttachDisk.InitializeParams as a URL
  • [JCLOUDS-945] - ListContainerOption's marker support in LocalBlobStore buggy
  • [JCLOUDS-946] - The ImageExtension in DigitalOcean only works with the first available location
  • [JCLOUDS-947] - Properly configure live tests in ProfitBricks
  • [JCLOUDS-951] - Remove inheritance in ProfitBrick's AutoValue classes
  • [JCLOUDS-952] - azure-compute cannot parse a suspended VM
  • [JCLOUDS-955] - jclouds strips off the delimiter from common prefixes (at least in S3)
  • [JCLOUDS-956] - allocateFloatingIPForNode in Nova
  • [JCLOUDS-957] - openstack-swift provider throws different exceptions for copyBlob
  • [JCLOUDS-958] - HttpResponseException prints username and password involved in request
  • [JCLOUDS-962] - Guice 4.0 support
  • [JCLOUDS-967] - Client object doesn't populate public key
  • [JCLOUDS-972] - Failed EC2 spot instance requests through compute service never return correctly
  • [JCLOUDS-973] - Sudo configuration for Suse Enterprise which prevents execution of superuser commands
  • [JCLOUDS-974] - GSON 2.3 pom is buggy, use 2.3.1 instead
  • [JCLOUDS-979] - BaseJdbcBlobStoreTest.testRanges failure
  • [JCLOUDS-987] - AWS EC2: if specifying subnet ID, security groups are not created
  • [JCLOUDS-991] - Usage records for Volume usage allow a size field not handled by JClouds
  • [JCLOUDS-992] - jclouds improperly handles "application/directory" blobs during LIST
  • [JCLOUDS-993] - cloudstack: essential api parameters missing
  • [JCLOUDS-996] - Docker: Move networkMode from Config to HostConfig and make it configurable
  • [JCLOUDS-997] - Docker: entrypoint and cmd should be nullable in org.jclouds.docker.domain.Config
  • [JCLOUDS-1004] - Update the Go2Cloud endpoint
  • [JCLOUDS-1006] - Docker provider Live tests don't work without TLS
  • [JCLOUDS-1008] - Google storage provider cannot retrieve "foo/bar"
  • [JCLOUDS-1009] - JDBC tests fail on OSX
  • [JCLOUDS-1011] - Docker: HTTP client connection has to be closed after calling MiscApi.build() method
  • [JCLOUDS-1012] - project and projectId not supported in JClouds as parameters in a usage record for Cloudstack
  • [JCLOUDS-1013] - Cannot find FloatingIPAPI nova extension against devstack
  • [JCLOUDS-1020] - Docker BuildOptions use wrong query parameter for image tagging
  • [JCLOUDS-1021] - Add JavaDoc to repoTags() value in org.jclouds.docker.domain.Image
  • [JCLOUDS-1022] - Provide a mechanism to deal with the rate limit in DigitalOcean
  • [JCLOUDS-1023] - DigitalOcean throws an NPE in the getImage() method if the image does not exist
  • [JCLOUDS-1024] - The ImageExtension fails to create image if droplet is already stopped
  • [JCLOUDS-1027] - digitalocean2 request incorrect droplet
  • [JCLOUDS-1028] - Retries upon Glacier's Complete Multipart Upload request broken
  • [JCLOUDS-1029] - JDBC tests hang the build
  • [JCLOUDS-1030] - Ignore synthetic members in serialization strategies
  • [JCLOUDS-1033] - DigitalOcean v2 should not fail if no private key has been provided
  • [JCLOUDS-1036] - Image id is not populated in nodes that have not been created by jclouds
  • [JCLOUDS-1038] - java.lang.IllegalArgumentException: Error parsing data at 19
  • [JCLOUDS-1041] - NPE in Port class - methods should be nullable
  • [JCLOUDS-1042] - S3BlobStore.putBlob() makes a call to get ACL which maybe blocked by S3 policy, resulting in failure of the operation.
  • [JCLOUDS-1043] - Google IAM release breaks GoogleComputeEngineHttpApiModule
  • [JCLOUDS-1044] - MapTypeAdapter and IterableTypeAdapter doesn't handle NULL values correctly
  • [JCLOUDS-1045] - Module allblobstore references removed swift module
  • [JCLOUDS-1046] - h2-jdbc module is not listed in jclouds-labs/pom.xml
  • [JCLOUDS-1047] - Fix ProfitBricks ComputeService live tests
  • [JCLOUDS-1050] - Can't configure the bootstrap script with a custom SSL verify mode
  • [JCLOUDS-1051] - Depedency on com.hierynomus.ssh breaks jclouds-karaf
  • [JCLOUDS-1052] - DigitalOcean2 image extension does not delete images
  • [JCLOUDS-1053] - jclouds-sshj doesn't handle getExitStatus returning null
  • [JCLOUDS-1058] - ComputeService cannot cancel tasks in ProfitBricks
  • [JCLOUDS-1060] - LockAcquisitionException during jdbc integration tests
  • [JCLOUDS-1063] - azurecompute: Role.OSVirtualHardDisk.sourceImageName should be @Nullable
  • [JCLOUDS-1064] - multipart upload throwing : NullPointerException: Null partETag
  • [JCLOUDS-1067] - Cookbook groupings are not properly mapped in Chef metadata
  • [JCLOUDS-1073] - in local-fs getBlob with open-ended range: parseInt instead of parseLong -> NumberFormatException
  • [JCLOUDS-1074] - Compatibility with Guava 20
  • [JCLOUDS-1077] - Fix ProjectApiLiveTest in GCE
  • [JCLOUDS-1079] - Floating IPs should be public in openstack-nova provider
  • [JCLOUDS-1080] - Swift container list call must explicitly specify JSON
  • [JCLOUDS-1084] - SshToCustomPortLiveTest in Docker provider fails because of problem with downloading SSH
  • [JCLOUDS-1088] - azurecompute: NPE in DeploymentToNodeMetadata.apply
  • [JCLOUDS-1090] - jClouds not using AWS S3 V4 signature for Frankfurt region
  • [JCLOUDS-1091] - Content-Length header is not populated in the OkHttp driver
  • [JCLOUDS-1100] - OpenStack provisioning fails: exception "cidrBlock ::/0 is not a valid CIDR"
  • [JCLOUDS-1102] - Rackspace returns a new structure for volume types
  • [JCLOUDS-1104] - RouterApi call don't find namespace field
  • [JCLOUDS-1105] - JClouds creates default security group in AWS EC2
  • [JCLOUDS-1115] - Filesystem API dependency is not included when using jclouds-allblobstore and Java 8 or higher
  • [JCLOUDS-1116] - EndpointParams in @Delegate apis are ignored if the parent api already defines and endpoint
  • [JCLOUDS-1117] - Some values from DockerTemplateOptions.configBuilder are replaced in DockerComputeServiceAdapter
  • [JCLOUDS-1118] - Adding linux capabilities doesn't work in Docker
  • [JCLOUDS-1126] - Jclouds needs to use either legacy compute or update validation to account for 2.1 API
  • [JCLOUDS-1135] - Azure: AzureComputeServiceAdapter.getNode/listNodes perform O(N) requests
  • [JCLOUDS-1137] - FilesystemStorageStrategyImpl throws NoSuchFileException when listing files
  • [JCLOUDS-1139] - Azure: suspending a node also deallocates it
  • [JCLOUDS-1141] - Azurecompute - RoleToXML doesn't close the ConfigurationSets element corretly
  • [JCLOUDS-1143] - AWSv4SignerBase fails to log canonicalRequest
  • [JCLOUDS-1144] - BlobStore::blobMetadata returns null for with / characters with GCS
  • [JCLOUDS-1145] - Cannot create images from powered off droplets
  • [JCLOUDS-1147] - Byon should avoid using deprecated snakeyaml Loader class
  • [JCLOUDS-1148] - oauth API: JWTBearerTokenFlow.tokenCache never hits
  • [JCLOUDS-1153] - Docker ImageToImage class doesn't support empty repoTags list
  • [JCLOUDS-1156] - jclouds-cli fails to run compute service commands
  • [JCLOUDS-1157] - DockerComputeServiceAdapterLiveTest should be redesigned - it requires external key-value store
  • [JCLOUDS-1158] - DockerComputeServiceAdapter.getImage(String) doesn't work correctly for Docker on RHEL Atomic host
  • [JCLOUDS-1167] - oneandone-privatenetwork-api
  • [JCLOUDS-1170] - Azure compute provider doesn't remove data blobs for disks
  • [JCLOUDS-1171] - When using karaf classloading of autovalue classes fails if in a different bundle (e.g. jclouds-labs-google)
  • [JCLOUDS-1172] - Script engines are not loaded in the interactive shell
  • [JCLOUDS-1173] - List method has different behavior on different cloud providers
  • [JCLOUDS-1175] - Remove hardcoded limitation of content size in Openstack Nova CreateServerOptions API
  • [JCLOUDS-1176] - Swift delete operation is not idempotent
  • [JCLOUDS-1179] - putBlob doesn't handle 401s
  • [JCLOUDS-1181] - oneandone-vpn-api
  • [JCLOUDS-1182] - Missing region in `listAssignableLocations` for AWS EC2
  • [JCLOUDS-1185] - A Network rangeIPv4 may be null
  • [JCLOUDS-1189] - jclouds-cli cannot handle arguments with spaces
  • [JCLOUDS-1190] - NumberFormatException if the size of docker image is bigger than int
  • [JCLOUDS-1191] - Services can't be looked up by name
  • [JCLOUDS-1199] - jclouds-cli throws NPE in compute list commands
  • [JCLOUDS-1204] - Softlayer listVirtualGuest returns too much payload

New Feature

  • [JCLOUDS-185] - Support configuration of Azure Cache-Control Headers
  • [JCLOUDS-292] - Add the ComputeService integration for CloudSigma v2
  • [JCLOUDS-480] - support AWS signature version 4
  • [JCLOUDS-482] - Add support for arbitrary CPU and RAM in the ComputeService
  • [JCLOUDS-611] - Neutron LBaaS extension request
  • [JCLOUDS-613] - Implement the DigitalOcean v2 API
  • [JCLOUDS-632] - L7 Load Balancing
  • [JCLOUDS-651] - server-side copy in portable abstraction
  • [JCLOUDS-654] - Provide blob size during container listing
  • [JCLOUDS-658] - Add blob metadata support to filesystem blobstore
  • [JCLOUDS-660] - Improve portable container ACL support
  • [JCLOUDS-731] - Support Nova Block Device Mapping v2
  • [JCLOUDS-732] - Improve portable object ACL support
  • [JCLOUDS-760] - Enable multipart upload in RegionScopedSwiftBlobStore
  • [JCLOUDS-826] - JDBC blobstore
  • [JCLOUDS-844] - BlobStore PutOptions should include BlobAccess
  • [JCLOUDS-848] - Support Google Cloud Storage nearline
  • [JCLOUDS-851] - Contribution for Nova "os-hypervisors" Extension.
  • [JCLOUDS-867] - Add Content-Disposition support to Azure
  • [JCLOUDS-871] - Azure copy blob
  • [JCLOUDS-872] - Swift ObjectApi.copy does not expose full API
  • [JCLOUDS-875] - Google Cloud Storage copy object cannot update metadata
  • [JCLOUDS-886] - Implement Roles API for jclouds-labs-shipyard
  • [JCLOUDS-891] - Add CloudSigma Miami region
  • [JCLOUDS-894] - Expose component operations of multipart upload
  • [JCLOUDS-929] - Support for the delimiter option in the blob store interface
  • [JCLOUDS-930] - Expose the prefix option when listing a container
  • [JCLOUDS-943] - Add google-cloud-storage and google-compute-engine to jclouds-karaf and jclouds-cli
  • [JCLOUDS-948] - Improve Cache Control/Expires support
  • [JCLOUDS-971] - On adding an etcd (of coreos fame) provider
  • [JCLOUDS-985] - Add members API to etcd provider
  • [JCLOUDS-1001] - Add Google Compute preemptible support
  • [JCLOUDS-1002] - Docker: Make the whole container Config object configurable by user
  • [JCLOUDS-1005] - Backblaze B2 Cloud Storage
  • [JCLOUDS-1017] - Add tagImage() method to ImageApi in Docker provider
  • [JCLOUDS-1035] - Docker - support Network API
  • [JCLOUDS-1089] - Add image history API support to Docker ImageApi
  • [JCLOUDS-1125] - list multipart uploads
  • [JCLOUDS-1142] - Azurecompute: add suport for ProvisionGuestAgent configuration

Improvement

  • [JCLOUDS-40] - remove Async interface from all apis and providers
  • [JCLOUDS-184] - Improve AzureBlob Unit Tests
  • [JCLOUDS-227] - S3 blobstore driver: support for parallel multipart uploads
  • [JCLOUDS-410] - Avoid InputSupplier<InputStream>; support ByteSource
  • [JCLOUDS-597] - Use Guava HashCode to represent Content-MD5
  • [JCLOUDS-633] - Support passing bearer token directly for OAuth2
  • [JCLOUDS-647] - Refactor OpenStack Zones to Regions
  • [JCLOUDS-668] - Create IpPermission for a single port
  • [JCLOUDS-669] - jclouds-cli support for openstack-swift
  • [JCLOUDS-679] - Use HEAD /name to check bucket existence with S3
  • [JCLOUDS-680] - OpenStack Swift: Improve Object update behavior
  • [JCLOUDS-706] - Upgrade Azure API version to 2012-02-12
  • [JCLOUDS-711] - Improve 409 Exception handling in SwiftErrorHandler
  • [JCLOUDS-719] - Upgrade to Gson 2.3
  • [JCLOUDS-744] - Update to OkHttp 2.1.0
  • [JCLOUDS-756] - Add support for tags to CloudStack
  • [JCLOUDS-766] - Add AWS Frankfurt region
  • [JCLOUDS-788] - Add support for custom node names
  • [JCLOUDS-789] - Remove cloudfiles
  • [JCLOUDS-790] - hpcloud-objectstorage to use openstack-swift
  • [JCLOUDS-791] - Promote rackspace-cloudfiles
  • [JCLOUDS-827] - Upgrade to com.hierynomus:sshj
  • [JCLOUDS-884] - Do not try to load agentproxies other than netcat over ssh-agent
  • [JCLOUDS-906] - Expose and propagate service accounts in node creation
  • [JCLOUDS-931] - createContainersSharedByAllThreads sleeps 10 seconds per container
  • [JCLOUDS-934] - Add support for specifying GCE disk type in compute abstraction
  • [JCLOUDS-936] - Move to a LoadingCache for GCE disk->image mapping
  • [JCLOUDS-941] - Add the Content-Type header for filesystem blobstore
  • [JCLOUDS-961] - Add d2, m4, t2 instance types for EC2
  • [JCLOUDS-995] - Add userData property to CloudStackTemplateOptions
  • [JCLOUDS-998] - Update to Groovy 2.4.4
  • [JCLOUDS-1007] - Add support for Docker Exec API
  • [JCLOUDS-1010] - Test Dockerfile: Consider using DropBear in Busybox instead of OpenSSH in Ubuntu
  • [JCLOUDS-1014] - Docker: Add possibility to change loginPort
  • [JCLOUDS-1025] - Add support for user data in DigitalOcean
  • [JCLOUDS-1026] - Remove public HP cloud compute providers
  • [JCLOUDS-1057] - Add the Seoul region to AWS
  • [JCLOUDS-1072] - Add support for environment-specific run lists to Role and Role.Builder
  • [JCLOUDS-1075] - Make proxy configuration logic and settings clearer and more in line with Java conventions
  • [JCLOUDS-1076] - Initial work on etcd Keys API
  • [JCLOUDS-1114] - Support AWS EC2 "Placement.Tenancy" and "Placement.HostId" parameters for the "RunInstances" action
  • [JCLOUDS-1129] - Add more interfaces of the same network
  • [JCLOUDS-1162] - DockerComputeServiceAdapter hides cause of container startup failure
  • [JCLOUDS-1187] - Avoid excessive memory usage when processing massive http response message

Task

Edit/Copy Release Notes

The text area below allows the project release notes to be edited and copied to another document.