Earlier  
Posted Nick Remark
#openstack-nova - 2019-02-27
21:48:50 mriedem "here is an example of how to create a server, with exactly what not to do"
21:48:59 mriedem "you're welcome"
21:49:11 melwitt go us
21:51:19 artom Like something out of Zoolander
21:52:47 artom Bruce Migate
21:53:14 melwitt migrations that run good and do other stuff good too
21:57:03 artom What is this, a server for ants?
22:00:18 jaypipes sean-k-mooney: done
22:06:17 efried Howdy folks. How, in the ServersTestBase harness, does one go from a server dict to an Instance object?
22:06:41 cfriesen is anyone aware of weirdness with accessing image_meta in the resize code path in devstack?
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

Earlier   Later