deltacloud-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eoghan Glynn <>
Subject v1.1 openstack compute API
Date Thu, 26 Jan 2012 11:15:41 GMT

Hi Folks,

Following on from this recently filed JIRA[1], here are some pointers
on the changes needed to update the deltacloud openstack driver to use
the v1.1 openstack compute API as opposed to the 1.0, largely cloudservers-
based, version.

(Note that the v1.1 is effectively synonymous with v2.0, and the
implementation redirects from the former to the latter. I use v1.1
just to reflect the current state of the docco.)

The main focal points of the v1.1 changes were intended to be:

- IPv6 support (version attribute in representation, e.g.
  <ip version="6" addr="::babe:"/> or
  { "version" : 4, "addr" : "" })

- migration from rackspace to openstack namespace (and replacing
  cloudservers-originated naming with more generic alternatives,
  e.g. CloudServersAPIFault -> ComputeAPIFault)

- support for an API extensions mechanism to allow new features to be
  added to the API without breaking existing clients[2]

There were other more-fine-grained changes too, for example:

- version negotiation is now based on either decorating the
  Content-Type with a version parameter, or else URI-embedded version
  specifiers as before

- identifiers generally changed from IDs to hrefs, renamed *Id to *Ref,
  for example:
    create_server(..., :imageId => 2, :flavorId => 3)
    create_server(..., :imageRef => 'http://addr/v1.1/images/2',
                       :flavorRef => 'http://addr/v1.1/flavors/3') 

- standard set of query parameters to filter server, image, flavour
- inclusion of self, bookmark, and alternate link in representations

- the pagination mechanism for large collections is slightly different,
  using a marker as opposed to an offset parameter as a cursor into the

- the limits (user quotas) representation has had minor modifications

- rationalization of server states *may* have some minor impact on the
  deltacloud instance state machine implementation 

- direct access to server and image metadata, via /{server|image}/id/meta

But I'd suspect that a high-level meta-API like deltacloud won't 
neccesarily be impacted by all such changes.

>From an implementation point-of-view, the deltacloud openstack driver
currently depends indirectly on the cloudservers gem - this dependency
would have to be replaced by the openstack-compute gem [3].

The WADL documents (v1.0: [4], v1.1: [5]) for each version give a 
somewhat terse overview of the APIs. More verbose descriptions of the
API are also available on (v1.0: [6], v1.1: [7]).



View raw message