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

Copyright 2016, The Apache Software Foundation.