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