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