[openstack-dev] [nova][keystone] Nova calls to Keystone
Rodrigo Duarte
rodrigodsousa at gmail.com
Tue Jun 23 09:33:38 UTC 2015
On Tue, Jun 23, 2015 at 5:48 AM, John Garbutt <john at johngarbutt.com> wrote:
> On 23 June 2015 at 03:30, Adam Young <ayoung at redhat.com> wrote:
> > On 06/22/2015 10:13 PM, Sajeesh Cimson Sasi wrote:
> > ________________________________
> > From: Adam Young [ayoung at redhat.com]
> > Sent: 23 June 2015 00:01:48
> > To: openstack-dev at lists.openstack.org
> > Subject: Re: [openstack-dev] [nova][keystone] Nova calls to Keystone
> >
> > On 06/20/2015 02:46 PM, Sajeesh Cimson Sasi wrote:
> >
> > Hi All,
> > I need your advice for the implementation of the following blueprint.
> > https://review.openstack.org/#/c/160605 .
> > All the use cases mentioned in the blueprint have been implemented
> and
> > the complete code is up for review.
> > https://review.openstack.org/#/c/149828/
> > However, we have an issue on which we need your input. In the nova
> quota
> > api call, keystone calls are made to
> > get the parent_id and the child project or sub project list. This is
> > required because nova doesn't store any information
> > regarding the hierarchy.
>
> This is maybe a dumb question, but...
>
> Could this information not come from the keystone middleware at the
> same time we get all the other identity information, and just live in
> the context?
>
>
Unfortunately no, the project hierarchy information is only available in
the GET /projects API - having this in the token so it could live in the
context could be a nice improvement (although this would need to feasible
for all types of tokens).
> >Hierarchy Information is taken during run time,
> > from keystone. Since the keystone calls are
> > made inside the api call, it is not possible to give any dummy or fake
> > values while writing the unit tests. If the keystone
> > call was made outside the api call, we could have given fake values in
> the
> > test cases. However, the keystone calls for
> > parent_id and child projects are made inside the api call.
> > Can anyone suggest an elegant solution to this problem? What is the
> proper
> > way to implement this ?
> > Did anybody encounter and solve a similar problem ? Many thanks for
> > any suggestions!
> > best regards
> > sajeesh
> >
> >
> >
> __________________________________________________________________________
> > OpenStack Development Mailing List (not for usage questions)
> > Unsubscribe:
> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> >
> > If you are talking to a live Keystone server, make sure you are using
> valid
> > data.
> >
> > If you are not talking to a live keystone server in a unit test, use
> > RequestsMock or equivalent (varied by project) to handle the HTTP
> request
> > and response.
> >
> > A worst case approach is to monkey patch the Keystoneclient. Please
> don't
> > do that if you can avoid it; better to provide a mock alternative.
> >
> >
> > Hi Adam,
> > Thanks a lot. I am not planning to talk to the live
> keystone
> > server in the unit test.
> > I don't think that I need to monkey patch the
> KeystoneClient.
> > In the nova api code, there are two methods (get_parent_project and
> > get_immediate_child_list),which uses keystoneclient.I can monkey patch
> those
> > two methods to return fixed data according to a fake hierarchy. Am I
> right ?
> >
> >
> > Its not great, but not horrible. It seems to match the scope of what you
> > are testing. However, you might want to consider doing a mock for the
> whole
> > Keystoneclient call, as that really should beo utside of the unit test
> for
> > the Nova code.
> >
>
> Please use mock to do that for you, following the pattern of the
> existing Nova unit tests. I think you will find that easier.
>
Maybe point out where he can find similar tests?
Thanks!
>
> Thanks,
> John
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
--
Rodrigo Duarte Sousa
Senior Software Engineer at Advanced OpenStack Brazil
Distributed Systems Laboratory
MSc in Computer Science
Federal University of Campina Grande
Campina Grande, PB - Brazil
http://rodrigods.com <http://lsd.ufcg.edu.br/%7Erodrigods>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150623/2a91bef2/attachment.html>
More information about the OpenStack-dev
mailing list