Earlier  
Posted Nick Remark
#openstack-nova - 2019-07-23
18:24:35 sean-k-mooney but i currently dont have a usecase where that is strictly needed
18:24:50 sean-k-mooney which is why i havent changed it
18:28:41 mriedem efried: i saw your questions on https://review.opendev.org/#/c/665138/
18:28:59 mriedem i put a bunch of notes on it - i think it's correct for a narrow window, but i'd like to see a functional test as well
18:29:12 mriedem it's basically https://review.opendev.org/#/c/641806/ but revert instead of confirm
18:35:58 efried mriedem: did you see the func test I tried to write?
18:36:22 efried https://review.opendev.org/#/c/665253/
18:36:53 efried which I suspect was totally stolen from the one you mention
18:38:32 mriedem no i didn't
18:39:08 mriedem might want to compare your test to what my scenario is in the commit message on the other patch
18:55:39 aspiers sean-k-mooney: I finally found it https://www.mail-archive.com/libvir-list@redhat.com/msg182746.html
18:55:50 aspiers https://github.com/libvirt/libvirt-python/commit/5004b4ad532ffa93ed4b62c8021eaa9210855209
18:58:09 sean-k-mooney aspiers: ah ok so we need to libvirt-python version to be bumped to 5.3
18:58:34 aspiers sean-k-mooney: http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2019-04-26.log.html#t2019-04-26T11:30:18
18:59:17 sean-k-mooney aspiers: ya that vaguely rings a bell
18:59:25 aspiers sean-k-mooney: IIUC the workaround was to explicitly pass None to the API
18:59:44 aspiers We don't want to introduce a dependency on newer libvirt-python unless we really have to
19:00:14 sean-k-mooney if explctily passing none works then we dont need too
19:00:25 sean-k-mooney that is what we are doing in my current patch
19:00:27 aspiers right
19:00:45 aspiers but still the nested dict gets broken
19:01:42 sean-k-mooney how so?
19:02:02 sean-k-mooney i never allow a key or value to be none in the current code
19:02:08 aspiers 'ppc': {'None': <nova.virt.libvirt.config.LibvirtConfigDomainCaps object at 0x7f243d3ec7b8>}
19:02:19 aspiers I see entries like that in the domcaps dict
19:02:24 aspiers using your patch
19:02:27 sean-k-mooney that should not happen maybe i missed something
19:02:48 aspiers there is no guarantee that machine_type is not None
19:02:55 aspiers since you removed the "or 'q35'"
19:03:07 sean-k-mooney i was depending on qemu not returing none
19:03:33 sean-k-mooney we cant just default to q35 but we can register default for as many acrhs as we care to support
19:03:33 aspiers where is it supposed to be getting the default from?
19:04:03 aspiers it's currently None for mips, mipsel, and ppc
19:04:56 sean-k-mooney https://review.opendev.org/#/c/670189/4/nova/virt/libvirt/host.py@763
19:05:09 sean-k-mooney we use the value we got back from libvirt as the key
19:05:20 aspiers back from which libvirt call?
19:05:34 sean-k-mooney getDomainCapabilities
19:05:35 aspiers getCapabilities or getDomainCapabilities?
19:06:16 aspiers OK I'll try to track it down
19:06:21 sean-k-mooney so if we dont have a defualt for the arch we call getDomainCapabilities with machine_type=None
19:07:28 aspiers right and then look at the machine type which was returned in the XML
19:07:33 sean-k-mooney then i added https://review.opendev.org/#/c/670189/4/nova/virt/libvirt/config.py@132 to parse the machine type and store it in the object
19:08:08 sean-k-mooney ya so i was assuming that there would aways be a machine type returned in the xml
19:08:21 aspiers I think there is
19:08:40 sean-k-mooney Maybe we are getting the default from https://review.opendev.org/#/c/670189/4/nova/virt/libvirt/config.py@121
19:09:24 sean-k-mooney that would cause it to be none if we did not get a machine type in the xml
19:09:40 sean-k-mooney i could just skip storing it if we get none back
19:10:18 aspiers yeah but I'm not yet convinced that's the issue
19:12:27 aspiers sean-k-mooney: OK if I tweak your patch with a few extra comments and typo fixes?
19:13:23 redkrieg lyarwood: I've come across your work on rescue mode and it's exactly what I need to offer ISO based OS installs for my clients. I see it's Abandoned for Train, but I was wondering if you knew off-hand what else needs to be done. https://blueprints.launchpad.net/nova/+spec/virt-rescue-stable-disk-devices
19:19:50 aspiers sean-k-mooney: the bug is here https://review.opendev.org/#/c/670189/4/nova/tests/unit/virt/libvirt/fakelibvirt.py@1369
19:20:32 aspiers e.g. for mips we don't have a default machine type, so the x86_64 template gets used with mtype: None
19:20:55 aspiers also, it shouldn't be using the x86_64 template for mips arch
19:22:17 aspiers sean-k-mooney: recommendations welcome on how we should fix this. Ideally I guess we would get fake domcaps for all the architectures returned by the fakelibvirt getCapabilities - currently we are missing mips/mipsel/ppc
19:22:42 aspiers efried: do we have access to mips/mipsel/ppc boxes to grab that XML from?
19:25:20 sean-k-mooney aspiers: sure feel free too
19:25:24 efried aspiers: I sure don't. edleafe, do you know who might be able to spin up kvm on Power (or PowerKVM, or whatever tf it's called) for this purpose?
19:25:53 sean-k-mooney aspiers: efried i can just generate them locally
19:26:07 sean-k-mooney aspiers: efried i have the emultators installed for all of them
19:27:10 edleafe efried: sorry, no
19:27:12 sean-k-mooney you can just use the virsh cli and specify the arch and it will give you the domain caps for any emulator you have installed
19:29:20 sean-k-mooney aspiers: here are the xmls for the ppc/mips/mipsel http://paste.openstack.org/show/754771/
19:31:12 sean-k-mooney aspiers: ah and ya the bug makes sesne gald it was just in the tests
19:43:30 aspiers sean-k-mooney: cool thanks! how did you set up the emulators?
19:45:55 sean-k-mooney aspiers: if you install qemu, qemu-kvm and libvirt on ubunut 18.04 it pulls in all the qemu emulators that are available by default
19:46:14 sean-k-mooney on fedora/centos you have to install them one by one
19:46:46 sean-k-mooney so in my ubunut vm i have all of them on my centos one i only have x86 and x86_64
20:04:50 aspiers interesting
20:19:04 mriedem efried: i'm tickling your ksa/sdk funny bone here https://review.opendev.org/#/c/664842/7/ironic/common/nova.py@13
20:25:08 sean-k-mooney aspiers: looks like we have other issue too. if manually set virt_type=kvm in the nova.conf it also breaks on archittures where its not supported
20:31:27 sean-k-mooney aspiers: http://paste.openstack.org/show/754776/
20:32:38 aspiers sean-k-mooney: looking
20:32:52 aspiers sean-k-mooney: BTW I've imported those domain caps you gave me
20:35:31 sean-k-mooney im in two minds if we shoudl catch the libvirt excption or not
20:36:01 sean-k-mooney we could just catch the invalid combination and continue with the rest
20:48:49 mriedem dansmith: stephenfin: question on https://review.opendev.org/#/c/672065/3 but i'm not sure why the libvirt driver overhead stuff is missing from the docs like we have for hyperv and xenapi in there
20:48:52 mriedem that's my only hangup
20:49:02 dansmith mriedem: because there's nothing to do I thought
20:49:09 dansmith the reno said "nothing to do" for libvirt I think
20:49:17 mriedem it also said some stuff about PCPU
20:49:19 mriedem which is not a thing yet
20:49:30 mriedem i think that was when stephen had that later in the series after the PCPU stuff,
20:49:33 mriedem now it's moved to the front
20:49:37 dansmith "No change is necessary as this was never accounted for properly using
20:49:38 dansmith the overhead model"
20:50:00 mriedem where do you see that?
20:50:09 dansmith that was in the reno before I cut out the virt stuff
20:50:19 dansmith which is why I thought having it missing from the admin docs made sense
20:50:41 dansmith because it's not per-instance unless you have dedicated CPUs, but even still, it wasn't accounted for by the overhead calcs anyway
20:51:15 mriedem ok this reno https://review.opendev.org/#/c/672065/2..3/releasenotes/notes/remove-core-ram-disk-filters-9510cbe5b4e295b6.yaml@a21
20:51:34 dansmith yeah
20:53:16 mriedem and the overhead isn't used here https://github.com/openstack/nova/blob/383a4cf3710b5da2fe0b580bc25783ec8fefed48/nova/compute/claims.py#L108
20:53:18 mriedem like for disk and ram above
20:53:26 mriedem wtf, why was it even in the gd driver
20:53:40 mriedem anyway, i see now
20:54:26 openstackgerrit sean mooney proposed openstack/nova master: libvirt: use domain capablites to get supported device models https://review.opendev.org/666915
20:54:27 openstackgerrit sean mooney proposed openstack/nova master: Add transform_image_metadata request filter https://review.opendev.org/665775
21:30:07 mriedem dansmith: on the claims removal one what am i not understanding here? https://review.opendev.org/#/c/551026/4//COMMIT_MSG@16
21:35:17 openstackgerrit Adam Spiers proposed openstack/nova master: libvirt: harden Host.get_domain_capabilities() https://review.opendev.org/670189
21:40:47 aspiers efried: ^^^ I've beefed up the commit message so it may be slightly less impenetrable now :)

Earlier   Later