Nacx,

Thanks possibly another option is to "promote" SecurityGroupApi as other
features and remove the extension annotation as from documentation that
functionality is not optional.

Are you guys aware of any provider that exposes neutron security group API
as extensions only?

Cheers,
Andrea

Il 23/ott/2017 22:12, "Ignasi Barrera" <n...@apache.org> ha scritto:

Hi!

Today we've had a discussion with Andrea on IRC regarding the
availability of the Neutron Security Group API as an extension API.

It turns that in an OpenStack environment he's using, the API does not
appear as an extension in the Keystone service catalog, but as part of
the networking API. The paths are the same (/v2.0/security-groups),
but jclouds expects it to be an extension and resolve its endpoint
from the service catalog.

* Does anyone know if this is something that has changed in recent
OpenStack versions and now we must expect the Security Group API not
to be an extension API?

Apart from that, we need to fix how the endpoint is resolved.
Currently, the endpoint is taken from the service catalog (here [1])
by looking for the configured extension [2]. What comes to my mind to
fix this issue is:

* Extend the @Extension namespace "somehow", to allow us to specify a
"fallback" endpoint/namespace/alias.
* Given that if no @Extension annotation is present in the referenced
API, it is always returned "present" (see [3]), we could create a
subclass of the SecurityGroupAPI without the extension, and add an
accessor to it in the Networking API? This way it will inherit the
networking API endpoint and the requests should be properly built.
(I'm not sure if the Optional resolution works in a nested API or it
is only evaluated in the root APIs, but it's worth exploring this
option).
* Others?


Cheers,

I.



[1] https://github.com/jclouds/jclouds/blob/master/apis/
openstack-keystone/src/main/java/org/jclouds/openstack/v2_0/functions/
PresentWhenExtensionAnnotationMatchesExtensionSet.java
[2] https://github.com/jclouds/jclouds-labs-openstack/blob/
master/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2/
extensions/SecurityGroupApi.java#L67
[3] https://github.com/jclouds/jclouds/blob/master/apis/
openstack-keystone/src/main/java/org/jclouds/openstack/v2_0/functions/
PresentWhenExtensionAnnotationMatchesExtensionSet.java#L112-L115

Reply via email to