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
- [JCLOUDS-172] - "Graduate" GCE to core
- [JCLOUDS-702] - Create ProfitBricks Provider
- [JCLOUDS-736] - Unable to build jclouds-resources
- [JCLOUDS-745] - Remove jclouds-labs modules unreleased since jclouds 1.5
- [JCLOUDS-786] - Remove old swift api
- [JCLOUDS-866] - Investigate GCS multipart upload limits
- [JCLOUDS-1065] - Deprecate fake directory support
- [JCLOUDS-1124] - oneandone-server-api
- [JCLOUDS-1138] - oneandone-image-api
- [JCLOUDS-1140] - oneandone-SharedStorage-api
- [JCLOUDS-1149] - oneandone-firewallpolicies-api
- [JCLOUDS-1151] - oneandone-loadbalancers-api
- [JCLOUDS-1183] - oneandone-monitoringcenter-api
Edit/Copy Release Notes
The text area below allows the project release notes to be edited and copied to another document.