Yes, it should. Let's continue discussing the implementation details
in the pull request. Thanks for submitting the patch!

On 3 January 2017 at 18:26, Etienne Carriere <etienne.carri...@gmail.com> wrote:
> Hi Ignasi,
>
> I just read your mail after having done the Bug in JIRA (#1220) and the PR
> on github (#1046). I managed to "have something working" by adding a
> requestStaticInjection but I understand it is not the "standard method" for
> Jclouds.
> If I move to the binder class, do the injection will be "automatic" or
> something has to be declared ?
>
> Thanks in advance,
>
> Regards,
>
> Etienne Carrière
>
> 2017-01-03 16:11 GMT+01:00 Ignasi Barrera <n...@apache.org>:
>
>> Hi Etienne,
>>
>> Apologies for the late reply. I've had a look at your patch and I like
>> proposed the solution.
>>
>> I think the problem in your code is that you are configuring the
>> injection in the Guice module itself. Guice modules are used to
>> configure "what and how" is injected, but they should not contain
>> injected variables or constructors, since one manually instantiates
>> them (when passing it to the context builder) instead of requesting an
>> instance to the Guice injector.
>>
>> Making it work would be simple: just move all the header constants and
>> variables to your Binder class and let injection happen there. It also
>> makes more sense, since that's the place where the headers are needed.
>>
>> Let us know if that works, and look forward to seeing a PR for this! :)
>>
>>
>> HTH!
>>
>> I.
>>
>> On 30 December 2016 at 17:59, Etienne Carriere
>> <etienne.carri...@gmail.com> wrote:
>> > Hi Andrea,
>> >
>> > Thank you for your answer.
>> > Concerning the 2 points :
>> > * my current patch is available here :
>> > https://github.com/Etienne-Carriere/jclouds/commit/
>> fd9057573935b6f95e8cab6526790e0b79a5e843#diff-
>> 4f8d0e6c4a8bc4add7203bcbfe4bbf6eR71
>> > * I take the example on the BaseAuthenticator class (
>> > https://github.com/jclouds/jclouds/blob/4bbca9edf943852ce1ea5aa579fa05
>> 54f770a3ea/apis/openstack-keystone/src/main/java/org/
>> jclouds/openstack/keystone/v2_0/functions/internal/
>> BaseAuthenticator.java#L45)
>> > for the injection of the property given through overrides method of the
>> > builder.
>> >
>> > Unfortunately it doesn't work . The value of the variable is null even
>> if I
>> > push the property.
>> >
>> > Regards,
>> >
>> > Etienne Carrière
>> >
>> >
>> >
>> >
>> > 2016-12-30 16:58 GMT+01:00 Andrea Turli <andrea.tu...@gmail.com>:
>> >
>> >> Hi Etienne,
>> >>
>> >> sorry for the late answer.
>> >>
>> >> Unfortunately I'm not really familiar with this details of swift but I
>> >> think what you are proposing makes sense to me.
>> >>
>> >> I'd suggest to fist send a working example, maybe updating
>> >> https://github.com/jclouds/jclouds-examples/tree/master/
>> blobstore-basics
>> >> but not sure, and potentially re-start there the conversation around the
>> >> question #1
>> >>
>> >> Re #2, can you elaborate a bit more when you say "we have issues to use
>> the
>> >> variables injected by the overrides method" what are you trying to
>> achieve?
>> >>
>> >> HTH,
>> >> Andrea
>> >>
>> >> On Wed, Dec 28, 2016 at 4:36 PM, Etienne Carriere <
>> >> etienne.carri...@gmail.com> wrote:
>> >>
>> >> > Hi,
>> >> >
>> >> > In our project, we currently need to interact with differents types of
>> >> > swift implementations :
>> >> > - Ceph with radosgw
>> >> > - NetApp appliance with swift endpoint
>> >> >
>> >> > Thoses implementions use "identity v1 protocol" which is an old but
>> >> simple
>> >> > API for the authentication and don't use identity v2 protocol (
>> >> > http://developer.openstack.org/api-ref/identity/v2/index.html) which
>> is
>> >> > implemented by jclouds in openstack-keystone module .
>> >> >
>> >> >
>> >> > *State of jclouds*
>> >> > The openstack swift "official" client (in python) manage this v1
>> >> protocol (
>> >> > http://docs.openstack.org/developer/python-swiftclient/
>> swiftclient.html)
>> >> > so
>> >> > even if we don't have a specification, we will use the code of the
>> >> official
>> >> > client for the implementation.
>> >> >
>> >> > In jclouds, there is currently a sort-of v1 identity protocol in the
>> >> > openstack-swift module:  in
>> >> > apis/openstack-swift/src/main/java/org/jclouds/openstack/
>> >> swift/v1/config/
>> >> > SwiftAuthenticationModule.java,
>> >> > there is a tempAuthCredentials which is almost the identity v1
>> protocol
>> >> > except that the name of the headers was not the same :
>> >> >   = X-Storage-User vs X-Auth-User
>> >> >   = X-Storage-Path vs X-Auth-Key
>> >> >
>> >> > *Proposal*
>> >> > In our project, we think about the following solution
>> >> >   = Keep the current behaviour as default
>> >> >   = Add 2 parameters to change the header name through variables in
>> the
>> >> > Properties put in the Builder like that :
>> >> >
>> >> >      Properties overrides = new Properties();
>> >> >       overrides.setProperty("jclouds.keystone.credential-type",
>> >> > "tempAuthCredentials");
>> >> >       overrides.setProperty("jclouds.swift.tempAuth.headerUser",
>> >> > "X-Auth-User");
>> >> >       overrides.setProperty("jclouds.swift.tempAuth.headerPass",
>> >> > "X-Auth-Pass");
>> >> >       swiftApi = ContextBuilder.newBuilder(provider)
>> >> >             .endpoint(args[1])
>> >> >             .credentials(identity, credential)
>> >> >             .modules(modules)
>> >> >             .overrides(overrides)
>> >> >             .buildApi(SwiftApi.class);
>> >> >
>> >> > *Questions*
>> >> > 1) Will this behaviour acceptable upstream ? (and what is the
>> lifecycle
>> >> > planned for this tempAuthCredentials)
>> >> > 2) As working on the patch, we have issues to use the variables
>> injected
>> >> by
>> >> > the overrides method. After analysing some parts of the code of
>> >> > openstack-keystone module, i tried to use @Named and @Inject but
>> without
>> >> > success. Is there some doc or some hints on how to do that ?
>> >> >
>> >> > Thanks in advance,
>> >> >
>> >> > Regards,
>> >> >
>> >> > Etienne Carrière
>> >> >
>> >>
>>

Reply via email to