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