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