- This is a maintenance release with no backward incompatible changes.
- Azure dependencies updated to latest version and associated fixes #274, #277, #278, #279, #281, #282 (thanks to @FabioRosado)
- AWS, GCP and OpenStack dependencies updated to latest versions and associated fixes.
- AWS resources use TagSpecification support, removing extra requests for initial tagging.
- Fixed wrong logging object in cloud provider #272 (thanks to @MosheFriedland)
- Switched to github actions from travis
- Patch discovery.build calls in GCP provider to use google's improved httplib2 #263 (thanks to @selshowk)
- Added feature to start and stop aws instance #271 (thanks to @abhi005)
- Miscellaneous doc and maintenance fixes.
- This release introduces the DNS service, which is a top level service for managing DNS zones and records.
- Support for using the newly added AWS instance type offerings API. This removes the dependency on a static machine type list, and returns up-to-date information on instance type availability.
- The default package no longer bundles Azure, as the Azure python libraries are very large and affects docker container size when using cloudbridge. To install with Azure, use pip install cloudbridge[full] or pip install cloudbridge[azure].
- A convenience method for cloning providers in different zones has been added, which helps with multi-zone operations.
- Support for specifying s3 signature version for the AWS provider.
- Miscellaneous bug fixes and error handling improvements.
- Support for python<3 dropped.
- No major backward incompatible changes (apart from Azure not being bundled by default)
- This is a major release which contains many improvements and some breaking changes to the interface, but the changes are fairly straightforward.
- Support for Google Cloud (thanks to @mbookman, @chiniforooshan, @baizhang)
- Support for middleware, event listening and interception, allowing CloudBridge to be extended without needing to modify library code (This is also potentially useful for handling corner cases for specific clouds).
- The mock provider is now available by default as a standard cloud provider, which is useful for testing applications that use CloudBridge.
- Providers now operate in a single zone, and therefore, all methods that
previously required the zone as a parameter no longer do. Specifically,
instance.create()
,volume.create()
,subnet.create
,subnet.get_or_create_default()
are affected in services, andsnap.create_volume
is affected in resources. The provider's default zone must now be specified through the provider config. - All exceptions that are generated by CloudBridge will now extend from
CloudBridgeBaseException
- The cloud package is deprecated and everything under it has been moved
one level up. For example, instead of
from cloudbridge.cloud.factory import CloudProviderFactory
usefrom cloudbridge.factory import CloudProviderFactory
. - Services are much more uniform now, and sub-services have been introduced
for greater uniformity. For example,
net.create_subnet()
is nownet.subnets.create()
gateways.get_or_create_inet_gateway()
is now simplygateways.get_or_create()
- AWS instance types are now served through Amazon CloudFront for better performance.
- Miscellaneous bug fixes and improvements.
- Added AWS instance types caching for better performance
- Added
router.subnets
property - Ensure the default network for CloudBridge on AWS has subnets
- Fixed minor bug when retrieving buckets with only limited access.
- Relaxed some library version dependencies (e.g. six).
- Added Microsoft Azure as a provider.
- Restructured the interface to make it more comprehensible and uniform across all supported providers. See issue #69 for more details as well as the library layout image for an easy visual reference: https://github.com/CloudVE/cloudbridge#quick-reference.
- Migrated AWS implementation to use the boto3 library (thanks @01000101)
- Cleaned up use of
name
property for resources. Resources now haveid
,name
, andlabel
properties to represent respectively: a unique identifier supplied by the provider; a descriptive, unchangeable name; and a user-supplied label that can be modified during the existence of a resource. - Added enforcement of name and label value: names must be at least 3 characters in length at minimum, and 64 characters at maximum, consisting of only lower case letters and dashes. Should not start or end with a dash.
- Refactored tests and extracted standard interface tests where all resources are being tested using the same code structure. Also, tests will run only for providers that implement a given service.
- Moved the repository from github.com/gvlproject to github.com/cloudve org.
- When deleting an OpenStack network, clear any ports.
- Added support for launching OpenStack instances into a specific subnet
- Update image list interface to allow filtering by owner.
- When listing images on AWS, filter only the ones by current account owner.
- Retrieve AWS instance types from a public service to include latest values.
- Instance state uses
DELETED
state instead ofTERMINATED
. - Return VM type RAM in GB.
- Add implementation for
generate_url
on OpenStack. - General documentation updates.
- Remove explicit versioning of requests and Babel.
- Patch release to support files>5GB with OpenStack (thanks @MartinPaulo).
- Misc bug fixes.
- Patch for binary file handling in OpenStack.
- Reworked test framework to rely on tox's test generation features. This allows for individual test cases to be run on a per provider basis.
- Added more OpenStack swift config options (OS_AUTH_TOKEN and OS_STORAGE_URL)
- Added supports for accessing EC2 containers with restricted permissions.
- Removed exists() method from object store interface. Use get()==None check instead.
- New method (img.min_disk) for getting size of machine image.
- Test improvements (flake8 during build, more tests).
- Misc bug fixes and improvements.
- Changed library to beta state
- General documentation updates (testing, release process)
- Reworked the instance launch method to require subnet vs. network. This removed the option of adding network interface to a launch config object.
- Added object store methods: upload from file path, list objects with a prefix, check if an object exists, (AWS only) get an accessible URL for an object (thanks @VJalili).
- Modified get_ec2_credentials() method to get_or_create_ec2_credentials()
- Added an option to read provider config values from a file (~/.cloudbridge or /etc/cloudbridge).
- Replaced py35 with py36 for running tests.
- Added logging configuration for the library.
- General documentation updates.
- For AWS, always launch instances into private networking (i.e., VPC).
- Support for using OpenStack Keystone v3.
- Add functionality to manipulate routers and routes.
- Add FloatingIP resource type and integrate with Network service.
- Numerous documentation updates.
- For an OpenStack provider, add method to get the ec2 credentials for a user.
- Initial release of CloudBridge.
- Support for Bucket, Instance, Instance type, Key pair, Machine image. Region, Security group, Snapshot, Volume, Network and Subnet services.
- Support for paging results, block device mapping and launching into VPCs.
- Support for AWS and OpenStack clouds.
- Basic usage docs and complete API docs.
- 95% test coverage.
- Support for AWS mock test provider (via moto).