That sounds like a plan :) Once you get to step 3 (or before if you
need), let's say hi in the #jclouds IRC channel at Freenode and I'll
be happy (and I'm pretty sure others will) to help with that.

On 26 May 2015 at 12:43, Hague, Darren <d.ha...@sap.com> wrote:
> OK, so here's how I plan to proceed:
>
> Step 1: Implement a standalone Identity V3 API under 
> jclouds/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3
>  - to start with, just enough of the API to allow for authentication
>
> Step 2: Get the Nova API to work with the Keystone V3 API *instead of* the V2 
> API - i.e. replace the hard-coded Keystone V2 references with hard-coded 
> Keystone V3 references. That scratches my team's itch of wanting to use 
> Keystone V3 for Nova authentication.
>
> Step 3: Figure out how to get the Nova API to choose Keystone V2 or Keystone 
> V3 based on the authentication endpoint URL used for initialization. This is 
> the hard part (for me, at least) - I'm having trouble penetrating all the 
> layers of indirection & dependency injection. I would really appreciate being 
> able to pair with someone when doing this step.
>
> Step 4: Implement the rest of the Identity V3 API.
>
> Does that sound OK to everyone?
>
> All the best,
> Darren
>
> -----Original Message-----
> From: Hague, Darren [mailto:d.ha...@sap.com]
> Sent: 21 May 2015 13:03
> To: dev@jclouds.apache.org
> Subject: RE: Implementing OpenStack Identity v3 API
>
> " so the v3.0 codebase wouldn't share much if any code with the v2.0 
> codebase. "
>
> Exactly - I would just use the v2.0 codebase as a model for writing the v3 
> codebase.
>
> "your question is about allowing the selection of v2 or v3 keystone to be
> configurable when a user is requesting compute, or having that choice be
> automatic based on URL regex or a response from a URL.  Is that right?"
>
> Yes, that's exactly it.
>
> -----Original Message-----
> From: Alex Heneveld [mailto:alex.henev...@cloudsoftcorp.com]
> Sent: 21 May 2015 11:54
> To: dev@jclouds.apache.org
> Subject: Re: Implementing OpenStack Identity v3 API
>
>
> Hi Darren,
>
> The Rackers or the Googlers can probably help more but to answer as best
> I can--
>
> As you probably know the usual jclouds pattern is to treat different
> versions of an API as clean-room impls, so the v3.0 codebase wouldn't
> share much if any code with the v2.0 codebase. If a user wanted to
> access the v3 API in Java, they'd request it, differently to requesting
> the v2 API.
>
> Of course with openstack / nova / etc users don't request keystone, so
> your question is about allowing the selection of v2 or v3 keystone to be
> configurable when a user is requesting compute, or having that choice be
> automatic based on URL regex or a response from a URL.  Is that right?
>
> Off the cuff my thinking is that you'd need an interface atop the v2 and
> the v3 API, so that nova etc don't need to be aware of which version is
> being used.  (I'm not sure whether this exists?) Once you had that the
> obvious java answer is to have a new delegating impl for that interface,
> picking the underlying implementation, either v2 or v3, based on
> configuration and/or autodetection, and forwarding calls to that impl.
> And make that delegating impl be the impl used by nova etc.
>
> This isn't particularly Guice-y, however -- there is probably a Guice
> way to let the injection make the decision, instead of needing the
> delegate, but this is beyond my ken.  Big caveat, I'm not an expert in
> either guice or the jclouds openstack impl -- hence the appeal to others
> -- but IHTH for starters.
>
> Best
> Alex
>
>
> On 21/05/2015 11:12, Hague, Darren wrote:
>> Hi all,
>>
>> Background: at SAP we would like to have OpenStack Identity V3 support in 
>> jclouds (see https://issues.apache.org/jira/browse/JCLOUDS-114), and I am 
>> working on implementing it.
>> I already implemented OpenStack Identity V3 support in Fog (Ruby's 
>> equivalent to jclouds) - see 
>> https://github.com/fog/fog/commit/803dedb297023a8ceee17d73e7c9e16764f3b34a 
>> for details.
>> Using org.jclouds.keystone.v2_0 as a starting point, it's reasonably clear 
>> to me how to go about implementing a v3 equivalent.
>>
>> My problem is this: I can't figure out how, in the jclouds codebase, to let 
>> the user use v3 authentication instead of v2 authentication.
>>
>> Ideally I would like to get the same behaviour as Fog: when creating (for 
>> example) a NovaApi object, the code would check to see if the endpoint URL 
>> ends in "/v2.0" or "/v3" and use the v2.0 or v3 Identity implementation 
>> accordingly. A workable (although suboptimal) alternative would be to let 
>> the user somehow specify v3 as an override when creating a NovaApi object, 
>> e.g. by passing in the v3 AuthenticationApiModule (which I already tried, 
>> but doesn't work as-is).
>>
>> Can anybody help me with this? I'm happy to pair-program with a more 
>> experience jclouds dev if that helps.
>>
>> Thanks in advance,
>> Darren
>>
>> Darren Hague
>> Cloud Lifecycle Management: Monsoon DevOps Team,
>> SAP (UK) Limited, Clockhouse Place, Bedfont Road, Feltham TW14 8HD, United 
>> Kingdom
>>
>> T   +44 208 917-8117,   M   +44 7764 97-8117,   E  d.ha...@sap.com
>>
>>
>

Reply via email to