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