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