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