On Fri, Nov 02, 2012 at 11:35:44AM +0200, [email protected] wrote:
> Hi Ian:
> 
> On 01/11/12 22:01, Ian Main wrote:
> > 
> > Howdy guys,
> > 
> > So I've been using the openstack driver as a backend for heat ->
> > deltacloud work.  I just posted a few patches to resolve issues that I
> > have run into but I've now hit a more serious roadblock and that is the
> 
> great thanks for those but I need some clarification:
> 
> "Add user-data support to openstack driver"
> 
> in this patch - are you trying to add the ability to push user-data into
> a launched instance (as opposed to server metadata, which is different)?
> If you are then Openstack has a different way of doing this, called
> 'server personality' [1] which we already have implemented. You have to
> pass a hash that matches the data you want pushed with where on the
> server you want it, like: {path1='server_path1'. content1='contents1',
> path2='server_path2', content2='contents2'}
> 
> When testing this against openstack@HPcloud, I was able to inject data
> but only into /etc (see comment at [2] for more info). As an example,
> the cURL command for launching an Openstack instance via deltacloud,
> complete with user data looks like:
> 
> curl -ivX POST --user "foo:bar" -F "image_id=foo" -F
> "path1=/etc/my_file1" -F "content1=another test 1 here" -F
> "path2=/etc/anotherfile" -F "content2=this is a test"
> "http://localhost:3001/api/instances?format=xml";
> 
> 
> 
> > lack of volume support for openstack.
> > 
> 
> great - this is something i've been meaning to do for a while. But
> again, need some clarification/info. Until now, there is no mention of
> 'Volumes' in the Nova 'API Proper' [3]. It *has* been available as an
> API extension. This is not a problem as I've already implemented other
> extensions such as 'floating IPs' and 'keypairs' for the Openstack
> rubygem [4]. However, I am also aware that there is a 'new' service
> called 'Cinder' which is meant to be the 'Volume API'. I suspect that
> what was formerly an extension has now (in folsom?) become the seperate
> 'cinder' aka 'Volume' service - though the API is not yet available at
> [5]. So my question is - what are you using? Have you deployed the
> Volume service (I guess this is the case but I need to know so I can
> proceed for implementation),

I guess it is more complicated when coming from ruby.. we are using the
python novaclient and the volume API is just built in.  My guess
is they are routing it to wherever it needs to go.

Code I see in novaclient is eg:

          body = {'volume': {'size': size,
                             'snapshot_id': snapshot_id,
                             'display_name': display_name,
                             'display_description': display_description,
                             'volume_type': volume_type}}
         return self._create('/volumes', body, 'volume')

Which just calls the same base class _create() that all the other API
functions use.  I honestly have not kept up on the swift vs cinder debate
though I have heard it discussed..  If I were you though I would just
duplicate novaclient calls.

    Ian

Reply via email to