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