Ignore E902 (directory doesn't exist) error when linting docs/examples/
[libcloud.git] / CHANGES
1                                    -*- coding: utf-8 -*-
2
3 Changes with Apache Libcloud 0.14.0-beta3
4
5   *) General
6
7     - If the file exists, read pricing data from ~/.libcloud/pricing.json
8       by default. If the file doesn't exist, fall back to the old behavior
9       and use pricing data which is bundled with the release.
10       [Tomaz Muraus]
11
12     - Add libcloud.pricing.download_pricing_file function for downloading and
13       updating the pricing file.
14       [Tomaz Muraus]
15
16     - Fix libcloud.utils.py3.urlquote so it works with unicode strings under
17       Python 2. (LIBCLOUD-429)
18       [Michael Farrell]
19
20   *) Compute
21
22     - Refactor Rackspace driver classes and make them easier to use. Now there
23       are two Rackspace provider constants - Provider.RACKSPACE which
24       represents new next-gen OpenStack servers and
25       Provider.RACKSPACE_FIRST_GEN which represents old first-gen cloud
26       servers.
27
28       Note: This change is backward incompatible. For more information on those
29       changes and how to update your code, please visit "Upgrade Notes"
30       documentation page - http://s.apache.org/lc0140un
31       [Tomaz Muraus]
32
33     - Deprecate the following EC2 provider constants: EC2_US_EAST,
34       EC2_EU, EC2_EU_WEST, EC2_AP_SOUTHEAST, EC2_AP_NORTHEAST,
35       EC2_US_WEST_OREGON, EC2_SA_EAST, EC2_SA_EAST and replace it with a new
36       EC2 constant.
37       Driver referenced by this new constant now takes a "region" argument which
38       dictates to which region to connect.
39
40       Note: Deprecated constants will continue to work until the next major
41       release. For more information on those changes and how to update your
42       code, please visit "Upgrade Notes" documentation page -
43       http://s.apache.org/lc0140un
44       [Tomaz Muraus]
45
46     - Add support for volume related functions to OpenNebula driver.
47       (LIBCLOUD-354)
48       [Emanuele Rocca]
49
50     - Add methods for managing storage volumes to the OpenStack driver.
51       (LIBCLOUD-353)
52       [Bernard Kerckenaere]
53
54     - Add new driver for Google Compute Engine (LIBCLOUD-266, LIBCLOUD-386)
55       [Rick Wright]
56
57     - Fix create_node "features" metadata and update affected drivers.
58       (LIBCLOUD-367)
59       [John Carr]
60
61     - Update EC2 driver to accept the auth kwarg (it will accept NodeAuthSSH
62       objects and automatically import a public key that is not already
63       uploaded to the EC2 keyring). (Follow on from LIBCLOUD-367).
64       [John Carr]
65
66     - Unify extension argument names for assigning a node to security groups
67       in EC2 and OpenStack driver.
68       Argument in the EC2 driver has been renamed from ex_securitygroup to
69       ex_security_groups. For backward compatibility reasons, old argument
70       will continue to work until the next major release. (LIBCLOUD-375)
71       [Tomaz Muraus]
72
73     - Add ex_import_keypair_from_string and ex_import_keypair method to the
74       CloudStack driver. (LIBCLOUD-380)
75       [Sebastien Goasguen]
76
77     - Add support for managing floating IP addresses to the OpenStack driver.
78       (LIBCLOUD-382)
79       [Ivan Kusalic]
80
81     - Add extension methods for handling port forwarding to the CloudStack
82       driver, rename CloudStackForwardingRule class to
83       CloudStackIPForwardingRule. (LIBCLOUD-383)
84       [sebastien goasguen]
85
86     - Hook up deploy_node functionality in the CloudStack driver and unify
87       extension arguments for handling security groups. (LIBCLOUD-388)
88       [sebastien goasguen]
89
90     - Allow user to pass "args" argument to the ScriptDeployment and
91       ScriptFileDeployment class. This argument tells which command line
92       arguments get passed to the ScriptDeployment script. (LIBCLOUD-394)
93
94       Note: This change is backward incompatible. For more information on how
95       this affects your code and how to update it, visit "Upgrade Notes"
96       documentation page - http://s.apache.org/lc0140un
97       [Tomaz Muraus]
98
99     - Allow user to specify IAM profile to use when creating an EC2 node.
100       (LIBCLOUD-403)
101       [Xavier Barbosa]
102
103     - Add support for keypair management to the OpenStack driver.
104       (LIBCLOUD-392)
105       [L. Schaub]
106
107     - Allow user to specify disk partitioning mode using ex_disk_config argument
108       in the OpenStack based drivers. (LIBCLOUD-402)
109       [Brian Curtin]
110
111     - Add new driver for NephoScale provider (http://nephoscale.com/).
112       (LIBCLOUD-404)
113       [Markos Gogoulos]
114
115     - Update network related extension methods so they work correctly with
116       both, OpenStack and Rackspace driver. (LIBCLOUD-368)
117       [Tomaz Muraus]
118
119     - Add tests for networking functionality in the OpenStack and Rackspace
120       driver.
121       [Tomaz Muraus]
122
123     - Allow user to pass all supported extension arguments to ex_rebuild_server
124       method in the OpenStack driver. (LIBCLOUD-408)
125       [Dave King]
126
127     - Add pricing information for Rackspace Cloud Sydney region.
128       [Tomaz Muraus]
129
130     - Update EC2 instance type map and pricing data. High Storage instances are
131       now also available in Sydney and Singapore region.
132       [Tomaz Muraus]
133
134     - Add new methods for managing storage volumes and snapshots to the EC2
135       driver (list_volumes, list_snapshots, destroy_volume_snapshot,
136       create_volume_snapshot) (LIBCLOUD-409)
137       [Oleg Suharev]
138
139     - Add the following new extension methods to EC2 driver: ex_destroy_image,
140       ex_modify_instance_attributes, ex_delete_keypair. (LIBCLOUD-409)
141       [Oleg Suharev]
142
143     - Allow user to specify a port range when creating a port forwarding rule.
144       (LIBCLOUD-409)
145       [Oleg Suharev]
146
147     - Align Joyent driver with other drivers and deprecate "location" argument
148       in the driver constructor in favor of "region" argument.
149
150       Note: Deprecated argument will continue to work until the next major
151       release.
152       [Tomaz Muraus]
153
154     - Deprecate the following ElasticHosts provider constants: ELASTICHOSTS_UK1,
155       ELASTICHOSTS_UK2, ELASTICHOSTS_US1, ELASTICHOSTS_US2, ELASTICHOSTS_US3,
156       ELASTICHOSTS_CA1, ELASTICHOSTS_AU1, ELASTICHOSTS_CN1 and replace it with a
157       new ELASTICHOSTS constant.
158       Driver referenced by this new constant now takes a "region" argument which
159       dictates to which region to connect.
160
161       Note: Deprecated constants will continue to work until the next major
162       release. For more information on those changes and how to update your
163       code, please visit "Upgrade Notes" documentation page -
164       http://s.apache.org/lc0140un (LIBCLOUD-383)
165       [Michael Bennett, Tomaz Muraus]
166
167    - Add log statements to our ParamikoSSHClient wrapper. This should make
168      debugging deployment issues easier. (LIBCLOUD-414)
169      [Tomaz Muraus]
170
171    - Add new "NodeState.STOPPED" node state. Update HostVirual and EC2 driver to
172      also recognize this new state. (LIBCLOUD-296)
173      [Jayy Vis]
174
175    - Add new Hong Kong endpoint to Rackspace driver.
176      [Brian Curtin]
177
178    - Fix ex_delete_keypair method in the EC2 driver. (LIBCLOUD-415)
179      [Oleg Suharev]
180
181    - Add the following new extension methods for elastic IP management to the
182      EC2 driver: ex_allocate_address, ex_disassociate_address,
183      ex_release_address. (LIBCLOUD-417)
184      [Patrick Armstrong]
185
186   - For consistency and accuracy, rename "ex_associate_addresses" method in the
187     EC2 driver to "ex_associate_address_with_node".
188
189     Note: Old method will continue to work until the next major release.
190     [Tomaz Muraus]
191
192   - Add new driver for CloudFrames (http://www.cloudfounders.com/CloudFrames)
193     provider. (LIBCLOUD-358)
194     [Bernard Kerckenaere]
195
196   - Update default kernel versions which are used when creating a Linode
197     server.
198
199     Old default kernel versions:
200
201     - x86 - 2.6.18.8-x86_64-linode1
202     - x86_64 - 2.6.39.1-linode34
203
204     New default kernel versions:
205
206     - x86 - 3.9.3-x86-linode52
207     - x86_64 - 3.9.3-x86_64-linode33
208
209     (LIBCLOUD-424)
210     [Tomaz Muraus, Jon Chen]
211
212   - Disable cache busting functionality in the OpenStack and Rackspace next-gen
213     driver and enable it only for Rackspace first-gen driver.
214     [Tomaz Muraus]
215
216   - Update Google Compute Engine driver to v1beta16.
217     [Rick Wright]
218
219   - Modify auth_url variable in the OpenStack drivers so it works more like
220     users would expect it to.
221
222     Previously path specified in the auth_url was ignored and only protocol,
223     hostname and port were used. Now user can provide a full url for the
224     auth_url variable and the path provided in the url is also used.
225     [DaeMyung Kang, Tomaz Muraus]
226
227   - Allow user to associate arbitrary key/value pairs with a node by passing
228     "ex_metadata" argument (dictionary) to create_node method in the EC2
229     driver.
230     Those values are associated with a node using tags functionality.
231     (LIBCLOUD-395)
232     [Ivan Kusalic]
233
234    - Add "ex_get_metadata" method to EC2 and OpenStack driver. This method reads
235      metadata dictionary from the Node object. (LIBCLOUD-395)
236     [Ivan Kusalic]
237
238    - Multiple improvements in the Softlayer driver:
239      - Map "INITIATING" node state to NodeState.PENDING
240      - If node is launching remap "halted" state to "pending"
241      - Add more node sizes
242      - Add ex_stop_node and ex_start_node method
243      - Update tests response fixtures
244     (LIBCLOUD-416)
245     [Markos Gogoulos]
246
247   - Modify list_sizes method in the KT UCloud driver to work, even if the item
248     doesn't have 'diskofferingid' attribute. (LIBCLOUD-435)
249     [DaeMyung Kang]
250
251   - Add new c3 instance types to the EC2 driver.
252     [Tomaz Muraus]
253
254   - Fix an issue with the ex_list_keypairs and ex_list_security_groups method
255     in the CloudStack driver which caused an exception to be thrown if the API
256     returned no keypairs / security groups.
257     (LIBCLOUD-438)
258     [Carlos Reategui, Tomaz Muraus]
259
260   - Fix a bug in the OpenStack based drivers with not correctly checking if the
261     auth token has expired before re-using it. (LIBCLOUD-428)
262
263     Reported by Michael Farrell.
264     [Tomaz Muraus,  Michael Farrell]
265
266   *) Storage
267
268     - Deprecate CLOUDFILES_US and CLOUDFILES_UK provider constant and replace
269       it with a new CLOUDFILES constant.
270       Driver referenced by this new constant takes a "region" keyword argument
271       which can be one of 'ord', 'dfw', 'iad', 'syd', 'lon'.
272
273       Note: Deprecated constants will continue to work until the next major
274       release.
275       For more information on this change, please visit "Upgrade Notes"
276       documentation section - http://s.apache.org/lc0140un
277       [Tomaz Muraus]
278
279     - Allow users to filter objects starting with a prefix by passing ex_prefix
280       argument to the list_container_objects method in the S3, Google Storage
281       and CloudFiles driver. (LIBCLOUD-369)
282       [Stefan Friesel]
283
284     - Fix an issue with mutating connectionCls.host attribute in the Azure
285       driver. This bug prevented user from having multiple Azure drivers with
286       different keys instantiated at the same time. (LIBCLOUD-399)
287       [Olivier Grisel]
288
289    - Add a new driver for KT UCloud based on the OpenStack Swift driver.
290      (LIBCLOUD-431).
291      [DaeMyung Kang]
292
293  *) Load Balancer
294
295     - Deprecate RACKSPACE_US and RACKSPACE_UK provider constant and replace it
296       with a new RACKSPACE constant.
297       Driver referenced by this new constant takes a "region" keyword argument
298       which can be one of the following: 'ord', 'dfw', 'iad', 'syd', 'lon'.
299
300       Note: Deprecated constants will continue to work until the next major
301       release.
302       For more information on this change, please visit "Upgrade Notes"
303       documentation section - http://s.apache.org/lc0140un
304       [Tomaz Muraus]
305
306     - Add new driver for Google Compute Engine (LIBCLOUD-386)
307       [Rick Wright]
308
309    - Add new Hong Kong endpoint to Rackspace driver.
310      [Brian Curtin]
311
312   *) DNS
313
314     - Deprecate RACKSPACE_US and RACKSPACE_UK provider constant and replace it
315       with a new RACKSPACE constant.
316       Driver referenced by this new constant takes a "region" keyword argument
317       which can be one of the following: 'us', 'uk'.
318
319       Note: Deprecated constants will continue to work until the next major
320       release.
321       For more information on this change, please visit "Upgrade Notes"
322       documentation section - http://s.apache.org/lc0140un
323       [Tomaz Muraus]
324
325     - Use string instead of integer for RecordType ENUM value.
326
327       Note: If you directly use an integer instead of RecordType ENUM class you
328       need to update your code to use the RecordType ENUM otherwise the code
329       won't work. For more information on how to do that, see "Upgrade Notes"
330       documentation section - http://s.apache.org/lc0140un
331       [Tomaz Muraus]
332
333     - Add "export_zone_to_bind_format" and export_zone_to_bind_zone_file method
334       which allows users to export Libcloud Zone to BIND zone format.
335       (LIBCLOUD-398)
336       [Tomaz Muraus]
337
338     - Update issue with inexistent zone / record handling in the get_zone and
339       get_record method in the Linode driver. Those issues were related to
340       changes in the Linode API. (LIBCLOUD-425)
341       [Jon Chen]
342
343 Changes with Apache Libcloud 0.13.2
344
345   *) General
346
347     - Don't sent Content-Length: 0 header with POST and PUT request if "raw"
348       mode is used. This fixes a regression which could cause broken behavior
349       in some storage driver when uploading a file from disk.
350       (LIBCLOUD-396)
351       [Ivan Kusalic]
352
353   *) Compute
354
355     - Added Ubuntu Linux 12.04 image to ElasticHost driver image list.
356       (LIBCLOUD-364)
357       [Bob Thompson]
358
359     - Update ElasticHosts driver to store drive UUID in the node 'extra' field.
360       (LIBCLOUD-357)
361       [Bob Thompson]
362
363   *) Storage
364
365     - Store last_modified timestamp in the Object extra dictionary in the S3
366       driver. (LIBCLOUD-373)
367       [Stefan Friesel]
368
369   *) Load Balancer
370
371    - Expose CloudStack driver directly through the Provider.CLOUDSTACK
372      constant.
373      [Tomaz Muraus]
374
375  *) DNS
376
377    - Modify Zerigo driver to include record TTL in the record 'extra' attribute
378      if a record has a TTL set.
379      [Tomaz Muraus]
380
381    - Modify values in the Record 'extra' dictionary attribute in the Zerigo DNS
382      driver to be set to None instead of an empty string ('') if a value for
383      the provided key is not set.
384      [Tomaz Muraus]
385
386 Changes with Apache Libcloud 0.13.1
387
388  *) General
389
390     - Fix a regression introduced in 0.13.0 and make sure to include
391       Content-Length 0 with PUT and POST requests. (LIBCLOUD-362, LIBCLOUD-390)
392       [Tomaz Muraus]
393
394  *) Compute
395
396     - Fix a bug in the ElasticHosts driver and check for right HTTP status
397       code when determining drive imaging success. (LIBCLOUD-363)
398       [Bob Thompson]
399
400     - Update Opsource driver to include node public ip address (if available).
401       (LIBCLOUD-384)
402       [Michael Bennett]
403
404   *) Storage
405
406     - Fix a regression with calling encode_container_name instead of
407       encode_object_name on object name in get_object method.
408       Reported by Ben Meng (LIBCLOUD-366)
409       [Tomaz Muraus]
410
411     - Ensure that AWS S3 multipart upload works for small iterators.
412       (LIBCLOUD-378)
413       [Mahendra M]
414
415 Changes with Apache Libcloud 0.13.0:
416
417  *) General
418
419    - Add homebrew curl-ca-bundle path to CA_CERTS_PATH. This will make Libcloud
420      use homebrew curl ca bundle file (if available) for server certificate
421      validation. (LIBCLOUD-324)
422      [Robert Chiniquy]
423
424    - Modify OpenStackAuthConnection and change auth_token_expires attribute to
425      be a datetime object instead of a string.
426      [Tomaz Muraus]
427
428    - Modify OpenStackAuthConnection to support re-using of the existing auth
429      token if it's still valid instead of re-authenticating on every
430      authenticate() call.
431      [Tomaz Muraus]
432
433    - Modify base Connection class to not send Content-Length header if body is
434      not provided.
435      [Tomaz Muraus]
436
437    - Add the new error class ProviderError and modify InvalidCredsError to
438      inherit from it. (LIBCLOUD-331)
439      [Jayy Vis]
440
441  *) Misc
442
443    - Add unittest2 library dependency for tests and update some tests to use
444      it.
445      [Tomaz Muraus]
446
447  *) Compute
448
449     - Fix destroy_node method in the experimental libvirt driver.
450       [Aymen Fitati]
451
452     - Add ex_start_node method to the Joyent driver. (LIBCLOUD-319)
453       [rszabo50]
454
455     - Fix Python 3 compatibility issue in the ScriptFileDeployment class.
456       (LIBCLOUD-321)
457       [Arfrever Frehtes Taifersar Arahesis]
458
459     - Add ex_set_metadata_entry and ex_get_metadata method to the VCloud driver.
460       (LIBCLOUD-318)
461       [Michel Samia]
462
463     - Various improvements and bug-fixes in the VCloud driver. (LIBCLOUD-323)
464       [Michel Samia]
465
466     - Various bug fixes and improvements in the HostVirtual driver.
467       (LIBCLOUD-249)
468       [Dinesh Bhoopathy]
469
470     - Modify list_sizes method in the OpenStack driver to include
471       OpenStackNodeSize object which includes 'vcpus' attribute which holds
472       a number of virtual CPUs for this size. (LIBCLOUD-325)
473       [Carlo]
474
475     - For consistency rename "ex_describe_keypairs" method in the EC2 driver to
476       "ex_describe_keypair".
477       [Tomaz Muraus]
478
479     - Modify "ex_describe_keypair" method to return key fingerprint in the
480       return value. (LIBCLOUD-326)
481       [Andre Merzky, Tomaz Muraus]
482
483     - Populate private_ips attribute in the CloudStack drive when returning
484       a Node object from the create_node method. (LIBCLOUD-329)
485       [Sebastien Goasguen, Tomaz Muraus]
486
487     - Allow user to pass extra arguments via "extra_args" argument which are
488       then passed to the "deployVirtualMachine" call in the CloudStack driver
489       create_node method. (LIBCLOUD-330)
490       [Sebastien Goasguen, Tomaz Muraus]
491
492     - Update Gandi driver to handle new billing model. (LIBCLOUD-317)
493       [Aymeric Barantal]
494
495     - Fix a bug in the Linode driver and remove extra newline which is added
496       when generating a random root password in create_node. (LIBCLOUD-334)
497       [Juan Carlos Moreno]
498
499     - Add extension methods for managing keypairs to the CloudStack driver.
500       (LIBCLOUD-333)
501       [sebastien goasguen]
502
503     - Add extension methods for managing security groups to the CloudStack
504       driver. (LIBCLOUD-332)
505       [sebastien goasguen]
506
507     - Add extension methods for starting and stoping the node to the
508       CloudStack driver. (LIBCLOUD-338)
509       [sebastien goasguen]
510
511     - Fix old _wait_until_running method. (LIBCLOUD-339)
512       [Bob Thompson]
513
514     - Allow user to override default async task completion timeout by
515       specifying ex_clone_timeout argument. (LIBCLOUD-340)
516       [Michal Galet]
517
518     - Fix a bug in the GoGrid driver get_uuid method. (LIBCLOUD-341)
519       [Bob Thompson]
520
521     - Fix a bug with deploy_node not respecting 'timeout' kwarg.
522       [Kevin Carter]
523
524     - Modify create_node method in CloudStack driver to return an instance of
525       CloudStackNode and add a new "expunging" node state. (LIBCLOUD-345)
526       [sebastien goasguen]
527
528     - Update API endpoint hostnames in the ElasticHost driver and use hostnames
529       which return a valid SSL certificate. (LIBCLOUD-346)
530       [Bob Thompson]
531
532     - Add ex_list_networks method and missing tests for list_templates to the
533       CloudStack driver. (LIBCLOUD-349)
534       [Philipp Strube]
535
536     - Correctly throw InvalidCredsError if user passes invalid credentials to
537       the DigitalOcean driver.
538       [Tomaz muraus]
539
540  *) Storage
541
542     - Fix an issue with double encoding the container name in the CloudFiles
543       driver upload_object method.
544       Also properly encode container and object name used in the HTTP request
545       in the get_container and get_object method. (LIBCLOUD-328)
546       [Tomaz Muraus]
547
548  *) Load Balancer
549
550     - Add ex_list_current_usage method to the Rackspace driver.
551
552 Changes with Apache Libcloud 0.12.4:
553
554  *) Compute
555
556     - Fix a regression in Softlayer driver caused by the xmlrpclib changes.
557       (LIBCLOUD-310)
558       [Jason Johnson]
559
560     - Allow user to pass alternate ssh usernames to deploy_node
561       (ssh_alternate_usernames kwarg) which are used for authentication if the
562       default one doesn't work. (LIBCLOUD-309)
563       [Chris Psaltis, Tomaz Muraus]
564
565     - Fix a bug in EC2 list_locations method - 'name' attribute didn't contain a
566       the right value.
567       [Tomaz Muraus]
568
569     - Add new ScriptFileDeployment deployment class which reads deploy script
570       from a file.
571       [Rudolf J Streif]
572
573     - Add support for API version 5.1 to the vCloud driver and accept any value
574       which is a multiple of four for ex_vm_memory kwarg in create_node method.
575       (LIBCLOUD-314)
576       [Trevor Powell]
577
578  *) Storage
579
580     - Fix a regression with removed ex_force_service_region constructor kwarg in
581       the CloudFiles driver. (LIBCLOUD-260)
582
583 Changes with Apache Libcloud 0.12.3:
584
585   *) General
586
587     - Fix Python 3.x related regressions. (LIBCLOUD-245)
588       Reported by Arfrever Frehtes Taifersar Arahesis.
589       [Tomaz Muraus]
590
591     - Fix a regression introduced with recent xmlrpiclib changes which broke all
592       the Gandi.net drivers. (LIBCLOUD-288)
593
594       Reported by Hutson Betts.
595       [Tomaz Muraus]
596
597     - Improve deploy code to work correctly if the ssh user doesn't have access
598       to the /root directory.
599
600       Previously the ScriptDeployment script was stored in /root folder by
601       default. Now it's stored in users home directory under filename
602       ~/libcloud_deploymeny_<random>.sh. (LIBCLOUD-302)
603
604       Reported by rotem on #libcloud.
605       [Tomaz Muraus]
606
607   *) Compute
608
609     - Improve public and private IP address handling in OpenStack 1.1 driver.
610       Assume every IP address which doesn't have a label "public" or "internet"
611       is private. (LIBCLOUD-297)
612       [Grischa Meyer, Tomaz Muraus]
613
614     - Add new driver for DigitalOcean provider - https://www.digitalocean.com/.
615       (LIBCLOUD-304)
616       [Tomaz Muraus]
617
618     - Fix a regression in ParamikoSSHClient.run method which caused this methid
619       to only work as expected if you passed an absolute or a relative path to
620       the script to it. (LIBCLOUD-278)
621       [Tomaz Muraus]
622
623   *) DNS
624
625     - Allow user to specify 'priority' extra argument when creating a MX or SRV
626       record.
627       [Brian Jinwright, Tomaz Muraus]
628
629 Changes with Apache Libcloud 0.12.1:
630
631   *) General
632
633     - Deprecate LazyList method of iteration over large paginated collections
634       and use a new, more efficient generator based approach which doesn't
635       require the iterator to be pre-exhausted and buffering all of the values
636       in memory.
637
638       Existing list_* methods which previously used LazyList class are
639       preserving the old behavior and new iterate_* methods which use a new
640       generator based approach have been added. (LIBCLOUD-254)
641       [Mahendra M]
642
643     - Replace old ENUM style provider constants and replace them with a string
644       version.
645       This change allows users to dynamically register new drivers using a new
646       set_driver method. (LIBCLOUD-255)
647       [Mahendra M]
648
649     - Allow user to explicitly specify which CA file is used for verifying
650       the server certificate by setting 'SSL_CERT_FILE' environment variable.
651
652       Note: When this variable is specified, the specified path is the only
653       CA file which is used to verifying the server certificate. (LIBCLOUD-283)
654       [Tomaz Muraus, Erinn Looney-Triggs]
655
656     - Add a common module (libcloud.common.xmlrpc) for handling XML-RPC
657       requests using Libcloud http layer.
658
659       Also refactor existing drivers which use xmlrpclib directly (VCL, Gandi,
660       Softlayer) to use this module.
661
662       This change allows drivers to support LIBCLOUD_DEBUG and SSL certificate
663       validation functionality. Previously they have bypassed Libcloud http
664       layer so this functionality was not available. (LIBCLOUD-288)
665       [John Carr]
666
667   *) Compute
668
669     - Fix string interpolation bug in __repr__ methods in the IBM SCE driver.
670       (LIBCLOUD-242)
671       [Tomaz Muraus]
672
673     - Fix test failures which happened in Python 3.3 due to:
674       - hash randomization
675       - changes in xml.etree module
676       - changes in xmlrpc module
677       (LIBCLOUD-245)
678       [Tomaz Muraus]
679
680     - Improvements and additions in vCloud driver:
681       - Expose generic query method (ex_query)
682       - Provide functionality to get and set control access for vApps. This way
683         created vApps can be shared between users/groups or everyone.
684      (LIBCLOUD-251)
685      [Michal Galet]
686
687    - Update EC2 pricing data to reflect new, lower prices -
688      http://aws.typepad.com/aws/2012/10/new-ec2-second-generation-standard-instances-and-price-reductions-1.html
689      [Tomaz Muraus]
690
691    - Update EC2 instance size to reflect new m3 instance types. Also refactor
692      the code to make it easier to maintain.
693      [Tomaz Muraus]
694
695    - Add a new driver for HostVirtual (http://www.vr.org) provider.
696      (LIBCLOUD-249)
697      [Dinesh Bhoopathy]
698
699    - Fix a bug where a numeric instead of a string value was used for the
700      content-length header in VCloud driver. (LIBCLOUD-256)
701      [Brian DeGeeter, Tomaz Muraus]
702
703    - Add a new driver for new Asia Pacific (Sydney) EC2 region.
704      [Tomaz Muraus]
705
706    - Add support for managing security groups to the OpenStack driver. This
707      patch adds the following extension methods:
708      - ex_list_security_groups, ex_get_node_security_groups methods
709      - ex_create_security_group, ex_delete_security_group
710      - ex_create_security_group_rule, ex_delete_security_group_rule
711      (LIBCLOUD-253)
712      [L. Schaub]
713
714    - Modify ElasticStack driver class to pass 'vnc auto' instead of
715      'vnc:ip auto' argument to the API when creating a server.
716      It looks like 'vnc:ip' has been replaced with 'vnc'.
717      [Rick Copeland, Tomaz Muraus]
718
719    - Add new EC2 instance type - High Storage Eight Extra Large Instance
720      (hs1.8xlarge).
721      [Tomaz Muraus]
722
723    - Map 'shutting-down' node state in EC2 driver to UNKNOWN. Previously
724      it was mapped to TERMINATED. (LIBCLOUD-280)
725
726      Note: This change is backward incompatible which means you need to update
727      your code if you rely on the old behavior.
728      [Tomaz Muraus, Marcin Kuzminski]
729
730    - Change _wait_until_running method so it supports waiting on multiple nodes
731      and make it public (wait_until_running). (LIBCLOUD-274)
732      [Nick Bailey]
733
734    - Add new EC2 instance type - High Memory Cluster Eight Extra Large.
735      (cr1.8xlarge).
736      [Tomaz Muraus]
737
738    - Add new driver for Abiquo provider - http://www.abiquo.com (LIBCLOUD-250).
739      [Jaume Devesa]
740
741    - Allow user to pass 'ex_blockdevicemappings' kwarg to the EC2 driver
742      'create_node' method. (LIBCLOUD-282)
743      [Joe Miller, Tomaz Muraus]
744
745    - Improve error handling in the Brightbox driver.
746      [Tomaz Muraus]
747
748    - Fix the ScriptDeployment step to work correctly if user provides a
749      relative path for the script argument. (LIBCLOUD-278)
750      [Jaume Devesa]
751
752    - Fix Softlayer driver and make sure all the code is up to date and works
753      with the latest version of the actual Softlayer deployment (v3).
754      (LIBCLOUD-287)
755      [Kevin McDonald]
756
757    - Update EC2 driver, m3 instance types are now available in all the regions
758      except Brazil.
759
760      Also update pricing to reflect new (decreased) prices.
761      [Tomaz Muraus]
762
763    - Minor improvements in the HostVirtual driver and add new ex_get_node and
764      ex_build_node extension method. (LIBCLOUD-249)
765      [Dinesh Bhoopathy]
766
767    - Add ex_destroy_image method to IBM SCE driver. (LIBCLOUD-291)
768      [Perry Zou]
769
770    - Add the following new regions to the ElasticHosts driver: sjc-c, syd-v,
771      hkg-e. (LIBCLOUD-293)
772      [Tomaz Muraus]
773
774    - Fix create_node in OpenStack driver to work correctly if 'adminPass'
775      attribute is not present in the response.
776      [Gavin McCance, Tomaz Muraus]
777
778    - Allow users to filter images returned by the list_images method in the EC2
779      driver by providing ex_image_ids argument. (LIBCLOUD-294)
780      [Chris Psaltis, Joseph Hall]
781
782    - Add support for OpenNebula 3.8. (LIBCLOUD-295)
783      [Guillaume ZITTA]
784
785    - Add missing 'deletd' -> terminated mapping to OpenStack driver.
786      (LIBCLOUD-276)
787      [Jayyy V]
788
789    - Fix create_node in OpenStack driver to work correctly if 'adminPass'
790      attribute is not present in the response. (LIBCLOUD-292)
791      [Gavin McCance, Tomaz Muraus]
792
793   *) Storage
794
795     - Add a new local storage driver.
796       (LIBCLOUD-252, LIBCLOUD-258, LIBCLOUD-265, LIBCLOUD-273)
797       [Mahendra M]
798
799     - Fix a bug which caused the connection to not be closed when using Python
800       2.6 and calling get_object on an object which doesn't exist in the S3
801       driver. (LIBCLOUD-257)
802       [John Carr]
803
804     - Add a new generator based method for listing / iterating over the
805       containers (iterate_containers). (LIBCLOUD-261)
806       [Mahendra M]
807
808     - Add ex_purge_object_from_cdn method to the CloudFiles driver.
809       (LIBCLOUD-267)
810       [Tomaz Muraus]
811
812     - Support for multipart uploads and other improvements in the S3 driver
813       so it can more easily be re-used with other implementations (e.g. Google
814       Storage, etc.).
815
816       Also default to a multipart upload when using upload_object_via_stream.
817       This methods is more efficient compared to old approach because it only
818       requires buffering a single multipart chunk (5 MB) in memory.
819       (LIBCLOUD-269)
820       [Mahendra M]
821
822     - Add new driver for Windows Azure Storage with support for block and page
823       blobs. (LIBCLOUD-80)
824       [Mahendra M]
825
826   *) DNS
827
828     - Update 'if type' checks in the update_record methods to behave correctly
829       if users passes in RecordType.A with a value of 0 - if type is not None.
830       (LIBCLOUD-247)
831       [Tomaz Muraus]
832
833     - New driver for HostVirtual provider (www.vr.org). (LIBCLOUD-249)
834       [Dinesh Bhoopathy]
835
836     - Finish Amazon Route53 driver. (LIBCLOUD-132)
837       [John Carr]
838
839     - Add new driver for Gandi provider (https://www.gandi.net). (LIBCLOUD-281)
840       [John Carr]
841
842   *) Load-Balancer
843
844     - Add new driver for AWS Elastic Load Balancing service. (LIBCLOUD-169)
845       [John Carr]
846
847 Changes with Apache Libcloud 0.11.4:
848
849   *) General
850
851     - Fix some of tests failures which happened in Python 3.3 due to randomized
852       dictionary ordering. (LIBCLOUD-245)
853       [Tomaz Muraus]
854
855   *) Compute
856
857     - Fix a bug where a numeric instead of a string value was used for the
858       content-length header in VCloud driver. (LIBCLOUD-256)
859       [Brian DeGeeter, Tomaz Muraus]
860
861   *) Storage
862
863     - Don't ignore ex_force_service_region argument in the CloudFiles driver.
864       (LIBCLOUD-260)
865       [Dan Di Spaltro]
866
867     - Fix a bug which caused the connection to not be closed when using Python
868       2.6 and calling get_object on an object which doesn't exist in the S3
869       driver. (LIBCLOUD-257)
870       [John Carr]
871
872   *) DNS
873
874     - Update 'if type' checks in the update_record methods to behave correctly
875       if users passes in RecordType.A with a value of 0 - if type is not None.
876       (LIBCLOUD-247)
877       [Tomaz Muraus]
878
879 Changes with Apache Libcloud 0.11.3:
880
881   *) Storage
882
883     - Include 'last_modified' and 'content_type' attribute in the Object
884       'extra' dictionary when retrieving object using get_object in the S3
885       driver. Also modify 'meta_data' dictionary to include all the headers
886       prefixed with 'x-amz-meta-'.
887       [Tomaz Muraus]
888
889 Changes with Apache Libcloud 0.11.2:
890
891   *) General
892
893     Fix a bug with the Libcloud SSL verification code. Code was too strict and
894     didn't allow "-" character in the sub-domain when using a wildcard
895     certificate.
896
897     Note: This is NOT a security vulnerability. (LIBCLOUD-244)
898     [Tomaz Muraus]
899
900   *) Compute
901
902     - Add new Rackspace Nova driver for Chicago (ORD) location (LIBCLOUD-234)
903       [Brian McDaniel]
904
905     - Add capacity information to Vdc objects and implement power operations.
906       (LIBCLOUD-239)
907       [Michal Galet]
908
909     - Allow user to pass 'timeout' argument to the 'deploy_node' method.
910       [Tomaz Muraus]
911
912     - Add ex_list_security_groups, ex_authorize_security_group and
913       ex_describe_all_keypairs methods to the EC2 driver. (LIBCLOUD-241,
914       LIBCLOUD-243)
915       [Nick Bailey]
916
917     - Add new methods for managing storage volumes and other extenstion methods
918       to the IBM SCE driver. (LIBCLOUD-242)
919       [Sengor Kusturica]
920
921   *) Storage
922
923     - Add the following new methods to the CloudFiles driver:
924       ex_set_account_metadata_temp_url_key, ex_get_object_temp_url. (GITHUB-72)
925       [Shawn Smith]
926
927   *) Load-balancer
928
929     - Add 'balancer' attribute to the Member instance. This attribute refers to
930       the LoadBalancer instance this member belongs to.
931       [Tomaz Muraus]
932
933 Changes with Apache Libcloud 0.11.1:
934
935   *) General
936
937     - Fix hostname validation in the SSL verification code (CVE-2012-3446).
938
939       Reported by researchers from the University of Texas at Austin (Martin
940       Georgiev, Suman Jana and Vitaly Shmatikov).
941
942 Changes with Apache Libcloud 0.11.0:
943
944   *) Compute
945
946     - Add a timeout of 10 seconds to OpenStackAuthConnection class.
947       (LIBCLOUD-199)
948       [Chris Gilmer]
949
950     - Add time.sleep(wait_period) to _ssh_client_connect to prevent busy loops
951       when we immediately can't connect to a server. (LIBCLOUD-197)
952       [Jay Doane]
953
954     - Fix a bug with Python 3 support in the following drivers
955       - IBM SCE,
956       - CloudStack
957       - CloudSigma
958       - OpenNebula
959       - VpsNet
960       - EC2
961       - ElasticStack
962       - vCloud
963       - OpSource
964       - Slicehost
965       - Joyent
966       (LIBCLOUD-204)
967       [Sengor Kusturica, Hutson Betts, Tomaz Muraus]
968
969     - Make CloudStack driver more robust and make it work if list_images() call
970       returns no images. (LIBCLOUD-202)
971       [Gabriel Reid]
972
973     - Add force_ipv4 argument to _wait_until_running and default it to True.
974       This will make Libcloud ignore IPv6 addresses when using deploy_node.
975       [Jay Doane, Tomaz muraus]
976
977     - Include error text if a CloudStack async job returns an error code.
978       (LIBCLOUD-207)
979       [Gabriel Reid]
980
981     - Add extenstion methods for block storage volume management to the
982       CloudStack driver. (LIBCLOUD-208)
983       [Gabriel Reid]
984
985     - New driver for KT UCloud (http://home.ucloud.olleh.com/main.kt) based on
986       the CloudStack driver.
987       [DaeMyung Kang]
988
989     - Add a standard API and methods for managing storage volumes to the
990       EC2 and CloudStack drivers. Base API consistent of the following methods:
991       create_volume, destroy_volume, attach_volume, detach_volume.
992       (LIBCLOUD-213)
993       [Gabriel Reid]
994
995     - Change ex_describe_tags, ex_create_tags and ex_delete_tags methods
996       signature in the EC2 driver. Argument is now called resource (previously
997       it was called node). This methods work with both Node and StorageVolume
998       objects. (LIBCLOUD-213)
999       [Gabriel Reid, Tomaz Muraus]
1000
1001     - Add Rackspace Nova London driver.
1002       [Chris Gilmer]
1003
1004     - Fix a bug - If user doesn't pass in 'network_id' argument to the
1005       create_node method in the CloudStack driver, don't explicitly define it.
1006       (LIBCLOUD-219)
1007       [Bruno Mahé, Tomaz Muraus]
1008
1009     - Modify EC2 driver to also return cc2.8xlarge cluster compute instance in
1010       the eu-west-1 region.
1011       [Tomaz Muraus]
1012
1013     - Add 'auth_user_variable' to the  OpenStackAuthConnection class.
1014       [Mark Everett]
1015
1016     - Fix a bug with repeated URLs in some requests the vCloud driver.
1017       (LIBCLOUD-222)
1018       [Michal Galet]
1019
1020     - New Gridspot driver with basic list and destroy functionality.
1021       (LIBCLOUD-223)
1022       [Amir Elaguizy]
1023
1024     - Add methods for managing storage volumes to the Gandi driver.
1025       (LIBCLOUD-225)
1026       [Aymeric Barantal]
1027
1028   *) DNS
1029
1030     - Add support for GEO RecordType to Zerigo driver. (LIBCLOUD-203)
1031       [Gary Wilson]
1032
1033     - Fix a bug with Python 3 support in the following drivers (LIBCLOUD-204)
1034       - Zerigo
1035       [Tomaz Muraus]
1036
1037     - Add support for URL RecordType to Zerigo driver. (LIBCLOUD-209)
1038       [Bojan Mihelac]
1039
1040     - Properly handle record creation when user doesn't provider a record name
1041       and wants to create a record for the actual domain.
1042       Reported by Matt Perry (LIBCLOUD-224)
1043       [Tomaz Muraus]
1044
1045   *) Storage
1046
1047     - Fix a bug with Python 3 support in the following drivers
1048       - Atmos
1049       - Google Storage
1050       - Amazon S3
1051       (LIBCLOUD-204)
1052       [Tomaz Muraus]
1053
1054     - Fix a bug in the CloudFiles driver which prevented it to work with
1055       accounts which use a non ORD endpoint. (LIBCLOUD-205)
1056       [Geoff Greer]
1057
1058     - Fix a bug in the enable_container_cdn method. (LIBCLOUD-206)
1059       [Geoff Greer]
1060
1061     - Allow user to specify container CDN TTL when calling container.enable_cd()
1062       using ex_ttl keyword argument in the CloudFiles driver.
1063       [Tomaz Muraus]
1064
1065     - Add ex_enable_static_website and ex_set_error_page method to the
1066       CloudFiles driver.
1067       [Tomaz Muraus]
1068
1069     - Propagate kwargs passed to container.download_object() to
1070       driver.download_object(). (LIBCLOUD-227)
1071       [Benno Rice]
1072
1073     - Fix a bug with not escaping container and object name in the Atmos driver.
1074       [Russell Keith-Magee, Benno Rice]
1075
1076     - Fix upload_object_via_stream method in the Atmos driver. (LIBCLOUD-228)
1077       [Benno Rice]
1078
1079     - Fix a bug with uploading zero-sized files in the OpenStack Swift /
1080       CloudFiles driver.
1081       [Tomaz Muraus]
1082
1083     - Fix a bug with content_type and and encoding of object and path names in
1084       the Atmos driver.
1085       [Russell Keith-Magee]
1086
1087   *) Other:
1088
1089     - Unify docstrings formatting in the compute drivers. (LIBCLOUD-229)
1090       [Ilgiz Islamgulov]
1091
1092 Changes with Apache Libcloud 0.10.1:
1093
1094   *) General:
1095
1096     - Add timeout attribute to base 'Connection' class and pass it to the
1097       connection class constructor if Python version is not 2.5.
1098       [Chris Gilmer]
1099
1100   *) Compute:
1101
1102     - Update IBM SBC driver so it works with IBM Smart Cloud Enterprise.
1103       (LIBCLOUD-195)
1104       [Sengor Kusturica]
1105
1106     - Add ex_register_iso method to the CloudStack driver. (LIBCLOUD-196)
1107       [Daemian Mack]
1108
1109     - Allow user to specify which IP to use when calling deploy_node.
1110       (defaults to 'public_ips'). Previously it only worked with public IP, now
1111       user can pass 'private_ips' as an argument and SSH client will try to
1112       connect to the node first private IP address.
1113       [Jay Doane]
1114
1115     - Fix CloudSigmaLvsNodeDriver connectionCls bug.
1116       [Jerry Chen]
1117
1118     - Add 'ex_keyname' argument to the create_node method in the OpenStack
1119       driver. (LIBCLOUD-177)
1120       [Jay Doane]
1121
1122     - Fix a problem in deploy_node - make it work with providers which
1123       don't  instantly return created node in the list_node response.
1124       Also add __str__ and __repr__ method to DeploymentError so the
1125       error message is more useful. (LIBCLOUD-176)
1126       [Jouke Waleson, Tomaz Muraus]
1127
1128     - Add 'ssh_key' feature to Brigthbox driver. This way it works with
1129       deploy_node. (LIBCLOUD-179)
1130       [Neil Wilson]
1131
1132     - Add Joyent compute driver.
1133       [Tomaz Muraus]
1134
1135     - Store auth token expire times on the connection class in the attribute
1136       called 'auth_token_expires'. (LIBCLOUD-178)
1137       [Chris Gilmer, Brad Morgan]
1138
1139     - Add new driver for VCL cloud
1140       (http://www.educause.edu/blog/hes8/CloudComputingandtheVirtualCom/167931)
1141       (LIBCLOUD-180)
1142       [Jason Gionta, Tomaz Muraus]
1143
1144     - Improve and add new features to Brightbox driver
1145         - Update fixtures to represent actual api output
1146         - Update compute tests to 100% coverage
1147         - Add userdata and server group extensions to create_node
1148         - Add ipv6 support to public ip list
1149         - Improve in line documentation
1150         - Add lots of api output information to Node and Image
1151           'extra' attributes
1152         - Allow variable API versions (api_version argument)
1153         - Allow reverse dns updates for cloud ip extensions
1154       (LIBCLOUD-184)
1155       [Neil Wilson, Tomaz Muraus]
1156
1157     - Add ex_userdata argument to the OpenStack 1.1 driver. (LIBCLOUD-185)
1158       [Jay Doane]
1159
1160     - Modify Vmware vCloud driver and implement new features
1161       for the vCloud version 1.5. (LIBCLOUD-183)
1162       [Michal Galet, Sengor Kusturica]
1163
1164     - Allow user to pass mode argument to SSHClient.put method and default it to
1165       'w'. (LIBCLOUD-188)
1166       [Jay Doane]
1167
1168     - Modify SSHKeyDeployment step to use append mode so it doesn't overwrite
1169       existing entries in .ssh/authorized_keys. (LIBCLOUD-187)
1170       [Jay Doane]
1171
1172     - Modify ParamikoSSHClient to connect to the SSH agent and automatically
1173       look for private keys in ~/.ssh if the 'auth' and 'ssh_key' argument
1174       is not specified when calling deploy_node. (LIBCLOUD-182)
1175       [Tomaz Muraus]
1176
1177     - Add ex_rescue and ex_unrescue method to OpenStack 1.1 driver.
1178       (LIBCLOUD-193)
1179       [Shawn Smith]
1180
1181     - Include 'password' in the node extra dictionary when calling deploy_node
1182       if the password auth is used.
1183       [Juan Carlos Moreno]
1184
1185     - Add FileDeployment class to libcloud.compute.deployment module. This can
1186       be used as a replacement for ex_files argument if the provider supports
1187       deployment functionality. (LIBCLOUD-190)
1188       [Jay Doane]
1189
1190   *) Storage
1191
1192     - Large object upload support for CloudFiles driver
1193     - Add CLOUDFILES_SWIFT driver to connect to OpenStack Swift
1194       [Dmitry Russkikh, Roman Bogorodskiy]
1195
1196   *) Load-balancer
1197
1198     - Don't include 'body_regex' attribute in the Rackspace driver body if
1199       body_regex is None or empty string. (LIBCLOUD-186)
1200       [Bill Woodward]
1201
1202     - Don't split Load balancer IP addresses into public and private list.
1203       Include all the addresses in the 'virtualIps' variable in the extra
1204       dictionary (Rackspace driver). (LIBCLOUD-191)
1205       [Adam Pickeral]
1206
1207 Changes with Apache Libcloud 0.9.1:
1208
1209   *) General:
1210
1211     - Make parsing of the Auth API responses in the OpenStack drivers more
1212       flexible and extensible.
1213
1214       Now, every connection class that inherits from the openstack base
1215       connection must implement get_endpoint(), who's job is to return the
1216       correct endpoint out of the service catalog.
1217
1218       Note: The openstack.py base driver no longer works by default with
1219       Rackspace nova. The default endpoint parsed from the service catalog
1220       is the default compute endpoint for devstack. (LIBCLOUD-151)
1221       [Brad Morgan]
1222
1223     - Allow user to pass ex_tenant_name keyword argument to the OpenStack node
1224       driver class. This scopes all the endpoints returned by the Auth API
1225       endpoint to the provided tenant. (LIBCLOUD-172)
1226       [James E. Blair]
1227
1228     - Allow user to specify OpenStack service catalog parameters (service type,
1229       name and region). This way base OpenStack driver can be used with
1230       different providers without needing to subclass. (LIBCLOUD-173)
1231       [James E. Blair]
1232
1233     - Fix a bug with handling compressed responses in the Linode driver.
1234       (LIBCLOUD-158)
1235       [Ben Agricola]
1236
1237   *) Compute:
1238
1239     - Add new RackspaceNovaBeta and RackspaveNovaDfw driver based on the
1240       OpenStack. (LIBCLOUD-151)
1241       [Brad Morgan]
1242
1243     - Include 'created' and 'updated' attribute in the OpenStack 1.1 driver.
1244       (LIBCLOUD-155)
1245       [Chris Gilmer]
1246
1247     - Include 'minRam' and 'minDisk' attribute in the OpenStack 1.1 driver
1248       Node extra dictionary. (LIBCLOUD-163)
1249       [Chris Gilmer]
1250
1251     - Alow users to use a list of tuples for the query string parameters inside
1252       the OpenStack connection classes. This way same key can be specified
1253       multiple times (LIBCLOUD-153)
1254       [Dave King]
1255
1256     - Allow user to pass 'max_tries' keyword argument to deploy_node method.
1257       [Tomaz Muraus]
1258
1259     - Include original exception error message when re-throwing an exception
1260       inside _run_deployment_script method.
1261       [Tomaz Muraus]
1262
1263     - Add support for ElasticHosts new United States (Los Angeles) and Canada
1264       (Toronto) locations. (GITHUB-53)
1265       [Jaime Irurzun]
1266
1267     - Add serverId attribute to the NodeImage object extra dictionary in the
1268       OpenStack driver.
1269       [Mark Everett]
1270
1271     - Add new EC2 instance type - m1.medium.
1272       [Tomaz Muraus]
1273
1274     - Allow user to re-use auth tokens and pass 'ex_force_auth_token' keyword
1275       argument to the OpenStack driver constructor. (LIBCLOUD-164)
1276       [Dave King]
1277
1278     - Add new experimental libvirt driver.
1279       [Tomaz Muraus]
1280
1281     - Properly handle OpenStack providers which return public IP addresses under
1282       the 'internet' key in the addresses dictionary.
1283       [Tomaz Muraus]
1284
1285     - Update create_node in Linode driver and make it return a Node object
1286       instead of a list. Reported by Jouke Waleson. (LIBCLOUD-175)
1287       [Tomaz Muraus]
1288
1289   *) Storage:
1290
1291     - Don't lowercase special header names in the Amazon S3 storage driver.
1292       (LIBCLOUD-149)
1293       [Tomaz Muraus]
1294
1295   *) Load-balancer:
1296
1297     - Allow user to specify a condition and weight when adding a member in
1298       the Rackspace driver.
1299       [Adam Pickeral]
1300
1301     - Add an extension method (ex_balancer_attach_members) for attaching
1302       multiple members to a load balancer in the Rackspace driver.
1303       (LIBCLOUD-152)
1304       [Adam Pickeral]
1305
1306     - Add ex_creaate_balancer method to the Rackspace driver and allow user to
1307       pass 'vip' argument to it. (LIBCLOUD-166)
1308       [Adam Pickeral]
1309
1310     - Update Rackspace driver to support Auth 2.0. (LIBCLOUD-165)
1311       [Dave King]
1312
1313     - Add new ex_create_balancer_access_rule and
1314       ex_create_balancer_access_rule_no_poll method to the Rackspace driver.
1315       (LIBCLOUD-170)
1316       [Dave King]
1317
1318   *) DNS:
1319
1320     - Update Rackspace driver to support Auth 2.0. (LIBCLOUD-165)
1321       [Dave King]
1322
1323 Changes with Apache Libcloud 0.8.0:
1324
1325   *) General:
1326
1327      - Add 'request_kwargs' argument to the get_poll_request_kwargs method.
1328        This argument contains kwargs which were previously used to initiate the
1329        poll request.
1330        [Mark Everett]
1331
1332      - Add support for handling compressed responses (deflate, gzip). Also send
1333        "Accept-Encoding" "gzip,deflate" header with all the requests.
1334        [Tomaz Muraus]
1335
1336      - Fix debug module (LIBCLOUD_DEBUG env variable) so it works with Python 3
1337        [Tomaz Muraus]
1338
1339   *) Compute:
1340
1341      - Added support for retrieving OpenNebula v3.2 instance types, OpenNebula
1342        v3.0 network Public attribute support, and additional code coverage
1343        tests.
1344        [Hutson Betts]
1345
1346      - Add implementation for ex_save_image method to the OpenStack 1.1 driver.
1347        [Shawn Smith]
1348
1349      - Add support for Amazon new South America (Sao Paulo) location.
1350        [Tomaz Muraus]
1351
1352      - Fix a bug in OpenStack driver when 2.0_apikey or 2.0_password
1353        'auth_version' is used.
1354        [Tomaz Muraus]
1355
1356      - Current OpenNebula OCCI implementation does not support a proper
1357        restart method. Rather it suspends and resumes. Therefore, restart_node
1358        has been removed from the OpenNebula driver.
1359        [Hutson Betts]
1360
1361      - Enable ex_delete_image method in the OpenStack 1.1 driver.
1362        [Shawn Smith]
1363
1364      - Return NodeImage instance in OpenStack 1.1 driver ex_save_image method
1365        (LIBCLOUD-138)
1366        [Shawn Smith]
1367
1368      - Enable reboot_node method in the OpenNebula 3.2 driver.
1369        [Hutson Betts]
1370
1371      - Fix a public_ips Node variable assignment in the Gandi.net driver.
1372        [Aymeric Barantal]
1373
1374      - Updated the list of node states for OpenNebula drivers. (LIBCLOUD-148)
1375        [Hutson Betts]
1376
1377   *) Storage:
1378
1379     - Propagate extra keyword arguments passed to the Rackspace driver
1380       connection class.
1381       [Dave King]
1382
1383   *) Load-balancer:
1384
1385     - Add 'extra' attribute to the LoadBalancer object and retrieve all the
1386       virtual IP addresses in the Rackspace driver.
1387       [Dave King]
1388
1389     - Add list_supported_algorithms() method to the base LoadBalancer class.
1390       This method returns a list of supported algorithms by the provider.
1391       [Dave King]
1392
1393     - Update Rackspace driver:
1394       - Add two new supported algorithms: WEIGHTED_ROUND_ROBIN,
1395         WEIGHTED_LEAST_CONNECTIONS
1396       - Add ex_list_algorithm_names method
1397       - Add ex_get_balancer_error_page method
1398       - Add ex_balancer_access_list method
1399       - Populate LoadBalancer extra dictionary with more attributes
1400       - Add support for health monitors and connection throttling
1401       - Add more balancer states
1402       - ex_list_protocols_with_default_ports
1403       [Dave King]
1404
1405     - Propagate extra keyword arguments passed to the Rackspace driver
1406       connection class.
1407       [Dave King]
1408
1409     - Add 'extra' attribute to the Member object and populate it in
1410       the Rackspace driver.
1411       [Mark Everett]
1412
1413     - Adds status to the Member object and conditions an 'enum'
1414       (Rackspace driver).
1415       [Mark Everett]
1416
1417     - Add update_balancer method to the base LoadBalancer class.
1418       [Mark Everett]
1419
1420     - Add update_balancer method to the Rackspace driver.
1421       [Mark Everett]
1422
1423     - Add created and updated attribute to the LoadBalancer extra dictionary in
1424       the Rackspace driver.
1425       [Mark Everett]
1426
1427     - Fix protocol name maping in the Rackspace driver.
1428       [Bill Woodward]
1429
1430 Changes with Apache Libcloud 0.7.1:
1431
1432   *) General:
1433
1434      - Fix a minor bug in debug mode (LIBCLOUD_DEBUG=/dev/stderr) which has been
1435        introduced when adding Python 3 compatibility layer.
1436        [Paul Querna]
1437
1438      - Update OpenStack Auth API endpoint paths.
1439        [Paul Querna]
1440
1441 Changes with Apache Libcloud 0.7.0:
1442
1443   *) General:
1444
1445      - Add support for Python 3.x.
1446        [Tomaz Muraus]
1447
1448      - Remove old deprecated paths.
1449        [Tomaz Muraus]
1450
1451   *) Compute:
1452
1453      - Update CloudSigma Zurich API endpoint address.
1454        [Tomaz Muraus]
1455
1456      - Add new US Las Vegas endpoint to CloudSigma driver (types.CLOUDSIGMA_US)
1457        [Tomaz Muraus]
1458
1459      - Allow user to specify drive type (hdd, ssd) when creating a
1460        CloudSigma server.
1461
1462        Note 'ssd' drive_type doesn't work with the API yet.
1463        [Tomaz Muraus]
1464
1465      - Update OpenStack 1.1 driver to comply with the API specs. Need to make
1466        another call to retrieve node name and ip addresses when creating a node,
1467        because the first call only returns an id an the password. (GITHUB-40)
1468        [Dave King]
1469
1470      - Add ex_node_ids argument to the EC2 driver list_nodes method.
1471        (GITHUB-39)
1472        [Suvish Vt]
1473
1474      - If OpenStack Auth 2.0 API is used, also parse out tenant id and
1475        name and save it on the connection class (conn.tenant['id'],
1476        conn.tenant['name']).
1477        [Tomaz Muraus]
1478
1479      - Add new "Cluster Compute Eight Extra Large" size to the Amazon EC2
1480        driver.
1481        [Tomaz Muraus]
1482
1483      - Add the following extension methods to the EC2 compute driver:
1484        ex_describe_all_addresses, ex_associate_addresses, ex_start_node,
1485        ex_stop_node.
1486        [Suvish Vt]
1487
1488      - Change public_ip and private_ip attribute on the Node object to the
1489        public_ips and private_ips since both of the objects are always a list.
1490
1491        Note: For backward compatibility you can still access public_ip and
1492        private_ip attributes, but this will be removed in the next release.
1493        [Tomaz Muraus]
1494
1495      - Fix an inconsistency in IBM SBC driver and make sure public_ips and
1496        private_ips attributes are a list.
1497        [Tomaz Muraus]
1498
1499      - Fix an inconsistency in OpSource driver and make sure public_ips is an
1500        empty list ([]), not 'unknown'
1501        [Tomaz Muraus]
1502
1503      - Updated support for OpenNebula.org v1.4, v2.x, and v3.x APIs and included
1504        additional compute tests validating functionality. (LIBCLOUD-121)
1505        [Hutson Betts]
1506
1507   *) Load-balancer:
1508
1509     - Add ex_member_address argument to the Rackspace driver list_balancers
1510       method. If this argument is provided, only loadbalancers which have a
1511       member with the provided IP address attached are returned.
1512       [Tomaz Muraus]
1513
1514 Changes with Apache Libcloud 0.6.2:
1515
1516   *) General
1517
1518      - Fix a bug in PollingConnection class - actually use and don't ignore
1519        the poll_interval
1520        [Tomaz Muraus]
1521
1522   *) Compute:
1523
1524      - Add support for Auth 2.0 API (keystone) to the OpenStack Auth
1525        connection class.
1526        [Brad Morgan]
1527
1528      - Add list_locations method to the OpenStack driver and fix some
1529        inconsistencies in the OpenStack driver extension method signatures.
1530        [Brad Morgan]
1531
1532      - Update Amazon EC2 driver and pricing data to support a new region -
1533        US West 2 (Oregon)
1534        [Tomaz Muraus]
1535
1536      - Expose 'CLOUDSTACK' provider. This driver can be used with an
1537        arbitrary CloudStack installation.
1538        [Tomaz Muraus]
1539
1540   *) Storage:
1541
1542      - Update Amazon S3 driver to support a new region - US West 2 (Oregon)
1543        [Tomaz Muraus]
1544
1545    *) DNS:
1546
1547       - Increase the default poll interval in the Rackspace driver to 2.5
1548         seconds.
1549         [Tomaz Muraus]
1550
1551       - Fix a bug in Rackspace Cloud DNS driver and make sure to throw an
1552         exception if an unexpected status code is returned. Reported by
1553         "jeblair".
1554         [Tomaz Muraus]
1555
1556 Changes with Apache Libcloud 0.6.1:
1557
1558   *) General:
1559
1560      - Modify ParamikoSSHClient.connect so it supports authentication using a
1561        key file, (LIBCLOUD-116)
1562        [Jay Doane]
1563
1564      - User must now explicitly specify a path when using LIBCLOUD_DEBUG
1565        environment variable. (LIBCLOUD-95)
1566        [daveb, Tomaz Muraus]
1567
1568      - Add new XmlResponse and JsonResponse base class and modify all the
1569        driver-specific response classes to inherit from one of those two
1570        classes where applicable.
1571        [Caio Romão]
1572
1573      - Add new 'PollingConnection' class. This class can work with 'async'
1574        APIs. It sends and an initial request and then periodically poll the API
1575        until the job has completed or a timeout has been reached.
1576        [Tomaz Muraus]
1577
1578   *) Compute:
1579
1580      - Add 24GB size to the GoGrid driver
1581        [Roman Bogorodskiy]
1582
1583      - Fix API endpoint URL in the Softlayer driver
1584        [Tomaz Muraus]
1585
1586      - Add support for OpenNebula 3.0 API (LIBCLOUD-120)
1587        [Hutson Betts]
1588
1589      - Add more attributes to the extra dictionary in the EC2 driver.
1590        (GITHUB-31)
1591        [Juan Carlos Moreno]
1592
1593      - Fix IP address assignment in the EC2 driver. Don't include "None" in the
1594        public_ip and private_ip Node list attribute.
1595        [Tomaz Muraus]
1596
1597      - Make deploy_node functionality more robust and don't start deployment if
1598        node public_ip attribute is an empty list.
1599        [Tomaz Muraus]
1600
1601      - Support SSH key authentication when using deploy_node.
1602        [Russell Haering, Tomaz Muraus]
1603
1604      - Enable deploy_node functionality in the EC2 driver using SSH key
1605        authentication
1606        [Russell Haering, Tomaz Muraus]
1607
1608      - Enable paramiko library debug log level if LIBCLOUD_DEBUG is used and
1609        paramiko is installed.
1610        [Tomaz Muraus]
1611
1612      - Fix the request signature generation in the base EC2 compute driver.
1613        If the endpoint is using a non-standard port (Eucalyptus based
1614        installations), append it to the hostname used to generate the
1615        signature.
1616        [Simon Delamare]
1617
1618      - Add new "unavailable" state to the BrightboxNodeDriver class.
1619        [Tim Fletcher]
1620
1621      - Increase a PollingConnection timeout in the CloudStack connection
1622        and fix the context dictionary creation in the _async_request method.
1623        [gigimon]
1624
1625      - Fix networks retrieval in the CloudStack driver create_node method.
1626        Also only pass 'networkids' field to the API if there are any networks
1627        available.
1628        [gigimon, Tomaz Muraus]
1629
1630      - Fix list_nodes in the CloudStack driver. Private IPs aren't always
1631        available.
1632        [Tomaz Muraus]
1633
1634   *) Load-baancer:
1635
1636      - Add a missing argument to the method call inside
1637        LoadBalancer.attach_compute_node and Driver.balancer_attach_compute_node.
1638        [Tim Fletcher, Tomaz Muraus]
1639
1640      - Add missing destroy() method to the LoadBalancer class.
1641        [Tomaz Muraus]
1642
1643   *) DNS:
1644
1645      - New drivers for Rackspace Cloud DNS (US and UK region)
1646        [Tomaz Muraus]
1647
1648      - Add list_record_types() method. This method returns a list of record
1649        types supported by the provider.
1650        [Tomaz Muraus]
1651
1652 Changes with Apache Libcloud 0.6.0-beta1
1653
1654   *) General:
1655
1656     - All the driver classes now inherit from the BaseDriver class
1657       [Tomaz Muraus]
1658
1659     - Prefer simplejson (if available) over json module. (LIBCLOUD-112)
1660       [Geoff Greer]
1661
1662     - Update compute demo and change the syntax of test credentials stored in
1663       test/secrets.py-dist. (LIBCLOUD-111)
1664       [Mike Nerone]
1665
1666     - Enable SSL certificate verification by default and throw an exception
1667       if CA certificate files cannot be found. This can be overridden by
1668       setting libcloud.security.VERIFY_SSL_CERT_STRICT to False.
1669       [Tomaz Muraus]
1670
1671   *) Compute:
1672
1673      - Support for 1.1 API and many other improvements in the OpenStack driver ;
1674        LIBCLOUD-83
1675        [Mike Nerone, Paul Querna, Brad Morgan, Tomaz Muraus]
1676
1677      - Add some extra methods to the Gandi.net driver (LIBCLOUD-115)
1678        [Aymeric Barantal]
1679
1680      - Add ex_delete_image method to the Rackspace driver. (GITHUB-27)
1681        [David Busby]
1682
1683      - Linode driver now supports new 'Japan' location
1684        [Jed Smith]
1685
1686      - Rackspace driver now inherits from the OpenStack one instead of doing
1687        it vice versa. (LIBCLOUD-110)
1688        [Mike Nerone]
1689
1690      - Properly populate NodeImage "details" dictionary in the Rackspace
1691        compute driver. (LIBCLOUD-107)
1692        [Lucy Mendel]
1693
1694      - Fix a bug in Eucalyptus driver ex_describe_addresses method.
1695        [Tomaz Muraus]
1696
1697      - Add the following new extenstion methods to the Rackspace driver:
1698        ex_resize, ex_confirm_resize, ex_revert_resize.
1699        [Tomaz Muraus]
1700
1701      - Also allow user to pass in Node object to some ex_ methods in
1702        the Rackspace compute driver.
1703        [Tomaz Muraus]
1704
1705      - Throw an exception in deploy_node if paramiko library is not
1706        available
1707        [Tomaz Muraus]
1708
1709      - Fix chmod argument value which is pased to the sftpclient.put
1710        method; GITHUB-17
1711        [John Carr]
1712
1713      - New driver for Ninefold.com. (LIBCLOUD-98)
1714        [Benno Rice]
1715
1716   *) Storage:
1717
1718      - New driver for Google Storage based on the v1.0 / legacy API
1719        [Tomaz Muraus]
1720
1721      - New driver for Ninefold.com. (GITHUB-19)
1722        [Benno Rice]
1723
1724      - Fix a bug in uploading an object with some versions of Python 2.7
1725        where httplib library doesn't automatically call str() on the
1726        header values.
1727        [Tomaz Muraus]
1728
1729      - Allow users to upload (create) 0-bytes large (empty) objects
1730        [Tomaz Muraus]
1731
1732   *) Load-balancer:
1733
1734      - New driver for Rackspace UK location
1735        [Tomaz Muraus]
1736
1737      - New driver for Ninefold.com. (LIBCLOUD-98)
1738        [Benno Rice]
1739
1740   *) DNS:
1741
1742    - Drivers for Linode DNS and Zerigo DNS
1743      [Tomaz Muraus]
1744
1745    - Brand new DNS API!
1746      [Tomaz Muraus]
1747
1748 Changes with Apache Libcloud 0.5.2
1749
1750   *) Compute:
1751      - New driver for serverlove.com and skalicloud.com
1752        [Tomaz Muraus]
1753
1754      - Fix node name and tag handling in the Amazon EC2 driver
1755        [Wiktor Kolodziej]
1756
1757      - Fix pricing and response handling in the OpenStack driver
1758        [Andrey Zhuchkov]
1759
1760      - Fix deploy_node() method and make it more robust
1761        [Tomaz Muraus]
1762
1763      - Users can now pass file like objects to ScriptDeployment and
1764        SSHKeyDeployment constructor.
1765        [Tomaz Muraus]
1766
1767      - Include node tags when calling list_nodes() in the Amazon EC2
1768        driver
1769        [Trevor Pounds]
1770
1771      - Properly handle response errors in the Rackspace driver and
1772        only throw InvalidCredsError if the returned status code is 401
1773        [Brad Morgan]
1774
1775      - Fix the create_node method in the Nimbus driver and make the
1776        "ex_create_tag" method a no-op, because Nimbus doesn't support creating
1777        tags.
1778        [Tomaz Muraus]
1779
1780     *) Storage:
1781
1782      - Fix handling of the containers with a lot of objects. Now a LazyList
1783        object is returned when user calls list_container_objects() method
1784        and this object transparently handles pagination.
1785      [Danny Clark, Wiktor Kolodziej]
1786
1787 Changes with Apache Libcloud 0.5.0
1788
1789     *) Existing APIs directly on the libcloud.* module have been
1790        deprecated and will be removed in version 0.6.0.  Most methods
1791        were moved to the libcloud.compute.* module.
1792
1793     *) Add new libcloud.loadbalancers API, with initial support for:
1794         - GoGrid Load Balancers
1795         - Rackspace Load Balancers
1796       [Roman Bogorodskiy]
1797
1798     *) Add new libcloud.storage API, with initial support for:
1799         - Amazon S3
1800         - Rackspace CloudFiles
1801        [Tomaz Muraus]
1802
1803     *) Add new libcloud.compute drivers for:
1804         - Bluebox [Christian Paredes]
1805         - Gandi.net [Aymeric Barantal]
1806         - Nimbus [David LaBissoniere]
1807         - OpenStack [Roman Bogorodskiy]
1808         - Opsource.net [Joe Miller]
1809
1810     *) Added "pricing" module and improved pricing handling.
1811        [Tomaz Muraus]
1812
1813     *) Updates to the GoGrid compute driver:
1814         - Use API version 1.0.
1815         - Remove sandbox flag.
1816         - Add ex_list_ips() to list IP addresses assigned to the account.
1817         - Implement ex_edit_image method which allows changing image attributes
1818           like name, description and make image public or private.
1819        [Roman Bogorodskiy]
1820
1821     *) Updates to the Amazon EC2 compute driver:
1822         - When creating a Node, use the name argument to set a Tag with the
1823           value.  [Tomaz Muraus]
1824         - Add extension method for modifying node attributes and changing the
1825           node size. [Tomaz Muraus]
1826         - Add support for the new Amazon Region (Tokyo). [Tomaz Muraus]
1827         - Added ex_create_tags and ex_delete_tags. [Brandon Rhodes]
1828         - Include node Elastic IP addresses in the node public_ip attribute
1829           for the EC2 nodes. [Tomaz Muraus]
1830         - Use ipAddress and privateIpAddress attribute for the EC 2node public
1831           and private ip. [Tomaz Muraus]
1832         - Add ex_describe_addresses method to the EC2 driver. [Tomaz Muraus]
1833
1834     *) Updates to the Rackspace CloudServers compute driver:
1835         - Add ex_rebuild() and ex_get_node_details() [Andrew Klochkov]
1836         - Expose URI of a Rackspace node to the node meta data. [Paul Querna]
1837
1838     *) Minor fixes to get the library and tests working on Python 2.7 and PyPy.
1839        [Tomaz Muraus]
1840
1841 Changes with Apache Libcloud 0.4.2 (Released January 18, 2011)
1842
1843     *) Fix EC2 create_node to become backward compatible for
1844        NodeLocation.
1845        [Tomaž Muraus]
1846
1847     *) Update code for compatibility with CPython 2.5
1848        [Jerry Chen]
1849
1850     *) Implement ex_edit_node method for GoGrid driver which allows
1851        changing node attributes like amount of RAM or description.
1852        [Roman Bogorodskiy]
1853
1854     *) Add ex_set_password and ex_set_server_name to Rackspace driver.
1855        [Peter Herndon, Paul Querna]
1856
1857     *) Add Hard and Soft reboot methods to Rackspace driver.
1858        [Peter Herndon]
1859
1860     *) EC2 Driver availability zones, via ex_list_availability_zones;
1861        list_locations rewrite to include availablity zones
1862        [Tomaž Muraus]
1863
1864     *) EC2 Driver Idempotency capability in create_node; LIBCLOUD-69
1865        [David LaBissoniere]
1866
1867     *) SSL Certificate Name Verification:
1868        - libcloud.security module
1869        - LibcloudHTTPSConnection, LibcloudHTTPConnection (alias)
1870        - Emits warning when not verifying, or CA certs not found
1871
1872     *) Append ORD1 to available Rackspace location, but keep in the
1873        same node as DFW1, because it's not readable or writeable from
1874        the API.
1875        [Per suggestion of Grig Gheorghiu]
1876
1877     *) ex_create_ip_group, ex_list_ip_groups, ex_delete_ip_group,
1878        ex_share_ip, ex_unshare_ip, ex_list_ip_addresses additions
1879        to Rackspace driver
1880        [Andrew Klochkov]
1881
1882     *) New driver for CloudSigma.
1883        [Tomaž Muraus]
1884
1885     *) New driver for Brightbox Cloud. (LIBCLOUD-63)
1886        [Tim Fletcher]
1887
1888     *) Deployment capability to ElasticHosts
1889        [Tomaž Muraus]
1890
1891     *) Allow deploy_node to use non-standard SSH username and port
1892        [Tomaž Muraus]
1893
1894     *) Added Rackspace UK (London) support
1895        [Chmouel Boudjnah]
1896
1897     *) GoGrid driver: add support for locations, i.e. listing
1898        of locations and creation of a node in specified
1899        location
1900        [Roman Bogorodskiy]
1901
1902     *) GoGrid and Rackspace drivers: add ex_save_image() extra
1903        call to convert running node to an image
1904        [Roman Bogorodskiy]
1905
1906     *) GoGrid driver: add support for creating 'sandbox' server
1907        and populate isSandbox flag in node's extra information.
1908        [Roman Bogorodskiy]
1909
1910     *) Add ImportKeyPair and DescribeKeyPair to EC2. (LIBCLOUD-62)
1911        [Philip Schwartz]
1912
1913     *) Update EC2 driver and test fixtures for new API.
1914        [Philip Schwartz]
1915
1916 Changes with Apache Libcloud 0.4.0 [Released October 6, 2010]
1917
1918     *) Add create keypair functionality to EC2 Drivers. (LIBCLOUD-57)
1919        [Grig Gheorghiu]
1920
1921     *) Improve handling of GoGrid accounts with limited access
1922        API keys. [Paul Querna]
1923
1924     *) New Driver for ElasticHosts. (LIBCLOUD-45)
1925        [Tomaz Muraus]
1926
1927     *) Use more consistent name for GoGrid driver and use http
1928        POST method for 'unsafe' operations
1929        [Russell Haering]
1930
1931     *) Implement password handling and add deployment support
1932        for GoGrid nodes.
1933        [Roman Bogorodskiy]
1934
1935     *) Fix behavior of GoGrid's create_node to wait for a Node ID.
1936        [Roman Bogorodskiy]
1937
1938     *) Add ex_create_node_nowait to GoGrid driver if you don't need to
1939        wait for a Node ID when creating a node.
1940        [Roman Bogorodskiy]
1941
1942     *) Removed libcloud.interfaces module.
1943        [Paul Querna]
1944
1945     *) Removed dependency on zope.interfaces.
1946        [Paul Querna]
1947
1948     *) RimuHosting moved API endpoint address.
1949        [Paul Querna]
1950
1951     *) Fix regression and error in GoGrid driver for parsing node objects.
1952        [Roman Bogorodskiy]
1953
1954     *) Added more test cases for GoGrid driver. (LIBCLOUD-34)
1955        [Roman Bogorodskiy, Jerry Chen]
1956
1957     *) Fix parsing of Slicehost nodes with multiple Public IP addresses.
1958        [Paul Querna]
1959
1960     *) Add exit_status to ScriptDeployment. (LIBCLOUD-36)
1961        [Paul Querna]
1962
1963     *) Update prices for several drivers.
1964        [Brad Morgan, Paul Querna]
1965
1966     *) Update Linode driver to reflect new plan sizes.
1967        [Jed Smith]
1968
1969     *) Change default of 'location' in Linode create_node. (LIBCLOUD-41)
1970        [Jed Smith, Steve Steiner]
1971
1972     *) Document the Linode driver.
1973        [Jed Smith]
1974
1975     *) Request a private, LAN IP address at Linode creation.
1976        [Jed Smith]
1977
1978 Changes with Apache Libcloud 0.3.1 [Released May 11, 2010]
1979
1980     *) Updates to Apache License blocks to correctly reflect status as an
1981        Apache Project.
1982
1983     *) Fix NOTICE file to use 2010 copyright date.
1984
1985     *) Improve error messages for when running the test cases without
1986        first setting up a secrets.py
1987
1988 Changes with Apache Libcloud 0.3.0 [Tagged May 6, 2010, not released]
1989
1990     *) New Drivers for:
1991       - Dreamhost
1992       - Eucalyptus
1993       - Enomaly ECP
1994       - IBM Developer Cloud
1995       - OpenNebula
1996       - SoftLayer
1997
1998     *) Added new deployment and bootstrap API.
1999
2000     *) Improved Voxel driver.
2001
2002     *) Added support for Amazon EC2 Asia Pacific (Singapore) Region.
2003
2004     *) Improved test coverage for all drivers.
2005
2006     *) Add support for multiple security groups in EC2.
2007
2008     *) Fixed bug in Rackspace and RimuHosting when using multiple threads.
2009
2010     *) Improved debugging and logging of HTTP requests.
2011
2012     *) Improved documentation for all classes and methods.
2013
2014 Changes with Apache Libcloud 0.2.0 [Tagged February 2, 2010]
2015
2016     *) First public release.