d47ea9cde39fe1590363008f1c6cacc791484411
[libcloud.git] / CHANGES.rst
1 Changelog
2 =========
3
4 Changes in current version of Apache Libcloud
5 ---------------------------------------------
6
7 Common
8 ~~~~~~
9
10 - Use of LXML is now disabled by defalt, use libcloud.utils.py3.DEFAULT_LXML = True to reenable. LXML has compatibility 
11   issues with a number of drivers and etree is a standard package
12   [GITHUB-1038]
13   (Anthony Shaw)
14
15 Compute
16 ~~~~~~~
17
18 - [VULTR] Extend extra dict of Vultr sizes to include additional fields (plan_type and available_locations)
19   [GITHUB-1044]
20   (Francisco Ros)
21
22 Container
23 ~~~~~~~~~
24
25 - [DOCKER] fix add an extra check otherwise list_containers breaks with AttributeError when fromImages is specified
26   [GITHUB-1043]
27   (@johnnyWalnut)
28
29 Changes in Apache Libcloud 2.0.0
30 --------------------------------
31
32 Common
33 ~~~~~~
34
35 - Fix OpenStack drivers not correctly setting URLs when used with identity API, would default to 127.0.0.1 and service
36   catalog URLs were not adhered to.
37   [GITHUB-1037, LIBCLOUD-912, LIBCLOUD-904]
38   (Anthony Shaw) 
39
40 - Fix Aliyun ECS, Load balancer and storage adapters when using unicode UTF-8 characters in the names of resources
41   in 2.0.0rc2 < it would fail as a MalformedResponseError, Python 2.7 element tree was raising a unicode error
42   [GITHUB-1032] [GITHUB-994]
43   (Anthony Shaw)
44
45 - Refactor the test classes to use the full libcloud.http and libcloud.common.base modules, with Connection,
46   Response all used with requests_mock. This increases our test coverages and catches bugs in drivers' custom
47   parse_body and auth modules
48   [GITHUB-1031]
49   (Anthony Shaw)
50
51 - Rename libcloud.httplib_ssl to libcloud.http now that we don't use httplib
52   [GITHUB-1028]
53   (Anthony Shaw)
54
55 Compute
56 ~~~~~~~
57
58 - [GOOGLE] Add test to check that can create a GCE volume at a given location
59   [GITHUB-1048]
60   (Francisco Ros)
61
62 - [GOOGLE] Fix GCENodeDriver.ex_get_volume() when zone param is of class GCEZone or NodeLocation
63   [GITHUB-1047]
64   (Francisco Ros)
65
66 - [GOOGLE] Fix call to GCENodeDriver._ex_populate_volume_dict
67   [GITHUB-1046]
68   (Francisco Ros)
69
70 - [ARM] Add support for Azure Cloud Environments as well as Locations
71   [GITHUB-969]
72   (Peter Amstutz)
73
74 - [EC2] Add support for ModifyVolume and DescribeVolumesModifications
75   [GITHUB-1036]
76   (Hennadii Stas)
77
78 - [ARM] Fix string representation of the VhdImage type and fix listing of Public IP addresses
79   [GITHUB-1035]
80   (Anthony Shaw)
81
82 - [GOOGLE] Remove validation checks for guestOsFeatures
83   [GITHUB-1034]
84   (Max Illfelder)
85
86 - [VSPHERE] Fix issue with authentication methods crashing
87   [GITHUB-1031]
88   (Anthony Shaw)
89
90 - [ARM] Add network security groups to azure ARM
91   [GITHUB-1033]
92   (Joseph Hall)
93
94 - [ARM] Add the ability to list resource groups
95   [GITHUB-1032]
96   (Joseph Hall)
97
98 - Add 1&1 compute driver
99   [LIBCLOUD-911] [GITHUB-1029]
100   (Jasmin Gacic)
101
102 - Fix Azure ARM driver condition for ex_list_publishers where location is specified
103   [GITHUB-1030]
104   (Joseph Hall)
105
106 - Added Import Snapshot and Describe Import Snapshot to EC2 compute driver
107   [GITHUB-1023]
108   (Nirzari Iyer)
109
110 - Add price_monthly extra param to digitalocean sizes
111   [GITHUB-1021]
112   (Francisco Ros)
113
114 - Add aliyun ecs instance join leave security group
115   [GITHUB-992]
116   (Jie Ren)
117
118 - Add keypair management to OnApp driver
119   [GITHUB-1018]
120   (Tinu Cleatus)
121
122 - Add missing regions in AWS storage and compute drivers
123   [GITHUB-1019]
124   (Alex Misstear)
125
126 - Add SR-IOV net support to images in EC2 compute driver
127   [GITHUB-1020]
128   (Alex Misstear)
129
130 - Fix - update t2.small image size from 11 CPU to 1
131   [GITHUB-1022]
132   (Francisco Ros)
133
134 - Added Billing Product for image in EC2 compute driver
135   [GITHUB-1024]
136   (Nirzari Iyer)
137
138 DNS
139 ~~~
140
141 - Add OnApp driver
142   [GITHUB-1017] [LIBCLOUD-907]
143   (Tinu Cleatus)
144
145 Changes in Apache Libcloud 2.0.0rc2
146 -----------------------------------
147
148 Common
149 ~~~~~~
150
151 - Fix LIBCLOUD_DEBUG trying to decompress already decompressed responses
152   [LIBCLOUD-910]
153   (Anthony Shaw)
154
155 - Added an integration test API and a test suite for validating functionality
156   without mocking any libcloud subsystems
157   [GITHUB-970]
158   (Anthony Shaw)
159
160 - Fix for Linode classes since 2.0x
161   [GITHUB-1026]
162   (Anthony Shaw)
163
164 - Fix CertificateConnection not correctly signing requests in 2.0rc1, impacted
165   Azure classic driver, OpenStack and Docker driver
166   [GITHUB-1015]
167   (Anthony Shaw)
168
169 - Change Cloudscale to cloudscale.ch.
170   [GITHUB-993]
171   (David Halter)
172
173 - Explicitly check if response is None in RawResponse class
174   [GITHUB-1006] [LIBCLOUD-901]
175   (Richard Xia)
176
177 Compute
178 ~~~~~~~
179
180 - Outscale SAS doc improvements and logo update
181   [GITHUB-950]
182   (Javier M Mellid)
183
184 - [GCE] Allow preemptible instances to be created
185   [GITHUB-954]
186   (John Baublitz)
187
188 - Add support for forcing detachment of EBS volumes to EC2 driver
189   [GITHUB-1007]
190   (Sergey Babak)
191
192 - Fix Public IP not assigned when creating NIC on Azure ARM
193   [GITHUB-1013] [LIBCLOUD-906]
194   (Simone Ripamonti)
195
196 - [ONAPP] Add list images support for OnApp driver
197   [GITHUB-1011]
198   (Tinu Cleatus)
199
200 - [EC2] Add r4 instance types for AWS
201   [GITHUB-997]
202   (Jens Deppe)
203
204 - [EC2] support for AWS eu-west-2 and ca-central-1 regions
205   [GITHUB-1009]
206   (Marat Komarov)
207
208 - [EC2] Add P2 GPU instance types
209   [GITHUB-996]
210   (MJK)
211
212 - [EC2] Add method to modify snapshot attribute for EC2
213   [GITHUB-990]
214   (Sayan Chowdhury)
215
216 - [Linode] Add start, stop instance methods and fix incorrect state TERMINATED to STOPPED
217   [GITHUB-986]
218   (Markos Gogoulos)
219
220 - [EC2] Add ENA support for EC2 compute images
221   [GITHUB-983]
222   (Alex Misstear)
223
224 - [Azure ARM] fix typeerror on ex_list_nics
225   [GITHUB-979]
226   (Choi Jongu)
227
228 - [GCE] allow delete instances from managed group
229   [GITHUB-975]
230   (@zacharya19)
231
232 Storage
233 ~~~~~~~
234
235 - Reintroduce S3 multipart upload support with signature v4
236   [GITHUB-1005] [LIBCLOUD-834]
237   (Alex Misstear)
238
239
240 Changes Apache Libcloud 2.0.0rc1
241 --------------------------------
242
243 Common
244 ~~~~~~
245
246 - Fix DEBUG mode, also add support for using io.StringIO as the file handle
247   when calling libcloud.enable_debug.
248   (GITHUB-978, LIBCLOUD-887)
249   [Anthony Shaw]
250
251 - Introduction of the requests package as the mechanism for making HTTP
252   requests for all drivers.
253   (GITHUB-928)
254   [Anthony Shaw]
255
256 - Fix bug where custom port and secure flag would not get propagated to
257   connection class.
258   (GITHUB-972)
259   [Anthony Shaw]
260
261 - Fix bug where custom port would not get propagated to connection.
262   (GITHUB-971)
263   [Anthony Shaw]
264
265 - Fix bug where instantiating a connection from URL and then requesting an
266   action with a leading / would lead to a malformed URL.
267   (GITHUB-976)
268   [Anthony Shaw]
269
270 Compute
271 ~~~~~~~
272
273 - Fix a bug in profitbricks driver where listing snapshots would request a
274   malformed URL.
275   [GITHUB-976]
276   (Anthony Shaw)
277
278 - Fix LIBCLOUD-806 bug where vsphere driver cannot be instantiated.
279   (GITHUB-967)
280   [Anthony Shaw]
281
282 - [google compute] Improve performance of list nodes by caching volume
283   information.
284   (GITHUB-813, LIBCLOUD-826)
285   [Tom Melendez]
286
287 Changes in Apache Libcloud 1.5.0
288 --------------------------------
289
290 Common
291 ~~~~~~
292
293 - Set Dimension Data compute, backup and load balancer to default to 2.4 API.
294   (GITHUB-961)
295   [Samuel Chong]
296
297 Compute
298 ~~~~~~~
299
300 - [azure] New method for accessing rate cards.
301   (GITHUB-957)
302   [Soren L. Hansen]
303
304 - [gce] Allow multiple preemptible instances to be created.
305   (GITHUB-954)
306   [John Baublitz]
307
308 - [openstack] Add new Connection class to support VOMS proxys to keystone
309   servers.
310   (GITHUB-959)
311   [micafer]
312
313 - [outscale] Added support for changed API for describing quotas.
314   (GITHUB-960)
315   [Javier M. Mellid]
316
317 - [ec2] Added m4 instances to us-gov and brazil, added m4.16xlarge to all.
318   (GITHUB-964)
319   [Matthew Tyas]
320
321 - Add new CloudScale.ch driver
322   (GITHUB-951)
323   [Dave Halter]
324
325 - [google compute] Bug fix for ex_create_multiple_nodes Google Cloud disk auto
326   delete.
327   (GITHUB-955)
328   [John Baublitz]
329
330 - [google compute] Add "MULTI_IP_SUBNET" guestOsFeatures option.
331   (GITHUB-956)
332   [Max Illfelder]
333
334 - [dimensiondata] Added support for 2.4 API, added support for image import,
335   cloning. Add feature for changing NIC VLANs, add feature for changing NIC
336   order for a server.
337   (GITHUB-953)
338   [Samuel Chong]
339
340 - [ec2] Add US-EAST2 (Ohio).
341   (GITHUB-946)
342   [Matthew Harris]
343
344 - [google compute] Fix to allow multiple node creation with subnets.
345   (GITHUB-949)
346   [John Baublitz]
347
348 Container
349 ~~~~~~~~~
350
351 - [rancher] The scheme (secure) and port no longer need to be explicitly
352   specified, allowing a user to simply copy in the string provided to them
353   from Rancher.
354   (GITHUB-958)
355   [Matthew Ellison]
356
357 Changes in Apache Libcloud 1.4.0
358 --------------------------------
359
360 Compute
361 ~~~~~~~
362
363 - Introduce new Azure ARM driver.
364   [Peter Amstulz]
365
366 - [ec2] Fix the bug that created the node at ecs driver and implement the
367   method for creating public ip.
368   (GITHUB-943)
369   [watermelo]
370
371 - [profitbricks] changes to the ProfitBricks compute driver to drop support
372   for the old SOAP api (now end of life) and provide support for v3 of the
373   REST api.
374   (GITHUB-938)
375   [Matt Finucane]
376
377 - [cloudsigma] Added Warsaw (waw) region.
378   (GITHUB-942)
379   [Kamil Chmielewski]
380
381 - [google compute] List images fix for projects > 500 images.
382   (GITHUB-939)
383   [Scott Crunkleton]
384
385 - [ec2] Add st1 and sc1 volume types to valid types.
386   (GITHUB-925)
387   [Sean Goller]
388
389 - [digital ocean] add ex_change_kernel in DigitalOcean_v2 driver.
390   (GITHUB-922)
391   [Rick van de Loo]
392
393 - [digital ocean] add ex_hard_reboot in DigitalOcean_v2 driver.
394   (GITHUB-920)
395   [Rick van de Loo]
396
397 - [openstack] add ex_start_node for the openstack driver.
398   (GITHUB-919)
399   [Rick van de Loo]
400
401 - [vultr] Extra Attributes for Node Creation on Vultr.
402   (GITHUB-917)
403   [Fahri Cihan Demirci]
404
405 - [vultr] Implement SSH Key Create/Delete Methods for Vultr.
406   (GITHUB-914)
407   [Fahri Cihan Demirci]
408
409 - [dimension data] No longer throw error when powering off a node that is
410   already stopped.
411   (GITHUB-912)
412   [Samuel Chong]
413
414 - [dimension data] Refactor create_node for MCP2 to support CaaS API 2.3 feature.
415   Can now specify Network Adapter Name for primary and additional NIC.
416   Parameters in create_node function is tailored for MCP2.
417   (GITHUB-902)
418   [Samuel Chong]
419
420 - Volume snapshot operations, i.e. creating, listing and deleting volume
421   snapshots, for the Digital Ocean driver.
422   (LIBCLOUD-861, GITHUB-909)
423   [Fahri Cihan Demirci]
424
425 - Added snapshot management to OVH compute.
426   (GITHUB-897)
427   [Anthony Monthe]
428
429 - [GCE] Support for HTTP(S) proxies with BackendServices.
430   (GITHUB-856)
431   [Tom Melendez]
432
433 Container
434 ~~~~~~~~~
435
436 - [docker] As reported in the corresponding bug, the docker daemon will respond
437   in an install_image call with all the messages produced during the procedure
438   parsed as json docs. In that case the response headers also contain the value
439   'transfer-encoding':'chunked'. That kind of response can now be parsed
440   properly by the DockerResponse parse_body method. Also, another small change
441   is that previously the id of the new image was marked in the json document as
442   id, but now it's marked as sha256, so the regex used to discover the id has
443   been updated.
444   (GITHUB-918)
445   [Pavlos Tzianos]
446
447 Load Balancing
448 ~~~~~~~~~~~~~~
449
450 - Introduce AWS Application Load Balancer (ALB) driver.
451   (LIBCLOUD-869, GITHUB-936)
452   [Anton Kozyrev]
453
454 - Fix bug where GCE Load balancer supposes that all VMs have public ips.
455   (LIBCLOUD-879, GITHUB-952)
456   [Chris Walker]
457
458 Storage
459 ~~~~~~~
460
461 - [s3] Add AP-Southeast2 as region.
462
463 - [google] Prevent GCE auth to hide S3 auth.
464   (GITHUB-921)
465   [Quentin Pradet]
466
467 - [GCS] Fixed some google_storage.py URL cleaning.
468   (GITHUB-901)
469   [Scott Crunkleton]
470
471 Changes in Apache Libcloud 1.3.0
472 --------------------------------
473
474 General
475 ~~~~~~~
476
477 - Introduced new base API for instantiating drivers.
478   (GITHUB-822)
479   [Anthony Shaw]
480
481 - Added certificate path for SLES12/OpenSUSE12.
482   (GITHUB-884)
483   [Michael Calmer]
484
485 - Deprecate DigitalOcean v1 API support in favour of v2 API.
486   (GITHUB-889, GITHUB-892)
487   [Andrew Starr-Bochicchio]
488
489 - Deprecate RunAbove cloud drivers in favour of new OVH cloud driver.
490   (GITHUB-891)
491   [Anthony Monthe]
492
493
494 Compute
495 ~~~~~~~
496
497 - Fix reporting function for detailed admin logs in Dimension Data Driver.
498   (GITHUB-898)
499   [Anthony Shaw]
500
501 - Added edit firewall functionality to Dimension Data driver.
502   (GITHUB-893)
503   [Samuel Chong]
504
505 - Bugfix - Fixed listing nodes issue in Python 3.
506   (LIBCLOUD-858, GITHUB-894)
507   [Fahri Cihan Demirci]
508
509 - Added FCU (Flexible Compute Unit) support to the Outscale driver.
510   (GITHUB-890)
511   [Javier M. Mellid]
512
513 - [google compute] Add "WINDOWS" guestOsFeatures option.
514   (GITHUB-861)
515   [Max Illfelder]
516
517 - When creating volumes on OpenStack with defaults for `location` or
518   `volume_type`, newer OpenStack versions would throw errors. The OpenStack
519   driver will now only post those arguments if non-`NoneType`.
520   (GITHUB-857)
521   [Allard Hoeve]
522
523 - When fetching the node details of a non-existing node, OpenStack would raise
524   a `BaseHTTPError` instead of returning `None`, as was intended. Fixed tests
525   and code.
526   (GITHUB-864)
527
528 - Added `ex_stop_node` to the OpenStack driver.
529   (GITHUB-865)
530   [Allard Hoeve]
531
532 - When creating volume snapshot, the arguments `name` and `description` are
533   truely optional when working with newer OpenStack versions. The OpenStack
534   driver will now only post thost arguments if they are non-`NoneType`.
535   (GITHUB-866)
536   [Allard Hoeve]
537
538 - StorageVolumeSnapshot now has an attribute `name` that has the name of the
539   snapshot if the provider supports it. This used to be `.extra['name']`, but
540   that is inconsistent with `Node` and `StorageVolume`. The `extra` dict still
541   holds `name` for backwards compatibility.
542   (GITHUB-867)
543   [Allard Hoeve]
544
545 Container
546 ~~~~~~~~~
547
548 - Introduced new Rancher driver
549   (GITHUB-876)
550   [Mario Loria]
551
552 - Fixed bug in Docker util library for fetching images from the docker hub API.
553   API was returning 301 and redirects were not being followed.
554   (GITHUB-862)
555   [Anthony Shaw]
556
557 Load Balancer
558 ~~~~~~~~~~~~~
559
560 - Added fetch tags support in elb driver.
561   (GITHUB-848)
562   [Anton Kozyrev]
563
564 Storage
565 ~~~~~~~
566
567 - Added storage permissions for Google Cloud Storage.
568   (GITHUB-860)
569   [Scott Crunkleton]
570
571 Changes in Apache Libcloud 1.2.1
572 --------------------------------
573
574 Backup
575 ~~~~~~
576
577 - Fix issue enabling backups on Dimension Data driver.
578   (GITHUB-858)
579   [Mark Maglana, Jeff Dunham, Anthony Shaw]
580
581 Changes in Apache Libcloud 1.2.0
582 --------------------------------
583
584 General
585 ~~~~~~~
586
587 - Fix caching of auth tokens in the Google Compute Engine drivers. Now we make
588   sure that the file is truncated before writing a new token. Not truncating
589   the file would cause issues if the new token is shorted then the existing one
590   which is cached in the file.
591   (GITHUB-844, LIBCLOUD-835)
592   [Paul Tiplady]
593
594 Compute
595 ~~~~~~~
596
597 - [gce] Fix image undeprecation in GCE.
598   (GITHUB-852)
599   [Max Illfelder]
600
601 - [gce] Added Managed Instance Groups.
602   (GITHUB-842)
603   [Tom Melendez]
604
605 - [gce] Allow undeprecation of an image.
606   (GITHUB-851)
607   [Max Illfelder]
608
609 - [cloudstack] BUGFIX Values with wildcards failed signature validation.
610   (GITHUB-846)
611   [Ronald van Zantvoot]
612
613 - [cloudstack] Added StorageState-Migrating to the cloudstack driver.
614   (GITHUB-847)
615   [Marc-Aurèle Brothier]
616
617 - [google compute] Update copy image logic to match create image.
618   (GITHUB-828)
619   [Max Illfelder]
620
621 - Removed HD attribute from the Abiquo compute driver to support the 3.4 API.
622   (GITHUB-840)
623   [David Freedman]
624
625 - Add image and size details to `list_nodes` response in Dimension Data driver.
626   (GITHUB-832)
627   [Anthony Shaw]
628
629 - Add support for changing VM admin password in VMware driver.
630   (GITHUB-833)
631   [Juan Font Alonso]
632
633 - Add Barcelona (Spain) region to the Aurora Compute driver.
634   (GITHUB-835)
635   [Wido den Hollander]
636
637 - Various improvements in the libvirt driver.
638   (GITHUB-838)
639   [Rene Kjellerup]
640
641 Load balancer
642 ~~~~~~~~~~~~~
643
644 - Add support for temporary IAM role credentials (token) to the AWS ELB driver.
645   (GITHUB-843)
646   [Anton Kozyrev]
647
648 DNS
649 ~~~
650
651 - Updated the 'extra' parameter in `update_record()` to be optional in aurora
652   driver.
653   (GITHUB-830)
654   [Wido den Hollander]
655
656 - Support for iterating over records and zones in the Aurora DNS driver.
657   (GITHUB-829)
658   [Wido den Hollander]
659
660 - Add support for DS, PTR, SSFHFP and TLSA record type to the Aurora DNS
661   driver.
662   (GITHUB-834)
663   [Wido den Hollander]
664
665 Container
666 ~~~~~~~~~
667
668 - Add network mode and labels when creating containers within docker driver.
669   (GITHUB-831)
670   [Jamie Cressey]
671
672 Storage
673 ~~~~~~~
674
675 - Fix authentication issue in S3/China region, disabled multipart uploads as
676   not supported by region.
677   (GITHUB-839)
678   [Luke Morfitt]
679
680 Changes with Apache Libcloud 1.1.0
681 ----------------------------------
682
683 General
684 ~~~~~~~
685
686 - Add support for automatic SNI (SSL extension) using the hostname
687   supplied to connect to.
688
689   Note: This functionality is only available in Python 2.7.9 and
690   Python >= 3.2.
691   (LIBCLOUD-827, GITHUB-808)
692   [David Freedman]
693
694 Compute
695 ~~~~~~~
696
697 - Add support image guest OS features in GCE driver.
698   (GITHUB-825)
699   [Max Illfelder]
700
701 - Added forceCustimization option for vcloud director driver.
702   (GITHUB-824)
703   [Juan Font]
704
705 - Add node lookup by UUID for libvirt driver.
706   (GITHUB-823)
707   [Frank Wu]
708
709 - Add block storage support to DigitalOcean node driver.
710   (GITHUB-807)
711   [Adam Wolfe Gordon]
712
713 - Add SASL auth support to libvirt driver.
714   (GITHUB-809)
715   [Katana-Steel]
716
717 - Allow VIPs in Dimension Data driver to bind to any port.
718   (GITHUB-818)
719   [Mark Maglana]
720
721 - Add support for deleting a security group to the Aliyun ECS driver.
722   (GITHUB-816)
723   [Heng Wu]
724
725 - Add ``ex_force_customization`` argument to the ``ex_deploy_node`` in vCloud
726   driver.
727   (GITHUB-824)
728   [Juan Font]
729
730 - Add support for listing  attributes for a particular security group
731   (``ex_list_security_group_attributes``) to the Aliyun ECS driver.
732   (GITHUB-826)
733   [Heng Wu]
734
735 - Add new Mumbai, India region to the EC2 driver.
736   [Tomaz Muraus]
737
738 - Add driver for the new AWS cn-north-1 region.
739   (GITHUB-827, LIBCLOUD-820)
740   [Jamie Cressey]
741
742 - Fix authentication with temporary IAM role credentials (token) in the EC2
743   driver.
744   (GITHUB-820)
745   [Alejandro González]
746
747 Container
748 ~~~~~~~~~
749
750 - Fixed API compatibility for Docker Container driver with API 1.24, set driver
751   to use versioned URL for all communication. Backported changes to 1.21 API
752   (GITHUB-821)
753   [Anthony Shaw]
754
755 Load Balancer
756 ~~~~~~~~~~~~~
757
758 - Added additional parameters to the Rackspace driver in `list_balancers` for
759   filtering and searching.
760   (GITHUB-803)
761   [João Paulo Raittes]
762
763 Changes with Apache Libcloud 1.0.0
764 ----------------------------------
765
766 General
767 ~~~~~~~
768
769 - Fix a regression with ``timeout`` argument provided via
770   ``_ex_connection_class_kwargs`` method being overriden with ``None`` inside
771   the ``BaseDriver`` constructor method.
772
773   Reported by Jay Rolette.
774   (GITHUB-755)
775   [Tomaz Muraus, Jay Rolette]
776
777 - Fix OpenStack v3 authentication and allow user to provide a custom value for
778   the OpenStack ``domain`` parameter. Previously only possible value as a
779   default value of ``Default``.
780   (GITHUB-744)
781   [Lionel Schaub]
782
783 - Add support for authenticating against Keystone and OpenStack based clouds
784   using OpenID Connect tokens.
785   (GITHUB-789)
786   [Miguel Caballer]
787
788 Compute
789 ~~~~~~~
790
791 - GCE nodes can be launched in a subnetwork
792   (GITHUB-783)
793   [Lars Larsson]
794
795 - Add Subnetworks to GCE driver
796   (GITHUB-780)
797   [Eric Johnson]
798
799 - Fix missing pricing data for GCE
800   (LIBCLOUD-713, GITHUB-779)
801   [Eric Johnson]
802
803 - Add Image Family support for GCE
804   (GITHUB-778)
805   [Rick Wright]
806
807 - Fix a race condition on GCE driver `list_nodes()`- Invoking GCE’s
808   `list_nodes()` while some VMs are being shutdown can result in the following
809   `libcloud.common.google.ResourceNotFoundError` exception to be raised.
810   (GITHUB-727)
811   [Lénaïc Huard]
812
813 - Allow user to filter nodes by location by adding optional `location`
814   argument to the `list_nodes()` method in the CloudStack driver.
815   (GITHUB-737)
816   [Lionel Schaub]
817
818 - Fix OpenStack IP type resolution - make sure IP addresses are correctly
819   categorized and assigned on `private_ips` and `public_ips` Node attribute.
820   (GITHUB-738)
821   [Lionel Schaub]
822
823 - Add new `Perth, Australia` and `Manila, Philippines` region to the CloudSigma
824   v2 driver.
825   [Tomaz Muraus]
826
827 - Update libvirt driver so it returns false if a non-local libvirt URL is used
828   (right now only local instances are supported).
829   (LIBCLOUD-820, GITHUB-788)
830   [René Kjellerup]
831
832 - Update libvirt driver to use `ip neight` command instead of `arp` to retrieve
833   node MAC address if `arp` command is not available or the current user
834   doesn't have permission to use it.
835   (LIBCLOUD-820, GITHUB-788)
836   [René Kjellerup]
837
838 - Update ``create_volume`` method in the CloudStack driver and add
839   ``ex_volume_type`` argument to it. If this argument is provided, a volume
840   which names matches this argument value will be searched and selected among
841   the available disk offerings.
842   (GITHUB-785)
843   [Greg Bishop]
844
845 Storage
846 ~~~~~~~
847
848 - Add support for AWS signature v4 to the Outscale storage driver.
849   (GITHUB-736)
850   [Javier M. Mellid]
851
852 - Add new S3 RGW storage driver.
853   (GITHUB-786, GITHUB-792)
854   [Javier M. Mellid]
855
856 Loadbalancer
857 ~~~~~~~~~~~~
858
859 - Update AWS ELB driver to use signature version 4 for authentication. This
860   way, the driver also work with the `eu-central-1` region.
861   (GITHUB-796)
862   [Tobias Paepke]
863
864 DNS
865 ~~~
866
867 - Add BuddyNS driver.
868   (GITHUB-742)
869   [Oltjano Terpollari]
870
871 - Added DNSPod driver (https://www.dnspod.com).
872   (GITHUB-787)
873   [Oltjano Terpollari]
874
875 Changes with Apache Libcloud 1.0.0-rc2
876 --------------------------------------
877
878 General
879 ~~~~~~~
880
881 - Fix a bug with consuming stdout and stderr in the paramiko SSH client which
882   would manifest itself under very rare condition when a consumed chunk only
883   contained a single byte or part of a multi byte UTF-8 character.
884   [Lakshmi Kannan, Tomaz Muraus]
885
886 - Increase default chunk size from ``1024`` to ``4096`` bytes in the paramiko
887   SSH client. This results in smaller number of receive calls on the average.
888   [Tomaz Muraus]
889
890 - Fix to Dimension Data API address for Middle-East and Africa
891   (GITHUB-700)
892   [Anthony Shaw]
893
894 - Addition of Dimension Data Australia federal government region to dimension data
895   drivers.
896   (GITHUB-700)
897   [Anthony Shaw]
898
899 - Throw a more user-friendly exception on "No address associated with hostname".
900   (GITHUB-711, GITHUB-714, LIBCLOUD-803)
901   [Tomaz Muraus, Scott Crunkleton]
902
903 * Remove deprecated provider constants with the region in the name and related
904   driver classes (e.g. ``EC2_US_EAST``, etc.).
905
906   Those drivers have moved to single provider constant + ``region`` constructor
907   argument model.
908   [Tomaz Muraus]
909
910 * Introduce new `list_regions`` class method on the base driver class. This
911   method is to be used with provider drivers which support multiple regions and
912   ``region`` constructor argument. It allows users to enumerate available /
913   supported regions.
914   [Tomaz Muraus]
915
916 Compute
917 ~~~~~~~
918
919 - [dimension data] added support for VMWare tools VM information inside list_nodes responses
920   (GITHUB-734)
921   [Jeff Dunham]
922
923 - [ec2] added ex_encrypted and ex_kms_key_id optional parameters to the create volume method
924   (GITHUB-729)
925   [Viktor Ognev]
926
927 - [dimension data] added support for managing host anti-affinity rules, added paging support to
928   all supported calls and added support for requesting priority ordering when creating ACL rules
929   (GITHUB-726)
930   [Jeff Dunham]
931
932 - [openstack] when creating floating IPs, added pool_id as an optional argument
933   (GITHUB-725)
934   [marko-p]
935
936 - [google compute] Added setMachineType method to allow for changing sizes of instances
937   (GITHUB-721)
938   [Eric Johnson]
939
940 - [google compute] allow bypassing image search in standard project list
941   (GITHUB-713)
942   [Max Illfelder]
943
944 - Add support for requesting a MKS token for accessing the remote console in VMware
945   vCloud driver
946   (GITHUB-706)
947   [Juan Font Alonso]
948
949 - Add support in VMware vCloud driver for v5.5 API, with snapshot support
950   (GITHUB-658)
951   [Juan Font Alonso]
952
953 - Added support for adding a family to an image on Google Compute Driver
954   (GITHUB-704)
955   [Max Illfelder]
956
957 - Deprecated IBM SCE, HP Helion, OpSource, Ninefold and CloudFrames drivers, removed
958   driver code and tests.
959   (GITHUB-701, LIBCLOUD-801)
960   [Anthony Shaw]
961
962 - Introduced error messages (`libcloud.compute.deprecated`) for deprecated drivers
963   (GITHUB-701, LIBCLOUD-801)
964   [Anthony Shaw]
965
966 - New Compute drivers- BSNL, Indosat, Med-1, NTT-America, Internet Solutions
967   (GITHUB-700)
968   [Anthony Shaw]
969
970 - Fix to set default signature version for AWS Seoul region to v4, removed
971   non-supported size (hs1.xlarge)
972   (GITHUB-684)
973   [Geunwoo Shin]
974
975 - Support filtering by location in list_nodes for dimension data compute driver
976   fix lack of paging support
977   (GITHUB-691)
978   [Jeff Dunham]
979
980 - Support for filtering by IPv4, IPv6, network, network domain, VLAN in Dimension
981   data driver.
982   (GITHUB-694)
983   [Jeff Dunham]
984
985 - Added `Node.created_at` which, on supported drivers, contains the datetime the
986   node was first started.
987   (GITHUB-698)
988   [Allard Hoeve] [Rick van de Loo]
989
990 - New driver for Aliyun Elastic Compute Service.
991   (LIBCLOUD-802, GITHUB-712)
992   [Sam Song, Heng Wu]
993
994 Storage
995 ~~~~~~~
996
997 - Added Outscale storage driver
998   (GITHUB-730)
999   [Javier M. Mellid]
1000
1001 - Improvements to Google Auth for Storage and Compute and MIME bug fix
1002   (LIBCLOUD-800, GITHUB-689)
1003   [Scott Crunkleton]
1004
1005 - Implement ``get_container``, ``get_object`` and ``upload_object_via_stream``
1006   methods in the Backblaze B2 storage driver.
1007
1008   Note: Backblaze API doesn't upload streaming uploads so when using
1009   ``upload_object_via_stream`` whole file is read and buffered in memory.
1010   (GITHUB-696)
1011   [Jay jshridha]
1012
1013 - New driver for Aliyun OSS Storage Service.
1014   (LIBCLOUD-802, GITHUB-712)
1015   [Sam Song]
1016
1017 Loadbalancer
1018 ~~~~~~~~~~~~
1019
1020 - New driver for Aliyun SLB Loadbalancer Service.
1021   (LIBCLOUD-802, GITHUB-712)
1022   [Sam Song]
1023
1024 DNS
1025 ~~~~
1026
1027 - Added NearlyFreeSpeech.net (NSFN) driver
1028   [Ken Drayer]
1029   (GITHUB-733)
1030
1031 - Added Lua DNS driver
1032   [Oltjano Terpollari]
1033   (GITHUB-732)
1034
1035 - Added NSOne driver
1036   [Oltjano Terpollari]
1037   (GITHUB-710)
1038
1039 - Fix a bug in the GoDaddy driver - make sure ``host`` attribute on the
1040   connection class is correctly set to the hostname.
1041   [Tomaz Muraus]
1042
1043 - Fix handling of ``MX`` records in the Gandi driver.
1044   (GITHUB-718)
1045   [Ryan Lee]
1046
1047 Backup
1048 ~~~~~~
1049
1050 - Dimension Data - added additional testing, fixed bug on client response naming,
1051   added support for adding backup clients to a backup enabled node.
1052   (GITHUB-692, GITHUB-693, GITHUB-695)
1053   [Jeff Dunham]
1054
1055 Changes with Apache Libcloud 1.0.0-pre1
1056 ---------------------------------------
1057
1058 General
1059 ~~~~~~~
1060
1061 - Introduction of container based drivers for Docker, Rkt and Container-as-a-service
1062   providers
1063   (LIBCLOUD-781, GITHUB-666)
1064   [Anthony Shaw]
1065
1066 - Introduce a new ``libcloud.backup`` API for Backup as a Service projects and
1067   products.
1068   (GITHUB-621)
1069   [Anthony Shaw]
1070
1071 - Also retry failed HTTP(s) requests upon transient "read operation timed out"
1072   SSL error.
1073   (GITHUB-556, LIBCLOUD-728)
1074   [Scott Kruger]
1075
1076 - Throw a more user-friendly exception if a client fails to establish SSL / TLS
1077   connection with a server because of an unsupported SSL / TLS version.
1078   (GITHUB-682)
1079   [Tomaz Muraus]
1080
1081 Compute
1082 ~~~~~~~
1083
1084 - Add ap-northeast-2 region to EC2 driver (South Korea)
1085   (GITHUB-681)
1086   [Anthony Shaw]
1087
1088 - Added Added volume type to EC2 volume extra to EC2 driver.
1089   (GITHUB-680)
1090   [Gennadiy Stas]
1091
1092 - Add LazyObject class that provides lazy-loading, see `GCELicense` for usage
1093   (LIBCLOUD-786, GITHUB-665)
1094   [Scott Crunkleton]
1095
1096 - Added t2.nano instance type to EC2 Compute driver
1097   (GITHUB-663)
1098   [Anthony Shaw]
1099
1100 - Support for passing the image ID as a string instead of an instance of image when
1101   creating nodes in Dimension Data driver.
1102   (GITHUB-664)
1103   [Anthony Shaw]
1104
1105 DNS
1106 ~~~
1107
1108 - Add support for 'health checks' in Aurora DNS driver
1109   (GITHUB-672)
1110   [Wido den Hollander]
1111
1112 - Make sure ``ttl`` attribute is correctly parsed and added to the ``Record``
1113   ``extra`` dictionary.
1114   (GITHUB-675)
1115   [Wido den Hollander]
1116
1117 - Improve unit tests of Aurora DNS driver
1118   (GITHUB-679)
1119   [Wido den Hollander]
1120
1121 Changes with Apache Libcloud 0.20.1
1122 -----------------------------------
1123
1124 Compute
1125 ~~~~~~~
1126
1127 - [google] Allow for old and new style service account client email address
1128   (LIBCLOUD-785)
1129   [Hoang Phan]
1130
1131 Changes with Apache Libcloud 0.20.0
1132 -----------------------------------
1133
1134 General
1135 ~~~~~~~
1136
1137 - Added .editorconfig file for easier editing
1138   (GITHUB-625)
1139   [Misha Brukman]
1140
1141 - Fix a bug with Libcloud accidentally setting paramiko root logger level to
1142   DEBUG (this should only happen if ``LIBCLOUD_DEBUG`` environment variable is
1143   provided).
1144
1145   Reported by John Bresnahan.
1146   (LIBCLOUD-765)
1147   [Tomaz Muraus, John Bresnahan]
1148
1149 - Simply travis and tox config (.travis.yml, tox.ini).
1150   (GITHUB-608)
1151   [Anthony Monthe]
1152
1153 - Fixed Python2.6 unit testing (and Google Cloud Storage tests)
1154   (GITHUB-648)
1155   [Scott Crunkleton]
1156
1157 Compute
1158 ~~~~~~~
1159
1160 - [google] Allow for old and new style service account client email address
1161   (LIBCLOUD-785)
1162   [Hoang Phan]
1163
1164 - Minor security improvement for storing cached GCE credentials
1165   (LIBCLOUD-718)
1166   [Siim Põder]
1167
1168 - Removed DreamHosts Compute Driver, DreamHosts users will now use the OpenStack Node driver since DreamHosts are OpenStack
1169   API compliant
1170   (GITHUB-655)
1171   [Stephano Maffulli]
1172
1173 - Added additional kwargs to the create_node method for Dimension Data driver, allowing the user to specify the RAM and
1174   CPU upfront. Added a ex_reconfigure_node method and ex_list_customer_images as well as updating the API to 2.1.
1175   (LIBCLOUD-783, GITHUB-656)
1176   [Anthony Shaw]
1177
1178 - The EC2 Instance Type updated with correct disk sizes (especially the disk size for the m3 instances),
1179   conversion errors between GiB an M[i]B, disk count were the cause.
1180   Added instance types - g2.8xlarge and t2.large.
1181   (GITHUB-646)
1182   [Philipp Hahn]
1183
1184 - Add update node, update VMware tools, add storage, change storage size or speed, remove storage to Dimension Data Driver.
1185   (LIBCLOUD-775, GITHUB-644)
1186   [Anthony Shaw]
1187
1188 - Include 'service_name' support in _parse_service_catalog_auth_v3 for Openstack Drivers
1189   (GITHUB-647)
1190   [Steve Gregory]
1191
1192 - Outscale inc & sas driver update
1193   (GITHUB-645)
1194   [@LordShion]
1195
1196 - Add new `eu-west-2` & `us-east-2` regions to the OUTSCALE_INC & OUTSCALE_SAS drivers.
1197   [Filipe Silva /lordshion]
1198
1199 - [google compute] add pricing data update script
1200   (GITHUB-464)
1201   [Misha Brukman]
1202
1203 - Fix a bug in the ``list_volumes`` method in the CloudStack driver so it
1204   returns an empty list if no volumes are found.
1205   (GITHUB-617)
1206   [Wido den Hollander]
1207
1208 - Return proper volume state for CloudStack volumes.
1209   (GITHUB-615, LIBCLOUD-764)
1210   [Wido den Hollander]
1211
1212 - Add support for multiple regions in Aurora compute driver
1213   (GITHUB-623)
1214   [Wido den Hollander]
1215
1216 - Fix value of ``node.extra['ip_addresses']`` node attribute in the CloudStack
1217   driver.
1218   (LIBCLOUD-767, GITHUB-627)
1219   [Atsushi Sasaki]
1220
1221 - Make sure that ``node.public_ips`` attribute in the CloudStack driver doesn't
1222   contain duplicated values..
1223   (LIBCLOUD-766, GITHUB-626)
1224   [Atsushi Sasaki]
1225
1226 - Allow user to wait for a resource to reach a desired state in the
1227   Dimension Data driver by using new ``ex_wait_for_state`` method.
1228   (LIBCLOUD-707, GITHUB-631)
1229   [Anthony Shaw]
1230
1231 - Added M4 pricing and instance information to EC2 driver
1232   (GITHUB-634)
1233   [Benjamin Zaitlen]
1234
1235 - Added C4 instance information to EC2 driver
1236   (GITHUB-638)
1237   [amitofs]
1238
1239 - Allow location of the datacenter to be supplied in ProfitBricks driver
1240   (LIBCLOUD-771, GITHUB-635)
1241   [Joel Reymont]
1242
1243 - Reduce redundant API calls in CloudStack driver
1244   (LIBCLOUD-590, GITHUB-641)
1245   [Atsushi Sasaki]
1246
1247 - Add an additional argument to libcloud.compute.drivers.GCENodeDriver.create_node
1248   to allow for creation of preemptible GCE instances
1249   (GITHUB-643)
1250   [@blawney]
1251
1252 - GoogleStorageDriver can now use either our S3 authentication or other Google Cloud Platform OAuth2 authentication methods.
1253   (GITHUB-633)
1254   [Scott Crunkleton]
1255
1256 - All NodeState, StorageVolumeState, VolumeSnapshotState and Provider attributes
1257   are now strings instead of integers.
1258   (GITHUB-624)
1259   [Allard Hoeve]
1260
1261 Storage
1262 ~~~~~~~
1263
1264 Loadbalancer
1265 ~~~~~~~~~~~~
1266
1267 DNS
1268 ~~~
1269
1270 - RackSpace driver - New DNS driver methods:
1271    - ex_iterate_ptr_records
1272    - ex_get_ptr_record
1273    - ex_create_ptr_record
1274    - ex_update_ptr_record
1275    - ex_delete_ptr_record
1276
1277   This should cover all of the functionality offered by the Rackspace DNS API
1278   in regards to RDNS.
1279   (LIBCLOUD-780, GITHUB-652)
1280   [Greg Hill]
1281
1282 - Update ``create_record`` in the WorldWideDNS driver so it automatically
1283   selects a slot if one is not provided by the user via ``extra['entry']``
1284   argument.
1285   (GITHUB-621)
1286   [Alejandro Pereira]
1287
1288 - Introduce GoDaddy DNS Driver with examples and documentation.
1289   (LIBCLOUD-772, GITHUB-640, LIBCLOUD-778)
1290   [Anthony Shaw]
1291
1292 - Add new driver for CloudFlare DNS (https://www.cloudflare.com/dns/).
1293   (GITHUB-637)
1294   [Tomaz Muraus]
1295
1296 Changes with Apache Libcloud 0.19.0
1297 -----------------------------------
1298
1299 General
1300 ~~~~~~~
1301
1302 - Update Rackspace AUTH_URL
1303   (LIBCLOUD-738)
1304   [Brian Curtin]
1305
1306 - Fix ``LIBCLOUD_DEBUG`` mode so it works on Python 3.x.
1307   [Tomaz Muraus]
1308
1309 - Fix Libcloud code so it doesn't throw an exception if simplejson < 2.1.0 is
1310   installed.
1311   (LIBCLOUD-714, GITHUB-577)
1312   [Erik Johnson]
1313
1314 - Fix endpoint URL for DimensionData Asia Pacific region.
1315   (GITHUB-585)
1316   [Anthony Shaw]
1317
1318 - Document potential time drift issue which could cause authentication in the
1319   GCE drivers to fail.
1320   (GITHUB-571)
1321   [Michal Tekel]
1322
1323 - Update documentation for EC2 - make sure they reflect region changes from
1324   0.14 release.
1325   (GITHUB-606)
1326   [James Guthrie]
1327
1328 Compute
1329 ~~~~~~~
1330
1331 - Fixed malformed XML requests with Dimension Data driver.
1332   (LIBCLOUD-760, GITHUB-610)
1333   [Anthony Shaw]
1334
1335 - Update list of scopes for Google Compute Engine driver.
1336   (GITHUB-607)
1337   [Otto Bretz]
1338
1339 - Allow user to filter VPC by project in the CloudStack driver by passing
1340   ``project`` argument to the ``ex_list_vps`` method.
1341   (GITHUB-516)
1342   [Syed Mushtaq Ahmed]
1343
1344 - Add volume management methods and other various improvements and fixes in the
1345   RunAbove driver.
1346   (GITHUB-561)
1347   [Anthony Monthe]
1348
1349 - Add support and update Dimension Data driver to use API v2.0 by default.
1350   (LIBCLOUD-736, GITHUB-564)
1351   [Anthony Shaw]
1352
1353 - Add new ``ex_virtual_network_name`` and ``ex_network_config`` argument to the
1354   `create_node`` method in the Azure driver. With those arguments user can now
1355   specify which virtual network to use.
1356   (GITHUB-569)
1357   [Jesaja Everling]
1358
1359 - Fix ``create_node`` method in the GCE driver calling inexistent method
1360   (ex_get_disk instead of ex_get_volume).
1361   (GITHUB-574)
1362   [Alex Poms]
1363
1364 - Allow user to pass ``proxy_url`` keyword argument to the VCloud driver
1365   constructor.
1366   (GITHUB-578)
1367   [Daniel Pool]
1368
1369 - Various fixes and improvements in the DimensionData driver (support for
1370   creating servers in MCP 1 and 2 data center, performance improvements in the
1371   location fetching, etc.).
1372   (GITHUB-587, GITHUB-593, LIBCLOUD-750, LIBCLOUD-753)
1373   [Anthony Shaw]
1374
1375 - Added ``ex_assign_public_ip`` argument to ``create_node`` in the EC2 driver.
1376   (GITHUB-590)
1377   [Kyle Long]
1378
1379 - Added ``ex_terminate_on_shutdown`` argument to ``create_node`` in the EC2
1380   driver.
1381   (GITHUB-595)
1382   [Kyle Long]
1383
1384 - Various fixes and improvements in the ``ex_authorize_security_group_ingress``
1385   in the CloudStack driver.
1386   (LIBCLOUD-749, GITHUB-580)
1387   [Lionel Schaub]
1388
1389 - Add pricing information for Softlayer.
1390   (LIBCLOUD-759, GITHUB-603)
1391   [David Wilson]
1392
1393 - Standardize VolumeSnapshot states into the ``state`` attribute.
1394   (LIBCLOUD-758, GITHUB-602)
1395   [Allard Hoeve]
1396
1397 Storage
1398 ~~~~~~~
1399
1400 - Add support for ``sa-east-1`` region to the Amazon S3 driver.
1401   (GITHUB-562)
1402   [Iuri de Silvio]
1403
1404 - Fix handling of binary data in Local storage driver on Python 3. Now the file
1405   which is to be written or read from is opened in the binary mode (``b`` flag).
1406   (LIBCLOUD-725, GITHUB-568)
1407   [Torf]
1408
1409 Loadbalancer
1410 ~~~~~~~~~~~~
1411
1412 - Add a new driver for DimensionData load-balancing service
1413   (http://cloud.dimensiondata.com/).
1414   (LIBCLOUD-737, GITHUB-567)
1415   [Anthony Shaw]
1416
1417 DNS
1418 ~~~
1419
1420 - Update Google Cloud DNS API from 'v1beta1' to 'v1'
1421   (GITHUB-583)
1422   [Misha Brukman]
1423
1424 - Add new driver for AuroraDNS service.
1425   (GITHUB-562, LIBCLOUD-735)
1426   [Wido den Hollander]
1427
1428 - Fix "_to_record" in the Route53 driver - make sure it doesn't throw if the
1429   record TTL is not available.
1430   [Tomaz Muraus]
1431
1432 - Add new driver for WorldWideDNS service
1433   (http://www.worldwidedns.net/home.asp).
1434   (GITHUB-566, LIBCLOUD-732)
1435   [Alejandro Pereira]
1436
1437 - Add new driver for DNSimple service (https://dnsimple.com/).
1438   (GITHUB-575, GITHUB-604, LIBCLOUD-739)
1439   [Alejandro Pereira, Patrick Humpal]
1440
1441 - Add new driver for PointDNS service (https://pointhq.com).
1442   (GITHUB-576, GITHUB-591, LIBCLOUD-740)
1443   [Alejandro Pereira]
1444
1445 - Add new driver for Vultr DNS service (https://www.vultr.com).
1446   (GITHUB-579, GITHUB-596, LIBCLOUD-745)
1447   [Alejandro Pereira, Janez Troha]
1448
1449 - Add new driver for Liquidweb DNS service (http://www.liquidweb.com/).
1450   (GITHUB-581, LIBCLOUD-746)
1451   [Oltjano Terpollari, Alejandro Pereira]
1452
1453 - Add new driver for Zonomi DNS hosting service (http://zonomi.com/).
1454   (GITHUB-582, LIBCLOUD-747)
1455   [Oltjano Terpollari, Alejandro Pereira]
1456
1457 - Add new driver for Durable DNS service (https://durabledns.com/).
1458   (GITHUB-588, LIBCLOUD-748)
1459   [Oltjano Terpollari, Alejandro Pereira]
1460
1461 Changes with Apache Libcloud 0.18.0
1462 -----------------------------------
1463
1464 General
1465 ~~~~~~~
1466
1467 - Use native ``ssl.match_hostname`` functionality when running on Python >=
1468   3.2 and only require ``backports.ssl_match_hostname`` dependency on Python
1469   versions < 3.2.
1470   [Tomaz Muraus]
1471
1472 - Add support for AWS Signature version 4.
1473
1474   Note: Currently only GET HTTP method is supported.
1475   (GITHUB-444)
1476   [Gertjan Oude Lohuis]
1477
1478 - Fix a bug in the debug mode logging (LIBCLOUD_DEBUG). Logging to the debug
1479   file would throw an exception if the text contained non-ascii characters.
1480   [Tomaz Muraus]
1481
1482 - Fix a bug with connection code throwing an exception if a port was a unicode
1483   type and not a str or int.
1484   (GITHUB-533, LIBCLOUD-716)
1485   [Avi Weit]
1486
1487 - Update ``is_valid_ip_address`` function so it also works on Windows.
1488   (GITHUB-343, GITHUB-498, LIBCLOUD-601, LIBCLOUD-686)
1489   [Nicolas Fraison, Samuel Marks]
1490
1491 - Add support for retrying failed HTTP requests.
1492
1493   Retrying is off by default and can be enabled by setting
1494   ``LIBCLOUD_RETRY_FAILED_HTTP_REQUESTS`` environment variable.
1495   (GITHUB-515, LIBCLOUD-360, LIBCLOUD-709)
1496
1497 - Fix a bug in consuming stdout and stderr strams in Paramiko SSH client.
1498   In some cases (like connecting to localhost via SSH), exit_status_ready
1499   gets set immediately even before the while loop to consume the streams
1500   kicks in. In those cases, we will not have consumed the streams at all.
1501   (GITHUB-558)
1502   [Lakshmi Kannan]
1503
1504 Compute
1505 ~~~~~~~
1506
1507 - Google Compute now supports paginated lists including filtering.
1508   (GITHUB-491)
1509   [Lee Verberne]
1510
1511 - OpenStackNodeSize objects now support optional, additional fields that are
1512   supported in OpenStack 2.1: `ephemeral_disk`, `swap`, `extra`.
1513   (GITHUB-488, LIBCLOUD-682)
1514   [Greg Hill]
1515
1516 - StorageVolume objects now have an attribute `state` that holds a
1517   state variable that is standardized state across drivers. Drivers that
1518   currently support the `state` attribute are OpenStack and EC2.
1519   StorageVolume objects returned by drivers that do not support the
1520   attribute will have a `state` of `None`. When a provider returns a state
1521   that is unknown to the driver, the state will be `UNKNOWN`. Please report
1522   such states. A couple of drivers already put state fields in the `extra`
1523   fields of StorageVolumes. These fields were kept for
1524   backwards-compatibility and for reference.
1525   (GITHUB-476)
1526   [Allard Hoeve]
1527
1528 - StorageVolume objects on EC2 and OpenStack now have a key called snapshot_id
1529   in their extra dicts containing the snapshot ID the volume was based on.
1530   (GITHUB-479)
1531   [Allard Hoeve]
1532
1533 - OpenStack driver: deprecated ex_create_snapshot and ex_delete_snapshot in
1534   favor of create_volume_snapshot and destroy_volume_snapshot. Updated base
1535   driver method create_storage_volume argument name to be optional.
1536   (GITHUB-478)
1537   [Allard Hoeve]
1538
1539 - Add support for creating volumes based on snapshots to EC2 and OS drivers.
1540   Also modify signature of base NodeDriver.create_volume to reflect the fact
1541   that all drivers expect a StorageSnapshot object as the snapshot argument.
1542   (GITHUB-467, LIBCLOUD-672)
1543   [Allard Hoeve]
1544
1545 - VolumeSnapshots now have a `created` attribute that is a `datetime`
1546   field showing the creation datetime of the snapshot. The field in
1547   VolumeSnapshot.extra containing the original string is maintained, so
1548   this is a backwards-compatible change.
1549   (GITHUB-473)
1550   [Allard Hoeve]
1551
1552 - Improve GCE create_node, make sure ex_get_disktype function
1553   (GITHUB-448)
1554   [Markos Gogoulos]
1555
1556 - GCE driver fix to handle unknown image projects
1557   (GITHUB-447)
1558   [Markos Gogoulos]
1559
1560 - Allow user to pass ``ex_blockdevicemappings`` argument to the create_node
1561   method in the OpenStack driver.
1562   (GITHUB-398, LIBCLOUD-637)
1563   [Allard Hoeve]
1564
1565 - Fix ``list_volume_snapshots`` method in the EC2 driver so it comforms to the
1566   base API.
1567   (LIBCLOUD-664, GITHUB-451)
1568   [Allard Hoeve]
1569
1570 - Add ``volumes_attached`` attibute to ``node.extra`` in the OpenStack driver.
1571   (LIBCLOUD-668, GITHUB-462)
1572   [Allard Hoeve]
1573
1574 - Add the following new methods to the Linode driver: ``ex_list_volumes``,
1575   ``ex_create_volume``, ``ex_destroy_volume``.
1576   (LIBCLOUD-649, GITHUB-430)
1577   [Wojciech Wirkijowski]
1578
1579 - Add ``list_volume_snapshots`` method to the OpenStack driver.
1580   (LIBCLOUD-663, GITHUB-450)
1581   [Allard Hoeve]
1582
1583 - Add Site to Site VPN functionality to CloudStack driver.
1584   (GITHUB-465)
1585   [Avi Nanhkoesingh]
1586
1587 - Add affinity group support to CloudStack driver
1588   (LIBCLOUD-671, GITHUB-468)
1589   [Mateusz Korszun]
1590
1591 - Add a support for a new AWS Frankfurt, Germany region (``eu-central-1``) to
1592   the EC2 driver using AWS Signature v4.
1593   (GITHUB-444)
1594   [Gertjan Oude Lohuis, Tomaz Muraus]
1595
1596 - Allow Filtering in EC2 list_images() driver
1597   (GITHUB-456, LIBCLOUD-667)
1598   [Katriel Traum]
1599
1600 - Add ex_list_ip_forwarding_rules() to CloudStack driver
1601   (GITHUB-483)
1602   [Atsushi Sasaki]
1603
1604 - Add AURORA compute driver
1605   (LIBCLOUD-641, GITHUB-477)
1606   [Wido den Hollander]
1607
1608 - Update ``ex_describe_tags`` method in the EC2 driver and allow user to list
1609   tags for any supported resource. Previously you could only list tags for a
1610   node or a storage volume.
1611   (LIBCLOUD-676, GITHUB-482)
1612   [John Kinsella]
1613
1614 - Various improvements in the HostVirual driver (code refactoring, support for
1615   managing "packages").
1616   (LIBCLOUD-670, GITHUB-472)
1617   [Dinesh Bhoopathy]
1618
1619 - Add support for DigitalOcean API v2.0 while maintaining support for the old
1620   API v2.0.
1621
1622   Note: API v2.0 is now used by default. To use the old API v1.0, pass
1623   ``api_version='1.0'`` argument to the driver constructor.
1624   (GITHUB-442)
1625   [Andrew Starr-Bochicchio]
1626
1627 - Add new ``d4.`` instance types to the EC2 driver. Also update EC2 pricing data.
1628   (GITHUB-490)
1629   [Tomaz Muraus]
1630
1631 - Add new driver for Microsft Azure Virtual Machines service.
1632   (LIBCLOUD-556, GITHUB-305, GITHUB-499, GITHUB-538)
1633   [Michael Bennett, davidcrossland, Richard Conway, Matt Baldwin, Tomaz Muraus]
1634
1635 - Fix VPC lookup method in CloudStack driver
1636   (GITHUB-506)
1637   [Avi Nanhkoesingh]
1638
1639 - Add new driver for the Dimension Data provider based on the OpSource driver.
1640   (LIBCLOUD-698, GITHUB-507, LIBCLOUD-700, GITHUB-513)
1641   [Anthony Shaw]
1642
1643 - Add "virtualmachine_id" attribute to the ``CloudStackAddress`` class in the
1644   CloudStack driver.
1645   (LIBCLOUD-679, GITHUB-485)
1646   [Atsushi Sasaki]
1647
1648 - Allow user to pass filters via arguments to the
1649   ``ex_list_port_forwarding_rules`` in the CloudStack driver.
1650   (LIBCLOUD-678, GITHUB-484)
1651   [Atsushi Sasaki]
1652
1653 - Fix an issue with ``list_nodes`` in the CloudSigma driver throwing an
1654   exception if a node in the list had a static IP.
1655   (LIBCLOUD-707, GITHUB-514)
1656   [Chris O'Brien]
1657
1658 - Don't throw an exception if a limit for a particular CloudStack resource is
1659   "Unlimited" and not a number.
1660   (GITHUB-512)
1661   [Syed Mushtaq Ahmed]
1662
1663 - Allow user to pass ``ex_config_drive`` argument to the ``create_node`` method
1664   in the OpenStack driver.
1665   (LIBCLOUD-356, GITHUB-330)
1666   [Ryan Parrish]
1667
1668 - Add new driver for Cloudwatt (https://www.cloudwatt.com/en/) provider.
1669   (GITHUB-338)
1670   [Anthony Monthe]
1671
1672 - Add new driver for Packet (https://www.packet.net/) provider.
1673   (LIBCLOUD-703, GITHUB-527)
1674   [Aaron Welch]
1675
1676 - Update Azure VM pricing information and add information for new D instance
1677   types.
1678   (GITHUB-528)
1679   [Michael Bennett]
1680
1681 - Add ``ex_get_node`` and ``ex_get_volume`` methods to CloudStack driver.
1682   (GITHUB-532)
1683   [Anthony Monthe]
1684
1685 - Update CloudSigma driver so the "unavailable" and "paused" node state is
1686   correctly mapped to "error" and "paused" respectively.
1687   (GITHUB-517)
1688   [Chris O'Brien]
1689
1690 - Add SSH key pair management methods to the Gandi driver.
1691   (GITHUB-534)
1692   [Anthony Monthe]
1693
1694 - Add ``ex_get_node`` and ``ex_get_volume`` methods to Gandi driver.
1695   (GITHUB-534)
1696   [Anthony Monthe]
1697
1698 - Add ``fault`` attribute to the ``extra`` dictionary of the ``Node`` instance
1699   returned by the OpenStack driver.
1700   (LIBCLOUD-730, GITHUB-557)
1701   [Nick Fox]
1702
1703 - Add new driver for Onapp IaaS platform.
1704   (LIBCLOUD-691, GITHUB-502)
1705   [Matthias Wiesner]
1706
1707 - Allow user to inject custom data / script into the Azure node by passing
1708   ``ex_custom_data`` argument to the ``create_node`` method.
1709   (LIBCLOUD-726, GITHUB-554)
1710   [David Wilson]
1711
1712 - Add ``ex_create_cloud_service`` and ``ex_destroy_cloud_service`` method to the
1713   Azure driver.
1714   (LIBCLOUD-724, GITHUB-551)
1715   [David Wilson]
1716
1717 - Add support for passing user data when creating a DigitalOcean node
1718   (``ex_user_data`` argument).
1719   (LIBCLOUD-731, GITHUB-559)
1720   [David Wilson]
1721
1722 - Allow user to specify which arguments are passed to ``list_nodes`` method
1723   which is called inside ``wait_until_running`` by passing
1724   ``ex_list_nodes_kwargs`` argument to the ``wait_until_running`` method.
1725   (``ex_user_data`` argument).
1726   (LIBCLOUD-723, GITHUB-548)
1727   [David Wilson]
1728
1729 - Allow user to pass ``ex_volume_type`` argument to the ``create_volume`` method
1730   in the OpennStack driver.
1731   (GITHUB-553)
1732   [Rico Echwald-Tijsen]
1733
1734 - Add new driver for RunAbove (https://www.runabove.com) provider.
1735   (GITHUB-550)
1736   [Anthony Monthe]
1737
1738 - Fix a bug with exception being throw inside the CloudStack driver when the
1739   provider returned no error message in the body.
1740   (GITHUB-555)
1741   [Konstantin Skaburskas]
1742
1743 - Various improvements in the DigitalOcean driver:
1744    - Increase page size to API maximum.
1745    - Add ``ex_create_attr`` kwarg to ``create_node`` method.
1746    - Update all the ``list_*`` methods to use paginated requests
1747    - Allow user to specify page size by passing ``ex_per_page`` argument to the
1748      constructor.
1749
1750   (LIBCLOUD-717, GITHUB-537)
1751   [Javier Castillo II]
1752
1753 Storage
1754 ~~~~~~~
1755
1756 - Fix a bug with authentication in the OpenStack Swift driver.
1757   (GITHUB-492, LIBCLOUD-635)
1758   [Tom Fifield]
1759
1760 - Add AuroraObjects Storage Driver.
1761   (GITHUB-540, LIBCLOUD-719)
1762   [Wido den Hollander]
1763
1764 Loadbalancer
1765 ~~~~~~~~~~~~
1766
1767 - Add a new driver for Softlayer load-balancing service
1768   (https://www.softlayer.com/load-balancing).
1769   (GITHUB-500, LIBCLOUD-688)
1770   [Avi Weit]
1771
1772 DNS
1773 ~~~
1774
1775 - Fix a bug when a ZoneDoesntExist exception was thrown when listing records
1776   for a zone which has no records in the HostVirtual driver.
1777   (GITHUB-460)
1778   [Vanč Levstik]
1779
1780 - Correctly handle MX records priority in the Route53 driver.
1781   (GITHUB-469)
1782   [Vanč Levstik]
1783
1784 - Allow user to create an A record which points directly to the domain zone
1785   name in the Route53 driver.
1786   (GITHUB-469)
1787   [Vanč Levstik]
1788
1789 - Fix delete_zone method in the HostVirtual driver.
1790   (GITHUB-461)
1791   [Vanč Levstik]
1792
1793 - Fix parsing of the record name in the HostVirtual driver.
1794   (GITHUB-461)
1795   [Vanč Levstik]
1796
1797 - Add new driver for DigitalOcean DNS service.
1798   (GITHUB-505)
1799   [Javier Castillo II]
1800
1801 Changes with Apache Libcloud 0.17.0
1802 -----------------------------------
1803
1804 General
1805 ~~~~~~~
1806
1807 - Use ``match_hostname`` function from ``backports.ssl_match_hostname``
1808   package to verify the SSL certificate hostname instead of relying on
1809   our own logic.
1810   (GITHUB-374)
1811   [Alex Gaynor]
1812
1813 Compute
1814 ~~~~~~~
1815
1816 - Add new `eu-west-2` & `us-east-2` regions to the OUTSCALE_INC & OUTSCALE_SAS drivers.
1817   [Filipe Silva /lordshion]
1818
1819 - GCE driver updated to include ex_stop_node() and ex_start_node() methods.
1820   (GITHUB-442)
1821   [Eric Johnson]
1822
1823 - GCE driver now raises ResourceNotFoundError when the specified image is
1824   not found in any image project. Previously, this would return None but now
1825   raises the not-found exception instead. This fixes a bug where returning
1826   None caused ex_delete_image to raise an AttributeError.
1827   (GITHUB-441)
1828   [Eric Johnson]
1829
1830 - GCE driver update to support JSON format Service Account files and a PY3
1831   fix from Siim Põder for LIBCLOUD-627.
1832   (LIBCLOUD-627, LIBCLOUD-657, GITHUB-438)
1833   [Eric Johnson]
1834
1835 - GCE driver fixed for missing param on ex_add_access_config.
1836   (GITHUB-435)
1837   [Peter Mooshammer]
1838
1839 - GCE driver support for HTTP load-balancer resources.
1840   (LIBCLOUD-605, GITHUB-429)
1841   [Lee Verberne]
1842
1843 - GCE driver updated to make better use of GCEDiskTypes.
1844   (GITHUB-428)
1845   [Eric Johnson]
1846
1847 - GCE driver list_images() now returns all non-deprecated images by default.
1848   (LIBCLOUD-602, GITHUB-423)
1849   [Eric Johnson]
1850
1851 - Improve GCE API coverage for create_node().
1852   (GITHUB-419)
1853   [Eric Johnson]
1854
1855 - GCE Licenses added to the GCE driver.
1856   (GITHUB-420)
1857   [Eric Johnson]
1858
1859 - GCE Projects support common instance metadata and usage export buckets.
1860   (GITHUB-409)
1861   [Eric Johnson]
1862
1863 - Improvements to TargetPool resource in GCE driver.
1864   (GITHUB-414)
1865   [Eric Johnson]
1866
1867 - Adding TargetInstances resource to GCE driver.
1868   (GITHUB-393)
1869   [Eric Johnson]
1870
1871 - Adding DiskTypes resource to GCE driver.
1872   (GITHUB-391)
1873   [Eric Johnson]
1874
1875 - Fix boot disk auto_delete in GCE driver.
1876   (GITHUB-412)
1877   [Igor Bogomazov]
1878
1879 - Add Routes to GCE driver.
1880   (GITHUB-410)
1881   [Eric Johnson]
1882
1883 - Add missing ``ubuntu-os-cloud`` images to the GCE driver.
1884   (LIBCLOUD-632, GITHUB-385)
1885   [Borja Martin]
1886
1887 - Add new `us-east-2` and `us-east-3` region to the Joyent driver.
1888   (GITHUB-386)
1889   [Anthony Monthe]
1890
1891 - Add missing t2. instance types to the us-west-1 region in the EC2 driver.
1892   (GITHUB-388)
1893   [Matt Lehman]
1894
1895 - Add option to expunge VM on destroy in CloudStack driver.
1896   (GITHUB-382)
1897   [Roeland Kuipers]
1898
1899 - Add extra attribute in list_images for CloudStack driver.
1900   (GITHUB-389)
1901   [Loic Lambiel]
1902
1903 - Add ``ex_security_group_ids`` argument to the create_node method in the
1904   EC2 driver. This way users can launch VPC nodes with security groups.
1905   (GITHUB-373)
1906   [Itxaka Serrano]
1907
1908 - Add description argument to GCE Network.
1909   (GITHUB-397)
1910   [Eric Johnson]
1911
1912 - GCE: Improve MachineType (size) coverage of GCE API.
1913   (GITHUB-396)
1914   [Eric Johnson]
1915
1916 - GCE: Improved Images coverage.
1917   (GITHUB-395)
1918   [Eric Johnson]
1919
1920 - GCE: Support for global IP addresses.
1921   (GITHUB-390, GITHUB-394)
1922   [Eric Johnson]
1923
1924 - GCE: Add missing snapshot attributes.
1925   (GITHUB-401)
1926   [Eric Johnson]
1927
1928 - AWS: Set proper disk size in c3.X instance types.
1929   (GITHUB-405)
1930   [Itxaka Serrano]
1931
1932 - Fix a bug with handling of the ``ex_keyname`` argument in the Softlayer
1933   driver.
1934   (GITHUB-416, LIBCLOUD-647)
1935   [Dustin Oberloh]
1936
1937 - Update CloudSigma region list (remove Las Vegas, NV region and add new San
1938   Jose, CA and Miami, FL region).
1939   (GITHUB-417)
1940   [Viktor Petersson]
1941
1942 - Add ``ex_get_node`` method to the Joyent driver.
1943   (GITHUB-421)
1944   [Anthony Monthe]
1945
1946 - Add support for placement group management to the EC2 driver.
1947   (GITHUB-418)
1948   [Mikhail Ovsyannikov]
1949
1950 - Add new tok02 region to the Softlayer driver.
1951   (GITHUB-436, LIBCLOUD-656)
1952   [Dustin Oberloh]
1953
1954 - Add new Honolulu, HI endpoint to the CloudSigma driver.
1955   (GITHUB-439)
1956   [Stephen D. Spencer]
1957
1958 - Fix a bug with config_drive attribute in the OpenStack driver. New versions
1959   of OpenStack now return a boolean and not a string.
1960   (GITHUB-433)
1961   [quilombo]
1962
1963 - Add support for Abiquo API v3.x, remove support for now obsolete API v2.x.
1964   (GITHUB-433, LIBCLOUD-652)
1965   [David Freedman]
1966
1967 - Allow rootdisksize parameter in create_node CloudStack driver
1968   (GITHUB-440, LIBCLOUD-658)
1969   [Loic Lambiel]
1970
1971 Storage
1972 ~~~~~~~
1973
1974 - Allow user to pass ``headers`` argument to the ``upload_object`` and
1975   ``upload_object_via_stream`` method.
1976
1977   This way user can specify CORS headers with the drivers which support that.
1978   (GITHUB-403, GITHUB-404)
1979   [Peter Schmidt]
1980
1981 - Fix upload_object_via_stream so it works correctly under Python 3.x if user
1982   manually passes an iterator to the method.
1983
1984   Also improve how reading a file in chunks works with drivers which support
1985   chunked encoding - always try to fill a chunk with CHUNK_SIZE bytes instead
1986   of directly streaming the chunk which iterator returns.
1987
1988   Previously, if iterator returned 1 byte in one iteration, we would directly
1989   send this as a single chunk to the API.
1990   (GITHUB-408, LIBCLOUD-639)
1991   [Peter Schmidt]
1992
1993 Loadbalancer
1994 ~~~~~~~~~~~~
1995
1996 - Updates to CloudStack driver.
1997   (GITHUB-434)
1998   [Jeroen de Korte]
1999
2000 DNS
2001 ~~~
2002
2003 - New driver for Softlayer DNS service.
2004   (GITHUB-413, LIBCLOUD-640)
2005   [Vanč Levstik]
2006
2007 - Fix a bug with ``ex_create_multi_value_record`` method in the Route53 driver
2008   only returning a single record.
2009   (GITHUB-431, LIBCLOUD-650)
2010   [Itxaka Serrano]
2011
2012 Changes with Apache Libcloud 0.16.0
2013 -----------------------------------
2014
2015 General
2016 ~~~~~~~
2017
2018 - Add new ``OpenStackIdentity_3_0_Connection`` class for working with
2019   OpenStack Identity (Keystone) service API v3.
2020   [Tomaz Muraus]
2021
2022 - Add support for prettifying JSON or XML response body which is printed to a
2023   file like object when using ``LIBCLOUD_DEBUG`` environment variable.
2024   This option can be enabled by setting
2025   ``LIBCLOUD_DEBUG_PRETTY_PRINT_RESPONSE`` environment variable.
2026   [Tomaz Muraus]
2027
2028 - Add support for using an HTTP proxy for outgoing HTTP and HTTPS requests.
2029   [Tomaz Muraus, Philip Kershaw]
2030
2031 Compute
2032 ~~~~~~~
2033
2034 - Fix an issue with ``LIBCLOUD_DEBUG`` not working correctly with the
2035   Linode driver.
2036   [Tomaz Muraus, Juan Carlos Moreno]
2037   (LIBCLOUD-598, GITHUB-342)
2038
2039 - Add new driver for VMware vSphere (http://www.vmware.com/products/vsphere/)
2040   based clouds.
2041   [Tomaz Muraus]
2042
2043 - Add two new default node states - ``NodeState.SUSPENDED`` and
2044   ``NodeState.ERROR``.
2045   [Tomaz Muraus]
2046
2047 - Fix to join networks properly in ``deploy_node`` in the CloudStack
2048   driver.
2049   (LIBCLOUD-593, GITUHB-336)
2050   [Atsushi Sasaki]
2051
2052 - Create ``CloudStackFirewallRule`` class and corresponding methods.
2053   (LIBCLOUD-594, GITHUB-337)
2054   [Atsushi Sasaki]
2055
2056 - Add support for SSD disks to Google Compute driver.
2057   (GITHUB-339)
2058   [Eric Johnson]
2059
2060 - Add utility ``get_regions`` and ``get_service_names`` methods to the
2061   ``OpenStackServiceCatalog`` class.
2062   [Andrew Mann, Tomaz Muraus]
2063
2064 - Fix a bug in ``ex_get_console_output`` in the EC2 driver which would cause
2065   an exception to be thrown if there was no console output for a particular
2066   node.
2067
2068   Reported by Chris DeRamus.
2069   [Tomaz Muraus]
2070
2071 - Add ip_address parameter in CloudStack driver ``create_node`` method.
2072   (GITHUB-346)
2073   [Roeland Kuipers]
2074
2075 - Fix ``ParamikoSSHClient.run`` and ``deploy_node`` method to work correctly
2076   under Python 3.
2077   (GITHUB-347)
2078   [Eddy Reyes]
2079
2080 - Update OpenStack driver to map more node states to states recognized by
2081   Libcloud.
2082   [Chris DeRamus]
2083
2084 - Fix a bug with ``ex_metadata`` argument handling in the Google Compute Engine
2085   driver ``create_node`` method.
2086   (LIBCLOUD-544, GITHUB-349, GITHUB-353)
2087   [Raphael Theberge]
2088
2089 - Add SSH key pair management methods to the Softlayer driver.
2090   (GITHUB-321, GITHUB-354)
2091   [Itxaka Serrano]
2092
2093 - Correctly categorize node IP addresses into public and private when dealing
2094   with OpenStack floating IPs.
2095   [Andrew Mann]
2096
2097 - Add new t2 instance types to the EC2 driver.
2098   [Tomaz Muraus]
2099
2100 - Add support for Amazon GovCloud to the EC2 driver (us-gov-west-1 region).
2101   [Chris DeRamus]
2102
2103 - Allow user to pass "gp2" for "ex_volume_type" argument to the create_volume
2104   method in the EC2 driver.
2105
2106   Reported by Xavier Barbosa.
2107   [Tomaz Muraus, Xavier Barbosa]
2108
2109 - Add new driver for ProfitBricks provider.
2110   (LIBCLOUD-589, GITHUB-352)
2111   [Matt Baldwin]
2112
2113 - Various improvements and bugs fixes in the GCE driver. For a list, see
2114   https://github.com/apache/libcloud/pull/360/commits
2115   (GITHUB-360)
2116   [Evgeny Egorochkin]
2117
2118 - Allow user to specify virtualization type when registering an EC2 image by
2119   passing ``virtualization_type`` argument to the ``ex_register_image`` method.
2120   (GITHUB-361)
2121   [Andy Grimm]
2122
2123 - Add ``ex_create_image`` method to the GCE driver.
2124   (GITHUB-358, LIBCLOUD-611)
2125   [Katriel Traum]
2126
2127 - Add some methods to CloudStack driver:
2128   create_volume_snapshot, list_snapshots, destroy_volume_snapshot
2129   create_snapshot_template, ex_list_os_types)
2130   (GITHUB-363, LIBCLOUD-616)
2131   [Oleg Suharev]
2132
2133 - Added VPC support and Egress Firewall rule support fo CloudStack
2134   (GITHUB-363)
2135   [Jeroen de Korte]
2136
2137 - Add additional attributes to the ``extra`` dictionary of OpenStack
2138   StorageVolume object.
2139   (GITHUB-366)
2140   [Gertjan Oude Lohuis]
2141
2142 - Fix ``create_volume`` method in the OpenStack driver to return a created
2143   volume object (instance of StorageVolume) on success, instead of a boolean
2144   indicating operation success.
2145   (GITHUB-365)
2146   [Gertjan Oude Lohuis]
2147
2148 - Add optional project parameters for ex_list_networks() to CloudStack driver
2149   (GITHUB-367, LIBCLOUD-615)
2150   [Rene Moser]
2151
2152 - CLOUDSTACK: option to start VM in a STOPPED state
2153   (GITHUB-368)
2154   [Roeland Kuipers]
2155
2156 - Support "config_drive" in the OpenStack driver. Allow users to pass
2157   ``ex_config_drive`` argument to the ``create_node`` and ``ex_rebuild_node``
2158   method.
2159   (GITHUB-370)
2160   [Nirmal Ranganathan]
2161
2162 - Add support for service scopes to the ``create_node`` method in the GCE
2163   driver.
2164   (LIBCLOUD-578, GITHUB-373)
2165   [Eric Johnson]
2166
2167 - Update GCE driver to allow for authentication with internal metadata service.
2168   (LIBCLOUD-625, LIBCLOUD-276, GITHUB-276)
2169   [Eric Johnson]
2170
2171 - Fix a bug in Elasticstack node creation method where it would raise
2172   exceptions because of missing data in a response, and also fix pulling the
2173   IP from the proper data item.
2174   (GITHUB-325)
2175   [Michael Bennett]
2176
2177 - Fix a bug which prevented user to connect and instantiate multiple EC2 driver
2178   instances for different regions at the same time.
2179   (GITHUB-325)
2180   [Michael Bennett]
2181
2182 - Add methods in CloudStack driver to manage mutiple nics per vm.
2183   (GITHUB-369)
2184   [Roeland Kuipers]
2185
2186 - Implements VPC network ACLs for CloudStack driver.
2187   (GITHUB-371)
2188   [Jeroen de Korte]
2189
2190 Storage
2191 ~~~~~~~
2192
2193 - Fix a bug with CDN requests in the CloudFiles driver.
2194   [Tomaz Muraus]
2195
2196 - Fix a bug with not being able to specify meta_data / tags when uploading an
2197   object using Google Storage driver.
2198   (LIBCLOUD-612, GITHUB-356)
2199   [Stefan Friesel]
2200
2201 Loadbalancer
2202 ~~~~~~~~~~~~
2203
2204 - Allow user to specify session affinity algorithm in the GCE driver by passing
2205   ``ex_session_affinity`` argument to the ``create_balancer`` method.
2206   (LIBCLOUD-595, GITHUB-341)
2207   [Lee Verberne, Eric Johnson]
2208
2209 DNS
2210 ~~~
2211
2212 - Various fixes in the Google DNS driver.
2213   (GITHUB-378)
2214   [Franck Cuny]
2215
2216 Changes with Apache Libcloud 0.15.1
2217 -----------------------------------
2218
2219 Compute
2220 ~~~~~~~
2221
2222 - Allow user to limit a list of subnets which are returned by passing
2223   ``subnet_ids`` and ``filters`` argument to the ``ex_list_subnets``
2224   method in the EC2 driver.
2225   (LIBCLOUD-571, GITHUB-306)
2226   [Lior Goikhburg]
2227
2228 - Allow user to limit a list of internet gateways which are returned by
2229   passing ``gateway_ids`` and ``filters`` argument to the
2230   ``ex_list_internet_gateways`` method in the EC2 driver.
2231   (LIBCLOUD-572, GITHUB-307)
2232   [Lior Goikhburg]
2233
2234 - Allow user to filter which nodes are returned by passing ``ex_filters``
2235   argument to the ``list_nodes`` method in the EC2 driver.
2236   (LIBCLOUD-580, GITHUB-320)
2237   [Lior Goikhburg]
2238
2239 - Add network_association_id to ex_list_public_ips and CloudstackAddress object
2240   (GITHUB-327)
2241   [Roeland Kuipers]
2242
2243 - Allow user to specify admin password by passing ``ex_admin_pass`` argument
2244   to the ``create_node`` method in the Openstack driver.
2245   (GITHUB-315)
2246   [Marcus Devich]
2247
2248 - Fix a possible race condition in deploy_node which would occur if node
2249   is online and can be accessed via SSH, but the SSH key we want to use hasn't
2250   been installed yet.
2251
2252   Previously, we would immediately throw if we can connect, but the SSH key
2253   hasn't been installed yet.
2254   (GITHUB-331)
2255   [David Gay]
2256
2257 - Propagate an exception in ``deploy_node`` method if user specified an invalid
2258   path to the private key file. Previously this exception was silently swallowed
2259   and ignored.
2260   [Tomaz Muraus]
2261
2262 DNS
2263 ~~~
2264
2265 - Include a better message in the exception which is thrown when a request
2266   in the Rackspace driver ends up in an ``ERROR`` state.
2267   [Tomaz Muraus]
2268
2269 Changes with Apache Libcloud 0.15.0
2270 -----------------------------------
2271
2272 General
2273 ~~~~~~~
2274
2275 - Use lxml library (if available) for parsing XML. This should substantially
2276   reduce parsing time and memory usage for large XML responses (e.g. retrieving
2277   all the available images in the EC2 driver).
2278   [Andrew Mann]
2279
2280 - Use --head flag instead of -X HEAD when logging curl lines for HEAD requests
2281   in debug mode.
2282
2283   Reported by Brian Metzler.
2284   (LIBCLOUD-552)
2285   [Tomaz Muraus]
2286
2287 - Fix Python 3 compatibility bugs in the following functions:
2288
2289   * import_key_pair_from_string in the EC2 driver
2290   * publickey._to_md5_fingerprint
2291   * publickey.get_pubkey_ssh2_fingerprint
2292
2293   (GITHUB-301)
2294   [Csaba Hoch]
2295
2296 - Update CA_CERTS_PATH to also look for CA cert bundle which comes with
2297   openssl Homebrew formula on OS x (/usr/local/etc/openssl/cert.pem).
2298   (GITHUB-309)
2299   [Pedro Romano]
2300
2301 - Update Google drivers to allow simultaneous authornization for all the
2302   supported Google Services.
2303   (GITHUB-302)
2304   [Eric Johnson]
2305
2306 Compute
2307 ~~~~~~~
2308
2309 - Fix create_key_pair method which was not returning private key.
2310   (LIBCLOUD-566)
2311   [Sebastien Goasguen]
2312
2313 - Map "Stopped" node state in the CloudStack driver to NodeState.STOPPED
2314   instead of NodeState.TERMINATED, "Stopping" to NodeState.PENDING instead of
2315   NodeState.TERMINATED and "Expunging" to NodeState.PENDING instead of
2316   NodeState.TERMINATED.
2317   (GITHUB-246)
2318   [Chris DeRamus, Tomaz Muraus]
2319
2320 - Add ex_create_tags and ex_delete_tags method to the CloudStack driver.
2321   (LIBCLOUD-514, GITHUB-248)
2322   [Chris DeRamus]
2323
2324 - Add new G2 instances to the EC2 driver.
2325   [Tomaz Muraus]
2326
2327 - Add support for multiple API versions to the Eucalyptus driver and allows
2328   user to pass "api_version" argument to the driver constructor.
2329   (LIBCLOUD-516, GITHUB-249)
2330   [Chris DeRamus]
2331
2332 - Map "Powered Off" state in the vCloud driver from "TERMINATED" to "STOPPED".
2333   (GITHUB-251)
2334   [Ash Berlin]
2335
2336 - Add ex_rename_node method to the DigitalOcean driver.
2337   (GITHUB-252)
2338   [Rahul Ranjan]
2339
2340 - Improve error parsing in the DigitalOcean driver.
2341
2342   Reported by Deni Bertovic.
2343   [Tomaz Muraus]
2344
2345 - Add extension methods for the VPC internet gateway management to the EC2
2346   driver.
2347   (LIBCLOUD-525, GITHUB-255)
2348   [Chris DeRamus]
2349
2350 - Add CloudStackProject class to the CloudStack driver and add option to select
2351   project and disk offering on node creation.
2352   (LIBCLOUD-526, GITHUB-257)
2353   [Jim Divine]
2354
2355 - Fix IP address handling in the OpenStack driver.
2356   (LIBCLOUD-503, GITHUB-235)
2357   [Markos Gogoulos]
2358
2359 - Ad new ex_delete_image and ex_deprecate_image method to the GCE driver.
2360   (GITHUB-260)
2361   [Franck Cuny]
2362
2363 - Ad new ex_copy_image method to the GCE driver.
2364   (GITHUB-258)
2365   [Franck Cuny]
2366
2367 - Ad new ex_set_volume_auto_delete method to the GCE driver.
2368   (GITHUB-264)
2369   [Franck Cuny]
2370
2371 - Add ex_revoke_security_group_ingress method to the CloudStack driver.
2372   [Chris DeRamus, Tomaz Muraus]
2373
2374 - Allow user to pass ex_ebs_optimized argument to the create_node method
2375   in the EC2 driver.
2376   (GITHUB-272)
2377   [zerthimon]
2378
2379 - Add "deprecated" attribute to the Node object in the Google Compute Engine
2380   driver.
2381   (GITHUB-276)
2382   [Chris / bassdread]
2383
2384 - Update Softlayer driver to use "fullyQualifiedDomainName" instead of
2385   "hostname" attribute for the node name.
2386   (GITHUB-280)
2387   [RoelVanNyen]
2388
2389 - Allow user to specify target tags using target_tags attribute when creating
2390   a firewall rule in the GCE driver.
2391   (GITHUB-278)
2392   [zerthimon]
2393
2394 - Add new standard API for image management and initial implementation for the
2395   EC2 and Rackspace driver.
2396   (GITHUB-277)
2397   [Matt Lehman]
2398
2399 - Allow user to specify "displayname" attribute when creating a CloudStack node
2400   by passing "ex_displayname" argument to the method.
2401
2402   Also allow "name" argument to be empty (None). This way CloudStack
2403   automatically uses Node's UUID for the name.
2404   (GITHUB-289)
2405   [Jeff Moody]
2406
2407 - Deprecate "key" argument in the SSHClient class in favor of new "key_files"
2408   argument.
2409
2410   Also add a new "key_material" argument. This argument can contain raw string
2411   version of a private key.
2412
2413   Note 1: "key_files" and "key_material" arguments are mutually exclusive.
2414   Note 2: "key_material" argument is not supported in the ShellOutSSHClient.
2415
2416 - Use node id attribute instead of the name for the "lconfig" label in the
2417   Linode driver. This way the label is never longer than 48 characters.
2418   (GITHUB-287)
2419   [earthgecko]
2420
2421 - Add a new driver for Outscale SAS and Outscale INC cloud
2422   (http://www.outscale.com).
2423   (GITHUB-285, GITHUB-293, LIBCLOUD-536, LIBCLOUD-553)
2424   [Benoit Canet]
2425
2426 - Add new driver for HP Public Cloud (Helion) available via Provider.HPCLOUD
2427   constant.
2428   [Tomaz Muraus]
2429
2430 - Allow user to specify availability zone when creating an OpenStack node by
2431   passing "ex_availability_zone" argument to the create_node method.
2432   Note: This will only work if the OpenStack installation is running
2433   availability zones extension.
2434   (GITHUB-295, LIBCLOUD-555)
2435   [syndicut]
2436
2437 - Allow user to pass filters to ex_list_networks method in the EC2 driver.
2438   (GITHUB-294)
2439   [zerthimon]
2440
2441 - Allow user to retrieve container images using ex_get_image method in the
2442   Google Compute Engine driver.
2443   (GITHUB-299, LIBCLOUD-562)
2444   [Magnus Andersson]
2445
2446 - Add new driver for Kili public cloud (http://kili.io/)
2447   [Tomaz Muraus]
2448
2449 - Add "timeout" argument to the ParamikoSSHClient.run method. If this argument
2450   is specified and the command passed to run method doesn't finish in the
2451   defined timeout, `SSHCommandTimeoutError` is throw and the connection to the
2452   remote server is closed.
2453
2454   Note #1: If timed out happens, this functionality doesn't guarantee that the
2455   underlying command will be stopped / killed. The way it works it simply
2456   closes a connect to the remote server.
2457   [Tomaz Muraus]
2458
2459   Note #2: "timeout" argument is only available in the Paramiko SSH client.
2460
2461 - Make "cidrs_ips" argument in the ex_authorize_security_group_egress method in
2462   the EC2 driver mandatory.
2463   (GITHUB-301)
2464   [Csaba Hoch]
2465
2466 - Add extension methods for managing floating IPs (ex_get_floating_ip,
2467   ex_create_floating_ip, ex_delete_floating_ip) to the Openstack 1.1 driver.
2468   (GITHUB-301)
2469   [Csaba Hoch]
2470
2471 - Fix bug in RimuHosting driver which caused driver not to work when the
2472   provider returned compressed (gzip'ed) response.
2473   (LIBCLOUD-569, GITHUB-303)
2474   [amastracci]
2475
2476 - Fix issue with overwriting the server memory values in the RimuHosting
2477   driver.
2478   (GUTHUB-308)
2479   [Dustin Oberloh]
2480
2481 - Add ex_all_tenants argument to the list_nodes method in the OpenStack driver.
2482   (GITHUB-312)
2483   [LIBCLOUD-575, Zak Estrada]
2484
2485 - Add support for network management for advanced zones
2486   (ex_list_network_offerings, ex_create_network, ex_delete_network) in the
2487   CloudStack driver.
2488   (GITHUB-316)
2489   [Roeland Kuipers]
2490
2491 - Add extension methods for routes and route table management to the EC2
2492   driver (ex_list_route_tables, ex_create_route_table, ex_delete_route_table,
2493   ex_associate_route_table, ex_dissociate_route_table,
2494   ex_replace_route_table_association, ex_create_route, ex_delete_route,
2495   ex_replace_route)
2496   (LIBCLOUD-574, GITHUB-313)
2497   [Lior Goikhburg]
2498
2499 - Fix ex_list_snapshots for HP Helion OpenStack based driver.
2500   [Tomaz Muraus]
2501
2502 - Allow user to specify volume type and number of IOPS when creating a new
2503   volume in the EC2 driver by passing ``ex_volume_type`` and ``ex_iops``
2504   argument to the ``create_volume`` method.
2505   [Tomaz Muraus]
2506
2507 - Fix ex_unpause_node method in the OpenStack driver.
2508   (GITHUB-317)
2509   [Pablo Orduña]
2510
2511 - Allow user to launch EC2 node in a specific VPC subnet by passing
2512   ``ex_subnet`` argument to the create_node method.
2513   (GITHUB-318)
2514   [Lior Goikhburg]
2515
2516 Storage
2517 ~~~~~~~
2518
2519 - Fix container name encoding in the iterate_container_objects and
2520   get_container_cdn_url method in the CloudFiles driver. Previously, those
2521   methods would throw an exception if user passed in a container name which
2522   contained a whitespace.
2523
2524   Reported by Brian Metzler.
2525   (LIBCLOUD-552)
2526   [Tomaz MUraus]
2527
2528 - Fix a bug in the OpenStack Swift driver which prevented the driver to work
2529   with installations where region names in the service catalog weren't upper
2530   case.
2531   (LIBCLOUD-576, GITHUB-311)
2532   [Zak Estrada]
2533
2534 Load Balancer
2535 ~~~~~~~~~~~~~
2536
2537 - Add extension methods for policy managagement to the ELB driver.
2538   (LIBCLOUD-522, GITHUB-253)
2539   [Rahul Ranjan]
2540
2541 DNS
2542 ~~~
2543
2544 - Fix update_record method in the Route56 driver so it works correctly for
2545   records with multiple values.
2546   [Tomaz Muraus]
2547
2548 - Add ex_create_multi_value_record method to the Route53 driver which allows
2549   user to create a record with multiple values with a single call.
2550   [Tomaz Muraus]
2551
2552 - Add new driver for Google DNS.
2553   (GITHUB-269)
2554   [Franck Cuny]
2555
2556 Changes with Apache Libcloud 0.14.1
2557 -----------------------------------
2558
2559 Compute
2560 ~~~~~~~
2561
2562 - Add new m3.medium and m3.large instance information to the EC2 driver.
2563   [Tomaz Muraus]
2564
2565 - Add a new driver for CloudSigma API v2.0.
2566   [Tomaz Muraus]
2567
2568 - Add "volume_id" attribute to the Node "extra" dictionary in the EC2 driver.
2569   Also fix the value of the "device" extra attribute in the StorageVolume
2570   object. (LIBCLOUD-501)
2571   [Oleg Suharev]
2572
2573 - Add the following extension methods to the OpenStack driver: ex_pause_node,
2574   ex_unpause_node, ex_suspend_node, ex_resume_node.
2575   (LIBCLOUD-505, GITHUB-238)
2576   [Chris DeRamus]
2577
2578 - Add ex_limits method to the CloudStack driver.
2579   (LIBCLOUD-507, GITHUB-240)
2580   [Chris DeRamus]
2581
2582 - Add "extra" dictionary to the CloudStackNode object and include more
2583   attributes in the "extra" dictionary of the network and volume object.
2584   (LIBCLOUD-506, GITHUB-239)
2585   [Chris DeRamus]
2586
2587 - Add ex_register_image method to the EC2 driver.
2588   (LIBCLOUD-508, GITHUB-241)
2589   [Chris DeRamus]
2590
2591 - Add methods for managing volume snapshots to the OpenStack driver.
2592   (LIBCLOUD-512, GITHUB-245)
2593   [Chris DeRamus]
2594
2595 Load Balancer
2596 ~~~~~~~~~~~~~
2597
2598 - Fix a bug in the ex_targetpool_add_node and ex_targetpool_remove_node method
2599   in the GCE driver.
2600   [Rick Wright]
2601
2602 Storage
2603 ~~~~~~~
2604
2605 - Allow user to use an internal endpoint in the CloudFiles driver by passing
2606   "use_internal_url" argument to the driver constructor.
2607   (GITHUB-229, GITHUB-231)
2608   [John Obelenus]
2609
2610 DNS
2611 ~~~
2612
2613 - Add PTR to the supported record types in the Rackspace driver.
2614   [Tomaz Muraus]
2615
2616 - Fix Zerigo driver to set Record.name attribute for records which refer
2617   to the bare domain to "None" instead of an empty string.
2618   [Tomaz Muraus]
2619
2620 - For consistency with other drivers, update Rackspace driver to set
2621   Record.name attribute for the records which refer to the bare domain
2622   to "None" instead of setting them to FQDN.
2623   [Tomaz Muraus]
2624
2625 - Update Rackspace driver to support paginating through zones and records.
2626   (GITHUB-230)
2627   [Roy Wellington]
2628
2629 - Update Route53 driver so it supports handling records with multiple values
2630   (e.g. MX).
2631   (LIBCLOUD-504, GITHUB-237)
2632   [Chris DeRamus]
2633
2634 - Update Route53 driver to better handle SRV records.
2635   [Tomaz Muraus]
2636
2637 - Update Route53 driver, make sure "ttl" attribute in the Record extra
2638   dictionary is always an int.
2639   [Tomaz Muraus]
2640
2641 Changes with Apache Libcloud 0.14.0
2642 -----------------------------------
2643
2644 General
2645 ~~~~~~~
2646
2647 - Update API endpoints which are used in the HostVirtual drivers.
2648   (LIBCLOUD-489)
2649   [Dinesh Bhoopathy]
2650
2651 - Add support for Amazon security token to the Amazon drivers.
2652   (LIBCLOUD-498, GITHUB-223)
2653   [Noah Kantrowitz]
2654
2655 Compute
2656 ~~~~~~~
2657
2658 - Remove Slicehost driver.
2659
2660   SliceHost API has been shut down in 2012 so it makes no sense to keep
2661   this driver.
2662   [Tomaz Muraus]
2663
2664 - Modify drivers for public cloud providers which use HTTP Basic
2665   authentication to not allow insecure connections (secure constructor
2666   kwarg being set to False) by default.
2667
2668   This way credentials can't accidentally be sent in plain text over the
2669   write.
2670
2671   Affected drivers: Bluebox, Joyent, NephoScale, OpSource, VPSNet
2672   [Tomaz Muraus]
2673
2674 - Remove "public_ip" and "private_ip" property which has been deprecated in
2675   0.7.0 from the Node object.
2676   [Tomaz Muraus]
2677
2678 - Move "is_private_ip" and "is_valid_ip_address" function from
2679   libcloud.compute.base into libcloud.utils.networking module.
2680   [Tomaz Muraus]
2681
2682 - Allow user to pass "url" argument to the CloudStack driver constructor.
2683   This argument can be provided instead of "host" and "path" arguments and
2684   can contain a full URL to the API endpoint. (LIBCLOUD-430)
2685   [Tomaz Muraus]
2686
2687 - Allow user to pass None as a "location" argument to the create_node
2688   method. (LIBCLOUD-431)
2689   [Tomaz Muraus]
2690
2691 - Refactor CloudStack Connection class so it looks more like other
2692   connection classes and user can specify which attributes to send as part
2693   of query parameters in the GET request and which inside the body of a POST
2694   request.
2695   [Tomaz Muraus, Philipp Strube]
2696
2697 - Add a new driver for Exoscale (https://www.exoscale.ch/) provider.
2698   [Tomaz Muraus]
2699
2700 - Fix a bug in Abiquo driver which caused the driver to fail if the endpoint
2701   URL didn't start with "/api". (LIBCLOUD-447)
2702
2703   Reported by Igor Ajdisek.
2704   [Tomaz Muraus]
2705
2706 - Modify CloudStack driver to correctly throw InvalidCredsError exception if
2707   invalid credentials are provided.
2708   [Tomaz Muraus]
2709
2710 - Don't throw an exception if a node object is missing an "image" attribute
2711   in the list nodes / get node response.
2712
2713   This could happen if node is in an error state. (LIBCLOUD-455)
2714   [Dustin Spicuzza, Tomaz Muraus]
2715
2716 - Update CloudStack driver to better handle errors and throw ProviderError
2717   instead of a generic Exception.
2718   [Tomaz Muraus]
2719
2720 - Modify ex_list_networks methods in CloudStack driver to not thrown if there
2721   are no networks available.
2722   [Tomaz Muraus]
2723
2724 - Bump API version used in the EC2 driver from 2010-08-21 to 2013-10-15.
2725   (LIBCLOUD-454)
2726   [Tomaz Muraus]
2727
2728 - Add ex_get_limits method for retrieving account resource limits to the
2729   EC2 driver.
2730   [Tomaz Muraus]
2731
2732 - Update us-west-1 region in the EC2 driver to include c3 instance types.
2733   Also include pricing information.
2734   [Tomaz Muraus]
2735
2736 - For consistency, rename "ex_add_ip_forwarding_rule" method to
2737   "ex_create_ip_forwarding_rule".
2738   (GITHUB-196)
2739   [Oleg Suharev]
2740
2741 - Add support for new "i2" instance types to Amazon EC2 driver. Also
2742   update pricing file. (LIBCLOUD-465)
2743   [Chris DeRamus]
2744
2745 - Allow user to specify VPC id when creating a security group in the EC2
2746   driver by passing "vpc_id" argument to ex_create_security_group method.
2747   (LIBCLOUD-463, GITHUB-201)
2748   [Chris DeRamus]
2749
2750 - Add extension methods for managing security group rules
2751   (ex_authorize_security_group_ingress, ex_authorize_security_group_egress,
2752   ex_revoke_security_group_ingress, ex_revoke_security_group_egress) to the
2753   EC2 driver. (LIBCLOUD-466, GITHUB-202)
2754   [Chris DeRamus]
2755
2756 - Add extension methods for deleting security groups
2757   (ex_delete_security_group, ex_delete_security_group_by_id,
2758   ex_delete_security_group_by_name) to the EC2 driver.
2759   (LIBCLOUD-464, GITHUB-199)
2760   [Chris DeRamus]
2761
2762 - Add extension method for listing reserved instances
2763   (ex_list_reserved_nodes) to the EC2 driver. (LIBCLOUD-469, GITHUB-205)
2764   [Chris DeRamus]
2765
2766 - Add extension methods for VPC management (ex_list_networks,
2767   ex_create_network, ex_delete_network) to the EC2 driver.
2768   (LIBCLOUD-467, GITHUB-203)
2769   [Chris DeRamus]
2770
2771 - Add extension methods for VPC subnet management (ex_list_subnets,
2772   ex_create_subnet, ex_delete_subnet) to the EC2 driver.
2773   (LIBCLOUD-468, GITHUB-207)
2774   [Chris DeRamus]
2775
2776 - Add ex_get_console_output extension method to the EC2 driver.
2777   (LIBCLOUD-471, GITHUB-209)
2778   [Chris DeRamus]
2779
2780 - Include additional provider-specific attributes in the 'extra' dictionary
2781   of the StorageVolume class in the EC2 driver. (LIBCLOUD-473, GITHUB-210)
2782   [Chris DeRamus]
2783
2784 - Change attribute name in the 'extra' dictionary of EC2 and CloudStack
2785   Node object from "keyname" to "key_name". (LIBCLOUD-475)
2786   [Oleg Suharev]
2787
2788 - Fix a deployment issue which would some times cause a process to hang if
2789   the executed deployment script printed a lot of output to stdout or stderr.
2790   [Tomaz Muraus]
2791
2792 - Add additional attributes to the "extra" dictionary of the VolumeSnapshot
2793   object in the EC2 driver.
2794
2795   Also modify create_volume_snapshot method to correctly handle "name"
2796   argument. Previous, "name" argument was used as a snapshot description,
2797   now it's used as a Tag with a key "Name". (LIBCLOUD-480, GITHUB-214)
2798   [Chris DeRamus]
2799
2800 - Store additional attributes (iops, tags, block_device_mapping) in the
2801   "extra" dictionary of the NodeImage object in the EC2 driver.
2802
2803   Also fix ex_image_ids filtering in the list_images method.
2804   (LIBCLOUD-481, GITHUB-215)
2805   [Chris DeRamus]
2806
2807 - Add extension methods for network interface management
2808   (ex_list_network_interfaces, ex_create_network_interface,
2809   ex_attach_network_interface_to_node, ex_detach_network_interface,
2810   ex_delete_network_interface) to the EC2 driver. (LIBCLOUD-474)
2811   [Chris DeRamus]
2812
2813 - Update Google Compute Engine driver to use and work with API v1.
2814   (LIBCLOUD-450)
2815   [Rick Wright]
2816
2817 - Modify ParamikoSSHClient so that "password" and "key" arguments are not
2818   mutually exclusive and both can be provided. (LIBCLOUD-461, GITHUB-194)
2819   [Markos Gogoulos]
2820
2821 - Add extension methods for the Elastic IP management to the EC2 driver.
2822   Also modify "ex_allocate_address" and "ex_release_address" method to
2823   take "domain" argument so it also works with VPC.
2824   (LIBCLOUD-470, GITHUB-208, GITHUB-220)
2825   [Chris DeRamus]
2826
2827 - Add additional provider specific attributes to the "extra" dictionary of
2828   the Node object in the EC2 driver. (LIBCLOUD-493, GITHUB-221)
2829   [Chris DeRamus]
2830
2831 - Add ex_copy_image and ex_create_image_from_node method to the EC2 driver.
2832   (LIBCLOUD-494, GITHUB-222)
2833   [Chris DeRamus]
2834
2835 Storage
2836 ~~~~~~~
2837
2838 - Allow user to specify 'Content-Disposition' header in the CloudFiles
2839   driver by passing 'content_disposition' key in the extra dictionary of
2840   the upload object methods. (LIBCLOUD-430)
2841   [Michael Farrell]
2842
2843 - Fix CloudFiles driver so it references a correct service catalog entry for
2844   the CDN endpoint.
2845
2846   This was broken in the 0.14.0-beta3 release when we migrated all the
2847   Rackspace drivers to use auth 2.0 by default. (GITHUB-186)
2848   [John Obelenus]
2849
2850 - Update storage drivers to default to "application/octet-stream"
2851   Content-Type if none is provided and none can be guessed.
2852   (LIBCLOUD-433)
2853   [Michael Farrell]
2854
2855 - Fix a bug so you can now upload 0 bytes sized objects using multipart
2856   upload in the S3 driver. (LIBCLOUD-490)
2857
2858   Reported by Noah Kantrowitz.
2859   [Tomaz Muraus]
2860
2861 - Update OpenStack Swift driver constructor so it accepts "region",
2862   "ex_force_service_type" and "ex_force_service_name" argument.
2863   [Tomaz Muraus]
2864
2865 - Deprecate "CLOUDFILES_SWIFT" provider constant in favor of new
2866   "OPENSTACK_SWIFT" one.
2867   [Tomaz Muraus]
2868
2869 - Add support for setting an ACL when uploading and object.
2870   (LIBCLOUD-497, GITHUB-223)
2871   [Noah Kantrowitz]
2872
2873 - Modify get_container method to use a more efficient "HEAD"
2874   approach instead of calling list_containers + doing late
2875   filterting.
2876   (LIBCLOUD-498, GITHUB-223)
2877   [Noah Kantrowitz]
2878
2879 DNS
2880 ~~~
2881
2882 - Implement iterate_* methods in the Route53 driver and makes it work
2883   correctly if there are more results which can fit on a single page.
2884   Previously, only first 100 results were returned. (LIBCLOUD-434)
2885   [Chris Clarke]
2886
2887 - Update HostVirtual driver constructor to only take "key" and other valid
2888   arguments. Previously it also took "secret" argument which it silently
2889   ignored. (LIBCLOUD-483)
2890
2891   Reported by  Andrew Udvare.
2892   [Tomaz Muraus]
2893
2894 - Fix list_records method in the HostVirtual driver.
2895   (LIBCLOUD-484, GITHUB-218)
2896
2897   Reported by Andrew Udvare.
2898   [Dinesh Bhoopathy]
2899
2900 Changes with Apache Libcloud 0.14.0-beta3
2901 -----------------------------------------
2902
2903 General
2904 ~~~~~~~
2905
2906 - If the file exists, read pricing data from ~/.libcloud/pricing.json
2907   by default. If the file doesn't exist, fall back to the old behavior
2908   and use pricing data which is bundled with the release.
2909   [Tomaz Muraus]
2910
2911 - Add libcloud.pricing.download_pricing_file function for downloading and
2912   updating the pricing file.
2913   [Tomaz Muraus]
2914
2915 - Fix libcloud.utils.py3.urlquote so it works with unicode strings under
2916   Python 2. (LIBCLOUD-429)
2917   [Michael Farrell]
2918
2919 Compute
2920 ~~~~~~~
2921
2922 - Refactor Rackspace driver classes and make them easier to use. Now there
2923   are two Rackspace provider constants - Provider.RACKSPACE which
2924   represents new next-gen OpenStack servers and
2925   Provider.RACKSPACE_FIRST_GEN which represents old first-gen cloud
2926   servers.
2927
2928   Note: This change is backward incompatible. For more information on those
2929   changes and how to update your code, please visit "Upgrade Notes"
2930   documentation page - http://s.apache.org/lc0140un
2931   [Tomaz Muraus]
2932
2933 - Deprecate the following EC2 provider constants: EC2_US_EAST,
2934   EC2_EU, EC2_EU_WEST, EC2_AP_SOUTHEAST, EC2_AP_NORTHEAST,
2935   EC2_US_WEST_OREGON, EC2_SA_EAST, EC2_SA_EAST and replace it with a new
2936   EC2 constant.
2937   Driver referenced by this new constant now takes a "region" argument which
2938   dictates to which region to connect.
2939
2940   Note: Deprecated constants will continue to work until the next major
2941   release. For more information on those changes and how to update your
2942   code, please visit "Upgrade Notes" documentation page -
2943   http://s.apache.org/lc0140un
2944   [Tomaz Muraus]
2945
2946 - Add support for volume related functions to OpenNebula driver.
2947   (LIBCLOUD-354)
2948   [Emanuele Rocca]
2949
2950 - Add methods for managing storage volumes to the OpenStack driver.
2951   (LIBCLOUD-353)
2952   [Bernard Kerckenaere]
2953
2954 - Add new driver for Google Compute Engine (LIBCLOUD-266, LIBCLOUD-386)
2955   [Rick Wright]
2956
2957 - Fix create_node "features" metadata and update affected drivers.
2958   (LIBCLOUD-367)
2959   [John Carr]
2960
2961 - Update EC2 driver to accept the auth kwarg (it will accept NodeAuthSSH
2962   objects and automatically import a public key that is not already
2963   uploaded to the EC2 keyring). (Follow on from LIBCLOUD-367).
2964   [John Carr]
2965
2966 - Unify extension argument names for assigning a node to security groups
2967   in EC2 and OpenStack driver.
2968   Argument in the EC2 driver has been renamed from ex_securitygroup to
2969   ex_security_groups. For backward compatibility reasons, old argument
2970   will continue to work until the next major release. (LIBCLOUD-375)
2971   [Tomaz Muraus]
2972
2973 - Add ex_import_keypair_from_string and ex_import_keypair method to the
2974   CloudStack driver. (LIBCLOUD-380)
2975   [Sebastien Goasguen]
2976
2977 - Add support for managing floating IP addresses to the OpenStack driver.
2978   (LIBCLOUD-382)
2979   [Ivan Kusalic]
2980
2981 - Add extension methods for handling port forwarding to the CloudStack
2982   driver, rename CloudStackForwardingRule class to
2983   CloudStackIPForwardingRule. (LIBCLOUD-348, LIBCLOUD-381)
2984   [sebastien goasguen]
2985
2986 - Hook up deploy_node functionality in the CloudStack driver and unify
2987   extension arguments for handling security groups. (LIBCLOUD-388)
2988   [sebastien goasguen]
2989
2990 - Allow user to pass "args" argument to the ScriptDeployment and
2991   ScriptFileDeployment class. This argument tells which command line
2992   arguments get passed to the ScriptDeployment script. (LIBCLOUD-394)
2993
2994   Note: This change is backward incompatible. For more information on how
2995   this affects your code and how to update it, visit "Upgrade Notes"
2996   documentation page - http://s.apache.org/lc0140un
2997   [Tomaz Muraus]
2998
2999 - Allow user to specify IAM profile to use when creating an EC2 node.
3000   (LIBCLOUD-403)
3001   [Xavier Barbosa]
3002
3003 - Add support for keypair management to the OpenStack driver.
3004   (LIBCLOUD-392)
3005   [L. Schaub]
3006
3007 - Allow user to specify disk partitioning mode using ex_disk_config argument
3008   in the OpenStack based drivers. (LIBCLOUD-402)
3009   [Brian Curtin]
3010
3011 - Add new driver for NephoScale provider (http://nephoscale.com/).
3012   (LIBCLOUD-404)
3013   [Markos Gogoulos]
3014
3015 - Update network related extension methods so they work correctly with
3016   both, OpenStack and Rackspace driver. (LIBCLOUD-368)
3017   [Tomaz Muraus]
3018
3019 - Add tests for networking functionality in the OpenStack and Rackspace
3020   driver.
3021   [Tomaz Muraus]
3022
3023 - Allow user to pass all supported extension arguments to ex_rebuild_server
3024   method in the OpenStack driver. (LIBCLOUD-408)
3025   [Dave King]
3026
3027 - Add pricing information for Rackspace Cloud Sydney region.
3028   [Tomaz Muraus]
3029
3030 - Update EC2 instance type map and pricing data. High Storage instances are
3031   now also available in Sydney and Singapore region.
3032   [Tomaz Muraus]
3033
3034 - Add new methods for managing storage volumes and snapshots to the EC2
3035   driver (list_volumes, list_snapshots, destroy_volume_snapshot,
3036   create_volume_snapshot) (LIBCLOUD-409)
3037   [Oleg Suharev]
3038
3039 - Add the following new extension methods to EC2 driver: ex_destroy_image,
3040   ex_modify_instance_attributes, ex_delete_keypair. (LIBCLOUD-409)
3041   [Oleg Suharev]
3042
3043 - Allow user to specify a port range when creating a port forwarding rule.
3044   (LIBCLOUD-409)
3045   [Oleg Suharev]
3046
3047 - Align Joyent driver with other drivers and deprecate "location" argument
3048   in the driver constructor in favor of "region" argument.
3049
3050   Note: Deprecated argument will continue to work until the next major
3051   release.
3052   [Tomaz Muraus]
3053
3054 - Deprecate the following ElasticHosts provider constants: ELASTICHOSTS_UK1,
3055   ELASTICHOSTS_UK2, ELASTICHOSTS_US1, ELASTICHOSTS_US2, ELASTICHOSTS_US3,
3056   ELASTICHOSTS_CA1, ELASTICHOSTS_AU1, ELASTICHOSTS_CN1 and replace it with a
3057   new ELASTICHOSTS constant.
3058   Driver referenced by this new constant now takes a "region" argument which
3059   dictates to which region to connect.
3060
3061   Note: Deprecated constants will continue to work until the next major
3062   release. For more information on those changes and how to update your
3063   code, please visit "Upgrade Notes" documentation page -
3064   http://s.apache.org/lc0140un (LIBCLOUD-383)
3065   [Michael Bennett, Tomaz Muraus]
3066
3067 - Add log statements to our ParamikoSSHClient wrapper. This should make
3068   debugging deployment issues easier. (LIBCLOUD-414)
3069   [Tomaz Muraus]
3070
3071 - Add new "NodeState.STOPPED" node state. Update HostVirual and EC2 driver to
3072   also recognize this new state. (LIBCLOUD-296)
3073   [Jayy Vis]
3074
3075 - Add new Hong Kong endpoint to Rackspace driver.
3076   [Brian Curtin]
3077
3078 - Fix ex_delete_keypair method in the EC2 driver. (LIBCLOUD-415)
3079   [Oleg Suharev]
3080
3081 - Add the following new extension methods for elastic IP management to the
3082   EC2 driver: ex_allocate_address, ex_disassociate_address,
3083   ex_release_address. (LIBCLOUD-417)
3084   [Patrick Armstrong]
3085
3086 - For consistency and accuracy, rename "ex_associate_addresses" method in the
3087   EC2 driver to "ex_associate_address_with_node".
3088
3089   Note: Old method will continue to work until the next major release.
3090   [Tomaz Muraus]
3091
3092 - Add new driver for CloudFrames (http://www.cloudfounders.com/CloudFrames)
3093   provider. (LIBCLOUD-358)
3094   [Bernard Kerckenaere]
3095
3096 - Update default kernel versions which are used when creating a Linode
3097   server.
3098
3099   Old default kernel versions:
3100
3101   - x86 - 2.6.18.8-x86_64-linode1
3102   - x86_64 - 2.6.39.1-linode34
3103
3104   New default kernel versions:
3105
3106   - x86 - 3.9.3-x86-linode52
3107   - x86_64 - 3.9.3-x86_64-linode33
3108
3109   (LIBCLOUD-424)
3110   [Tomaz Muraus, Jon Chen]
3111
3112 - Disable cache busting functionality in the OpenStack and Rackspace next-gen
3113   driver and enable it only for Rackspace first-gen driver.
3114   [Tomaz Muraus]
3115
3116 - Update Google Compute Engine driver to v1beta16.
3117   [Rick Wright]
3118
3119 - Modify auth_url variable in the OpenStack drivers so it works more like
3120   users would expect it to.
3121
3122   Previously path specified in the auth_url was ignored and only protocol,
3123   hostname and port were used. Now user can provide a full url for the
3124   auth_url variable and the path provided in the url is also used.
3125   [DaeMyung Kang, Tomaz Muraus]
3126
3127 - Allow user to associate arbitrary key/value pairs with a node by passing
3128   "ex_metadata" argument (dictionary) to create_node method in the EC2
3129   driver.
3130   Those values are associated with a node using tags functionality.
3131   (LIBCLOUD-395)
3132   [Ivan Kusalic]
3133
3134 - Add "ex_get_metadata" method to EC2 and OpenStack driver. This method reads
3135   metadata dictionary from the Node object. (LIBCLOUD-395)
3136   [Ivan Kusalic]
3137
3138 - Multiple improvements in the Softlayer driver:
3139     - Map "INITIATING" node state to NodeState.PENDING
3140     - If node is launching remap "halted" state to "pending"
3141     - Add more node sizes
3142     - Add ex_stop_node and ex_start_node method
3143     - Update tests response fixtures
3144
3145   (LIBCLOUD-416)
3146   [Markos Gogoulos]
3147
3148 - Modify list_sizes method in the KT UCloud driver to work, even if the item
3149   doesn't have 'diskofferingid' attribute. (LIBCLOUD-435)
3150   [DaeMyung Kang]
3151
3152 - Add new c3 instance types to the EC2 driver.
3153   [Tomaz Muraus]
3154
3155 - Fix an issue with the ex_list_keypairs and ex_list_security_groups method
3156   in the CloudStack driver which caused an exception to be thrown if the API
3157   returned no keypairs / security groups.
3158   (LIBCLOUD-438)
3159   [Carlos Reategui, Tomaz Muraus]
3160
3161 - Fix a bug in the OpenStack based drivers with not correctly checking if the
3162   auth token has expired before re-using it. (LIBCLOUD-428)
3163
3164   Reported by Michael Farrell.
3165   [Tomaz Muraus,  Michael Farrell]
3166
3167 Storage
3168 ~~~~~~~
3169
3170 - Deprecate CLOUDFILES_US and CLOUDFILES_UK provider constant and replace
3171   it with a new CLOUDFILES constant.
3172   Driver referenced by this new constant takes a "region" keyword argument
3173   which can be one of 'ord', 'dfw', 'iad', 'syd', 'lon'.
3174
3175   Note: Deprecated constants will continue to work until the next major
3176   release.
3177   For more information on this change, please visit "Upgrade Notes"
3178   documentation section - http://s.apache.org/lc0140un
3179   [Tomaz Muraus]
3180
3181 - Allow users to filter objects starting with a prefix by passing ex_prefix
3182   argument to the list_container_objects method in the S3, Google Storage
3183   and CloudFiles driver. (LIBCLOUD-369)
3184   [Stefan Friesel]
3185
3186 - Fix an issue with mutating connectionCls.host attribute in the Azure
3187   driver. This bug prevented user from having multiple Azure drivers with
3188   different keys instantiated at the same time. (LIBCLOUD-399)
3189   [Olivier Grisel]
3190
3191 - Add a new driver for KT UCloud based on the OpenStack Swift driver.
3192   (LIBCLOUD-431).
3193   [DaeMyung Kang]
3194
3195 Load Balancer
3196 ~~~~~~~~~~~~~
3197
3198 - Deprecate RACKSPACE_US and RACKSPACE_UK provider constant and replace it
3199   with a new RACKSPACE constant.
3200   Driver referenced by this new constant takes a "region" keyword argument
3201   which can be one of the following: 'ord', 'dfw', 'iad', 'syd', 'lon'.
3202
3203   Note: Deprecated constants will continue to work until the next major
3204   release.
3205   For more information on this change, please visit "Upgrade Notes"
3206   documentation section - http://s.apache.org/lc0140un
3207   [Tomaz Muraus]
3208
3209 - Add new driver for Google Compute Engine (LIBCLOUD-386)
3210   [Rick Wright]
3211
3212 - Add new Hong Kong endpoint to Rackspace driver.
3213   [Brian Curtin]
3214
3215 DNS
3216 ~~~
3217
3218 - Deprecate RACKSPACE_US and RACKSPACE_UK provider constant and replace it
3219   with a new RACKSPACE constant.
3220   Driver referenced by this new constant takes a "region" keyword argument
3221   which can be one of the following: 'us', 'uk'.
3222
3223   Note: Deprecated constants will continue to work until the next major
3224   release.
3225   For more information on this change, please visit "Upgrade Notes"
3226   documentation section - http://s.apache.org/lc0140un
3227   [Tomaz Muraus]
3228
3229 - Use string instead of integer for RecordType ENUM value.
3230
3231   Note: If you directly use an integer instead of RecordType ENUM class you
3232   need to update your code to use the RecordType ENUM otherwise the code
3233   won't work. For more information on how to do that, see "Upgrade Notes"
3234   documentation section - http://s.apache.org/lc0140un
3235   [Tomaz Muraus]
3236
3237 - Add "export_zone_to_bind_format" and export_zone_to_bind_zone_file method
3238   which allows users to export Libcloud Zone to BIND zone format.
3239   (LIBCLOUD-398)
3240   [Tomaz Muraus]
3241
3242 - Update issue with inexistent zone / record handling in the get_zone and
3243   get_record method in the Linode driver. Those issues were related to
3244   changes in the Linode API. (LIBCLOUD-425)
3245   [Jon Chen]
3246
3247 Changes with Apache Libcloud 0.13.3
3248 -----------------------------------
3249
3250 Compute
3251 ~~~~~~~
3252
3253 - Send "scrub_data" query parameter when destroying a DigitalOcean node.
3254   This will cause disk to be scrubbed (overwritten with 0's) when destroying
3255   a node. (LIBCLOUD-487)
3256
3257   Note: This fixes a security issue with a potential leak of data contained
3258   on the destroyed node which only affects users of the DigitalOcean driver.
3259   (CVE-2013-6480)
3260   [Tomaz Muraus]
3261
3262 Changes with Apache Libcloud 0.13.2
3263 -----------------------------------
3264
3265 General
3266 ~~~~~~~
3267
3268 - Don't sent Content-Length: 0 header with POST and PUT request if "raw"
3269   mode is used. This fixes a regression which could cause broken behavior
3270   in some storage driver when uploading a file from disk.
3271   (LIBCLOUD-396)
3272   [Ivan Kusalic]
3273
3274 Compute
3275 ~~~~~~~
3276
3277 - Added Ubuntu Linux 12.04 image to ElasticHost driver image list.
3278   (LIBCLOUD-364)
3279   [Bob Thompson]
3280
3281 - Update ElasticHosts driver to store drive UUID in the node 'extra' field.
3282   (LIBCLOUD-357)
3283   [Bob Thompson]
3284
3285 Storage
3286 ~~~~~~~
3287
3288 - Store last_modified timestamp in the Object extra dictionary in the S3
3289   driver. (LIBCLOUD-373)
3290   [Stefan Friesel]
3291
3292 Load Balancer
3293 ~~~~~~~~~~~~~
3294
3295 - Expose CloudStack driver directly through the Provider.CLOUDSTACK
3296   constant.
3297   [Tomaz Muraus]
3298
3299 DNS
3300 ~~~
3301
3302 - Modify Zerigo driver to include record TTL in the record 'extra' attribute
3303   if a record has a TTL set.
3304   [Tomaz Muraus]
3305
3306 - Modify values in the Record 'extra' dictionary attribute in the Zerigo DNS
3307   driver to be set to None instead of an empty string ('') if a value for
3308   the provided key is not set.
3309   [Tomaz Muraus]
3310
3311 Changes with Apache Libcloud 0.13.1
3312 -----------------------------------
3313
3314 General
3315 ~~~~~~~
3316
3317 - Fix a regression introduced in 0.13.0 and make sure to include
3318   Content-Length 0 with PUT and POST requests. (LIBCLOUD-362, LIBCLOUD-390)
3319   [Tomaz Muraus]
3320
3321 Compute
3322 ~~~~~~~
3323
3324 - Fix a bug in the ElasticHosts driver and check for right HTTP status
3325   code when determining drive imaging success. (LIBCLOUD-363)
3326   [Bob Thompson]
3327
3328 - Update Opsource driver to include node public ip address (if available).
3329   (LIBCLOUD-384)
3330   [Michael Bennett]
3331
3332 Storage
3333 ~~~~~~~
3334
3335 - Fix a regression with calling encode_container_name instead of
3336   encode_object_name on object name in get_object method.
3337   Reported by Ben Meng (LIBCLOUD-366)
3338   [Tomaz Muraus]
3339
3340 - Ensure that AWS S3 multipart upload works for small iterators.
3341   (LIBCLOUD-378)
3342   [Mahendra M]
3343
3344 Changes with Apache Libcloud 0.13.0
3345 -----------------------------------
3346
3347 General
3348 ~~~~~~~
3349
3350 - Add homebrew curl-ca-bundle path to CA_CERTS_PATH. This will make Libcloud
3351   use homebrew curl ca bundle file (if available) for server certificate
3352   validation. (LIBCLOUD-324)
3353   [Robert Chiniquy]
3354
3355 - Modify OpenStackAuthConnection and change auth_token_expires attribute to
3356   be a datetime object instead of a string.
3357   [Tomaz Muraus]
3358
3359 - Modify OpenStackAuthConnection to support re-using of the existing auth
3360   token if it's still valid instead of re-authenticating on every
3361   authenticate() call.
3362   [Tomaz Muraus]
3363
3364 - Modify base Connection class to not send Content-Length header if body is
3365   not provided.
3366   [Tomaz Muraus]
3367
3368 - Add the new error class ProviderError and modify InvalidCredsError to
3369   inherit from it. (LIBCLOUD-331)
3370   [Jayy Vis]
3371
3372 Misc
3373 ----
3374
3375 - Add unittest2 library dependency for tests and update some tests to use
3376   it.
3377   [Tomaz Muraus]
3378
3379 Compute
3380 ~~~~~~~
3381
3382 - Fix destroy_node method in the experimental libvirt driver.
3383   [Aymen Fitati]
3384
3385 - Add ex_start_node method to the Joyent driver. (LIBCLOUD-319)
3386   [rszabo50]
3387
3388 - Fix Python 3 compatibility issue in the ScriptFileDeployment class.
3389   (LIBCLOUD-321)
3390   [Arfrever Frehtes Taifersar Arahesis]
3391
3392 - Add ex_set_metadata_entry and ex_get_metadata method to the VCloud driver.
3393   (LIBCLOUD-318)
3394   [Michel Samia]
3395
3396 - Various improvements and bug-fixes in the VCloud driver. (LIBCLOUD-323)
3397   [Michel Samia]
3398
3399 - Various bug fixes and improvements in the HostVirtual driver.
3400   (LIBCLOUD-249)
3401   [Dinesh Bhoopathy]
3402
3403 - Modify list_sizes method in the OpenStack driver to include
3404   OpenStackNodeSize object which includes 'vcpus' attribute which holds
3405   a number of virtual CPUs for this size. (LIBCLOUD-325)
3406   [Carlo]
3407
3408 - For consistency rename "ex_describe_keypairs" method in the EC2 driver to
3409   "ex_describe_keypair".
3410   [Tomaz Muraus]
3411
3412 - Modify "ex_describe_keypair" method to return key fingerprint in the
3413   return value. (LIBCLOUD-326)
3414   [Andre Merzky, Tomaz Muraus]
3415
3416 - Populate private_ips attribute in the CloudStack drive when returning
3417   a Node object from the create_node method. (LIBCLOUD-329)
3418   [Sebastien Goasguen, Tomaz Muraus]
3419
3420 - Allow user to pass extra arguments via "extra_args" argument which are
3421   then passed to the "deployVirtualMachine" call in the CloudStack driver
3422   create_node method. (LIBCLOUD-330)
3423   [Sebastien Goasguen, Tomaz Muraus]
3424
3425 - Update Gandi driver to handle new billing model. (LIBCLOUD-317)
3426   [Aymeric Barantal]
3427
3428 - Fix a bug in the Linode driver and remove extra newline which is added
3429   when generating a random root password in create_node. (LIBCLOUD-334)
3430   [Juan Carlos Moreno]
3431
3432 - Add extension methods for managing keypairs to the CloudStack driver.
3433   (LIBCLOUD-333)
3434   [sebastien goasguen]
3435
3436 - Add extension methods for managing security groups to the CloudStack
3437   driver. (LIBCLOUD-332)
3438   [sebastien goasguen]
3439
3440 - Add extension methods for starting and stoping the node to the
3441   CloudStack driver. (LIBCLOUD-338)
3442   [sebastien goasguen]
3443
3444 - Fix old _wait_until_running method. (LIBCLOUD-339)
3445   [Bob Thompson]
3446
3447 - Allow user to override default async task completion timeout by
3448   specifying ex_clone_timeout argument. (LIBCLOUD-340)
3449   [Michal Galet]
3450
3451 - Fix a bug in the GoGrid driver get_uuid method. (LIBCLOUD-341)
3452   [Bob Thompson]
3453
3454 - Fix a bug with deploy_node not respecting 'timeout' kwarg.
3455   [Kevin Carter]
3456
3457 - Modify create_node method in CloudStack driver to return an instance of
3458   CloudStackNode and add a new "expunging" node state. (LIBCLOUD-345)
3459   [sebastien goasguen]
3460
3461 - Update API endpoint hostnames in the ElasticHost driver and use hostnames
3462   which return a valid SSL certificate. (LIBCLOUD-346)
3463   [Bob Thompson]
3464
3465 - Add ex_list_networks method and missing tests for list_templates to the
3466   CloudStack driver. (LIBCLOUD-349)
3467   [Philipp Strube]
3468
3469 - Correctly throw InvalidCredsError if user passes invalid credentials to
3470   the DigitalOcean driver.
3471   [Tomaz Muraus]
3472
3473 Storage
3474 ~~~~~~~
3475
3476 - Fix an issue with double encoding the container name in the CloudFiles
3477   driver upload_object method.
3478   Also properly encode container and object name used in the HTTP request
3479   in the get_container and get_object method. (LIBCLOUD-328)
3480   [Tomaz Muraus]
3481
3482 Load Balancer
3483 ~~~~~~~~~~~~~
3484
3485 - Add ex_list_current_usage method to the Rackspace driver.
3486
3487 Changes with Apache Libcloud 0.12.4
3488 -----------------------------------
3489
3490 Compute
3491 ~~~~~~~
3492
3493 - Fix a regression in Softlayer driver caused by the xmlrpclib changes.
3494   (LIBCLOUD-310)
3495   [Jason Johnson]
3496
3497 - Allow user to pass alternate ssh usernames to deploy_node
3498   (ssh_alternate_usernames kwarg) which are used for authentication if the
3499   default one doesn't work. (LIBCLOUD-309)
3500   [Chris Psaltis, Tomaz Muraus]
3501
3502 - Fix a bug in EC2 list_locations method - 'name' attribute didn't contain a
3503   the right value.
3504   [Tomaz Muraus]
3505
3506 - Add new ScriptFileDeployment deployment class which reads deploy script
3507   from a file.
3508   [Rudolf J Streif]
3509
3510 - Add support for API version 5.1 to the vCloud driver and accept any value
3511   which is a multiple of four for ex_vm_memory kwarg in create_node method.
3512   (LIBCLOUD-314)
3513   [Trevor Powell]
3514
3515 Storage
3516 ~~~~~~~
3517
3518 - Fix a regression with removed ex_force_service_region constructor kwarg in
3519   the CloudFiles driver. (LIBCLOUD-260)
3520
3521 Changes with Apache Libcloud 0.12.3
3522 -----------------------------------
3523
3524 General
3525 ~~~~~~~
3526
3527 - Fix Python 3.x related regressions. (LIBCLOUD-245)
3528   Reported by Arfrever Frehtes Taifersar Arahesis.
3529   [Tomaz Muraus]
3530
3531 - Fix a regression introduced with recent xmlrpiclib changes which broke all
3532   the Gandi.net drivers. (LIBCLOUD-288)
3533
3534   Reported by Hutson Betts.
3535   [Tomaz Muraus]
3536
3537 - Improve deploy code to work correctly if the ssh user doesn't have access
3538   to the /root directory.
3539
3540   Previously the ScriptDeployment script was stored in /root folder by
3541   default. Now it's stored in users home directory under filename
3542   ~/libcloud_deploymeny_<random>.sh. (LIBCLOUD-302)
3543
3544   Reported by rotem on #libcloud.
3545   [Tomaz Muraus]
3546
3547 Compute
3548 ~~~~~~~
3549
3550 - Improve public and private IP address handling in OpenStack 1.1 driver.
3551   Assume every IP address which doesn't have a label "public" or "internet"
3552   is private. (LIBCLOUD-297)
3553   [Grischa Meyer, Tomaz Muraus]
3554
3555 - Add new driver for DigitalOcean provider - https://www.digitalocean.com/.
3556   (LIBCLOUD-304)
3557   [Tomaz Muraus]
3558
3559 - Fix a regression in ParamikoSSHClient.run method which caused this methid
3560   to only work as expected if you passed an absolute or a relative path to
3561   the script to it. (LIBCLOUD-278)
3562   [Tomaz Muraus]
3563
3564 DNS
3565 ~~~
3566
3567 - Allow user to specify 'priority' extra argument when creating a MX or SRV
3568   record.
3569   [Brian Jinwright, Tomaz Muraus]
3570
3571 Changes with Apache Libcloud 0.12.1
3572 -----------------------------------
3573
3574 General
3575 ~~~~~~~
3576
3577 - Deprecate LazyList method of iteration over large paginated collections
3578   and use a new, more efficient generator based approach which doesn't
3579   require the iterator to be pre-exhausted and buffering all of the values
3580   in memory.
3581
3582   Existing list_* methods which previously used LazyList class are
3583   preserving the old behavior and new iterate_* methods which use a new
3584   generator based approach have been added. (LIBCLOUD-254)
3585   [Mahendra M]
3586
3587 - Replace old ENUM style provider constants and replace them with a string
3588   version.
3589   This change allows users to dynamically register new drivers using a new
3590   set_driver method. (LIBCLOUD-255)
3591   [Mahendra M]
3592
3593 - Allow user to explicitly specify which CA file is used for verifying
3594   the server certificate by setting 'SSL_CERT_FILE' environment variable.
3595
3596   Note: When this variable is specified, the specified path is the only
3597   CA file which is used to verifying the server certificate. (LIBCLOUD-283)
3598   [Tomaz Muraus, Erinn Looney-Triggs]
3599
3600 - Add a common module (libcloud.common.xmlrpc) for handling XML-RPC
3601   requests using Libcloud http layer.
3602
3603   Also refactor existing drivers which use xmlrpclib directly (VCL, Gandi,
3604   Softlayer) to use this module.
3605
3606   This change allows drivers to support LIBCLOUD_DEBUG and SSL certificate
3607   validation functionality. Previously they have bypassed Libcloud http
3608   layer so this functionality was not available. (LIBCLOUD-288)
3609   [John Carr]
3610
3611 Compute
3612 ~~~~~~~
3613
3614 - Fix string interpolation bug in __repr__ methods in the IBM SCE driver.
3615   (LIBCLOUD-242)
3616   [Tomaz Muraus]
3617
3618 - Fix test failures which happened in Python 3.3 due to:
3619   - hash randomization
3620   - changes in xml.etree module
3621   - changes in xmlrpc module
3622   (LIBCLOUD-245)
3623   [Tomaz Muraus]
3624
3625 - Improvements and additions in vCloud driver:
3626     - Expose generic query method (ex_query)
3627     - Provide functionality to get and set control access for vApps. This way
3628       created vApps can be shared between users/groups or everyone.
3629
3630   (LIBCLOUD-251)
3631   [Michal Galet]
3632
3633 - Update EC2 pricing data to reflect new, lower prices -
3634   http://aws.typepad.com/aws/2012/10/new-ec2-second-generation-standard-instances-and-price-reductions-1.html
3635   [Tomaz Muraus]
3636
3637 - Update EC2 instance size to reflect new m3 instance types. Also refactor
3638   the code to make it easier to maintain.
3639   [Tomaz Muraus]
3640
3641 - Add a new driver for HostVirtual (http://www.vr.org) provider.
3642   (LIBCLOUD-249)
3643   [Dinesh Bhoopathy]
3644
3645 - Fix a bug where a numeric instead of a string value was used for the
3646   content-length header in VCloud driver. (LIBCLOUD-256)
3647   [Brian DeGeeter, Tomaz Muraus]
3648
3649 - Add a new driver for new Asia Pacific (Sydney) EC2 region.
3650   [Tomaz Muraus]
3651
3652 - Add support for managing security groups to the OpenStack driver. This
3653   patch adds the following extension methods:
3654   - ex_list_security_groups, ex_get_node_security_groups methods
3655   - ex_create_security_group, ex_delete_security_group
3656   - ex_create_security_group_rule, ex_delete_security_group_rule
3657   (LIBCLOUD-253)
3658   [L. Schaub]
3659
3660 - Modify ElasticStack driver class to pass 'vnc auto' instead of
3661   'vnc:ip auto' argument to the API when creating a server.
3662   It looks like 'vnc:ip' has been replaced with 'vnc'.
3663   [Rick Copeland, Tomaz Muraus]
3664
3665 - Add new EC2 instance type - High Storage Eight Extra Large Instance
3666   (hs1.8xlarge).
3667   [Tomaz Muraus]
3668
3669 - Map 'shutting-down' node state in EC2 driver to UNKNOWN. Previously
3670   it was mapped to TERMINATED. (LIBCLOUD-280)
3671
3672   Note: This change is backward incompatible which means you need to update
3673   your code if you rely on the old behavior.
3674   [Tomaz Muraus, Marcin Kuzminski]
3675
3676 - Change _wait_until_running method so it supports waiting on multiple nodes
3677   and make it public (wait_until_running). (LIBCLOUD-274)
3678   [Nick Bailey]
3679
3680 - Add new EC2 instance type - High Memory Cluster Eight Extra Large.
3681   (cr1.8xlarge).
3682   [Tomaz Muraus]
3683
3684 - Add new driver for Abiquo provider - http://www.abiquo.com (LIBCLOUD-250).
3685   [Jaume Devesa]
3686
3687 - Allow user to pass 'ex_blockdevicemappings' kwarg to the EC2 driver
3688   'create_node' method. (LIBCLOUD-282)
3689   [Joe Miller, Tomaz Muraus]
3690
3691 - Improve error handling in the Brightbox driver.
3692   [Tomaz Muraus]
3693
3694 - Fix the ScriptDeployment step to work correctly if user provides a
3695   relative path for the script argument. (LIBCLOUD-278)
3696   [Jaume Devesa]
3697
3698 - Fix Softlayer driver and make sure all the code is up to date and works
3699   with the latest version of the actual Softlayer deployment (v3).
3700   (LIBCLOUD-287)
3701   [Kevin McDonald]
3702
3703 - Update EC2 driver, m3 instance types are now available in all the regions
3704   except Brazil.
3705
3706   Also update pricing to reflect new (lower) prices.
3707   [Tomaz Muraus]
3708
3709 - Minor improvements in the HostVirtual driver and add new ex_get_node and
3710   ex_build_node extension method. (LIBCLOUD-249)
3711   [Dinesh Bhoopathy]
3712
3713 - Add ex_destroy_image method to IBM SCE driver. (LIBCLOUD-291)
3714   [Perry Zou]
3715
3716 - Add the following new regions to the ElasticHosts driver: sjc-c, syd-v,
3717   hkg-e. (LIBCLOUD-293)
3718   [Tomaz Muraus]
3719
3720 - Fix create_node in OpenStack driver to work correctly if 'adminPass'
3721   attribute is not present in the response.
3722   [Gavin McCance, Tomaz Muraus]
3723
3724 - Allow users to filter images returned by the list_images method in the EC2
3725   driver by providing ex_image_ids argument. (LIBCLOUD-294)
3726   [Chris Psaltis, Joseph Hall]
3727
3728 - Add support for OpenNebula 3.8. (LIBCLOUD-295)
3729   [Guillaume ZITTA]
3730
3731 - Add missing 'deletd' -> terminated mapping to OpenStack driver.
3732   (LIBCLOUD-276)
3733   [Jayy Vis]
3734
3735 - Fix create_node in OpenStack driver to work correctly if 'adminPass'
3736   attribute is not present in the response. (LIBCLOUD-292)
3737   [Gavin McCance, Tomaz Muraus]
3738
3739 Storage
3740 ~~~~~~~
3741
3742 - Add a new local storage driver.
3743   (LIBCLOUD-252, LIBCLOUD-258, LIBCLOUD-265, LIBCLOUD-273)
3744   [Mahendra M]
3745
3746 - Fix a bug which caused the connection to not be closed when using Python
3747   2.6 and calling get_object on an object which doesn't exist in the S3
3748   driver. (LIBCLOUD-257)
3749   [John Carr]
3750
3751 - Add a new generator based method for listing / iterating over the
3752   containers (iterate_containers). (LIBCLOUD-261)
3753   [Mahendra M]
3754
3755 - Add ex_purge_object_from_cdn method to the CloudFiles driver.
3756   (LIBCLOUD-267)
3757   [Tomaz Muraus]
3758
3759 - Support for multipart uploads and other improvements in the S3 driver
3760   so it can more easily be re-used with other implementations (e.g. Google
3761   Storage, etc.).
3762
3763   Also default to a multipart upload when using upload_object_via_stream.
3764   This methods is more efficient compared to old approach because it only
3765   requires buffering a single multipart chunk (5 MB) in memory.
3766   (LIBCLOUD-269)
3767   [Mahendra M]
3768
3769 - Add new driver for Windows Azure Storage with support for block and page
3770   blobs. (LIBCLOUD-80)
3771   [Mahendra M]
3772
3773 DNS
3774 ~~~
3775
3776 - Update 'if type' checks in the update_record methods to behave correctly
3777   if users passes in RecordType.A with a value of 0 - if type is not None.
3778   (LIBCLOUD-247)
3779   [Tomaz Muraus]
3780
3781 - New driver for HostVirtual provider (www.vr.org). (LIBCLOUD-249)
3782   [Dinesh Bhoopathy]
3783
3784 - Finish Amazon Route53 driver. (LIBCLOUD-132)
3785   [John Carr]
3786
3787 - Add new driver for Gandi provider (https://www.gandi.net). (LIBCLOUD-281)
3788   [John Carr]
3789
3790 Load-Balancer
3791 ~~~~~~~~~~~~~
3792
3793 - Add new driver for AWS Elastic Load Balancing service. (LIBCLOUD-169)
3794   [John Carr]
3795
3796 Changes with Apache Libcloud 0.11.4
3797 -----------------------------------
3798
3799 General
3800 ~~~~~~~
3801
3802 - Fix some of tests failures which happened in Python 3.3 due to randomized
3803   dictionary ordering. (LIBCLOUD-245)
3804   [Tomaz Muraus]
3805
3806 Compute
3807 ~~~~~~~
3808
3809 - Fix a bug where a numeric instead of a string value was used for the
3810   content-length header in VCloud driver. (LIBCLOUD-256)
3811   [Brian DeGeeter, Tomaz Muraus]
3812
3813 Storage
3814 ~~~~~~~
3815
3816 - Don't ignore ex_force_service_region argument in the CloudFiles driver.
3817   (LIBCLOUD-260)
3818   [Dan Di Spaltro]
3819
3820 - Fix a bug which caused the connection to not be closed when using Python
3821   2.6 and calling get_object on an object which doesn't exist in the S3
3822   driver. (LIBCLOUD-257)
3823   [John Carr]
3824
3825 DNS
3826 ~~~
3827
3828 - Update 'if type' checks in the update_record methods to behave correctly
3829   if users passes in RecordType.A with a value of 0 - if type is not None.
3830   (LIBCLOUD-247)
3831   [Tomaz Muraus]
3832
3833 Changes with Apache Libcloud 0.11.3
3834 -----------------------------------
3835
3836 Storage
3837 ~~~~~~~
3838
3839 - Include 'last_modified' and 'content_type' attribute in the Object
3840   'extra' dictionary when retrieving object using get_object in the S3
3841   driver. Also modify 'meta_data' dictionary to include all the headers
3842   prefixed with 'x-amz-meta-'.
3843   [Tomaz Muraus]
3844
3845 Changes with Apache Libcloud 0.11.2
3846 -----------------------------------
3847
3848 General
3849 ~~~~~~~
3850
3851 - Fix a bug with the Libcloud SSL verification code. Code was too strict and
3852   didn't allow "-" character in the sub-domain when using a wildcard
3853   certificate.
3854
3855   Note: This is NOT a security vulnerability. (LIBCLOUD-244)
3856   [Tomaz Muraus]
3857
3858 Compute
3859 ~~~~~~~
3860
3861 - Add new Rackspace Nova driver for Chicago (ORD) location (LIBCLOUD-234)
3862   [Brian McDaniel]
3863
3864 - Add capacity information to Vdc objects and implement power operations.
3865   (LIBCLOUD-239)
3866   [Michal Galet]
3867
3868 - Allow user to pass 'timeout' argument to the 'deploy_node' method.
3869   [Tomaz Muraus]
3870
3871 - Add ex_list_security_groups, ex_authorize_security_group and
3872   ex_describe_all_keypairs methods to the EC2 driver. (LIBCLOUD-241,
3873   LIBCLOUD-243)
3874   [Nick Bailey]
3875
3876 - Add new methods for managing storage volumes and other extenstion methods
3877   to the IBM SCE driver. (LIBCLOUD-242)
3878   [Sengor Kusturica]
3879
3880 Storage
3881 ~~~~~~~
3882
3883 - Add the following new methods to the CloudFiles driver:
3884   ex_set_account_metadata_temp_url_key, ex_get_object_temp_url. (GITHUB-72)
3885   [Shawn Smith]
3886
3887 Load-balancer
3888 ~~~~~~~~~~~~~
3889
3890 - Add 'balancer' attribute to the Member instance. This attribute refers to
3891   the LoadBalancer instance this member belongs to.
3892   [Tomaz Muraus]
3893
3894 Changes with Apache Libcloud 0.11.1
3895 -----------------------------------
3896
3897 General
3898 ~~~~~~~
3899
3900 - Fix hostname validation in the SSL verification code (CVE-2012-3446).
3901
3902   Reported by researchers from the University of Texas at Austin (Martin
3903   Georgiev, Suman Jana and Vitaly Shmatikov).
3904
3905 Changes with Apache Libcloud 0.11.0
3906 -----------------------------------
3907
3908 Compute
3909 ~~~~~~~
3910
3911 - Add a timeout of 10 seconds to OpenStackAuthConnection class.
3912   (LIBCLOUD-199)
3913   [Chris Gilmer]
3914
3915 - Add time.sleep(wait_period) to _ssh_client_connect to prevent busy loops
3916   when we immediately can't connect to a server. (LIBCLOUD-197)
3917   [Jay Doane]
3918
3919 - Fix a bug with Python 3 support in the following drivers
3920   - IBM SCE,
3921   - CloudStack
3922   - CloudSigma
3923   - OpenNebula
3924   - VpsNet
3925   - EC2
3926   - ElasticStack
3927   - vCloud
3928   - OpSource
3929   - Slicehost
3930   - Joyent
3931   (LIBCLOUD-204)
3932   [Sengor Kusturica, Hutson Betts, Tomaz Muraus]
3933
3934 - Make CloudStack driver more robust and make it work if list_images() call
3935   returns no images. (LIBCLOUD-202)
3936   [Gabriel Reid]
3937
3938 - Add force_ipv4 argument to _wait_until_running and default it to True.
3939   This will make Libcloud ignore IPv6 addresses when using deploy_node.
3940   (LIBCLOUD-200)
3941   [Jay Doane, Tomaz Muraus]
3942
3943 - Include error text if a CloudStack async job returns an error code.
3944   (LIBCLOUD-207)
3945   [Gabriel Reid]
3946
3947 - Add extenstion methods for block storage volume management to the
3948   CloudStack driver. (LIBCLOUD-208)
3949   [Gabriel Reid]
3950
3951 - New driver for KT UCloud (http://home.ucloud.olleh.com/main.kt) based on
3952   the CloudStack driver.
3953   [DaeMyung Kang]
3954
3955 - Add a standard API and methods for managing storage volumes to the
3956   EC2 and CloudStack drivers. Base API consistent of the following methods:
3957   create_volume, destroy_volume, attach_volume, detach_volume.
3958   (LIBCLOUD-213)
3959   [Gabriel Reid]
3960
3961 - Change ex_describe_tags, ex_create_tags and ex_delete_tags methods
3962   signature in the EC2 driver. Argument is now called resource (previously
3963   it was called node). This methods work with both Node and StorageVolume
3964   objects. (LIBCLOUD-213)
3965   [Gabriel Reid, Tomaz Muraus]
3966
3967 - Add Rackspace Nova London driver.
3968   [Chris Gilmer]
3969
3970 - Fix a bug - If user doesn't pass in 'network_id' argument to the
3971   create_node method in the CloudStack driver, don't explicitly define it.
3972   (LIBCLOUD-219)
3973   [Bruno Mahé, Tomaz Muraus]
3974
3975 - Modify EC2 driver to also return cc2.8xlarge cluster compute instance in
3976   the eu-west-1 region.
3977   [Tomaz Muraus]
3978
3979 - Add 'auth_user_variable' to the  OpenStackAuthConnection class.
3980   [Mark Everett]
3981
3982 - Fix a bug with repeated URLs in some requests the vCloud driver.
3983   (LIBCLOUD-222)
3984   [Michal Galet]
3985
3986 - New Gridspot driver with basic list and destroy functionality.
3987   (LIBCLOUD-223)
3988   [Amir Elaguizy]
3989
3990 - Add methods for managing storage volumes to the Gandi driver.
3991   (LIBCLOUD-225)
3992   [Aymeric Barantal]
3993
3994 DNS
3995 ~~~
3996
3997 - Add support for GEO RecordType to Zerigo driver. (LIBCLOUD-203)
3998   [Gary Wilson]
3999
4000 - Fix a bug with Python 3 support in the following drivers (LIBCLOUD-204)
4001   - Zerigo
4002   [Tomaz Muraus]
4003
4004 - Add support for URL RecordType to Zerigo driver. (LIBCLOUD-209)
4005   [Bojan Mihelac]
4006
4007 - Properly handle record creation when user doesn't provider a record name
4008   and wants to create a record for the actual domain.
4009   Reported by Matt Perry (LIBCLOUD-224)
4010   [Tomaz Muraus]
4011
4012 Storage
4013 ~~~~~~~
4014
4015 - Fix a bug with Python 3 support in the following drivers
4016   - Atmos
4017   - Google Storage
4018   - Amazon S3
4019   (LIBCLOUD-204)
4020   [Tomaz Muraus]
4021
4022 - Fix a bug in the CloudFiles driver which prevented it to work with
4023   accounts which use a non ORD endpoint. (LIBCLOUD-205)
4024   [Geoff Greer]
4025
4026 - Fix a bug in the enable_container_cdn method. (LIBCLOUD-206)
4027   [Geoff Greer]
4028
4029 - Allow user to specify container CDN TTL when calling container.enable_cd()
4030   using ex_ttl keyword argument in the CloudFiles driver.
4031   [Tomaz Muraus]
4032
4033 - Add ex_enable_static_website and ex_set_error_page method to the
4034   CloudFiles driver.
4035   [Tomaz Muraus]
4036
4037 - Propagate kwargs passed to container.download_object() to
4038   driver.download_object(). (LIBCLOUD-227)
4039   [Benno Rice]
4040
4041 - Fix a bug with not escaping container and object name in the Atmos driver.
4042   [Russell Keith-Magee, Benno Rice]
4043
4044 - Fix upload_object_via_stream method in the Atmos driver. (LIBCLOUD-228)
4045   [Benno Rice]
4046
4047 - Fix a bug with uploading zero-sized files in the OpenStack Swift /
4048   CloudFiles driver.
4049   [Tomaz Muraus]
4050
4051 - Fix a bug with content_type and encoding of object and path names in
4052   the Atmos driver.
4053   [Russell Keith-Magee]
4054
4055 Other
4056 ~~~~~
4057
4058 - Unify docstrings formatting in the compute drivers. (LIBCLOUD-229)
4059   [Ilgiz Islamgulov]
4060
4061 Changes with Apache Libcloud 0.10.1
4062 -----------------------------------
4063
4064 General
4065 ~~~~~~~
4066
4067 - Add timeout attribute to base 'Connection' class and pass it to the
4068   connection class constructor if Python version is not 2.5.
4069   [Chris Gilmer]
4070
4071 Compute
4072 ~~~~~~~
4073
4074 - Update IBM SBC driver so it works with IBM Smart Cloud Enterprise.
4075   (LIBCLOUD-195)
4076   [Sengor Kusturica]
4077
4078 - Add ex_register_iso method to the CloudStack driver. (LIBCLOUD-196)
4079   [Daemian Mack]
4080
4081 - Allow user to specify which IP to use when calling deploy_node.
4082   (defaults to 'public_ips'). Previously it only worked with public IP, now
4083   user can pass 'private_ips' as an argument and SSH client will try to
4084   connect to the node first private IP address.
4085   [Jay Doane]
4086
4087 - Fix CloudSigmaLvsNodeDriver connectionCls bug.
4088   [Jerry Chen]
4089
4090 - Add 'ex_keyname' argument to the create_node method in the OpenStack
4091   driver. (LIBCLOUD-177)
4092   [Jay Doane]
4093
4094 - Fix a problem in deploy_node - make it work with providers which
4095   don't  instantly return created node in the list_node response.
4096   Also add __str__ and __repr__ method to DeploymentError so the
4097   error message is more useful. (LIBCLOUD-176)
4098   [Jouke Waleson, Tomaz Muraus]
4099
4100 - Add 'ssh_key' feature to Brigthbox driver. This way it works with
4101   deploy_node. (LIBCLOUD-179)
4102   [Neil Wilson]
4103
4104 - Add Joyent compute driver.
4105   [Tomaz Muraus]
4106
4107 - Store auth token expire times on the connection class in the attribute
4108   called 'auth_token_expires'. (LIBCLOUD-178)
4109   [Chris Gilmer, Brad Morgan]
4110
4111 - Add new driver for VCL cloud
4112   (http://www.educause.edu/blog/hes8/CloudComputingandtheVirtualCom/167931)
4113   (LIBCLOUD-180)
4114   [Jason Gionta, Tomaz Muraus]
4115
4116 - Improve and add new features to Brightbox driver
4117     - Update fixtures to represent actual api output
4118     - Update compute tests to 100% coverage
4119     - Add userdata and server group extensions to create_node
4120     - Add ipv6 support to public ip list
4121     - Improve in line documentation
4122     - Add lots of api output information to Node and Image
4123       'extra' attributes
4124     - Allow variable API versions (api_version argument)
4125     - Allow reverse dns updates for cloud ip extensions
4126
4127   (LIBCLOUD-184)
4128   [Neil Wilson, Tomaz Muraus]
4129
4130 - Add ex_userdata argument to the OpenStack 1.1 driver. (LIBCLOUD-185)
4131   [Jay Doane]
4132
4133 - Modify Vmware vCloud driver and implement new features
4134   for the vCloud version 1.5. (LIBCLOUD-183)
4135   [Michal Galet, Sengor Kusturica]
4136
4137 - Allow user to pass mode argument to SSHClient.put method and default it to
4138   'w'. (LIBCLOUD-188)
4139   [Jay Doane]
4140
4141 - Modify SSHKeyDeployment step to use append mode so it doesn't overwrite
4142   existing entries in .ssh/authorized_keys. (LIBCLOUD-187)
4143   [Jay Doane]
4144
4145 - Modify ParamikoSSHClient to connect to the SSH agent and automatically
4146   look for private keys in ~/.ssh if the 'auth' and 'ssh_key' argument
4147   is not specified when calling deploy_node. (LIBCLOUD-182)
4148   [Tomaz Muraus]
4149
4150 - Add ex_rescue and ex_unrescue method to OpenStack 1.1 driver.
4151   (LIBCLOUD-193)
4152   [Shawn Smith]
4153
4154 - Include 'password' in the node extra dictionary when calling deploy_node
4155   if the password auth is used.
4156   [Juan Carlos Moreno]
4157
4158 - Add FileDeployment class to libcloud.compute.deployment module. This can
4159   be used as a replacement for ex_files argument if the provider supports
4160   deployment functionality. (LIBCLOUD-190)
4161   [Jay Doane]
4162
4163 Storage
4164 ~~~~~~~
4165
4166 - Large object upload support for CloudFiles driver
4167 - Add CLOUDFILES_SWIFT driver to connect to OpenStack Swift
4168   [Dmitry Russkikh, Roman Bogorodskiy]
4169
4170 Load-balancer
4171 ~~~~~~~~~~~~~
4172
4173 - Don't include 'body_regex' attribute in the Rackspace driver body if
4174   body_regex is None or empty string. (LIBCLOUD-186)
4175   [Bill Woodward]
4176
4177 - Don't split Load balancer IP addresses into public and private list.
4178   Include all the addresses in the 'virtualIps' variable in the extra
4179   dictionary (Rackspace driver). (LIBCLOUD-191)
4180   [Adam Pickeral]
4181
4182 Changes with Apache Libcloud 0.9.1
4183 ----------------------------------
4184
4185 General
4186 ~~~~~~~
4187
4188 - Make parsing of the Auth API responses in the OpenStack drivers more
4189   flexible and extensible.
4190
4191   Now, every connection class that inherits from the openstack base
4192   connection must implement get_endpoint(), who's job is to return the
4193   correct endpoint out of the service catalog.
4194
4195   Note: The openstack.py base driver no longer works by default with
4196   Rackspace nova. The default endpoint parsed from the service catalog
4197   is the default compute endpoint for devstack. (LIBCLOUD-151)
4198   [Brad Morgan]
4199
4200 - Allow user to pass ex_tenant_name keyword argument to the OpenStack node
4201   driver class. This scopes all the endpoints returned by the Auth API
4202   endpoint to the provided tenant. (LIBCLOUD-172)
4203   [James E. Blair]
4204
4205 - Allow user to specify OpenStack service catalog parameters (service type,
4206   name and region). This way base OpenStack driver can be used with
4207   different providers without needing to subclass. (LIBCLOUD-173)
4208   [James E. Blair]
4209
4210 - Fix a bug with handling compressed responses in the Linode driver.
4211   (LIBCLOUD-158)
4212   [Ben Agricola]
4213
4214 Compute
4215 ~~~~~~~
4216
4217 - Add new RackspaceNovaBeta and RackspaveNovaDfw driver based on the
4218   OpenStack. (LIBCLOUD-151)
4219   [Brad Morgan]
4220
4221 - Include 'created' and 'updated' attribute in the OpenStack 1.1 driver.
4222   (LIBCLOUD-155)
4223   [Chris Gilmer]
4224
4225 - Include 'minRam' and 'minDisk' attribute in the OpenStack 1.1 driver
4226   Node extra dictionary. (LIBCLOUD-163)
4227   [Chris Gilmer]
4228
4229 - Allow users to use a list of tuples for the query string parameters inside
4230   the OpenStack connection classes. This way same key can be specified
4231   multiple times (LIBCLOUD-153)
4232   [Dave King]
4233
4234 - Allow user to pass 'max_tries' keyword argument to deploy_node method.
4235   [Tomaz Muraus]
4236
4237 - Include original exception error message when re-throwing an exception
4238   inside _run_deployment_script method.
4239   [Tomaz Muraus]
4240
4241 - Add support for ElasticHosts new United States (Los Angeles) and Canada
4242   (Toronto) locations. (GITHUB-53)
4243   [Jaime Irurzun]
4244
4245 - Add serverId attribute to the NodeImage object extra dictionary in the
4246   OpenStack driver.
4247   [Mark Everett]
4248
4249 - Add new EC2 instance type - m1.medium.
4250   [Tomaz Muraus]
4251
4252 - Allow user to re-use auth tokens and pass 'ex_force_auth_token' keyword
4253   argument to the OpenStack driver constructor. (LIBCLOUD-164)
4254   [Dave King]
4255
4256 - Add new experimental libvirt driver.
4257   [Tomaz Muraus]
4258
4259 - Properly handle OpenStack providers which return public IP addresses under
4260   the 'internet' key in the addresses dictionary.
4261   [Tomaz Muraus]
4262
4263 - Update create_node in Linode driver and make it return a Node object
4264   instead of a list. Reported by Jouke Waleson. (LIBCLOUD-175)
4265   [Tomaz Muraus]
4266
4267 Storage
4268 ~~~~~~~
4269
4270 - Don't lowercase special header names in the Amazon S3 storage driver.
4271   (LIBCLOUD-149)
4272   [Tomaz Muraus]
4273
4274 Load-balancer
4275 ~~~~~~~~~~~~~
4276
4277 - Allow user to specify a condition and weight when adding a member in
4278   the Rackspace driver.
4279   [Adam Pickeral]
4280
4281 - Add an extension method (ex_balancer_attach_members) for attaching
4282   multiple members to a load balancer in the Rackspace driver.
4283   (LIBCLOUD-152)
4284   [Adam Pickeral]
4285
4286 - Add ex_creaate_balancer method to the Rackspace driver and allow user to
4287   pass 'vip' argument to it. (LIBCLOUD-166)
4288   [Adam Pickeral]
4289
4290 - Update Rackspace driver to support Auth 2.0. (LIBCLOUD-165)
4291   [Dave King]
4292
4293 - Add new ex_create_balancer_access_rule and
4294   ex_create_balancer_access_rule_no_poll method to the Rackspace driver.
4295   (LIBCLOUD-170)
4296   [Dave King]
4297
4298 DNS
4299 ~~~
4300
4301 - Update Rackspace driver to support Auth 2.0. (LIBCLOUD-165)
4302   [Dave King]
4303
4304 Changes with Apache Libcloud 0.8.0
4305 ----------------------------------
4306
4307 General
4308 ~~~~~~~
4309
4310 - Add 'request_kwargs' argument to the get_poll_request_kwargs method.
4311   This argument contains kwargs which were previously used to initiate the
4312   poll request.
4313   [Mark Everett]
4314
4315 - Add support for handling compressed responses (deflate, gzip). Also send
4316   "Accept-Encoding" "gzip,deflate" header with all the requests.
4317   [Tomaz Muraus]
4318
4319 - Fix debug module (LIBCLOUD_DEBUG env variable) so it works with Python 3
4320   [Tomaz Muraus]
4321
4322 Compute
4323 ~~~~~~~
4324
4325 - Added support for retrieving OpenNebula v3.2 instance types, OpenNebula
4326   v3.0 network Public attribute support, and additional code coverage
4327   tests.
4328   [Hutson Betts]
4329
4330 - Add implementation for ex_save_image method to the OpenStack 1.1 driver.
4331   [Shawn Smith]
4332
4333 - Add support for Amazon new South America (Sao Paulo) location.
4334   [Tomaz Muraus]
4335
4336 - Fix a bug in OpenStack driver when 2.0_apikey or 2.0_password
4337   'auth_version' is used.
4338   [Tomaz Muraus]
4339
4340 - Current OpenNebula OCCI implementation does not support a proper
4341   restart method. Rather it suspends and resumes. Therefore, restart_node
4342   has been removed from the OpenNebula driver.
4343   [Hutson Betts]
4344
4345 - Enable ex_delete_image method in the OpenStack 1.1 driver.
4346   [Shawn Smith]
4347
4348 - Return NodeImage instance in OpenStack 1.1 driver ex_save_image method
4349   (LIBCLOUD-138)
4350   [Shawn Smith]
4351
4352 - Enable reboot_node method in the OpenNebula 3.2 driver.
4353   [Hutson Betts]
4354
4355 - Fix a public_ips Node variable assignment in the Gandi.net driver.
4356   [Aymeric Barantal]
4357
4358 - Updated the list of node states for OpenNebula drivers. (LIBCLOUD-148)
4359   [Hutson Betts]
4360
4361 Storage
4362 ~~~~~~~
4363
4364 - Propagate extra keyword arguments passed to the Rackspace driver
4365   connection class.
4366   [Dave King]
4367
4368 Load-balancer
4369 ~~~~~~~~~~~~~
4370
4371 - Add 'extra' attribute to the LoadBalancer object and retrieve all the
4372   virtual IP addresses in the Rackspace driver.
4373   [Dave King]
4374
4375 - Add list_supported_algorithms() method to the base LoadBalancer class.
4376   This method returns a list of supported algorithms by the provider.
4377   [Dave King]
4378
4379 - Update Rackspace driver:
4380     - Add two new supported algorithms: WEIGHTED_ROUND_ROBIN,
4381       WEIGHTED_LEAST_CONNECTIONS
4382     - Add ex_list_algorithm_names method
4383     - Add ex_get_balancer_error_page method
4384     - Add ex_balancer_access_list method
4385     - Populate LoadBalancer extra dictionary with more attributes
4386     - Add support for health monitors and connection throttling
4387     - Add more balancer states
4388     - ex_list_protocols_with_default_ports
4389
4390   [Dave King]
4391
4392 - Propagate extra keyword arguments passed to the Rackspace driver
4393   connection class.
4394   [Dave King]
4395
4396 - Add 'extra' attribute to the Member object and populate it in
4397   the Rackspace driver.
4398   [Mark Everett]
4399
4400 - Adds status to the Member object and conditions an 'enum'
4401   (Rackspace driver).
4402   [Mark Everett]
4403
4404 - Add update_balancer method to the base LoadBalancer class.
4405   [Mark Everett]
4406
4407 - Add update_balancer method to the Rackspace driver.
4408   [Mark Everett]
4409
4410 - Add created and updated attribute to the LoadBalancer extra dictionary in
4411   the Rackspace driver.
4412   [Mark Everett]
4413
4414 - Fix protocol name maping in the Rackspace driver.
4415   [Bill Woodward]
4416
4417 Changes with Apache Libcloud 0.7.1
4418 ----------------------------------
4419
4420 General
4421 ~~~~~~~
4422
4423  - Fix a minor bug in debug mode (LIBCLOUD_DEBUG=/dev/stderr) which has been
4424    introduced when adding Python 3 compatibility layer.
4425    [Paul Querna]
4426
4427  - Update OpenStack Auth API endpoint paths.
4428    [Paul Querna]
4429
4430 Changes with Apache Libcloud 0.7.0
4431 ----------------------------------
4432
4433 General
4434 ~~~~~~~
4435
4436 - Add support for Python 3.x.
4437   [Tomaz Muraus]
4438
4439 - Remove old deprecated paths.
4440   [Tomaz Muraus]
4441
4442 Compute
4443 ~~~~~~~
4444
4445 - Update CloudSigma Zurich API endpoint address.
4446   [Tomaz Muraus]
4447
4448 - Add new US Las Vegas endpoint to CloudSigma driver (types.CLOUDSIGMA_US)
4449   [Tomaz Muraus]
4450
4451 - Allow user to specify drive type (hdd, ssd) when creating a
4452   CloudSigma server.
4453
4454   Note 'ssd' drive_type doesn't work with the API yet.
4455   [Tomaz Muraus]
4456
4457 - Update OpenStack 1.1 driver to comply with the API specs. Need to make
4458   another call to retrieve node name and ip addresses when creating a node,
4459   because the first call only returns an id an the password. (GITHUB-40)
4460   [Dave King]
4461
4462 - Add ex_node_ids argument to the EC2 driver list_nodes method.
4463   (GITHUB-39)
4464   [Suvish Vt]
4465
4466 - If OpenStack Auth 2.0 API is used, also parse out tenant id and
4467   name and save it on the connection class (conn.tenant['id'],
4468   conn.tenant['name']).
4469   [Tomaz Muraus]
4470
4471 - Add new "Cluster Compute Eight Extra Large" size to the Amazon EC2
4472   driver.
4473   [Tomaz Muraus]
4474
4475 - Add the following extension methods to the EC2 compute driver:
4476   ex_describe_all_addresses, ex_associate_addresses, ex_start_node,
4477   ex_stop_node.
4478   [Suvish Vt]
4479
4480 - Change public_ip and private_ip attribute on the Node object to the
4481   public_ips and private_ips since both of the objects are always a list.
4482
4483   Note: For backward compatibility you can still access public_ip and
4484   private_ip attributes, but this will be removed in the next release.
4485   [Tomaz Muraus]
4486
4487 - Fix an inconsistency in IBM SBC driver and make sure public_ips and
4488   private_ips attributes are a list.
4489   [Tomaz Muraus]
4490
4491 - Fix an inconsistency in OpSource driver and make sure public_ips is an
4492   empty list ([]), not 'unknown'
4493   [Tomaz Muraus]
4494
4495 - Updated support for OpenNebula.org v1.4, v2.x, and v3.x APIs and included
4496   additional compute tests validating functionality. (LIBCLOUD-121)
4497   [Hutson Betts]
4498
4499 Load-balancer
4500 ~~~~~~~~~~~~~
4501
4502 - Add ex_member_address argument to the Rackspace driver list_balancers
4503   method. If this argument is provided, only loadbalancers which have a
4504   member with the provided IP address attached are returned.
4505   [Tomaz Muraus]
4506
4507 Changes with Apache Libcloud 0.6.2
4508 ----------------------------------
4509
4510 General
4511 ~~~~~~~
4512
4513 - Fix a bug in PollingConnection class - actually use and don't ignore
4514   the poll_interval
4515   [Tomaz Muraus]
4516
4517 Compute
4518 ~~~~~~~
4519
4520 - Add support for Auth 2.0 API (keystone) to the OpenStack Auth
4521   connection class.
4522   [Brad Morgan]
4523
4524 - Add list_locations method to the OpenStack driver and fix some
4525   inconsistencies in the OpenStack driver extension method signatures.
4526   [Brad Morgan]
4527
4528 - Update Amazon EC2 driver and pricing data to support a new region -
4529   US West 2 (Oregon)
4530   [Tomaz Muraus]
4531
4532 - Expose 'CLOUDSTACK' provider. This driver can be used with an
4533   arbitrary CloudStack installation.
4534   [Tomaz Muraus]
4535
4536 Storage
4537 ~~~~~~~
4538
4539 - Update Amazon S3 driver to support a new region - US West 2 (Oregon)
4540   [Tomaz Muraus]
4541
4542 DNS
4543 ~~~
4544
4545 - Increase the default poll interval in the Rackspace driver to 2.5
4546   seconds.
4547   [Tomaz Muraus]
4548
4549 - Fix a bug in Rackspace Cloud DNS driver and make sure to throw an
4550   exception if an unexpected status code is returned. Reported by
4551   "jeblair".
4552   [Tomaz Muraus]
4553
4554 Changes with Apache Libcloud 0.6.1
4555 ----------------------------------
4556
4557 General
4558 ~~~~~~~
4559
4560 - Modify ParamikoSSHClient.connect so it supports authentication using a
4561   key file, (LIBCLOUD-116)
4562   [Jay Doane]
4563
4564 - User must now explicitly specify a path when using LIBCLOUD_DEBUG
4565   environment variable. (LIBCLOUD-95)
4566   [daveb, Tomaz Muraus]
4567
4568 - Add new XmlResponse and JsonResponse base class and modify all the
4569   driver-specific response classes to inherit from one of those two
4570   classes where applicable.
4571   [Caio Romão]
4572
4573 - Add new 'PollingConnection' class. This class can work with 'async'
4574   APIs. It sends and an initial request and then periodically poll the API
4575   until the job has completed or a timeout has been reached.
4576   [Tomaz Muraus]
4577
4578 Compute
4579 ~~~~~~~
4580
4581 - Add 24GB size to the GoGrid driver
4582   [Roman Bogorodskiy]
4583
4584 - Fix API endpoint URL in the Softlayer driver
4585   [Tomaz Muraus]
4586
4587 - Add support for OpenNebula 3.0 API (LIBCLOUD-120)
4588   [Hutson Betts]
4589
4590 - Add more attributes to the extra dictionary in the EC2 driver.
4591   (GITHUB-31)
4592   [Juan Carlos Moreno]
4593
4594 - Fix IP address assignment in the EC2 driver. Don't include "None" in the
4595   public_ip and private_ip Node list attribute.
4596   [Tomaz Muraus]
4597
4598 - Make deploy_node functionality more robust and don't start deployment if
4599   node public_ip attribute is an empty list.
4600   [Tomaz Muraus]
4601
4602 - Support SSH key authentication when using deploy_node.
4603   [Russell Haering, Tomaz Muraus]
4604
4605 - Enable deploy_node functionality in the EC2 driver using SSH key
4606   authentication
4607   [Russell Haering, Tomaz Muraus]
4608
4609 - Enable paramiko library debug log level if LIBCLOUD_DEBUG is used and
4610   paramiko is installed.
4611   [Tomaz Muraus]
4612
4613 - Fix the request signature generation in the base EC2 compute driver.
4614   If the endpoint is using a non-standard port (Eucalyptus based
4615   installations), append it to the hostname used to generate the
4616   signature.
4617   [Simon Delamare]
4618
4619 - Add new "unavailable" state to the BrightboxNodeDriver class.
4620   [Tim Fletcher]
4621
4622 - Increase a PollingConnection timeout in the CloudStack connection
4623   and fix the context dictionary creation in the _async_request method.
4624   [Oleg Suharev]
4625
4626 - Fix networks retrieval in the CloudStack driver create_node method.
4627   Also only pass 'networkids' field to the API if there are any networks
4628   available.
4629   [Oleg Suharev, Tomaz Muraus]
4630
4631 - Fix list_nodes in the CloudStack driver. Private IPs aren't always
4632   available.
4633   [Tomaz Muraus]
4634
4635 Load-baancer
4636 ~~~~~~~~~~~~
4637
4638 - Add a missing argument to the method call inside
4639   LoadBalancer.attach_compute_node and Driver.balancer_attach_compute_node.
4640   [Tim Fletcher, Tomaz Muraus]
4641
4642 - Add missing destroy() method to the LoadBalancer class.
4643   [Tomaz Muraus]
4644
4645 DNS
4646 ~~~
4647
4648 - New drivers for Rackspace Cloud DNS (US and UK region)
4649   [Tomaz Muraus]
4650
4651 - Add list_record_types() method. This method returns a list of record
4652   types supported by the provider.
4653   [Tomaz Muraus]
4654
4655 Changes with Apache Libcloud 0.6.0-beta1
4656 ----------------------------------------
4657
4658 General
4659 ~~~~~~~
4660
4661 - All the driver classes now inherit from the BaseDriver class
4662   [Tomaz Muraus]
4663
4664 - Prefer simplejson (if available) over json module. (LIBCLOUD-112)
4665   [Geoff Greer]
4666
4667 - Update compute demo and change the syntax of test credentials stored in
4668   test/secrets.py-dist. (LIBCLOUD-111)
4669   [Mike Nerone]
4670
4671 - Enable SSL certificate verification by default and throw an exception
4672   if CA certificate files cannot be found. This can be overridden by
4673   setting libcloud.security.VERIFY_SSL_CERT_STRICT to False.
4674   [Tomaz Muraus]
4675
4676 Compute
4677 ~~~~~~~
4678
4679 - Support for 1.1 API and many other improvements in the OpenStack driver ;
4680   LIBCLOUD-83
4681   [Mike Nerone, Paul Querna, Brad Morgan, Tomaz Muraus]
4682
4683 - Add some extra methods to the Gandi.net driver (LIBCLOUD-115)
4684   [Aymeric Barantal]
4685
4686 - Add ex_delete_image method to the Rackspace driver. (GITHUB-27)
4687   [David Busby]
4688
4689 - Linode driver now supports new 'Japan' location
4690   [Jed Smith]
4691
4692 - Rackspace driver now inherits from the OpenStack one instead of doing
4693   it vice versa. (LIBCLOUD-110)
4694   [Mike Nerone]
4695
4696 - Properly populate NodeImage "details" dictionary in the Rackspace
4697   compute driver. (LIBCLOUD-107)
4698   [Lucy Mendel]
4699
4700 - Fix a bug in Eucalyptus driver ex_describe_addresses method.
4701   [Tomaz Muraus]
4702
4703 - Add the following new extenstion methods to the Rackspace driver:
4704   ex_resize, ex_confirm_resize, ex_revert_resize.
4705   [Tomaz Muraus]
4706
4707 - Also allow user to pass in Node object to some ex\_ methods in
4708   the Rackspace compute driver.
4709   [Tomaz Muraus]
4710
4711 - Throw an exception in deploy_node if paramiko library is not
4712   available
4713   [Tomaz Muraus]
4714
4715 - Fix chmod argument value which is passed to the sftpclient.put
4716   method; GITHUB-17
4717   [John Carr]
4718
4719 - New driver for Ninefold.com. (LIBCLOUD-98)
4720   [Benno Rice]
4721
4722 Storage
4723 ~~~~~~~
4724
4725 - New driver for Google Storage based on the v1.0 / legacy API
4726   [Tomaz Muraus]
4727
4728 - New driver for Ninefold.com. (GITHUB-19)
4729   [Benno Rice]
4730
4731 - Fix a bug in uploading an object with some versions of Python 2.7
4732   where httplib library doesn't automatically call str() on the
4733   header values.
4734   [Tomaz Muraus]
4735
4736 - Allow users to upload (create) 0-bytes large (empty) objects
4737   [Tomaz Muraus]
4738
4739 Load-balancer
4740 ~~~~~~~~~~~~~
4741
4742 - New driver for Rackspace UK location
4743   [Tomaz Muraus]
4744
4745 - New driver for Ninefold.com. (LIBCLOUD-98)
4746   [Benno Rice]
4747
4748 DNS
4749 ~~~
4750
4751 - Drivers for Linode DNS and Zerigo DNS
4752   [Tomaz Muraus]
4753
4754 - Brand new DNS API!
4755   [Tomaz Muraus]
4756
4757 Changes with Apache Libcloud 0.5.2
4758 ----------------------------------
4759
4760 Compute
4761 ~~~~~~~
4762
4763 - New driver for serverlove.com and skalicloud.com
4764   [Tomaz Muraus]
4765
4766 - Fix node name and tag handling in the Amazon EC2 driver
4767   [Wiktor Kolodziej]
4768
4769 - Fix pricing and response handling in the OpenStack driver
4770   [Andrey Zhuchkov]
4771
4772 - Fix deploy_node() method and make it more robust
4773   [Tomaz Muraus]
4774
4775 - Users can now pass file like objects to ScriptDeployment and
4776   SSHKeyDeployment constructor.
4777   [Tomaz Muraus]
4778
4779 - Include node tags when calling list_nodes() in the Amazon EC2
4780   driver
4781   [Trevor Pounds]
4782
4783 - Properly handle response errors in the Rackspace driver and
4784   only throw InvalidCredsError if the returned status code is 401
4785   [Brad Morgan]
4786
4787 - Fix the create_node method in the Nimbus driver and make the
4788   "ex_create_tag" method a no-op, because Nimbus doesn't support creating
4789   tags.
4790   [Tomaz Muraus]
4791
4792 Storage
4793 ~~~~~~~
4794
4795 - Fix handling of the containers with a lot of objects. Now a LazyList
4796   object is returned when user calls list_container_objects() method
4797   and this object transparently handles pagination.
4798   [Danny Clark, Wiktor Kolodziej]
4799
4800 Changes with Apache Libcloud 0.5.0
4801 ----------------------------------
4802
4803 - Existing APIs directly on the libcloud.* module have been
4804   deprecated and will be removed in version 0.6.0.  Most methods
4805   were moved to the libcloud.compute.* module.
4806
4807 - Add new libcloud.loadbalancers API, with initial support for:
4808     - GoGrid Load Balancers
4809     - Rackspace Load Balancers
4810
4811   [Roman Bogorodskiy]
4812
4813 - Add new libcloud.storage API, with initial support for:
4814    - Amazon S3
4815    - Rackspace CloudFiles
4816
4817   [Tomaz Muraus]
4818
4819 - Add new libcloud.compute drivers for:
4820    - Bluebox [Christian Paredes]
4821    - Gandi.net [Aymeric Barantal]
4822    - Nimbus [David LaBissoniere]
4823    - OpenStack [Roman Bogorodskiy]
4824    - Opsource.net [Joe Miller]
4825
4826 - Added "pricing" module and improved pricing handling.
4827   [Tomaz Muraus]
4828
4829 - Updates to the GoGrid compute driver:
4830     - Use API version 1.0.
4831     - Remove sandbox flag.
4832     - Add ex_list_ips() to list IP addresses assigned to the account.
4833     - Implement ex_edit_image method which allows changing image attributes
4834       like name, description and make image public or private.
4835
4836   [Roman Bogorodskiy]
4837
4838 - Updates to the Amazon EC2 compute driver:
4839    - When creating a Node, use the name argument to set a Tag with the
4840      value.  [Tomaz Muraus]
4841    - Add extension method for modifying node attributes and changing the
4842      node size. [Tomaz Muraus]
4843    - Add support for the new Amazon Region (Tokyo). [Tomaz Muraus]
4844    - Added ex_create_tags and ex_delete_tags. [Brandon Rhodes]
4845    - Include node Elastic IP addresses in the node public_ip attribute
4846      for the EC2 nodes. [Tomaz Muraus]
4847    - Use ipAddress and privateIpAddress attribute for the EC 2node public
4848      and private ip. [Tomaz Muraus]
4849    - Add ex_describe_addresses method to the EC2 driver. [Tomaz Muraus]
4850
4851 - Updates to the Rackspace CloudServers compute driver:
4852    - Add ex_rebuild() and ex_get_node_details() [Andrew Klochkov]
4853    - Expose URI of a Rackspace node to the node meta data. [Paul Querna]
4854
4855 - Minor fixes to get the library and tests working on Python 2.7 and PyPy.
4856   [Tomaz Muraus]
4857
4858 Changes with Apache Libcloud 0.4.2 (Released January 18, 2011)
4859 --------------------------------------------------------------
4860
4861 - Fix EC2 create_node to become backward compatible for
4862   NodeLocation.
4863   [Tomaz Muraus]
4864
4865 - Update code for compatibility with CPython 2.5
4866   [Jerry Chen]
4867
4868 - Implement ex_edit_node method for GoGrid driver which allows
4869   changing node attributes like amount of RAM or description.
4870   [Roman Bogorodskiy]
4871
4872 - Add ex_set_password and ex_set_server_name to Rackspace driver.
4873   [Peter Herndon, Paul Querna]
4874
4875 - Add Hard and Soft reboot methods to Rackspace driver.
4876   [Peter Herndon]
4877
4878 - EC2 Driver availability zones, via ex_list_availability_zones;
4879   list_locations rewrite to include availability zones
4880   [Tomaz Muraus]
4881
4882 - EC2 Driver Idempotency capability in create_node; LIBCLOUD-69
4883   [David LaBissoniere]
4884
4885 - SSL Certificate Name Verification:
4886     - libcloud.security module
4887     - LibcloudHTTPSConnection, LibcloudHTTPConnection (alias)
4888     - Emits warning when not verifying, or CA certs not found
4889
4890 - Append ORD1 to available Rackspace location, but keep in the
4891   same node as DFW1, because it's not readable or writeable from
4892   the API.
4893   [Per suggestion of Grig Gheorghiu]
4894
4895 - ex_create_ip_group, ex_list_ip_groups, ex_delete_ip_group,
4896   ex_share_ip, ex_unshare_ip, ex_list_ip_addresses additions
4897   to Rackspace driver
4898   [Andrew Klochkov]
4899
4900 - New driver for CloudSigma.
4901   [Tomaz Muraus]
4902
4903 - New driver for Brightbox Cloud. (LIBCLOUD-63)
4904   [Tim Fletcher]
4905
4906 - Deployment capability to ElasticHosts
4907   [Tomaz Muraus]
4908
4909 - Allow deploy_node to use non-standard SSH username and port
4910   [Tomaz Muraus]
4911
4912 - Added Rackspace UK (London) support
4913   [Chmouel Boudjnah]
4914
4915 - GoGrid driver: add support for locations, i.e. listing
4916   of locations and creation of a node in specified
4917   location
4918   [Roman Bogorodskiy]
4919
4920 - GoGrid and Rackspace drivers: add ex_save_image() extra
4921   call to convert running node to an image
4922   [Roman Bogorodskiy]
4923
4924 - GoGrid driver: add support for creating 'sandbox' server
4925   and populate isSandbox flag in node's extra information.
4926   [Roman Bogorodskiy]
4927
4928 - Add ImportKeyPair and DescribeKeyPair to EC2. (LIBCLOUD-62)
4929   [Philip Schwartz]
4930
4931 - Update EC2 driver and test fixtures for new API.
4932   [Philip Schwartz]
4933
4934 Changes with Apache Libcloud 0.4.0 [Released October 6, 2010]
4935 -------------------------------------------------------------
4936
4937 - Add create keypair functionality to EC2 Drivers. (LIBCLOUD-57)
4938   [Grig Gheorghiu]
4939
4940 - Improve handling of GoGrid accounts with limited access
4941   API keys.
4942   [Paul Querna]
4943
4944 - New Driver for ElasticHosts. (LIBCLOUD-45)
4945   [Tomaz Muraus]
4946
4947 - Use more consistent name for GoGrid driver and use http
4948   POST method for 'unsafe' operations
4949   [Russell Haering]
4950
4951 - Implement password handling and add deployment support
4952   for GoGrid nodes.
4953   [Roman Bogorodskiy]
4954
4955 - Fix behavior of GoGrid's create_node to wait for a Node ID.
4956   [Roman Bogorodskiy]
4957
4958 - Add ex_create_node_nowait to GoGrid driver if you don't need to
4959   wait for a Node ID when creating a node.
4960   [Roman Bogorodskiy]
4961
4962 - Removed libcloud.interfaces module.
4963   [Paul Querna]
4964
4965 - Removed dependency on zope.interfaces.
4966   [Paul Querna]
4967
4968 - RimuHosting moved API endpoint address.
4969   [Paul Querna]
4970
4971 - Fix regression and error in GoGrid driver for parsing node objects.
4972   [Roman Bogorodskiy]
4973
4974 - Added more test cases for GoGrid driver. (LIBCLOUD-34)
4975   [Roman Bogorodskiy, Jerry Chen]
4976
4977 - Fix parsing of Slicehost nodes with multiple Public IP addresses.
4978   [Paul Querna]
4979
4980 - Add exit_status to ScriptDeployment. (LIBCLOUD-36)
4981   [Paul Querna]
4982
4983 - Update prices for several drivers.
4984    [Brad Morgan, Paul Querna]
4985
4986 - Update Linode driver to reflect new plan sizes.
4987   [Jed Smith]
4988
4989 - Change default of 'location' in Linode create_node. (LIBCLOUD-41)
4990    [Jed Smith, Steve Steiner]
4991
4992 - Document the Linode driver.
4993   [Jed Smith]
4994
4995 - Request a private, LAN IP address at Linode creation.
4996   [Jed Smith]
4997
4998 Changes with Apache Libcloud 0.3.1 [Released May 11, 2010]
4999 ----------------------------------------------------------
5000
5001 - Updates to Apache License blocks to correctly reflect status as an
5002    Apache Project.
5003
5004 - Fix NOTICE file to use 2010 copyright date.
5005
5006 - Improve error messages for when running the test cases without
5007   first setting up a secrets.py
5008
5009 Changes with Apache Libcloud 0.3.0 [Tagged May 6, 2010, not released]
5010 ---------------------------------------------------------------------
5011
5012 - New Drivers for:
5013     - Dreamhost
5014     - Eucalyptus
5015     - Enomaly ECP
5016     - IBM Developer Cloud
5017     - OpenNebula
5018     - SoftLayer
5019
5020 - Added new deployment and bootstrap API.
5021
5022 - Improved Voxel driver.
5023
5024 - Added support for Amazon EC2 Asia Pacific (Singapore) Region.
5025
5026 - Improved test coverage for all drivers.
5027
5028 - Add support for multiple security groups in EC2.
5029
5030 - Fixed bug in Rackspace and RimuHosting when using multiple threads.
5031
5032 - Improved debugging and logging of HTTP requests.
5033
5034 - Improved documentation for all classes and methods.
5035
5036 Changes with Apache Libcloud 0.2.0 [Tagged February 2, 2010]
5037 ------------------------------------------------------------
5038
5039 - First public release.