You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by Ian Main <im...@redhat.com> on 2012/10/18 06:01:05 UTC

Heat API and Deltacloud

Hi guys!

So as a side project, Thomas and I have been looking at using deltacloud
behind heat api (a cloudformation clone for openstack) to make it work
on multiple clouds.

Heat page is at:

https://github.com/heat-api/heat

and our work is at:

https://github.com/tomassedovic/heat/tree/multiple-backends

I'd like to get an idea of how much support is available in deltacloud
for various backends and to get a heads up if there are any issues with
what we are trying to do.  The most important backends to us right now
are rhevm, vsphere and perhaps oddly, ec2.

So the calls that we use right now basically involve:

- Instance creation/delete including keypair support and user-data injection.
- Volume listing, creation, attachment, detachment.
- Elastic/floating IP creation/assigning to instance/listing.
- Security group (firewall) creation, listing, rules list etc.
- S3 bucket create/destroy.


Instance creation code from 
https://github.com/heat-api/heat/blob/master/heat/engine/instance.py :

        server = self.nova().servers.create(name=self.physical_resource_name(),
                                            image=image_id,
                                            flavor=flavor_id,
                                            key_name=key_name,
                                            security_groups=security_groups,
                                            userdata=server_userdata,
                                            meta=tags,
                                            scheduler_hints=scheduler_hints)

Of these the key and userdata are probably the most necessary.  If you look we
also do some querying regarding IPs.

Volume attachment:
https://github.com/heat-api/heat/blob/master/heat/engine/volume.py :

        vol = self.nova('volume').volumes.create(self.properties['Size'],
                            display_name=self.physical_resource_name(),
                            display_description=self.physical_resource_name())


and

        va = volapi.create_server_volume(server_id=server_id,
                                         volume_id=volume_id,
                                         device=self.properties['Device'])

So basic delete/create/get status of volume.

In addition there's s3 support, EIP and security group calls here:

https://github.com/heat-api/heat/blob/master/heat/engine/s3.py
https://github.com/heat-api/heat/blob/master/heat/engine/eip.py
https://github.com/heat-api/heat/blob/master/heat/engine/security_group.py


As far as I can tell support for almost all (?) of this exists in the deltacloud
API.  What is less clear to me is how much of it is supported in each driver.

Thanks for looking at this, I know it's a bit of a big email.

        Ian


RE: Heat API and Deltacloud

Posted by "Koper, Dies" <di...@fast.au.fujitsu.com>.
Hi Ian,

Not on your most-important-list, but here are my answers for the fgcp
driver:

> - Instance creation/delete including keypair support and user-data
injection.

Yes to instance creation/delete, but fgcp doesn't support keypairs and
user-data injection.

> - Volume listing, creation, attachment, detachment.

Yes.

> - Elastic/floating IP creation/assigning to instance/listing.

Yes.

> - Security group (firewall) creation, listing, rules list etc.

Firewall creation, listing and rule listing is there. Rule addition is
not.

> - S3 bucket create/destroy.

No. fgcp only offers compute, no storage-only.

Regards,
Dies Koper


> -----Original Message-----
> From: Ian Main [mailto:imain@redhat.com]
> Sent: Thursday, 18 October 2012 3:01 PM
> To: dev@deltacloud.apache.org
> Subject: Heat API and Deltacloud
> 
> 
> Hi guys!
> 
> So as a side project, Thomas and I have been looking at using
deltacloud
> behind heat api (a cloudformation clone for openstack) to make it work
> on multiple clouds.
> 
> Heat page is at:
> 
> https://github.com/heat-api/heat
> 
> and our work is at:
> 
> https://github.com/tomassedovic/heat/tree/multiple-backends
> 
> I'd like to get an idea of how much support is available in deltacloud
> for various backends and to get a heads up if there are any issues
with
> what we are trying to do.  The most important backends to us right now
> are rhevm, vsphere and perhaps oddly, ec2.
> 
> So the calls that we use right now basically involve:
> 
> - Instance creation/delete including keypair support and user-data
injection.
> - Volume listing, creation, attachment, detachment.
> - Elastic/floating IP creation/assigning to instance/listing.
> - Security group (firewall) creation, listing, rules list etc.
> - S3 bucket create/destroy.
> 
> 
> Instance creation code from
> https://github.com/heat-api/heat/blob/master/heat/engine/instance.py :
> 
>         server =
self.nova().servers.create(name=self.physical_resource_name(),
>                                             image=image_id,
>                                             flavor=flavor_id,
>                                             key_name=key_name,
>
security_groups=security_groups,
>                                             userdata=server_userdata,
>                                             meta=tags,
>
scheduler_hints=scheduler_hints)
> 
> Of these the key and userdata are probably the most necessary.  If you
look we
> also do some querying regarding IPs.
> 
> Volume attachment:
> https://github.com/heat-api/heat/blob/master/heat/engine/volume.py :
> 
>         vol =
self.nova('volume').volumes.create(self.properties['Size'],
>
display_name=self.physical_resource_name(),
>
display_description=self.physical_resource_name())
> 
> 
> and
> 
>         va = volapi.create_server_volume(server_id=server_id,
>                                          volume_id=volume_id,
>
device=self.properties['Device'])
> 
> So basic delete/create/get status of volume.
> 
> In addition there's s3 support, EIP and security group calls here:
> 
> https://github.com/heat-api/heat/blob/master/heat/engine/s3.py
> https://github.com/heat-api/heat/blob/master/heat/engine/eip.py
>
https://github.com/heat-api/heat/blob/master/heat/engine/security_group.
py
> 
> 
> As far as I can tell support for almost all (?) of this exists in the
deltacloud
> API.  What is less clear to me is how much of it is supported in each
driver.
> 
> Thanks for looking at this, I know it's a bit of a big email.
> 
>         Ian
>