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