[openstack-dev] How do I mark one option as deprecating another one ?

Matt Riedemann mriedem at linux.vnet.ibm.com
Thu Feb 27 18:35:21 UTC 2014



On 2/27/2014 6:32 AM, Davanum Srinivas wrote:
> Phil,
>
> Correct. We don't have this functionality in oslo.config. Please
> create a new feature/enhancement request against oslo
>
> thanks,
> dims

Done: https://bugs.launchpad.net/oslo/+bug/1285768

>
> On Thu, Feb 27, 2014 at 4:47 AM, Day, Phil <philip.day at hp.com> wrote:
>> Hi Denis,
>>
>>
>>
>> Thanks for the pointer, but I looked at that and I my understanding is that
>> it only allows me to retrieve a value by an old name, but doesn't let me
>> know that the old name has been used.  So If all I wanted to do was change
>> the name/group of the config value it would be fine.  But in my case I need
>> to be able to implement:
>>
>> If new_value_defined:
>>
>>        do_something
>>
>> else if old_value_defined:
>>
>>       warn_about_deprectaion
>>
>>      do_something_else
>>
>>
>>
>> Specifically I want to replace tenant_name based authentication with
>> tenant_id - so I need to know which has been specified.
>>
>>
>>
>> Phil
>>
>>
>>
>>
>>
>> From: Denis Makogon [mailto:dmakogon at mirantis.com]
>> Sent: 26 February 2014 14:31
>> To: OpenStack Development Mailing List (not for usage questions)
>> Subject: Re: [openstack-dev] How do I mark one option as deprecating another
>> one ?
>>
>>
>>
>> Here what oslo.config documentation says.
>>
>>
>> Represents a Deprecated option. Here's how you can use it
>>
>>          oldopts = [cfg.DeprecatedOpt('oldfoo', group='oldgroup'),
>>                     cfg.DeprecatedOpt('oldfoo2', group='oldgroup2')]
>>          cfg.CONF.register_group(cfg.OptGroup('blaa'))
>>          cfg.CONF.register_opt(cfg.StrOpt('foo', deprecated_opts=oldopts),
>>                                 group='blaa')
>>
>>          Multi-value options will return all new and deprecated
>>          options.  For single options, if the new option is present
>>          ("[blaa]/foo" above) it will override any deprecated options
>>          present.  If the new option is not present and multiple
>>          deprecated options are present, the option corresponding to
>>          the first element of deprecated_opts will be chosen.
>>
>> I hope that it'll help you.
>>
>>
>> Best regards,
>>
>> Denis Makogon.
>>
>>
>>
>> On Wed, Feb 26, 2014 at 4:17 PM, Day, Phil <philip.day at hp.com> wrote:
>>
>> Hi Folks,
>>
>>
>>
>> I could do with some pointers on config value deprecation.
>>
>>
>>
>> All of the examples in the code and documentation seem to deal with  the
>> case of "old_opt" being replaced by "new_opt" but still returning the same
>> value
>>
>> Here using deprecated_name and  / or deprecated_opts in the definition of
>> "new_opt" lets me still get the value (and log a warning) if the config
>> still uses "old_opt"
>>
>>
>>
>> However my use case is different because while I want deprecate old-opt,
>> new_opt doesn't take the same value and I need to  different things
>> depending on which is specified, i.e. If old_opt is specified and new_opt
>> isn't I still want to do some processing specific to old_opt and log a
>> deprecation warning.
>>
>>
>>
>> Clearly I can code this up as a special case at the point where I look for
>> the options - but I was wondering if there is some clever magic in
>> oslo.config that lets me declare this as part of the option definition ?
>>
>>
>>
>>
>>
>>
>>
>> As a second point,  I thought that using a deprecated option automatically
>> logged a warning, but in the latest Devstack wait_soft_reboot_seconds is
>> defined as:
>>
>>
>>
>>      cfg.IntOpt('wait_soft_reboot_seconds',
>>
>>                 default=120,
>>
>>                 help='Number of seconds to wait for instance to shut down
>> after'
>>
>>                      ' soft reboot request is made. We fall back to hard
>> reboot'
>>
>>                      ' if instance does not shutdown within this window.',
>>
>>                 deprecated_name='libvirt_wait_soft_reboot_seconds',
>>
>>                 deprecated_group='DEFAULT'),
>>
>>
>>
>>
>>
>>
>>
>> but if I include the following in nova.conf
>>
>>
>>
>>                  libvirt_wait_soft_reboot_seconds = 20
>>
>>
>>
>>
>>
>> I can see the new value of 20 being used, but there is no warning logged
>> that I'm using a deprecated name ?
>>
>>
>>
>> Thanks
>>
>> Phil
>>
>>
>>
>>
>> _______________________________________________
>> OpenStack-dev mailing list
>> OpenStack-dev at lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>
>>
>>
>>
>> _______________________________________________
>> OpenStack-dev mailing list
>> OpenStack-dev at lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>
>
>
>

-- 

Thanks,

Matt Riedemann




More information about the OpenStack-dev mailing list