[openstack-dev] [oslo] Any reason why not have 'choices' parameter for ListOpt()?
Kashyap Chamarthy
kchamart at redhat.com
Tue Mar 27 08:22:38 UTC 2018
On Mon, Mar 26, 2018 at 12:28:02PM -0700, melanie witt wrote:
> On Mon, 26 Mar 2018 14:12:52 -0500, Matt Riedemann wrote:
> > On 3/26/2018 6:24 AM, ChangBo Guo wrote:
> > > What's your use case for ListOpt, just make sure the value(a list) is
> > > part of 'choices' ? Maybe we need another parameter to distinguish
> >
> > It came up because of this change in nova:
> >
> > https://review.openstack.org/#/c/534384/
> >
> > We want to backport that as a bug fix which is a mitigation for
> > performance degradation issues with QEMU patches for Spectre and Meltdown.
> >
> > However, in the backport we wanted to restrict the ListOpt to a single
> > value, "pcid". The idea is to restrict the new option to a single value
> > in stable branches.
> >
> > Then in master, we could remove the 'choices' kwarg so operators can
> > define their list as they wish.
> >
> > If we were do implement this generically in ListOpt, I suppose 'choices'
> > would mean that the specified list must be a subset of the defined
> > choices list. So in the backport patch, we'd just have choices=[None,
> > 'pcid'] and you can either specify None or 'pcied' for that option
> > (default to None).
> >
> > Right now the code that's relying on this option just has a hard-coded
> > check for the value which is OK.
>
> I'm not sure if this helps, but we do already have some example of a ListOpt
> with 'choices' for the VNC auth_schemes:
>
> https://github.com/openstack/nova/blob/cd15c3d/nova/conf/vnc.py#L229
>
> Could we do something similar for the backport of the CPU flags patch?
Ah, interesting pointer. It seems to work locally, and I updated the
patch with it[*]:
[...]
cfg.ListOpt(
'cpu_model_extra_flags',
item_type=types.String(
choices=['pcid']
),
default=[],
help=""" ... """
[...]
Thanks, Melanie.
[*] https://review.openstack.org/#/c/534384/
--
/kashyap
More information about the OpenStack-dev
mailing list