Hi,

There are two types of network APIs in OpenStack:

- Nova networks
- Neutron networks

Libcloud currently more or less, only supports Nova networks. It's similar
for block storage.

There has already been a lot of debate about this in the past and multiple
ppl volunteered to implement those changes, but sadly no one has done it
yet.

Rough approach we all agreed on was something along those lines:

1. Add new class for each network API (e.g. NovaOpenStackNetworkingDriver
and NeutronOpenStackNetworkDriver)

2. Allow user to select which network to use when instantiating an
OpenStack driver. Even better, automatically detect this based on the
service catalog entries.

Internally the compute driver will then instantiate a correct networking
driver. All the network methods on the compute driver will then call to
corresponding networking driver methods.

3. I had another thing in mind, but I forgot what it was :)

We actually have a very rough version of this implemented in our DivvyCloud
libcloud fork (I haven't implemented it myself), but getting it upstream
would require quite a lot of additional work (cleaning the code up, fixing
style issues, adding tests, etc.) and I'm not sure when we will be able
dedicate some time to do that.

As far as your questions goes - it's possible to do that with the current
Connection class organization, but it's not the cleanest thing (you would
need to mutate host and other attributes for each request).

Because of that, we should, as mentioned above, add a new class which uses
a separate connection instance (this connection instance should still share
access token and other things though).


On Wed, Jun 25, 2014 at 11:59 AM, Markos Gogoulos <[email protected]> wrote:

>
>
> Hi all,
>
> I have issues with the HP Cloud driver and network tasks.
> The driver sets 2 compute endpoints and derives from
> OpenStack_1_1_NodeDriver. For compute related tasks this works, but not
> for network related tasks, since a network endpoint has to be called.
>
>
> For example, ex_list_networks is called from openstack.py which
> queries self.connection.request(self._networks_url_prefix). This seems
> to call the compute endpoint, which is different from the network
> endpoint in hp's case, so it fails (the network endpoint is
> https://region-b.geo-1.network.hpcloudsvc.com
> -https://docs.hpcloud.com/api/v13/networking/)
>
> So the question is: can
> openstack drivers combine network and compute endpoints, if these are
> different?
>
> Thanks and regards
>

Reply via email to