| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2020-03-04 | |||
| 17:41:09 | openstackgerrit | Stephen Finucane proposed openstack/nova master: Add transform_image_metadata request filter https://review.opendev.org/665775 | |
| 18:56:50 | ozzzo | can anyone help me set set pointer_model to None in nova.conf? | |
| 18:57:02 | ozzzo | it appears to be a bug; I opened https://bugs.launchpad.net/nova/+bug/1866106 | |
| 18:57:02 | openstack | Launchpad bug 1866106 in OpenStack Compute (nova) "Can't set "pointer_model = None" in nova.conf" [Undecided,New] | |
| 18:57:20 | ozzzo | the help text in nova.conf says to use None or <None> but nova errors on both | |
| 18:57:32 | ozzzo | ERROR nova ConfigFileValueError: Value for option pointer_model is not valid: Valid values are [None, ps2mouse, usbtablet], but found 'None' | |
| 18:57:57 | ozzzo | I tried leaving it blank but that fails also | |
| 18:58:29 | ozzzo | the underlying issue is that I need to not load the USB and PS2 drivers to build large-RAM Centos VMs, because Centos chokes while loading drivers on VMs with over 1064304G RAM | |
| 19:06:58 | melwitt | ozzzo: I agree that looks like a bug. the choice should instead be 'none' (I see several other examples, especially in nova/conf/libvirt.py) and handled accordingly in the code. I think the StrOpt won't ever recognize None as a non-string 'None' | |
| 19:07:49 | ozzzo | ok trying none | |
| 19:08:08 | melwitt | ozzzo: I mean I think you'll need a patch to do it | |
| 19:08:15 | ozzzo | oic ok | |
| 19:08:38 | melwitt | it needs to be fixed in order for you to choose none | |
| 19:10:08 | melwitt | lemme see if I can propose one real quick for you | |
| 19:10:23 | ozzzo | ok cool thank you! | |
| 19:10:44 | melwitt | thanks for opening the bug and letting us know | |
| 19:11:02 | ozzzo | no problem, my users are screaming for giant memory Centos VMs | |
| 19:11:03 | mriedem | the config is coercing None to 'None' | |
| 19:11:14 | ozzzo | I'm trying to get them to use Ironic instead but they don't want to | |
| 19:11:45 | mriedem | seems like that might be a bug in oslo.config rather than nova | |
| 19:13:07 | ozzzo | should I ask in their IRC channel? | |
| 19:13:48 | bnemec | The only way for a config opt to have a None value is for that to be the default and for the opt to be unset. | |
| 19:14:14 | bnemec | So completely absent from the file, not something like "opt=" | |
| 19:14:18 | mriedem | bingo https://github.com/openstack/oslo.config/blob/master/oslo_config/types.py#L142 | |
| 19:14:29 | mriedem | yeah the default is usbtablet | |
| 19:14:34 | mriedem | so you can't unset it to avoid the default | |
| 19:14:53 | ozzzo | am I on the right track; will setting this to none stop the USB driver from loading? | |
| 19:15:12 | mriedem | so you're looking at what? default being None, but then checking to see if the option is explicitly set to None or default to 'usbtablet' if not set to None explicitly? | |
| 19:15:39 | ozzzo | or is there a better way to not load USB? | |
| 19:16:11 | mriedem | bnemec: couldn't oslo.config just fix this line? https://github.com/openstack/oslo.config/blob/master/oslo_config/types.py#L142 | |
| 19:16:23 | mriedem | if value is None and None is a valid choice and not the default, then don't coerce to 'None' | |
| 19:18:19 | bnemec | I don't think it would help. I'm pretty sure the argument parser will never return None, it will return a string "None" anyway. | |
| 19:18:41 | bnemec | I actually think the cast is unnecessary because I'm pretty sure the raw values we get are all strings to begin with. | |
| 19:19:01 | bnemec | I could be wrong though. It's been a while since I've dug into the internals of oslo.config. | |
| 19:19:53 | mriedem | yeah maybe | |
| 19:20:44 | mriedem | guess you could hack a new choice "unset" or something to mean None | |
| 19:22:28 | ozzzo | my actual goal is to not load the USB and PS2 drivers. Is there a better way? | |
| 19:23:23 | mriedem | no, that's why i'm saying it sounds like you need a new choice on that option | |
| 19:26:47 | mriedem | i think that would basically take care of itself here https://github.com/openstack/nova/blob/757fc03b78d542e7262343b65eacea02ce11dd04/nova/virt/libvirt/driver.py#L5949 | |
| 19:27:13 | mriedem | that method would return None so a pointer device wouldn't be set in the guest xml https://github.com/openstack/nova/blob/757fc03b78d542e7262343b65eacea02ce11dd04/nova/virt/libvirt/driver.py#L5700 | |
| 19:27:55 | mriedem | a choice of 'none' like melwitt suggested would do it | |
| 19:28:17 | openstackgerrit | Merged openstack/nova master: Add test coverage of existing os-console-auth-tokens policies https://review.opendev.org/706687 | |
| 19:29:02 | mordred | mriedem: but if you don't pick usb or ps2, how will your keyboard work? | |
| 19:29:26 | melwitt | I'm working on a patch now. writing up the commit message | |
| 19:31:23 | dansmith | mordred: ten digit rotary phone dial | |
| 19:31:23 | ozzzo | these giant-memory VMs are running batch jobs; I may be wrong but I think we can live without a keyboard | |
| 19:31:34 | dansmith | mriedem: hack in the characters via their decimal ascii equivalent... duh. | |
| 19:32:01 | dansmith | er, mordred ^ :P | |
| 19:32:36 | mriedem | cripes | |
| 19:34:57 | openstackgerrit | melanie witt proposed openstack/nova master: Fix CONF.pointer_model choice None to use 'none' for StrOpt https://review.opendev.org/711315 | |
| 19:38:10 | openstackgerrit | Ghanshyam Mann proposed openstack/nova master: Introduce scope_types in os-console-auth-tokens https://review.opendev.org/706688 | |
| 19:39:42 | melwitt | gmann: hey I was wondering if you saw johnthetubaguy comment on this patch https://review.opendev.org/705127 I couldn't really follow it | |
| 19:41:36 | gmann | melwitt: yeah, i can move those to deprecated also, i did not do initially as those were ~3 years old and users might have switched to new one. | |
| 19:41:40 | gmann | updating.. | |
| 19:42:16 | melwitt | gmann: ok. since I didn't understand it I didn't agree or disagree, but wondered what you thought about it | |
| 19:48:14 | gmann | while new policy were introduced, we did not remove those old policy from enforcement from our API so operators might be relying on those old policies default or override. | |
| 19:48:31 | gmann | keeping them for deprecation phase does not harm much. | |
| 20:01:18 | melwitt | ozzzo, mriedem: I'm weirdly noticing in the code that setting pointer_model='ps2mouse' looks like it would have the same effect (nothing added to libvirt xml) as setting None if setting None were possible | |
| 20:02:19 | mriedem | i was wondering about that too | |
| 20:02:43 | ozzzo | interesting; I'll try it and then look at the XML | |
| 20:02:52 | mriedem | that pointer_model option was meant to replace use_usb_tablet back in newton but it was never fully removed because the upgrade compat path was really complicated (i tried and abandoned the attempt) | |
| 20:03:07 | mriedem | i wonder if there was a bad refactor at some point that broke the ps2mouse support | |
| 20:03:28 | melwitt | I was wondering the same thing | |
| 20:03:53 | mriedem | note that devstack sets it to ps2mouse explicitly https://github.com/openstack/devstack/blob/93d22d82988ee781feddf84535d65adf44472379/lib/nova_plugins/hypervisor-libvirt#L44 | |
| 20:04:05 | mriedem | so you could just check one of the gate job logs for a guest xml to see if the pointer device is not set | |
| 20:04:46 | melwitt | oh nice | |
| 20:07:17 | mriedem | code looks basically the same since newton https://github.com/openstack/nova/blob/newton-eol/nova/virt/libvirt/driver.py#L4675 | |
| 20:07:50 | melwitt | here's a guest xml https://zuul.opendev.org/t/openstack/build/fcc8380b76924d0ca8acf158f7571ad8/log/controller/logs/screen-n-cpu.txt#1888 | |
| 20:09:46 | ozzzo | I see the USB lines missing from the XML now, but I still see the PS2 mouse and keyboard lines. How can I get rid of those? | |
| 20:11:34 | mriedem | melwitt: i don't see any input devices in there | |
| 20:11:38 | mriedem | so seems that ps2mouse is doing the deed | |
| 20:11:50 | melwitt | yeah I don't either | |
| 20:11:55 | mriedem | ozzzo: you set pointer_model=ps2mouse on your computes? | |
| 20:12:07 | ozzzo | only on the HV | |
| 20:12:20 | mriedem | HV = nova-compute nodes? | |
| 20:12:24 | ozzzo | yes | |
| 20:12:34 | mriedem | restarted the service and booted a new vm on that node? | |
| 20:12:36 | ozzzo | just the one I'm testing | |
| 20:12:48 | ozzzo | no, I stopped and started the VM, but that rewrites the XML | |
| 20:12:57 | ozzzo | do I need to delete it and build a new one? | |
| 20:12:58 | mriedem | you have to restart the compute service to refresh the config | |
| 20:13:09 | mriedem | then you could reboot the vm | |
| 20:13:10 | melwitt | ozzzo: that won't refresh the nova config though | |
| 20:13:29 | ozzzo | I stop/started nova-compute on the compute node | |
| 20:13:30 | melwitt | that reminds me, did SIGHUP ever get fixed? | |
| 20:13:34 | ozzzo | then stop/started the VM | |
| 20:13:38 | melwitt | oh ok | |
| 20:13:45 | mriedem | paste your guest xml i guess | |
| 20:13:55 | mriedem | in a paste/gist | |
| 20:14:16 | melwitt | well, I'm wondering if this is what the config help is describing "'Uses default behavior provided by drivers (mouse on PS2 for libvirt x86)" | |
| 20:14:32 | mriedem | but we're running libvirt x86 in the gate | |
| 20:14:40 | melwitt | ... true | |
| 20:14:48 | melwitt | hm what the heck | |
| 20:15:08 | mriedem | unless y'all moved over to ARM in the last few months | |
| 20:15:27 | ozzzo | http://paste.openstack.org/show/790313/ | |
| 20:16:45 | mriedem | huh yeah - which version of libvirt? | |
| 20:22:26 | melwitt | looks like usb tablet is the only input device we're capable of adding https://github.com/openstack/nova/blob/master/nova/virt/libvirt/config.py#L1802 | |
| 20:23:33 | melwitt | I mean, I guess we already knew that but there's where all the configs are | |
| 20:25:49 | melwitt | here's danpb stating "We don't specify anything actually. QEMU always gives you a ps2 keyboard + mouse no matter what & AFAIK, there's no way to disable that. Any other mouse should override the PS2 mouse, provided the guest OS actually initializes the non-ps2 mouse." https://bugzilla.redhat.com/show_bug.cgi?id=953064#c4 | |
| 20:25:50 | openstack | bugzilla.redhat.com bug 953064 in libvirt "allow disabling ps2 mouse, it overrides tablet on macosx guests" [Medium,Closed: deferred] - Assigned to libvirt-maint | |