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