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