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