| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-02-27 | |||
| 22:07:28 | artom | cfriesen, weirdness? It's a method disguised as a property, but other than that... | |
| 22:07:36 | artom | So, you can't actually set it, IIRC | |
| 22:08:18 | cfriesen | artom: I'm not seeing entries that I think should be in there. | |
| 22:08:38 | cfriesen | artom: they're in the instance_system_metadata table in the DB | |
| 22:09:18 | artom | cfriesen, lazy-loading? | |
| 22:09:24 | artom | Guessing, mostly | |
| 22:09:33 | openstackgerrit | Eric Fried proposed openstack/nova master: Test proper allocation of devices during reshape https://review.openstack.org/639854 | |
| 22:13:07 | efried | mriedem, jaypipes: I think vgpu reshape is ready to go https://review.openstack.org/#/c/636591/ | |
| 22:14:23 | melwitt | efried: AFAIK, I don't think doing that is a thing. why do you want to do it? | |
| 22:14:55 | efried | melwitt: just because there's a libvirt method I want to call that expects Instance. See https://review.openstack.org/639854 | |
| 22:15:48 | melwitt | oh, I see. I haven't seen a test like that before | |
| 22:16:36 | melwitt | mriedem is probably your best bet for an idea | |
| 22:17:08 | mriedem | cfriesen: that's because image meta is stored in instance_system_metadata | |
| 22:17:33 | mriedem | cfriesen: hence https://github.com/openstack/nova/blob/master/nova/objects/image_meta.py#L126 | |
| 22:19:37 | mordred | mriedem: wow, yea. that's awesome | |
| 22:19:42 | mriedem | efried: commented | |
| 22:19:45 | cfriesen | mriedem: _get_guest_config() is called with "image_meta" as an arg, but image_meta.properties.get('traits_required') returns nothing | |
| 22:19:47 | mriedem | on your test that is | |
| 22:20:07 | mordred | mriedem: have we ever fixed documentation suggesting people not use "RegionOne" as the region names for their clouds? | |
| 22:20:21 | melwitt | heh, well that was easy | |
| 22:20:25 | mriedem | mordred: not familiar | |
| 22:20:28 | efried | thanks mriedem | |
| 22:20:36 | cfriesen | mriedem: I see "image_trait:COMPUTE_SECURITY_TPM_1_2" in table instance_system_metadata though | |
| 22:20:39 | mordred | mriedem: and here I thought you knew everything | |
| 22:21:17 | mriedem | mordred: i'm selfish and only care about compute api docs | |
| 22:21:42 | mriedem | heh lots o todos here https://developer.openstack.org/api-guide/compute/users.html | |
| 22:22:45 | mriedem | cfriesen: _get_guest_config() called with image_meta from where? the API? | |
| 22:22:56 | artom | Do you think egotistical lobsters are shellfish? | |
| 22:23:13 | mriedem | if only the guy that added all the required image traits stuff was still around... | |
| 22:23:24 | cfriesen | mriedem: this is in the context of LibvirtDriver.finish_migration(). I'm wondering if we're not properly passing in image_meta at all. | |
| 22:24:30 | mriedem | cfriesen: "image_trait" isn't the right prefix silly pants | |
| 22:24:48 | mriedem | https://docs.openstack.org/glance/latest/admin/useful-image-properties.html | |
| 22:24:53 | mriedem | trait:HW_CPU_X86_AVX2=required | |
| 22:25:01 | mriedem | if only the code were freely available... :) | |
| 22:25:04 | openstackgerrit | Artom Lifshitz proposed openstack/nova master: RPC changes to prepare for NUMA live migration https://review.openstack.org/634605 | |
| 22:25:05 | openstackgerrit | Artom Lifshitz proposed openstack/nova master: Make the use of the CastAsCall fixture configurable https://review.openstack.org/639428 | |
| 22:25:05 | openstackgerrit | Artom Lifshitz proposed openstack/nova master: Full NUMA live migration support https://review.openstack.org/634606 | |
| 22:25:09 | mordred | artom: wow | |
| 22:25:10 | cfriesen | mriedem: the image itself has "trait:...." | |
| 22:25:32 | mriedem | oh b/c we slap on the image_ prefix before storing in system_metadata | |
| 22:25:34 | mriedem | now it comes back to me | |
| 22:25:35 | cfriesen | mriedem: but it in instance_system_metadata it prepends "image_" to it | |
| 22:25:36 | mriedem | is the value "required" | |
| 22:25:38 | mriedem | ? | |
| 22:25:43 | cfriesen | mriedem: yes | |
| 22:26:07 | cfriesen | I'm working my way up the stack trying to figure out where it got lost | |
| 22:26:22 | mriedem | well instance.image_meta -> ImageMeta.from_instance -> instance.system_metadata for all image_ keys | |
| 22:26:26 | mriedem | and it strips the image_ prefix | |
| 22:26:57 | artom | mordred? | |
| 22:26:58 | cfriesen | there's an "image_meta" argument that's passed down the call chain | |
| 22:27:48 | sean-k-mooney | there is also image meta in the instance and the request spec | |
| 22:27:59 | sean-k-mooney | we have several copies of it depended on where you are | |
| 22:29:15 | cfriesen | hmm...ComputeManager._finish_resize_helper() does this: image_meta = objects.ImageMeta.from_dict(image) | |
| 22:30:32 | mordred | artom: "Do you think egotistical lobsters are shellfish?" :) | |
| 22:46:37 | cfriesen | mriedem: it looks like the culprit is that call in _finish_resize_helper(). image.properties has "traits_required", but image_meta.properties doesn't. | |
| 22:48:15 | mriedem | cfriesen: i think i know why | |
| 22:48:40 | mriedem | https://github.com/openstack/nova/blob/master/nova/conductor/tasks/migrate.py#L296 | |
| 22:49:00 | mriedem | resize gets the RequestSpec.image rather than Instance.image_meta | |
| 22:49:16 | mriedem | which might not have the fancy translation of ImageMeta.properties.traits_required | |
| 22:50:35 | cfriesen | okay, but in _finish_resize_helper() the "image" argument seems to have a valid image.properties | |
| 22:50:58 | cfriesen | the call to objects.ImageMeta.from_dict(image) seems to be corrupting the image properties | |
| 22:51:12 | cfriesen | dropping the "traits_required" | |
| 22:52:33 | cfriesen | looks like "traits_required" has some special-casing in objects/image_meta.py | |
| 22:52:38 | cfriesen | wonder if something is messed up | |
| 22:58:03 | openstackgerrit | Merged openstack/os-vif master: Add "master" parameter to ip.set() API function https://review.openstack.org/639702 | |
| 23:04:55 | melwitt | zzzeek: I recently learned func.sum will return a Decimal object (https://review.openstack.org/639216) but I can't find where in the documentation I can learn what type will be returned from various func. can you point me to a doc I missed? | |
| 23:08:42 | cfriesen | mriedem: I think I see what's wrong. In _finish_resize_helper() the "image" argument looks like this, with "traits_required" already broken out: http://paste.openstack.org/show/746468/ | |
| 23:09:40 | cfriesen | mriedem: but in ImageMetaProps.from_dict() it ignores "traits_required" and tries to build it up from the original "trait:xxxxxx" image property, which isn't there. | |
| 23:09:51 | openstackgerrit | Eric Fried proposed openstack/nova master: Test proper allocation of devices during reshape https://review.openstack.org/639854 | |
| 23:11:22 | sean-k-mooney | cfriesen: the image metadata key never contains a ":" | |
| 23:11:47 | cfriesen | sean-k-mooney: yes it does, for traits | |
| 23:11:50 | mriedem | because it was already transformed and stored in system_metadata | |
| 23:12:00 | sean-k-mooney | cfriesen: nova uses namesapce:key=value | |
| 23:12:05 | sean-k-mooney | cfriesen: are you sure | |
| 23:12:11 | mriedem | ImageMetaProps.from_dict() is expecting the trait:COMPUTE_SECURITY_TPM_1_2=required format | |
| 23:12:14 | sean-k-mooney | i dont think its ment to be supproted | |
| 23:12:25 | mriedem | which in the api it parses to ImageMetaProps.traits_required right? | |
| 23:12:26 | sean-k-mooney | oh ok ignore me then | |
| 23:12:30 | mriedem | and then that is stored in system_metadata | |
| 23:12:36 | cfriesen | sean-k-mooney: https://specs.openstack.org/openstack/nova-specs/specs/rocky/implemented/glance-image-traits.html | |
| 23:12:48 | cfriesen | mriedem: yep | |
| 23:12:49 | mriedem | and then ImageMetaProps.from_dict from system_metadata image properties only has the "traits_required" entry | |
| 23:12:57 | mriedem | but not the original trait:COMPUTE_SECURITY_TPM_1_2=required | |
| 23:13:13 | mriedem | cfriesen: should be pretty easy to write a test to show the loss during conversion | |
| 23:13:44 | sean-k-mooney | cfriesen that was proably an oversigt in the spec... | |
| 23:13:48 | mriedem | hasn't been an issue yet because no one has used image traits beyond scheduling yet | |
| 23:14:01 | cfriesen | mriedem: seems likely | |
| 23:14:27 | openstackgerrit | Eric Fried proposed openstack/nova master: Test proper allocation of devices during reshape https://review.openstack.org/639854 | |
| 23:15:25 | sean-k-mooney | cfriesen: looking at https://github.com/openstack/nova/blob/f7252b586b4b9f5a098fedfa27715b8f7e662af6/nova/notifications/objects/image.py#L184 | |
| 23:15:35 | sean-k-mooney | it looks like its expecting traits_required | |
| 23:16:25 | sean-k-mooney | both the schema and field follow the normal convetion and use _ | |
| 23:16:27 | sean-k-mooney | https://github.com/openstack/nova/blob/f7252b586b4b9f5a098fedfa27715b8f7e662af6/nova/notifications/objects/image.py#L253 | |
| 23:17:17 | mriedem | those are the notification objects... | |
| 23:17:53 | cfriesen | sean-k-mooney: https://github.com/openstack/nova/blob/f7252b586b4b9f5a098fedfa27715b8f7e662af6/nova/objects/image_meta.py#L566 seems to explicitly ignore "traits_required" | |
| 23:21:09 | sean-k-mooney | hum ok that is stil rather confusing but ok | |
| 23:21:46 | openstackgerrit | Artom Lifshitz proposed openstack/nova master: Introduce live_migration_claim() https://review.openstack.org/635669 | |
| 23:21:47 | openstackgerrit | Artom Lifshitz proposed openstack/nova master: New objects for NUMA live migration https://review.openstack.org/634827 | |
| 23:21:47 | openstackgerrit | Artom Lifshitz proposed openstack/nova master: LM: add support for sending NUMAMigrateData to the source https://review.openstack.org/634828 | |
| 23:21:48 | openstackgerrit | Artom Lifshitz proposed openstack/nova master: LM: add support for updating NUMA-related XML on the source https://review.openstack.org/635229 | |
| 23:21:49 | openstackgerrit | Artom Lifshitz proposed openstack/nova master: RPC changes to prepare for NUMA live migration https://review.openstack.org/634605 | |