| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-09-05 | |||
| 11:48:47 | sean-k-mooney | Sundar: ok it would be good to ad a testing patch that runs the tempst job on nova | |
| 11:48:51 | artom | aspiers, validate_flavor_image() can't be in the driver itself because we don't want to call to the individual driver instance | |
| 11:49:05 | artom | Which is why get_machine_type is in libvirt_utils | |
| 11:49:20 | sean-k-mooney | Sundar: do you mind if i abandon the two patches against the sandbox repo to clean up the gerrit topic | |
| 11:49:31 | artom | Because it's libvirt'y, but doesn't depend on a specific host | |
| 11:49:51 | artom | aspiers, if you can find a way to abstract that ^^ for all drivers, I think it'd be the best solution | |
| 11:50:17 | sean-k-mooney | artom: the validate flavor stuff belongs in hardware.py | |
| 11:50:30 | Sundar | sean-k-mooney: I wasn;t even aware of these patches! They seem very preliminary. I don't know the author. But, IMHO, they can be abandoned. | |
| 11:50:50 | sean-k-mooney | Sundar: the sandbox repo is the one for teaching people how to use gerrit | |
| 11:51:11 | sean-k-mooney | so they are not but they have the topic which is confusing | |
| 11:51:20 | sean-k-mooney | ill close them so | |
| 11:51:23 | Sundar | sean-k-mooney: Re. "testing patch that runs the tempst job on nova", I believe that would be https://review.opendev.org/#/c/670999/ | |
| 11:51:28 | sean-k-mooney | given they are 6 mohts old | |
| 11:51:30 | artom | sean-k-mooney, yeah but aspiers has a problem with circular dependencies | |
| 11:51:38 | sean-k-mooney | artom: not any more | |
| 11:51:39 | aspiers | artom, sean-k-mooney: so the suggestion is a common validation interface across all drivers? | |
| 11:51:45 | aspiers | sean-k-mooney: no I do | |
| 11:51:56 | aspiers | sean-k-mooney: I was wrong (again) | |
| 11:52:19 | sean-k-mooney | hardware specifc tratit valdiation lives in hardare.py | |
| 11:52:19 | aspiers | sean-k-mooney: https://review.opendev.org/#/c/680065/ has circular dependencies even before sev_enabled is added | |
| 11:52:21 | luyao | stephenfin: comments addressed , and thanks for your review. https://review.opendev.org/#/q/topic:bp/virtual-persistent-memory+(status:open) | |
| 11:53:02 | aspiers | sean-k-mooney, artom: http://paste.openstack.org/show/771288/ | |
| 11:53:17 | aspiers | sean-k-mooney: so unfortunately your suggestion wasn't enough to solve it | |
| 11:53:20 | sean-k-mooney | s/triatis/flavor and image/ its where all the numa, pinning, hugepages and pci checks live | |
| 11:54:04 | aspiers | sean-k-mooney: right but until now it never cared about machine types | |
| 11:54:33 | aspiers | maybe moving get_machine_type to a separate class is the only way | |
| 11:54:37 | aspiers | s/class/file/ | |
| 11:55:08 | sean-k-mooney | no that wont work | |
| 11:55:16 | aspiers | right it won't | |
| 11:55:26 | sean-k-mooney | it because importing nova/virt/libvirt/__init__.py has sideffects | |
| 11:55:26 | aspiers | well, not unless it is moved outside nova.virt.libvirt | |
| 11:55:29 | aspiers | yes | |
| 11:55:51 | sean-k-mooney | we should remove this https://github.com/openstack/nova/blob/master/nova/virt/libvirt/__init__.py#L17 | |
| 11:55:56 | aspiers | that sounds good | |
| 11:56:00 | aspiers | why is it even there? | |
| 11:56:11 | sean-k-mooney | we proably moved things and that was a quick hack | |
| 11:56:31 | aspiers | OK so first I have to get rid of that | |
| 11:56:33 | aspiers | sigh | |
| 11:58:26 | sean-k-mooney | remind me why you need to call the fucntion to get the machine type | |
| 11:58:39 | sean-k-mooney | i know its for suspend and live migate | |
| 11:58:46 | aspiers | no | |
| 11:58:53 | aspiers | it's to check for q35 | |
| 11:58:56 | sean-k-mooney | yes | |
| 11:58:59 | aspiers | https://review.opendev.org/#/c/680065/6//COMMIT_MSG | |
| 11:59:05 | aspiers | SEV doesn't work without q35 | |
| 11:59:15 | sean-k-mooney | aspiers: where is that check going to be called form | |
| 11:59:21 | sean-k-mooney | it wont be used in the api | |
| 11:59:28 | aspiers | yes in the API was the idea | |
| 11:59:34 | sean-k-mooney | and it can only be known on the compute node | |
| 11:59:41 | sean-k-mooney | but what api | |
| 11:59:49 | sean-k-mooney | live migrate and suspend? | |
| 11:59:55 | aspiers | no, launch | |
| 12:00:04 | sean-k-mooney | it cant be known at lauch | |
| 12:00:08 | sean-k-mooney | we have not selected the host | |
| 12:00:16 | sean-k-mooney | and the machine type can be set in the hsot config | |
| 12:00:26 | aspiers | right, this is the crux of the problem | |
| 12:00:40 | sean-k-mooney | right so you cant check for q35 in the api | |
| 12:00:41 | aspiers | but we can at least check the image | |
| 12:00:51 | sean-k-mooney | at lest not the create server api | |
| 12:01:02 | aspiers | no we can check for hw_machine_type in the image | |
| 12:01:19 | aspiers | we already require hw_firmware_type=uefi | |
| 12:01:21 | sean-k-mooney | checkign the image does not require calling get default machine tyhpe | |
| 12:01:24 | sean-k-mooney | or whathever | |
| 12:01:42 | sean-k-mooney | if we are jsut checking the image then just check the metadata directly | |
| 12:02:17 | aspiers | that's what I was originally doing https://review.opendev.org/#/c/644565/49/nova/virt/libvirt/utils.py@538 | |
| 12:02:38 | sean-k-mooney | that check should be in hardware.py direclty | |
| 12:02:46 | aspiers | https://review.opendev.org/#/c/644565/49/nova/virt/libvirt/driver.py@5097 | |
| 12:02:54 | aspiers | I was originally only checking the image | |
| 12:02:57 | sean-k-mooney | you can have a second check for the machine type on the host | |
| 12:03:17 | sean-k-mooney | aspiers: for the fast fail on create server i think that is all you can do | |
| 12:03:27 | aspiers | hang on | |
| 12:03:31 | sean-k-mooney | then you can do the late check in the dirver | |
| 12:03:45 | aspiers | either we *require* hw_machine_type=q35 image property or we make it optional | |
| 12:03:49 | aspiers | which are you suggesting? | |
| 12:03:58 | aspiers | I mean in the SEV case | |
| 12:04:01 | sean-k-mooney | we will not require it | |
| 12:04:06 | sean-k-mooney | or should not | |
| 12:04:14 | aspiers | OK so then what's the point of an API check? | |
| 12:04:16 | sean-k-mooney | we can check if hw_machine_type is set | |
| 12:04:27 | sean-k-mooney | and if its not q35 reject | |
| 12:04:32 | aspiers | OK yeah | |
| 12:04:41 | aspiers | then if not set, it will fail later | |
| 12:04:46 | sean-k-mooney | but the api check was not for create it was for live migrate and suspend originaly | |
| 12:04:51 | sean-k-mooney | yep | |
| 12:04:51 | aspiers | perhaps horribly on multiple compute hosts | |
| 12:05:02 | aspiers | no live migrate/suspend is a different topic | |
| 12:05:09 | aspiers | that's not related to machine type | |
| 12:05:22 | aspiers | that relies on checking for hw_mem_encryption | |
| 12:05:30 | sean-k-mooney | we could maybe report machine types as traits in the future | |
| 12:05:36 | sean-k-mooney | but that is not ideal | |
| 12:05:37 | aspiers | that's this one https://review.opendev.org/#/c/680158/3 | |
| 12:05:47 | aspiers | kashyap: didn't we talk about that? | |
| 12:05:59 | aspiers | kashyap: about machine types as traits? | |
| 12:06:08 | aspiers | thought I vaguely remembered some discussion on that | |
| 12:06:10 | aspiers | maybe not | |
| 12:06:12 | sean-k-mooney | i think that is leaking too much info personally | |
| 12:06:33 | aspiers | I don't see a security risk but different rathole | |
| 12:06:43 | aspiers | maybe you're right but let's not go there now | |
| 12:06:44 | sean-k-mooney | no that is not what i ment | |
| 12:07:19 | sean-k-mooney | we could advertise that the host has q35 support | |