← Back to team overview

openstack team mailing list archive

Re: fake_flags + common breakout

 

I added a flag in my branch which uses a flag defined in the ZeroMQ driver.

This was fine before, but is a problem now, because tests/__init__.py doesn't do rpc.register_opts. Instead, it does FLAGS.register_opts(rpc.rpc_opts), which only loads the common RPC flags.

Of course, the flags file *defines* the RPC driver to be used, so there would be no benefit of running rpc.register_opts until after fake_flags is loaded.

The easiest solutions I see are:
A. load fake_flags.py, then rpc.register_opts, then run a fake_rpc_flags.py.
B. import rpc, add rpc.register_opts to fake_flags.py, then add any flags we want.
C. not support testing flags on RPC drivers, have a common "testing" flag.


--  
Eric Windisch


On Friday, May 4, 2012 at 6:08 PM, Russell Bryant wrote:

> On 05/04/2012 11:53 AM, Eric Windisch wrote:
> > Russell,
> >  
> > FYI, with the flags patch, it is no longer possible to set
> > rpc-implementation dependent flags in fake_flags.
> >  
> > Even Rabbit has a flag in there (fake_rabbit), but Rabbit flags are
> > currently global, so it works. That won't be true for long… We're going
> > to have to fix this.
> >  
> > One option is to initialize the RPC layer from fake_flags.py and then
> > set the options.
> >  
>  
>  
> Each place that fake_flags is imported, rpc gets initialized first. See
> these lines of code, and the fake_flags import shortly after:
>  
> https://github.com/openstack/nova/blob/master/nova/tests/__init__.py#L63
> https://github.com/openstack/nova/blob/master/bin/nova-dhcpbridge#L103
>  
> > Another option, for now, might just be to push this problem into the
> > implementations and have a global "testing" flag that is
> > implementation/backend independent. This is uglier on the
> > implementation/driver side, but cleaner on the unit tests. This is
> > basically what 'fake_rabbit' is now, anyway.
> >  
>  
>  
> As far as I can tell, this isn't actually a problem with the uses of
> fake_flags right now. What problem did you hit?
>  
> --  
> Russell Bryant
>  
>  



Follow ups

References