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