Tag 0.8.0 release
[libcloud.git] / CHANGES
1                                    -*- coding: utf-8 -*-
2
3 Changes with Apache Libcloud 0.8.0:
4
5   *) General:
6
7      - Add 'request_kwargs' argument to the get_poll_request_kwargs method.
8        This argument contains kwargs which were previously used to initiate the
9        poll request.
10        [Mark Everett]
11
12      - Add support for handling compressed responses (deflate, gzip). Also send
13        "Accept-Encoding" "gzip,deflate" header with all the requests.
14        [Tomaz Muraus]
15
16      - Fix debug module (LIBCLOUD_DEBUG env variable) so it works with Python 3
17        [Tomaz Muraus]
18
19   *) Compute:
20
21      - Added support for retrieving OpenNebula v3.2 instance types, OpenNebula
22        v3.0 network Public attribute support, and additional code coverage
23        tests.
24        [Hutson Betts]
25
26      - Add implementation for ex_save_image method to the OpenStack 1.1 driver.
27        [Shawn Smith]
28
29      - Add support for Amazon new South America (Sao Paulo) location.
30        [Tomaz Muraus]
31
32      - Fix a bug in OpenStack driver when 2.0_apikey or 2.0_password
33        'auth_version' is used.
34        [Tomaz Muraus]
35
36      - Current OpenNebula OCCI implementation does not support a proper
37        restart method. Rather it suspends and resumes. Therefore, restart_node
38        has been removed from the OpenNebula driver.
39        [Hutson Betts]
40
41      - Enable ex_delete_image method in the OpenStack 1.1 driver.
42        [Shawn Smith]
43
44      - Return NodeImage instance in OpenStack 1.1 driver ex_save_image method 
45        ; LIBCLOUD-138
46        [Shawn Smith]
47
48      - Enable reboot_node method in the OpenNebula 3.2 driver.
49        [Hutson Betts]
50
51      - Fix a public_ips Node variable assignment in the Gandi.net driver.
52        [Aymeric Barantal]
53
54      - Updated the list of node states for OpenNebula drivers. ; LIBCLOUD-148
55        [Hutson Betts]
56
57   *) Storage:
58
59     - Propagate extra keyword arguments passed to the Rackspace driver
60       connection class.
61       [Dave King]
62
63   *) Load-balancer:
64
65     - Add 'extra' attribute to the LoadBalancer object and retrieve all the
66       virtual IP addresses in the Rackspace driver.
67       [Dave King]
68
69     - Add list_supported_algorithms() method to the base LoadBalancer class.
70       This method returns a list of supported algorithms by the provider.
71       [Dave King]
72
73     - Update Rackspace driver:
74       - Add two new supported algorithms: WEIGHTED_ROUND_ROBIN,
75         WEIGHTED_LEAST_CONNECTIONS
76       - Add ex_list_algorithm_names method
77       - Add ex_get_balancer_error_page method
78       - Add ex_balancer_access_list method
79       - Populate LoadBalancer extra dictionary with more attributes
80       - Add support for health monitors and connection throttling
81       - Add more balancer states
82       - ex_list_protocols_with_default_ports
83       [Dave King]
84
85     - Propagate extra keyword arguments passed to the Rackspace driver
86       connection class.
87       [Dave King]
88
89     - Add 'extra' attribute to the Member object and populate it in
90       the Rackspace driver.
91       [Mark Everett]
92
93     - Adds status to the Member object and conditions an 'enum'
94       (Rackspace driver).
95       [Mark Everett]
96
97     - Add update_balancer method to the base LoadBalancer class.
98       [Mark Everett]
99
100     - Add update_balancer method to the Rackspace driver.
101       [Mark Everett]
102
103     - Add created and updated attribute to the LoadBalancer extra dictionary in
104       the Rackspace driver.
105       [Mark Everett]
106
107     - Fix protocol name maping in the Rackspace driver.
108       [Bill Woodward]
109
110 Changes with Apache Libcloud 0.7.1:
111
112   *) General:
113
114      - Fix a minor bug in debug mode (LIBCLOUD_DEBUG=/dev/stderr) which has been
115        introduced when adding Python 3 compatibility layer.
116        [Paul Querna]
117
118      - Update OpenStack Auth API endpoint paths.
119        [Paul Querna]
120
121 Changes with Apache Libcloud 0.7.0:
122
123   *) General:
124
125      - Add support for Python 3.x.
126        [Tomaz Muraus]
127
128      - Remove old deprecated paths.
129        [Tomaz Muraus]
130
131   *) Compute:
132
133      - Update CloudSigma Zurich API endpoint address.
134        [Tomaz Muraus]
135
136      - Add new US Las Vegas endpoint to CloudSigma driver (types.CLOUDSIGMA_US)
137        [Tomaz Muraus]
138
139      - Allow user to specify drive type (hdd, ssd) when creating a
140        CloudSigma server.
141
142        Note 'ssd' drive_type doesn't work with the API yet.
143        [Tomaz Muraus]
144
145      - Update OpenStack 1.1 driver to comply with the API specs. Need to make
146        another call to retrieve node name and ip addresses when creating a node,
147        because the first call only returns an id an the password. ; GITHUB-40
148        [Dave King]
149
150      - Add ex_node_ids argument to the EC2 driver list_nodes method. ;
151        GITHUB-39
152        [Suvish Vt]
153
154      - If OpenStack Auth 2.0 API is used, also parse out tenant id and
155        name and save it on the connection class (conn.tenant['id'],
156        conn.tenant['name']).
157        [Tomaz Muraus]
158
159      - Add new "Cluster Compute Eight Extra Large" size to the Amazon EC2
160        driver.
161        [Tomaz Muraus]
162
163      - Add the following extension methods to the EC2 compute driver:
164        ex_describe_all_addresses, ex_associate_addresses, ex_start_node,
165        ex_stop_node.
166        [Suvish Vt]
167
168      - Change public_ip and private_ip attribute on the Node object to the
169        public_ips and private_ips since both of the objects are always a list.
170
171        Note: For backward compatibility you can still access public_ip and
172        private_ip attributes, but this will be removed in the next release.
173        [Tomaz Muraus]
174
175      - Fix an inconsistency in IBM SBC driver and make sure public_ips and
176        private_ips attributes are a list.
177        [Tomaz Muraus]
178
179      - Fix an inconsistency in OpSource driver and make sure public_ips is an
180        empty list ([]), not 'unknown'
181        [Tomaz Muraus]
182
183      - Updated support for OpenNebula.org v1.4, v2.x, and v3.x APIs and included
184        additional compute tests validating functionality; LIBCLOUD-121
185        [Hutson Betts]
186
187   *) Load-balancer:
188
189     - Add ex_member_address argument to the Rackspace driver list_balancers
190       method. If this argument is provided, only loadbalancers which have a
191       member with the provided IP address attached are returned.
192       [Tomaz Muraus]
193
194 Changes with Apache Libcloud 0.6.2:
195
196   *) General
197
198      - Fix a bug in PollingConnection class - actually use and don't ignore
199        the poll_interval
200        [Tomaz Muraus]
201
202   *) Compute:
203
204      - Add support for Auth 2.0 API (keystone) to the OpenStack Auth
205        connection class.
206        [Brad Morgan]
207
208      - Add list_locations method to the OpenStack driver and fix some
209        inconsistencies in the OpenStack driver extension method signatures.
210        [Brad Morgan]
211
212      - Update Amazon EC2 driver and pricing data to support a new region -
213        US West 2 (Oregon)
214        [Tomaz Muraus]
215
216      - Expose 'CLOUDSTACK' provider. This driver can be used with an
217        arbitrary CloudStack installation.
218        [Tomaz Muraus]
219
220   *) Storage:
221
222      - Update Amazon S3 driver to support a new region - US West 2 (Oregon)
223        [Tomaz Muraus]
224
225    *) DNS:
226
227       - Increase the default poll interval in the Rackspace driver to 2.5
228         seconds.
229         [Tomaz Muraus]
230
231       - Fix a bug in Rackspace Cloud DNS driver and make sure to throw an
232         exception if an unexpected status code is returned. Reported by
233         "jeblair".
234         [Tomaz Muraus]
235
236 Changes with Apache Libcloud 0.6.1:
237
238   *) General:
239
240      - Modify ParamikoSSHClient.connect so it supports authentication using a
241        key file ; LIBCLOUD-116
242        [Jay Doane]
243
244      - User must now explicitly specify a path when using LIBCLOUD_DEBUG
245        environment variable ; LIBCLOUD-95.
246        [daveb, Tomaz Muraus]
247
248      - Add new XmlResponse and JsonResponse base class and modify all the
249        driver-specific response classes to inherit from one of those two
250        classes where applicable.
251        [Caio Romão]
252
253      - Add new 'PollingConnection' class. This class can work with 'async'
254        APIs. It sends and an initial request and then periodically poll the API
255        until the job has completed or a timeout has been reached.
256        [Tomaz Muraus]
257
258   *) Compute:
259
260      - Add 24GB size to the GoGrid driver
261        [Roman Bogorodskiy]
262
263      - Fix API endpoint URL in the Softlayer driver
264        [Tomaz Muraus]
265
266      - Add support for OpenNebula 3.0 API ; LIBCLOUD-120
267        [Hutson Betts]
268
269      - Add more attributes to the extra dictionary in the EC2 driver ;
270        GITHUB-31
271        [Juan Carlos Moreno]
272
273      - Fix IP address assignment in the EC2 driver. Don't include "None" in the
274        public_ip and private_ip Node list attribute.
275        [Tomaz Muraus]
276
277      - Make deploy_node functionality more robust and don't start deployment if
278        node public_ip attribute is an empty list.
279        [Tomaz Muraus]
280
281      - Support SSH key authentication when using deploy_node.
282        [Russell Haering, Tomaz Muraus]
283
284      - Enable deploy_node functionality in the EC2 driver using SSH key
285        authentication
286        [Russell Haering, Tomaz Muraus]
287
288      - Enable paramiko library debug log level if LIBCLOUD_DEBUG is used and
289        paramiko is installed.
290        [Tomaz Muraus]
291
292      - Fix the request signature generation in the base EC2 compute driver.
293        If the endpoint is using a non-standard port (Eucalyptus based
294        installations), append it to the hostname used to generate the
295        signature.
296        [Simon Delamare]
297
298      - Add new "unavailable" state to the BrightboxNodeDriver class.
299        [Tim Fletcher]
300
301      - Increase a PollingConnection timeout in the CloudStack connection
302        and fix the context dictionary creation in the _async_request method.
303        [gigimon]
304
305      - Fix networks retrieval in the CloudStack driver create_node method.
306        Also only pass 'networkids' field to the API if there are any networks
307        available.
308        [gigimon, Tomaz Muraus]
309
310      - Fix list_nodes in the CloudStack driver. Private IPs aren't always
311        available.
312        [Tomaz Muraus]
313
314   *) Load-baancer:
315
316      - Add a missing argument to the method call inside
317        LoadBalancer.attach_compute_node and Driver.balancer_attach_compute_node.
318        [Tim Fletcher, Tomaz Muraus]
319
320      - Add missing destroy() method to the LoadBalancer class.
321        [Tomaz Muraus]
322
323   *) DNS:
324
325      - New drivers for Rackspace Cloud DNS (US and UK region)
326        [Tomaz Muraus]
327
328      - Add list_record_types() method. This method returns a list of record
329        types supported by the provider.
330        [Tomaz Muraus]
331
332 Changes with Apache Libcloud 0.6.0-beta1
333
334   *) General:
335
336     - All the driver classes now inherit from the BaseDriver class
337       [Tomaz Muraus]
338
339     - Prefer simplejson (if available) over json module; LIBCLOUD-112
340       [Geoff Greer]
341
342     - Update compute demo and change the syntax of test credentials stored in
343       test/secrets.py-dist ; LIBCLOUD-111
344       [Mike Nerone]
345
346     - Enable SSL certificate verification by default and throw an exception
347       if CA certificate files cannot be found. This can be overridden by
348       setting libcloud.security.VERIFY_SSL_CERT_STRICT to False.
349       [Tomaz Muraus]
350
351   *) Compute:
352
353      - Support for 1.1 API and many other improvements in the OpenStack driver ;
354        LIBCLOUD-83
355        [Mike Nerone, Paul Querna, Brad Morgan, Tomaz Muraus]
356
357      - Add some extra methods to the Gandi.net driver ; LIBCLOUD-115
358        [Aymeric Barantal]
359
360      - Add ex_delete_image method to the Rackspace driver ; GITHUB-27
361        [David Busby]
362
363      - Linode driver now supports new 'Japan' location
364        [Jed Smith]
365
366      - Rackspace driver now inherits from the OpenStack one instead of doing
367        it vice versa.; LIBCLOUD-110
368        [Mike Nerone]
369
370      - Properly populate NodeImage "details" dictionary in the Rackspace
371        compute driver.; LIBCLOUD-107
372        [Lucy Mendel]
373
374      - Fix a bug in Eucalyptus driver ex_describe_addresses method.
375        [Tomaz Muraus]
376
377      - Add the following new extenstion methods to the Rackspace driver:
378        ex_resize, ex_confirm_resize, ex_revert_resize.
379        [Tomaz Muraus]
380
381      - Also allow user to pass in Node object to some ex_ methods in
382        the Rackspace compute driver.
383        [Tomaz Muraus]
384
385      - Throw an exception in deploy_node if paramiko library is not
386        available
387        [Tomaz Muraus]
388
389      - Fix chmod argument value which is pased to the sftpclient.put
390        method; GITHUB-17
391        [John Carr]
392
393      - New driver for Ninefold.com; LIBCLOUD-98
394        [Benno Rice]
395
396   *) Storage:
397
398      - New driver for Google Storage based on the v1.0 / legacy API
399        [Tomaz Muraus]
400
401      - New driver for Ninefold.com; GITHUB-19
402        [Benno Rice]
403
404      - Fix a bug in uploading an object with some versions of Python 2.7
405        where httplib library doesn't automatically call str() on the
406        header values.
407        [Tomaz Muraus]
408
409      - Allow users to upload (create) 0-bytes large (empty) objects
410        [Tomaz Muraus]
411
412   *) Load-balancer:
413
414      - New driver for Rackspace UK location
415        [Tomaz Muraus]
416
417      - New driver for Ninefold.com; LIBCLOUD-98
418        [Benno Rice]
419
420   *) DNS:
421
422    - Drivers for Linode DNS and Zerigo DNS
423      [Tomaz Muraus]
424
425    - Brand new DNS API!
426      [Tomaz Muraus]
427
428 Changes with Apache Libcloud 0.5.2
429
430   *) Compute:
431      - New driver for serverlove.com and skalicloud.com
432        [Tomaz Muraus]
433
434      - Fix node name and tag handling in the Amazon EC2 driver
435        [Wiktor Kolodziej]
436
437      - Fix pricing and response handling in the OpenStack driver
438        [Andrey Zhuchkov]
439
440      - Fix deploy_node() method and make it more robust
441        [Tomaz Muraus]
442
443      - Users can now pass file like objects to ScriptDeployment and
444        SSHKeyDeployment constructor.
445        [Tomaz Muraus]
446
447      - Include node tags when calling list_nodes() in the Amazon EC2
448        driver
449        [Trevor Pounds]
450
451      - Properly handle response errors in the Rackspace driver and
452        only throw InvalidCredsError if the returned status code is 401
453        [Brad Morgan]
454
455      - Fix the create_node method in the Nimbus driver and make the
456        "ex_create_tag" method a no-op, because Nimbus doesn't support creating
457        tags.
458        [Tomaz Muraus]
459
460     *) Storage:
461
462        - Fix handling of the containers with a lot of objects. Now a LazyList
463          object is returned when user calls list_container_objects() method
464          and this object transparently handles pagination.
465        [Danny Clark, Wiktor Kolodziej]
466
467 Changes with Apache Libcloud 0.5.0
468
469     *) Existing APIs directly on the libcloud.* module have been
470        deprecated and will be removed in version 0.6.0.  Most methods
471        were moved to the libcloud.compute.* module.
472
473     *) Add new libcloud.loadbalancers API, with initial support for:
474         - GoGrid Load Balancers
475         - Rackspace Load Balancers
476       [Roman Bogorodskiy]
477
478     *) Add new libcloud.storage API, with initial support for:
479         - Amazon S3
480         - Rackspace CloudFiles
481        [Tomaz Muraus]
482
483     *) Add new libcloud.compute drivers for:
484         - Bluebox [Christian Paredes]
485         - Gandi.net [Aymeric Barantal]
486         - Nimbus [David LaBissoniere]
487         - OpenStack [Roman Bogorodskiy]
488         - Opsource.net [Joe Miller]
489
490     *) Added "pricing" module and improved pricing handling.
491        [Tomaz Muraus]
492
493     *) Updates to the GoGrid compute driver:
494         - Use API version 1.0.
495         - Remove sandbox flag.
496         - Add ex_list_ips() to list IP addresses assigned to the account.
497         - Implement ex_edit_image method which allows changing image attributes
498           like name, description and make image public or private.
499        [Roman Bogorodskiy]
500
501     *) Updates to the Amazon EC2 compute driver:
502         - When creating a Node, use the name argument to set a Tag with the
503           value.  [Tomaz Muraus]
504         - Add extension method for modifying node attributes and changing the
505           node size. [Tomaz Muraus]
506         - Add support for the new Amazon Region (Tokyo). [Tomaz Muraus]
507         - Added ex_create_tags and ex_delete_tags. [Brandon Rhodes]
508         - Include node Elastic IP addresses in the node public_ip attribute
509           for the EC2 nodes. [Tomaz Muraus]
510         - Use ipAddress and privateIpAddress attribute for the EC 2node public
511           and private ip. [Tomaz Muraus]
512         - Add ex_describe_addresses method to the EC2 driver. [Tomaz Muraus]
513
514     *) Updates to the Rackspace CloudServers compute driver:
515         - Add ex_rebuild() and ex_get_node_details() [Andrew Klochkov]
516         - Expose URI of a Rackspace node to the node meta data. [Paul Querna]
517
518     *) Minor fixes to get the library and tests working on Python 2.7 and PyPy.
519        [Tomaz Muraus]
520
521 Changes with Apache Libcloud 0.4.2 (Released January 18, 2011)
522
523     *) Fix EC2 create_node to become backward compatible for
524        NodeLocation.
525        [Tomaž Muraus]
526
527     *) Update code for compatibility with CPython 2.5
528        [Jerry Chen]
529
530     *) Implement ex_edit_node method for GoGrid driver which allows
531        changing node attributes like amount of RAM or description.
532        [Roman Bogorodskiy]
533
534     *) Add ex_set_password and ex_set_server_name to Rackspace driver.
535        [Peter Herndon, Paul Querna]
536
537     *) Add Hard and Soft reboot methods to Rackspace driver.
538        [Peter Herndon]
539
540     *) EC2 Driver availability zones, via ex_list_availability_zones;
541        list_locations rewrite to include availablity zones
542        [Tomaž Muraus]
543
544     *) EC2 Driver Idempotency capability in create_node; LIBCLOUD-69
545        [David LaBissoniere]
546
547     *) SSL Certificate Name Verification:
548        - libcloud.security module
549        - LibcloudHTTPSConnection, LibcloudHTTPConnection (alias)
550        - Emits warning when not verifying, or CA certs not found
551
552     *) Append ORD1 to available Rackspace location, but keep in the
553        same node as DFW1, because it's not readable or writeable from
554        the API.
555        [Per suggestion of Grig Gheorghiu]
556
557     *) ex_create_ip_group, ex_list_ip_groups, ex_delete_ip_group,
558        ex_share_ip, ex_unshare_ip, ex_list_ip_addresses additions
559        to Rackspace driver
560        [Andrew Klochkov]
561
562     *) New driver for CloudSigma
563        [Tomaž Muraus]
564
565     *) New driver for Brightbox Cloud. LIBCLOUD-63
566        [Tim Fletcher]
567
568     *) Deployment capability to ElasticHosts
569        [Tomaž Muraus]
570
571     *) Allow deploy_node to use non-standard SSH username and port
572        [Tomaž Muraus]
573
574     *) Added Rackspace UK (London) support
575        [Chmouel Boudjnah]
576
577     *) GoGrid driver: add support for locations, i.e. listing
578        of locations and creation of a node in specified
579        location
580        [Roman Bogorodskiy]
581
582     *) GoGrid and Rackspace drivers: add ex_save_image() extra
583        call to convert running node to an image
584        [Roman Bogorodskiy]
585
586     *) GoGrid driver: add support for creating 'sandbox' server
587        and populate isSandbox flag in node's extra information.
588        [Roman Bogorodskiy]
589
590     *) Add ImportKeyPair and DescribeKeyPair to EC2. LIBCLOUD-62
591        [Philip Schwartz]
592
593     *) Update EC2 driver and test fixtures for new API.
594        [Philip Schwartz]
595
596 Changes with Apache Libcloud 0.4.0 [Released October 6, 2010]
597
598     *) Add create keypair functionality to EC2 Drivers. LIBCLOUD-57
599        [Grig Gheorghiu]
600
601     *) Improve handling of GoGrid accounts with limited access
602        API keys. [Paul Querna]
603
604     *) New Driver for ElasticHosts. LIBCLOUD-45
605        [Tomaz Muraus]
606
607     *) Use more consistent name for GoGrid driver and use http
608        POST method for 'unsafe' operations
609        [Russell Haering]
610
611     *) Implement password handling and add deployment support
612        for GoGrid nodes.
613        [Roman Bogorodskiy]
614
615     *) Fix behavior of GoGrid's create_node to wait for a Node ID.
616        [Roman Bogorodskiy]
617
618     *) Add ex_create_node_nowait to GoGrid driver if you don't need to
619        wait for a Node ID when creating a node.
620        [Roman Bogorodskiy]
621
622     *) Removed libcloud.interfaces module.
623        [Paul Querna]
624
625     *) Removed dependency on zope.interfaces.
626        [Paul Querna]
627
628     *) RimuHosting moved API endpoint address.
629        [Paul Querna]
630
631     *) Fix regression and error in GoGrid driver for parsing node objects.
632        [Roman Bogorodskiy]
633
634     *) Added more test cases for GoGrid driver. LIBCLOUD-34
635        [Roman Bogorodskiy, Jerry Chen]
636
637     *) Fix parsing of Slicehost nodes with multiple Public IP addresses.
638        [Paul Querna]
639
640     *) Add exit_status to ScriptDeployment. LIBCLOUD-36
641        [Paul Querna]
642
643     *) Update prices for several drivers.
644        [Brad Morgan, Paul Querna]
645
646     *) Update Linode driver to reflect new plan sizes.
647        [Jed Smith]
648
649     *) Change default of 'location' in Linode create_node. LIBCLOUD-41
650        [Jed Smith, Steve Steiner]
651
652     *) Document the Linode driver.
653        [Jed Smith]
654
655     *) Request a private, LAN IP address at Linode creation.
656        [Jed Smith]
657
658 Changes with Apache Libcloud 0.3.1 [Released May 11, 2010]
659
660     *) Updates to Apache License blocks to correctly reflect status as an
661        Apache Project.
662
663     *) Fix NOTICE file to use 2010 copyright date.
664
665     *) Improve error messages for when running the test cases without
666        first setting up a secrets.py
667
668 Changes with Apache Libcloud 0.3.0 [Tagged May 6, 2010, not released]
669
670     *) New Drivers for:
671       - Dreamhost
672       - Eucalyptus
673       - Enomaly ECP
674       - IBM Developer Cloud
675       - OpenNebula
676       - SoftLayer
677
678     *) Added new deployment and bootstrap API.
679
680     *) Improved Voxel driver.
681
682     *) Added support for Amazon EC2 Asia Pacific (Singapore) Region.
683
684     *) Improved test coverage for all drivers.
685
686     *) Add support for multiple security groups in EC2.
687
688     *) Fixed bug in Rackspace and RimuHosting when using multiple threads.
689
690     *) Improved debugging and logging of HTTP requests.
691
692     *) Improved documentation for all classes and methods.
693
694 Changes with Apache Libcloud 0.2.0 [Tagged February 2, 2010]
695
696     *) First public release.