apache-libcloud v2.7.0 Release Notes

Release Date: 2019-12-09 // about 3 years ago
  • General

    - βœ… Test code with Python 3.8 and advertise that we also support Python 3.8.
      (GITHUB-1371, GITHUB-1374)
      [Tomaz Muraus]
    • [OpenStack] Fix OpenStack project scoped token authentication. The driver constructors now accept ex_tenant_domain_id argument which tells authentication service which domain id to use for the scoped authentication token. (GITHUB-1367) [kshtsk]


    - Introduce type annotations for the base compute API methods. This means you
      can now leverage mypy to type check (with some limitations) your code which
      utilizes Libcloud compute API standard API methods.
      Keep in mind that at this point, type annotations are only available for
      standard compute API methods.
      [Tomaz Muraus]
    - [Azure ARM] Fix ``attach_volume`` method and allow maximum of 64 disks to be
      added when LUN is not specified. Previously there was a bug and only a
      maximum of 63 disks could be added.
      [Palash Gandhi - @palashgandhi]
    - New ``start_node`` and ``stop_node`` methods have been added to the base
      Libcloud compute API NodeDriver class.
      A lot of the existing compute drivers already implemented that functionality
      via extension methods (``ex_start_node``, ``ex_stop_node``) so it was decided
      to promote those methods to be part of the standard Libcloud compute API and
      update all the affected drivers.
      For backward compatibility reasons, existing ``ex_start`` and ``ex_stop_node``
      methods will still work until a next major release.
      (GITHUB-1375, GITHUB-1364)
      [Tomaz Muraus, @emakarov]
     - [GCE] Add new ``ex_set_volume_labels`` method for managing volume labels to
       the driver.
       [Rob Zimmerman - @zimventures]
    - πŸ‘ [EC2] Add support for new ``inf1.*`` instance types.
      [Tomaz Muraus]
    • ⚑️ [S3] Update S3 driver so a single driver class can be used for different regions.

    Region which is used is controled by the region driver constructor argument.

    Previously, that driver followed "driver class per region" approach. That approach will be deprecated and removed in a future release.

    For more information, please refer to the Upgrade Notes documentation section. (GITHUB-1371) [Tomaz Muras]

    • [S3] Add missing eu-north-1 region to the S3 driver. (GITHUB-1370) [michaelsembwever]

    • [S3] Add missing regions (eu-west-3, ap-northeast-3, me-south-1) to the driver. (GITHUB-1371) [Tomaz Muras]

    • ⚑️ [S3] Update the driver to throw more user-friendly error message if user is using driver for a region X, but trying to upload / download object to / from a region Y. (GITHUB-1371) [Tomaz Muras]

    πŸ”„ Changes in Apache Libcloud 2.6.1


    - [Packet] Update ``list_sizes`` method so it accepts ``ex_project_id`` argument
      and works with project API tokens. (GITHUB-1351) [Dimitris Moraitis - @d-mo]
    - [GCE] Fix ``GCEProject.set_common_instance_metadata`` and
      ``GCEproject.set_usage_export_bucket`` method. (GITHUB-1354)
      [Aitor Zabala - @aitorzabala, Tomaz Muraus - @Kami]
    - πŸ”€ [GCE] Add ``sync`` / ``ex_sync`` argument to the ``ex_stop_node``,
      ``ex_start_node`` and ``destroy_node`` method. When this argument is set to
      ``False``, method will return immediately without waiting polling and waiting
      for a long running API operation to finish before returning. For backward
      compatibility reasons, it defaults to ``True``. (GITHUB-1357)
      [Rob Zimmerman - zimventures]
    - ⚑️ [GCE] Update list of image projects and add new ``centos-8`` and
      ``debian-10`` based images. (GITHUB-1358)
      [Christopher Lambert - XN137]
    - [OpenStack v2] Add new ``ex_image_ref`` argument to the ``create_volume``
      method. This way bootable volumes can be created from specific images.
      [Rick van de Loo]
    - [OpenStack v2] Update ``create_node_method`` and allow users to create
      nodes from bootable volumes without specifying ``image`` argument.
      [Rick van de Loo]
    - ⚑️ [AWS] Re-generate and update available EC2 instance sizes and pricing data.
      [Tomaz Muraus]
    • [Common, S3, GCS] Reuse TCP connections when uploading files (GITHUB-1353) [Quentin Pradet]

    Load Balancer

    - [AWS] Implement various create methods in the driver. (GITHUB-1349)
      [Anton Kozyrev - @Irvan]
    πŸ”„ Changes in Apache Libcloud 2.6.0
    • ⚑️ [OpenStack] Update OpenStack identity driver so a custom project can be selected using domain_name keyword argument. Previously, that wasn't possible and the first project which was returned by the API was always selected. (GITHUB-1293) [Miguel Caballer - @micafer]

    • βž• Add new extra attribute to the base NodeLocation class. (GITHUB-1282) [Dimitris Moraitis - @d-mo]

    • βœ‚ Remove various code patterns which were in place for supporting multiple Python versions, including 2.5 and 2.6. Libcloud hasn't supported Python < 2.7 for a while now, so we can remove that code. (GITHUB-1307) [Tomaz Muraus]

    • πŸ‘• Also run pylint on libcloud/compute/ directory and fix various pylint violations. (GITHUB-1308) [Tomaz Muraus]

    • 🚚 [OpenStack] Remove unused variable in parse_error (GITHUB-1260) [Rick van de Loo]

    • Add support for HTTPS proxies and fix driver.set_http_proxy() method.

    HTTPS proxy can be set up by either setting https_proxy / http_proxy environment variable or by using driver.connection.connection.set_http_proxy method.

    For more information, please refer to the documentation - https://libcloud.readthedocs.io/en/latest/other/using-http-proxy.html (GITHUB-1314, GITHUB-1324) [Jim Liu - @hldh214, Tomaz Muraus]

    • πŸ›  Fix paramiko debug logging which didn't work when using LIBCLOUD_DEBUG environment variable. (GITHUB-1315) [Tomaz Muraaus]

    • πŸš€ Update paramiko SSH deployment client so it automatically tries to convert private keys in PEM format with a header which paramiko doesn't recognize into a format which paramiko recognizes.

    NOTE: Paramiko only supports keys in PEM format. This means keys which start with "----BEGIN PRIVATE KEY-----". Keys in PKCS#8 and newer OpenSSH format are not supported.

    For more information, see https://libcloud.readthedocs.io/en/latest/compute/deployment.html#supported-private-ssh-key-types (GITHUB-1314)

    • ⚑️ Update Paramiko SSH client to throw a more user-friendly error if a private key file in an unsupported format is used. (GITHUB-1314) [Tomaz Muraus]

    • πŸ›  Fix HTTP(s) proxy support in the OpenStack drivers. (GITHUB-1324) [Gabe Van Engel - @gvengel]

    • πŸ›  Fix logging connection class so it also works when data type is bytearray or bytes. (GITHUB-1339) [Tomaz Muraus]


    - [Google Compute Engine] Fix the driver so ``list_nodes()`` method doesn't
      throw if there is a node in a ``SUSPENDED`` state.
      Also update the code so it doesn't crash if an unknown node state which is
      not defined locally is returned by the API when listing nodes. Such states
      are now mapped to ``UNKNOWN``. (GITHUB-1296, LIBCLOUD-1045)
      Reported by rafa alistair.
      [Tomaz Muraus]
    - [OpenStack] Fix a bug with retrieving floating IP address when a
      ``device_owner`` of a port is ``compute:None``. (GITHUB-1295)
      [Miguel Caballer - @micafer]
    - [Packet] Add various new extension methods to Packet.net driver
      (``ex_reinstall_node``, ``ex_list_projects``,
      ``ex_get_bgp_config_for_project``, ``ex_get_bgp_config``,
      ``ex_list_nodes_for_project``, etc.). (GITHUB-1282)
      [Dimitris Moraitis - @d-mo]
    - [Maxihost] Add new compute driver for Maxihost provider
      (https://www.maxihost.com/). (GITHUB-1298)
      [Spyros Tzavaras - @mpempekos]
    - [Azure ARM] Add various improvements to the Azure ARM driver:
      - Add functionality to resize a volume in Azure
      - Add functionality to update the network profile of a node
      - Add functionality to update a network interface's properties
      - Add functionality to check IP address availability (GITHUB-1244)
      [Palash Gandhi - @palashgandhi]
    - [EC2] Allow user to pass arbitrary filters to ``list_volumes`` method by
      passing a dictionary with filters as ``ex_filters`` method argument value.
      [Palash Gandhi - @palashgandhi]
    - [GCE] Add new ``ex_instancegroupmanager_set_autohealingpolicies`` method to
      the GCE driver.
      This method allows user to set the auto healing policies (health check to
      use and initial delay) on GCE instance group. (GITHUB-1286)
      [Kenta Morris - @kentamorris]
    - ⚑️ [GCE] Update GCE driver to include new operating system images such as
      Ubuntu 18.04, RHEL 8, etc. (GITHUB-1304)
      [Christopher Lambert - @XN137]
    - [GCE] Add new ``ex_resize_volume`` method to the driver. (GITHUB-1301)
      [Palash Gandhi - @palashgandhi]
    - [OpenStack] Add various router management methods to the OpenStack
      driver. (GITHUB-1281)
      [Miguel Caballer - @micafer]
    - [OpenStack] Fix ``ex_resize`` method. (GITHUB-1311)
      [Miguel Caballer - @micafer]
    - [OpenStack] For consistency, rename ``ex_resize`` method to
      ``ex_resize_node``. For backward compatibility reasons, leave ``ex_resize``
      alias in place.
      [Tomaz Muraus]
    - [Gridscale] Add new driver for Gridscale provider (https://gridscale.io).
      (GITHUB-1305, GITHUB-1315)
      [Sydney Weber - @PrinceSydney]
    - ⚑️ [Oneandone] Update Oneandone driver to accomodate latest changes to the API.
      This means removing deprecated ``ex_remove_server_firewall_policy`` method
      and replacing ``port_from`` and ``port_to`` argument on the firewall policy
      with a single ``port`` attribute.
      [Amel Ajdinovic - @aajdinov]
    - ⚑️ [DigitalOcean] Update ``list_locations`` method in the DigitalOcean driver
      to only returns regions which are available by default. If you want to list
      all the regions, you need to pass ``ex_available=False`` argument to the
      method. (GITHUB-1001)
      [Markos Gogoulos]
    - [EC2] Add new ``ex_modify_subnet_attribute`` method to the EC2 driver.
      [Dan Hunsaker - @danhunsaker]
    - βœ‚ [Azure ARM] Add ``ex_delete_public_ip`` method to the Azure ARM driver.
      [Reza Shahriari - redha1419]
    - ⚑️ [EC2] Update EC2 driver to throw a more user-friendly exception if a user /
      developer tries to provide an invalid value type for an item value in the
      request ``params`` dictionary.
      Request parameters are sent via query parameters and not via request body,
      as such, only string values are supported. (GITHUB-1329, GITHUB-1321)
      Reported by James Bednell.
      [Tomaz Muraus]
    - βœ‚ [OpenStack] Add new ``ex_remove_security_group_from_node`` method.
      [Miguel Caballer - @micafer]
    - ⚑️ [OpenStack] Fix broken ``ex_update_port`` method.
      [Miguel Caballer - @micafer]
    - [Softlayer] Fix a bug with driver incorrectly handling the value of
      ``ex_hourly`` argument in the ``create_node()`` method which caused nodes
      to always be created with hourly billing, even if this argument was set to
      ``False``. (GITHUB-1334, GITHUB-1335)
    - [GCE] Add optional ``cpuPlatform`` and ``minCpuPlatform`` attributes to the
      ``node.extra`` dictionary. (GITHUB-1342, GITHUB-1343)
    • [Azure Blobs] Enable the Azure storage driver to be used with the Azurite Storage Emulator and Azure Blob Storage on IoT Edge. (LIBCLOUD-1037, GITHUB-1278) [Clemens Wolff - @c-w]

    • [Azure Blobs] Fix a bug with Azure storage driver works when used against a storage account that was created using kind=BlobStrage. This includes updating the minimum API version used / supported by the storage driver from 2012-02-12 to 2014-02-14. (LIBCLOUD-851, GITHUB-1202, GITHUB-1294) [Clemens Wolff - @c-w, Davis Kirkendall - @daviskirk]

    • [Azure Blobs] Increase the maximum size of block blobs that can be created to 100 MB. This includes updating the minimum API version used / supported by the storage driver from 2014-02-14 to 2016-05-31. (GITHUB-1340) [Clemens Wolff - @c-w]

    • [Azure Blobs] Set the minimum required version of requests to 2.5.0 since requests 2.4.0 and earlier exhibit XML parsing errors of Azure Storage responses. (GITHUB-1325, GITHUB-1322) [Clemens Wolff - @c-w]

    • πŸ“œ [Azure Blobs] Detect bad version of requests that leads to errors in parsing Azure Storage responses. This scenario is known to happen on RHEL 7.6 when requests was installed via yum. (GITHUB-1332, GITHUB-1322) [Clemens Wolff - @c-w]

    • [Common, CloudFiles] Fix upload_object_via_stream and ensure we start from the beginning when calculating hash for the provided iterator. This way we avoid hash mismatch errors in scenario where provided iterator is already iterated / seeked upon before calculating the hash. (GITHUB-1326) [Gabe Van Engel - @gvengel, Tomaz Muraus]

    • [Backblaze B2] Fix a bug with driver not working correctly due to a regression which was inadvertently introduced in one of the previous releases. (GITHUB-1338, GITHUB-1339)

    Reported by Shawn Nock - @nocko. [Tomaz Muraus]

    • [Backblaze B2] Fix upload_object_via_stream method. (GITHUB-1339) [Tomaz Muraus]


    - [Cloudflare] Re-write the Cloudflare DNS driver to use Cloudflare API v4.
      (LIBCLOUD-1001, LIBCLOUD-994, GITHUB-1292)
      [Clemens Wolff - @c-w]
    - [Gandi LiveDNS] Add new driver for Gandi LiveDNS service. (GITHUB-1323)
      [Ryan Lee - @zepheiryan]
    - ⚑️ [PowerDNS] Update driver so it works with API v3 and v4. #1328
    πŸ”„ Changes in Apache Libcloud 2.5.0
    • [NTT CIS] Add loadbalancer and compute drivers for NTT-CIS, rename dimensiondata modules to NTT-CIS. (GITHUB-1250) [Mitch Raful]

    • πŸ“„ [NTT CIS] Fix loadbalancer docs. (GITHUB-1270) [Mitch Raful]

    • βœ… Use assertIsNone instead of assertEqual with None in tests (GITHUB-1264) [Ken Dreyer]

    • ⚑️ Updating command line arguments to current version in Azure examples. (GITHUB-1273) [mitar]

    • ⚑️ [GCE, SoftLayer] Update GCE and Softlayer drivers to utilize crypto primitives from the cryptography library instead of deprecated and unmaintained PyCrypto library.

    (GITHUB-1280) [Ryan Petrello]

    • πŸ›  Fix libcloud.enable_debug function so it doesn't leak open file handle and closes the open file when the program exits when a debug mode is used. [Tomaz Muraus]

    • ⚑️ Update various drivers (CloudFiles, NTT CIS etc.) so they don't leak open file handles in some situations. [Tomaz Muraus]


    - [OpenStack] Handle missing user enabled attribute (GITHUB-1261)
      [Ken Dreyer]
    - [Google Cloud Storage] Handle Interoperability access keys of more than 20
      characters. (GITHUB-1272)
      [Yoan Tournade]
    • [OpenStack] Implement OpenStack_1_1_NodeDriver ex_get_snapshot (GITHUB-1257) [Rick van de Loo]

    • [OpenStack] Pagination in various OpenStack_2_NodeDriver methods (GITHUB-1263) [Rick van de Loo]

    • [OpenStack] Implement OpenStack_2_NodeDriver ex_create_subnet (LIBCLOUD-874, GITHUB-1242) [Miguel Caballer]

    • [OpenStack] Implement OpenStack_2_NodeDriver ex_delete_subnet (LIBCLOUD-874, GITHUB-1242) [Miguel Caballer]

    • [OpenStack] Implement OpenStack_2_NodeDriver list_volumes (LIBCLOUD-874, GITHUB-1242) [Miguel Caballer]

    • [OpenStack] Implement OpenStack_2_NodeDriver ex_get_volume (LIBCLOUD-874, GITHUB-1242) [Miguel Caballer]

    • [OpenStack] Implement OpenStack_2_NodeDriver create_volume (LIBCLOUD-874, GITHUB-1242) [Miguel Caballer]

    • [OpenStack] Implement OpenStack_2_NodeDriver destroy_volume (LIBCLOUD-874, GITHUB-1242) [Miguel Caballer]

    • [OpenStack] Implement OpenStack_2_NodeDriver ex_list_snapshots (LIBCLOUD-874, GITHUB-1242) [Miguel Caballer]

    • [OpenStack] Implement OpenStack_2_NodeDriver create_volume_snapshot (LIBCLOUD-874, GITHUB-1242) [Miguel Caballer]

    • [OpenStack] Implement OpenStack_2_NodeDriver destroy_volume_snapshot (LIBCLOUD-874, GITHUB-1242) [Miguel Caballer]

    • [OpenStack] Implement OpenStack_2_NodeDriver ex_list_security_groups (LIBCLOUD-874, GITHUB-1242) [Miguel Caballer]

    • [OpenStack] Implement OpenStack_2_NodeDriver ex_create_security_group (LIBCLOUD-874, GITHUB-1242) [Miguel Caballer]

    • [OpenStack] Implement OpenStack_2_NodeDriver ex_delete_security_group (LIBCLOUD-874, GITHUB-1242) [Miguel Caballer]

    • [OpenStack] Implement OpenStack_2_NodeDriver ex_create_security_group_rule (LIBCLOUD-874, GITHUB-1242) [Miguel Caballer]

    • [OpenStack] Implement OpenStack_2_NodeDriver ex_delete_security_group_rule (LIBCLOUD-874, GITHUB-1242) [Miguel Caballer]

    • [OpenStack] Implement OpenStack_2_NodeDriver ex_list_floating_ip_pools (LIBCLOUD-874, GITHUB-1242) [Miguel Caballer]

    • πŸ“œ [OpenStack] Fix parse_error if 'code' not in API response message (GITHUB-1242) [Miguel Caballer]

    • [OpenStack] Adapt _to_port function to work with old OpenStack versions (GITHUB-1242) [Miguel Caballer]

    • [OpenStack] Use SUSPENDED NodeState in OpenStack driver (GITHUB-1269) [Miguel Caballer]

    • πŸ“š [UpCloud] Update documentation for UpCloud driver (LIBCLOUD-1026, GITHUB-1259) [Ilari MΓ€kelΓ€]

    • [NTT CIS] Fix indenting in ex_initiate_drs_failover docstring (GITHUB-1271) [Rick van de Loo]

    • [NTT CIS] Change endpoint 'canada' to 'ca' in libcloud/common/nttcis.py (GITHUB-1270) [Mitch Raful]

    • [OpenStack] Fix detach_volume method so it works with v2 volumes. (GITHUB-1267) [Rick van de Loo]

    • [CloudSigma] Fix CloudSigma driver so it correctly handles subscription objects without the start_time and / or end_time attribute. (GITHUB-1284, LIBCLOUD-1040) [aki-k, Tomaz Muraus]


    - [Azure] Fix ``upload_object_via_stream`` method so it also works with
      iterators which don't implement ``seek()`` method. If the iterator doesn't
      support seek, entire iterator content will be buffered in memory.
      (LIBCLOUD-1043, GITHUB-1287)
      [Clemens Wolff]
    - [CloudFiles] Fix ``download_object_as_stream`` method in the CloudFiles
      driver. This regression / bug was inadvertently introduced when migrating
      code to ``requests``.
      (LIBCLOUD-1039, GITHUB-1283)
      [Matt Seymour]
    - [CloudFiles] Fix a bug with ``ChunkStreamReader`` class and make sure file
      descriptor is also closed if the iterator isn't fully exhausted or if the
      iterator is never read from.
      NOTE: This potential open file descriptor leakage only affected code which
      utilized ``ex_multipart_upload_object`` method.
      [Tomaz Muraus]
    • 🐳 [Docker] Improve docstring for RegistryClient (GITHUB-1254) [Ken Dreyer]


    - βž• Add new driver for RcodeZero DNS (GITHUB-1256, LIBCLOUD-1025)
    - ⚑️ [DigitalOcean] Update DigitalOcean driver so it supports ``ttl`` attribute for
      ``Record`` objects. This includes support for specifying a record ttl via
      ``extra['ttl']`` attribute when creating and updating a record. (GITHUB-1252
      LIBCLOUD-1022) [Kevin Roy]
    • Adds missing docs for param ex_prefix & adds to DummyStore. Add ex_prefix kwarg to the list_container_objects methods in the base and dummy classes. (GITHUB-1275) [RichardARPANET]

    πŸ”„ Changes in Apache Libcloud 2.4.0

    • πŸ‘ Refuse installation with Python 2.6 and Python 3.3 (support was already dropped in Libcloud 2.3.0)

    • πŸ‘Œ Support Python 3.7 (GITHUB-1227, GITHUB-1236) [Andreas Hasenack, Andrew Starr-Bochicchio, Quentin Pradet]

    • Cleanup various Python files (GITHUB-1182, GITHUB-1183, GITHUB-1185, GITHUB-1186, GITHUB-1187, GITHUB-1188) [RΓ©my LΓ©one]

    • πŸ‘ Allow running tests with http_proxy set (GITHUB-1236) [Andreas Hasenack]


    - [OpenStack] Document openstack_connection_kwargs method (GITHUB-1219)
      [Ken Dreyer]
    - [OpenStack] Handle missing user email in OpenStackIdentityUser (GITHUB-1249)
      [Ken Dreyer]
    • πŸ‘ [ARM] Support OS disk size definition on node creation (GITHUB-1196) [Vojta Bartoš]

    • πŸ‘ [Digital Ocean] Support floating IPs (GITHUB-1177) [Rick van de Loo]

    • πŸ‘ [Digital Ocean] Support attach/detach for floating IPs (GITHUB-1191) [Rick van de Loo]

    • [Digital Ocean] Add ex_get_node_details (GITHUB-1221) [Rick van de Loo]

    • [Digital Ocean] Add tags extra attribute to create_node (GITHUB-1212) [Nikita Chebykin]

    • [Dimension Data] Fix IndexError in list_images (GITHUB-1171) [Adam Friedman]

    • [EC2] Add AWS eu-west-3 (Paris) region (GITHUB-1175) [Anthony Monthe]

    • [EC2] Add description to ex_authorize_security_group_ingress (GITHUB-1122) [Arturo Noha]

    • [EC2] Added script to automatically get EC2 instance sizes (GITHUB-1211) [Anthony Monthe, Quentin Pradet]

    • ⚑️ [EC2] Update instance sizes (GITHUB-1238) [Ward Vandewege]

    • [EC2] Accept tags when create a snapshot (LIBCLOUD-1014, GITHUB-1240) [Rafael GonΓ§alves]

    • [GCE] Expand Firewall options coverage (LIBCLOUD-960, GITHUB-1144) [maxlip]

    • [GCE] Expand network and subnetwork options coverage (LIBCLOUD-985, GITHUB-1181) [maxlip]

    • [GCE] Extend ex_create_address to allow internal ip creation (GITHUB-1174) [Jeremy Solarz]

    • [GCE] Allow shared VPC in managed instance group creation (GITHUB-1179) [Boris Chazalet]

    • πŸ‘ [GCE] Support disk_size parameter for boot disk when creating instance (LIBCLOUD-973, GITHUB-1162) [Rahul Paigavan]

    • ⚑️ [GCE] Update public image projects list (LIBCLOUD-961, GITHUB-1143) [Sean Marlow]

    • [GCE] Fix _find_zone_or_region for >500 instances (GITHUB-1203) [LΓ©o Ferlin-Sutton]

    • [GCE] Allow routing_mode=None in ex_create_network (GITHUB-1217) [Daniel Hunsaker]

    • [OpenStack] Implement Glance Image API v2 (GITHUB-1151) [Rick van de Loo]

    • [OpenStack] Fix spelling in ex_files description (GITHUB-1197) [Ken Dreyer]

    • [OpenStack v2] Allow listing image members (GITHUB-1172) [Rick van de Loo]

    • [OpenStack v2] Allow creating and accepting image members (GITHUB-1176) [Rick van de Loo]

    • [OpenStack v2] Fix image members methods (GITHUB-1190) [Rick van de Loo]

    • [OpenStack] Fix API doc for delete_floating_ip (GITHUB-1218) [Ken Dreyer]

    • [OpenStack] Implement port attaching/detaching (GITHUB-1225) [Rick van de Loo]

    • [OpenStack] Add methods for getting and creating ports (GITHUB-1226) [Alexander Grooff]

    • [OpenStack] Add get_user method (GITHUB-1216) [Ken Dreyer]

    • [OpenStack] Add ex_list_subnets to OpenStack_2_NodeDriver (GITHUB-1215, LIBCLOUD-604) [Miguel Caballer]

    • [OpenStack] The OpenStack_2_NodeDriver uses two connections (GITHUB-1215, LIBCLOUD-997) [Miguel Caballer]

    • [OpenStack] The OpenStack_2_NodeDriver /v2.0/networks instead of /os-networks (GITHUB-1215, LIBCLOUD-998) [Miguel Caballer]

    • [Scaleway] New Scaleway driver (GITHUB-1121, GITHUB-1220) [Daniel Hunsaker, NΓ‘ndor IstvΓ‘n KrΓ‘cser, RΓ©my LΓ©one]

    • ⚑️ [Scaleway] Update Scaleway default API host (GITHUB-1239) [RΓ©my LΓ©one]


    - [Google Cloud DNS] Document driver instantiation (GITHUB-1198)
      [Gareth McFarlane]
    • ⚑️ Update docstring for storage provider class (GITHUB-1201) [Clemens Wolff]

    • [Azure Blob Storage] Allow filtering lists by prefix (LIBCLOUD-986, GITHUB-1193) [Joshua Hawkinson]

    • πŸ“š [Azure Blob Storage] Update driver documentation (GITHUB-1208) [Clemens Wolff]

    • [Azure Blob Storage] Fix upload/download streams (GITHUB-1231) [Michael Perel]

    • [Azure Blob Storage] Fix PageBlob headers (GITHUB-1237) [Andreas Hasenack]

    • [S3] Guess s3 upload content type (LIBCLOUD-958, GITHUB-1195) [Iuri de Silvio]

    • [S3] Add Amazon S3 (cn-northwest-1) Storage Driver (GITHUB-1241) [@yangkang55]


    - πŸ›  Fixed spelling in 2.0 changes documentation (GITHUB-1228)
      [Jimmy Casey]
    πŸ”„ Changes in Apache Libcloud 2.3.0
    - ⬇️ Drop support for Python 2.6 and Python 3.3
      They're no longer supported, and the Python ecosystem is starting to
      drop support: two of our test dependencies no longer support them.
      [Quentin Pradet]
    - βœ… Made pytest-runner optional (GITHUB-1167)
      [Vlad Glagolev]
    • Improve warning when CA_CERTS_PATH is incorrectly passed as a list (GITHUB-1118) [Quentin Pradet]

    • πŸ“š Cleaned up and corrected third-party drivers documentation (GITHUB-1148) [Daniel Hunsaker]

    • Modernized a few Python examples (GITHUB-1164) [Batuhan Osman Taşkaya]

    • ⚑️ [OpenStack] Authentify with updated Identity API (LIBCLOUD-965, GITHUB-1145) [Miguel Caballer]


    - Fix "wait_until_running() method so it also works correctly and doesn't
      append "None" to the addresses list if node has no IP address.
      (GITHUB-1156, LIBCLOUD-971)
      [Tobias Paepke]
    - [ARM] Fix checking for "location is None" in several functions (LIBCLOUD-926,
      [Sameh Elsharkawy]
    - [ARM] Fix error when using SSH key auth with Python 3 (GITHUB-1098)
      [Sameh Elsharkawy]
    - [ARM] Fix API call on powerOff, understand PAUSED state (GITHUB-1003)
      [Markos Gogoulos]
    - πŸ‘» [ARM] Delete VHDs more reliably in destroy_node(), raise exception on
      unhandled errors (GITHUB-1120)
      [Lucas Di Pentima]
    - [ARM] Fix api version used to list and delete NICs (GITHUB-1128)
      [Peter Amstutz]
    - [ARM] Allow faster list_nodes() with ex_fetch_power_state=False
      [Peter Amstutz, Lucas Di Pentima]
    - [ARM] Fix delete_old_vhd (GITHUB-1137)
      [Peter Amstutz, Lucas Di Pentima]
    - [ARM] Limit number of retries in destroy_node (GITHUB-1134)
      [Peter Amstutz, Lucas Di Pentima]
    - [ARM] Fix Retry-After header handling (GITHUB-1139)
      [Lucas Di Pentima]
    - [CloudStack] Handle NICs without addresses (GITHUB-1141)
      [Pierre-Yves Ritschard]
    - βͺ [CloudStack] Add change size and restore (LIBCLOUD-975, GITHUB-1166)
      [Mauro Murari]
    - [Digital Ocean] Add ex_enable_ipv6 in DigitalOcean_v2 driver
      [Rick van de Loo]
    - πŸ‘ [Digital Ocean] Add support for tags in list_nodes()
      (LIBCLOUD-967, GITHUB-1149)
      [Mike Fischer]
    - [Digital Ocean] Add rebuild and resize commands
      (LIBCLOUD-977, GITHUB-1169)
      [Adam Wight]
    - [EC2] Add new x1.16xlarge and x1e.32xlarge instance type. (GITHUB-1101)
      [Anthony Monthe]
    - [EC2] Add AWS EC2 c5 series (GITHUB-1147)
      [Anthony Monthe]
    - [EC2] Add AWS EC2 M5 sizes (GITHUB-1159)
      [Anthony Monthe]
    - ⚑️ [EC2] Update pricing information for EC2 instances.
      [Tomaz Muraus]
    - [EC2] Allow cn-north-1 even without pricing information
      (LIBCLOUD-954, GITHUB-1127)
      [Quentin Pradet]
    - [EC2] Fix EBS volume encryption (GITHUB-1008)
      [Sergey Babak]
    - πŸ”’ [ECS Aliyun] Support modify_security_group_attributes (GITHUB-1157)
      [Zhang Yiming]
    - [GCE] Allow adding labels to images (GITHUB-1138)
      [Katriel Traum, Eric Johnson]
    - [GCE] Allow adding license strings to images (GITHUB-1136)
      [Katriel Traum, Eric Johnson]
    - πŸ‘ [GCE] Support GCE node labels. (LIBCLOUD-934, GITHUB-1115)
    - [GCE] Fix `GCEList` pagination. (GITHUB-1095)
      [Yap Sok Ann]
    - [GCE] Allow setting service account in instance templates (LIBCLOUD-947,
      [Evan Carter]
    - πŸ‘ [GCE] Add support for private IP addresses in GCE instance creation
      (LIBCLOUD-944, GITHUB-1107)
      [Gareth Mcfarlane]
    - [GCE] Allow for use of shared network (VPC) and subnetwork (GITHUB-1165)
      [Boris Chazalet]
    - πŸ‘ [GCE] Add support for accelerators (LIBCLOUD-963, GITHUB-1163)
      [Michael Johnson]
    - ⚑️ [ProfitBricks] Update driver and add support for the new API v4. (GITHUB-1103)
      [Nurfet Becirevic]
    - [ProfitBricks] Fix list_snapshots() method (GITHUB-1153)
      [Chad Phillips]
    - [UpCloud] New driver for UpCloud (LIBCLOUD-938, GITHUB-1102)
      [Mika Lackman, Ilari MΓ€kelΓ€]
    - [UpCloud] Use disk size and storage tier also when creating node from template
      (LIBCLOUD-952, GITHUB-1124)
      [Mika Lackman]
    - [UpCloud] Allow to define hostname and username.
      (LIBCLOUD-951, LIBCLOUD-953, GITHUB-1123, GITHUB-1125)
      [Mika Lackman]
    - [UpCloud] Add pricing information to list_sizes.
      (LIBCLOUD-969, GITHUB-1152)
      [Mika Lackman]
    • βž• Added Digital Ocean Spaces driver (LIBCLOUD-955, GITHUB-1129) [Andrew Starr-Bochicchio]

    • πŸ‘ [Digital Ocean Spaces] Add support for AMS3 region (GITHUB-1142) [Andrew Starr-Bochicchio]

    • πŸ‘ [Digital Ocean Spaces] Add support for SGP1 region (GITHUB-1168) [Andrew Starr-Bochicchio]

    • πŸ›  Fix a bug / regression which resulted in increased memory consumption when using download_object method. This method would store whole object content in memory even though there was no need for that.

    This regression was introduced in 2.0.0 when we moved to using requests library. (GITHUB-1132) [Quentin Pradet]

    • πŸ›  Fix a regression with hash computation performance and memory usage on object upload inadvertently introduced in 2.0.0 and make it more efficient. (GITHUB-1135) [Quentin Pradet]

    πŸ”„ Changes in Apache Libcloud 2.2.1


    - πŸ›  Fix an issue with installation failing on some operating system and file
      systems combinations (e.g. ecryptfs layered on top of ext4) which don't
      support file names longer than 143 characters. (LIBCLOUD-946, GITHUB-1112)
      Reported by Cyrille Verrier.
      [Tomaz Muraus]
    • [EC2] add g3 instance types [GITHUB-1101] (@zulupro)

    • [EC2] add 'end' to ec2 reserved_node [GITHUB-1099] (@xofer)

    • ⬇ Decrease sleep delay (from 1.5 to 0.2 seconds) inside paramiko client which is used to prevent busy waiting while waiting for data on the channel.

    This should cause deploy scripts which produce a lot of output in incremental manner to finish faster. [Tomaz Muraus]

    • πŸ›  Fix a regression in the Azure ARM driver which didn't allow custom storage URI suffix to be used with create_node. (GITHUB-1110) [Lucas Di Pentima]

    βœ… Tests

    - πŸ‘‰ Make sure we normalize header values and cast all the numbers to strings in
      base connection classes used by tests. (LIBCLOUD-945, GITHUB-1111)
      Reported by Erich Eckner.
      [Tomaz Muraus]
    πŸ”„ Changes in Apache Libcloud 2.2.0
    • [EC2] add g3 instance types [GITHUB-1101] (@zulupro)

    • [EC2] add 'end' to ec2 reserved_node [GITHUB-1099] (@xofer)

    πŸ”„ Changes in Apache Libcloud 2.2.0


    - [GCE] Scrape prices for GCE Australia Region
      (Francisco Ros)
    • [ARM] Add option to create static public IP [GITHUB-1091, LIBCLOUD-918] (Aki Ketolainen)

    • [SOFTLAYER] Add get_image method to class [GITHUB-1066] (Francois Regnoult)

    • πŸ‘ [ARM] Add Storage support, volumes, snapshots [GITHUB-1087] (Sergey Babak)


    - 🐳 [DOCKER] Fixes to support TLS connection
    • [ROUTE53] Fix for TXT and SPF records, when user didn't escapsulate data in quotes, the API would fire error. As reported by @glyph [LIBCLOUD-875, GITHUB-1093] (Anthony Shaw)

    • [LINODE] Add priority to the extra dictionary in record instances [GITHUB-1088] (@mete0r)

    Load Balancer

    - πŸ›  Fixed AWS ALB/ELB driver init method to instantiate nested connection object
      [LIBCLOUD-936, GITHUB-1089]
      (Anton Kozyrev)
    • ⚑️ [CLOUDFILES] Update OpenStackSwiftConnection to work with auth version 3.0 [GITHUB-1068] (Hakan Carlsson)

    • πŸ‘ [CLOUDFILES] Add SSL URI support [GITHUB-1076, LIBCLOUD-458] (@ayleph)

    πŸ”„ Changes in Apache Libcloud 2.1.0


    - ⚑️ [AWS] Update prices and fix some region names
      (Francisco Ros)
    - πŸ›  Fix bug in utils.decorators wrap exception method, used by vsphere driver
      (Anthony Shaw)
    - βœ… Use PyTest as the unit testing runner
      (Anthony Shaw)
    - πŸ‘‰ Use of LXML is now disabled by defalt, use
      ``libcloud.utils.py3.DEFAULT_LXML = True`` to reenable. LXML has
      compatibility issues with a number of drivers and etree is a standard
      (Anthony Shaw)
    - Switch RawResponse class to use content body instead of text body, up to 10x
      performance improvement for methods like StorageDriver.download_object
      (Quentin Pradet)
    • πŸ‘ [OPENSTACK] Add support for Nova 2.x and Keystone 3 [GITHUB-1052] (Anthony Shaw)

    • [GCE] Add loadBalancingScheme parameter for ex_create_forwarding_rule method in GCE driver. [GITHUB-1079] (@sT331h0rs3)

    • πŸ“œ [GCE] Fix error codes not being parsed in certain scenarios [GITHUB-1074, LIBCLOUD-925] (micafer)

    • πŸ“œ [EC2] Fix node's Block Device Mapping was parsed from incorrect mapping. EbsInstanceBlockDevice is different from EbsBlockDevice. [GITHUB-1075] (Gennadiy Stas)

    • πŸ›  [GANDI] Fixes the location name in image and instance type classes [GITHUB-1065] (Sayoun)

    • [GCE] Fix method for create instance properties, it previously ignored the disk type parameter and defaulted to pd-standard. [GITHUB-1064] (Evan Carter)

    • πŸ›  Fix missing return data from EC2 billing product methods [GITHUB-1062] (Alex Misstear)

    • πŸ– Handle [VULTR] API rate limiting [GITHUB-1058] (Francisco Ros)

    • πŸ›  Fix Kili driver not correctly fixing the auth version for openstack to 2.0_password [GITHUB-1054] (Anthony Shaw)

    • [EC2] Add i3 instance types for AWS [GITHUB-1038] (Stephen Mullins)

    • [VULTR] Extend extra dict of Vultr sizes to include additional fields (plan_type and available_locations) [GITHUB-1044] (Francisco Ros)


    - πŸ†• New driver for Google Container Engine
      (Andy Maheshwari)
    - [KUBERNETES] Fix get_container method responding with None
      (Anthony Shaw)
    - 🐳 [DOCKER] Fix for start_container method
    - 🐳 [DOCKER] fix add an extra check otherwise list_containers breaks with
      AttributeError when fromImages is specified
    • [S3] Fix raise in s3.upload_object_via_stream [LIBCLOUD-914, GITHUB-1055] (Quentin Pradet)

    πŸ”„ Changes in Apache Libcloud 2.0.0


    - πŸ›  Fix OpenStack drivers not correctly setting URLs when used with identity API,
      would default to and service catalog URLs were not adhered to.
      [GITHUB-1037, LIBCLOUD-912, LIBCLOUD-904]
      (Anthony Shaw)
    - πŸ›  Fix Aliyun ECS, Load balancer and storage adapters when using unicode UTF-8
      characters in the names of resources in 2.0.0rc2 < it would fail as a
      MalformedResponseError, Python 2.7 element tree was raising a unicode error
      [GITHUB-1032] [GITHUB-994]
      (Anthony Shaw)
    - πŸ”¨ Refactor the test classes to use the full libcloud.http and
      libcloud.common.base modules, with Connection, Response all used with
      requests_mock. This increases our test coverages and catches bugs in
      drivers' custom parse_body and auth modules
      (Anthony Shaw)
    - πŸ“‡ Rename libcloud.httplib_ssl to libcloud.http now that we don't use httplib
      (Anthony Shaw)
    • βœ… [GOOGLE] Add test to check that can create a GCE volume at a given location [GITHUB-1048] (Francisco Ros)

    • [GOOGLE] Fix GCENodeDriver.ex_get_volume() when zone param is of class GCEZone or NodeLocation [GITHUB-1047] (Francisco Ros)

    • [GOOGLE] Fix call to GCENodeDriver._ex_populate_volume_dict [GITHUB-1046] (Francisco Ros)

    • πŸ‘ [ARM] Add support for Azure Cloud Environments as well as Locations [GITHUB-969] (Peter Amstutz)

    • πŸ‘ [EC2] Add support for ModifyVolume and DescribeVolumesModifications [GITHUB-1036] (Hennadii Stas)

    • [ARM] Fix string representation of the VhdImage type and fix listing of Public IP addresses [GITHUB-1035] (Anthony Shaw)

    • 🚚 [GOOGLE] Remove validation checks for guestOsFeatures [GITHUB-1034] (Max Illfelder)

    • [VSPHERE] Fix issue with authentication methods crashing [GITHUB-1031] (Anthony Shaw)

    • πŸ”’ [ARM] Add network security groups to azure ARM [GITHUB-1033] (Joseph Hall)

    • [ARM] Add the ability to list resource groups [GITHUB-1032] (Joseph Hall)

    • βž• Add 1&1 compute driver [LIBCLOUD-911] [GITHUB-1029] (Jasmin Gacic)

    • Fix Azure ARM driver condition for ex_list_publishers where location is specified [GITHUB-1030] (Joseph Hall)

    • βž• Added Import Snapshot and Describe Import Snapshot to EC2 compute driver [GITHUB-1023] (Nirzari Iyer)

    • βž• Add price_monthly extra param to digitalocean sizes [GITHUB-1021] (Francisco Ros)

    • βž• Add aliyun ecs instance join leave security group [GITHUB-992] (Jie Ren)

    • βž• Add keypair management to OnApp driver [GITHUB-1018] (Tinu Cleatus)

    • βž• Add missing regions in AWS storage and compute drivers [GITHUB-1019] (Alex Misstear)

    • βž• Add SR-IOV net support to images in EC2 compute driver [GITHUB-1020] (Alex Misstear)

    • πŸ›  Fix - update t2.small image size from 11 CPU to 1 [GITHUB-1022] (Francisco Ros)

    • βž• Added Billing Product for image in EC2 compute driver [GITHUB-1024] (Nirzari Iyer)


    - βž• Add OnApp driver
      [GITHUB-1017] [LIBCLOUD-907]
      (Tinu Cleatus)