| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-09-05 | |||
| 20:15:53 | openstackgerrit | Eric Fried proposed openstack/nova master: Nova object changes for forbidden aggregates request filter https://review.opendev.org/671072 | |
| 20:15:53 | openstackgerrit | Eric Fried proposed openstack/nova master: DB API changes to get non-matching aggregates from metadata https://review.opendev.org/671074 | |
| 20:15:58 | openstackgerrit | Eric Fried proposed openstack/nova master: Add a new request filter to isolate aggregates https://review.opendev.org/671075 | |
| 20:15:58 | openstackgerrit | Eric Fried proposed openstack/nova master: Docs for isolated aggregates request filter https://review.opendev.org/667952 | |
| 20:16:13 | mriedem | totally unrelated to the numa live migration stuff, but can this fail the 'claim' for sriov pci devices on the dest host? https://github.com/openstack/nova/blob/f7f5e1846c7b19aa05817df7f3c4345819db413f/nova/compute/manager.py#L6491 | |
| 20:16:16 | mriedem | and if so, how does it fail? | |
| 20:17:07 | mriedem | because there is a very specific set of exceptions that will trigger a reschedule to an alternate host https://github.com/openstack/nova/blob/f7f5e1846c7b19aa05817df7f3c4345819db413f/nova/conductor/tasks/live_migrate.py#L482 | |
| 20:17:23 | mriedem | so if that stuff doesn't result in MigrationPreCheckError we'll fail the live migratoin b/c the first host claim failed | |
| 20:17:26 | mriedem | sean-k-mooney: ^ | |
| 20:18:41 | openstackgerrit | Dan Smith proposed openstack/nova master: Find instance in another cell during floating IP re-association https://review.opendev.org/656594 | |
| 20:18:44 | mriedem | trying to follow that pci claim code is going down a rabbit hole | |
| 20:18:51 | dansmith | mriedem: ^ | |
| 20:20:50 | mriedem | want to hit that test comment while you're updating? | |
| 20:43:26 | openstackgerrit | Merged openstack/nova master: neutron: refactor nw info cache refresh out of associate_floating_ip https://review.opendev.org/678300 | |
| 20:56:31 | mriedem | oooo https://github.com/openstack/nova/blob/f7f5e1846c7b19aa05817df7f3c4345819db413f/nova/scheduler/filter_scheduler.py#L173-L187 - if it weren't for USES_ALLOCATION_CANDIDATES we could burn all of that queens compat code out of the filter scheduler | |
| 20:57:51 | mriedem | artom: dansmith: ok comments in the big one https://review.opendev.org/#/c/634606/75 | |
| 21:05:40 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Find instance in another cell during floating IP re-association https://review.opendev.org/656594 | |
| 21:05:45 | dansmith | mriedem: cool thanks | |
| 21:05:58 | mriedem | ok i think that multi-cell floating ip thing is ready | |
| 21:06:33 | artom | mriedem, thanks! It's supper time now, will work a bit after, then gym, so tomorrow morning | |
| 21:06:43 | artom | Haven't been to gym in, like, a week, not cool | |
| 21:08:39 | openstackgerrit | Merged openstack/nova master: Trap and log errors from _update_inst_info_cache_for_disassociated_fip https://review.opendev.org/678301 | |
| 21:13:32 | mriedem | gerrit is down anyway | |
| 21:21:18 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Remove old comments about caching scheduler compat https://review.opendev.org/680521 | |
| 21:36:11 | openstackgerrit | Eric Fried proposed openstack/nova master: Add a new request filter to isolate aggregates https://review.opendev.org/671075 | |
| 21:36:11 | openstackgerrit | Eric Fried proposed openstack/nova master: Docs for isolated aggregates request filter https://review.opendev.org/667952 | |
| 21:37:13 | mriedem | alex_xu: can you take a look at the api change to attach a volume (and list/show vol attachments) with delete_on_termination? https://review.opendev.org/#/c/673133/ - it's probably going to be 2.79; i'm +2 on it | |
| 21:42:59 | openstackgerrit | Adam Spiers proposed openstack/nova master: Ensure non-q35 machine type is not used when booting with SEV https://review.opendev.org/680065 | |
| 21:43:32 | openstackgerrit | Adam Spiers proposed openstack/nova master: Extract fake KVM guest fixture for reuse https://review.opendev.org/680526 | |
| 21:44:47 | openstackgerrit | Adam Spiers proposed openstack/nova master: Move get_machine_type() test to test_utils.py https://review.opendev.org/680527 | |
| 21:57:03 | efried_afk | dansmith: vpmem json blob => hyp-specific ovo (https://review.opendev.org/#/c/678448/), you said to follow the example of LiveMigrateData. | |
| 21:57:03 | efried_afk | So I think that means they should make a base class (e.g. ResourceMetadata) and make LibvirtPMEMDevice (https://review.opendev.org/#/c/678453/19/nova/objects/resource.py) a subclass thereof. | |
| 21:57:03 | efried_afk | I can't see where LiveMigrateData is a field in another ovo, though; is it kosher to make Resource.metadata of type ResourceMetadata even though IRL it will always be a *subclass*? | |
| 21:57:39 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Rename Claims resources to compute_node https://review.opendev.org/679470 | |
| 21:58:13 | dansmith | yeah, although you might have to register the base to make that work, which I don't think was required for the MD case because we always sent the child and not the parent, IIRC, but it's been a whiel | |
| 21:58:33 | efried_afk | what does "register the base" mean? | |
| 21:59:40 | mriedem | @obj_base.NovaObjectRegistry.register | |
| 22:00:10 | mriedem | note that the base LiveMigrateData is not registered | |
| 22:00:11 | mriedem | https://github.com/openstack/nova/blob/master/nova/objects/migrate_data.py#L112 | |
| 22:00:16 | mriedem | b/c everything uses the subclasses | |
| 22:00:25 | dansmith | right that ^ | |
| 22:00:48 | dansmith | efried: ovo requires a shared registry of the schemas on either side to ensure proper versioning | |
| 22:00:50 | efried | everything will use the subclass in this case too... unless you mean that the Resource object will "use" the base class? | |
| 22:00:55 | mriedem | so i can't do something like this in my driver: migrate_data = objects.LiveMigrateData(all_my_cool_shenanigans={...}) | |
| 22:01:07 | dansmith | efried: the difference is the inclusion in a field, which has to specify an object in the registry, IIRC | |
| 22:01:14 | dansmith | which is why it's by name and not by reference | |
| 22:01:17 | efried | okay, cool. | |
| 22:03:58 | efried | dansmith, mriedem: Did I say it right? https://review.opendev.org/#/c/678448/15/nova/objects/resource.py@36 | |
| 22:05:01 | mriedem | i don't know that the chinese are going to understand the south park underpants gnomes reference | |
| 22:05:20 | efried | I've never actually even seen that thing | |
| 22:05:33 | efried | indirect meme reference culture | |
| 22:05:52 | dansmith | efried: commented | |
| 22:05:55 | efried | I could find it if I wanted | |
| 22:06:33 | efried | dansmith: thanks. I think nullable because not all ResourceZ are going to have metadata. | |
| 22:06:41 | mriedem | then don't set the field | |
| 22:06:44 | dansmith | efried: yeah, that's the wrong answer | |
| 22:06:47 | efried | ah | |
| 22:07:25 | efried | unset vs value of None vs object with no fields initialized vs object with fields set to None vs ..... | |
| 22:07:26 | dansmith | I thought I already commented about this in this patch, but maybe I was overwhelmed by the larger sin of using a string here and it didn't come through | |
| 22:07:42 | mriedem | i need to make dan a shirt that has nullable=True on some object field with the circle bar banned icon on it | |
| 22:07:49 | dansmith | I'd wear it | |
| 22:08:17 | dansmith | efried: I suspect the right thing there is to always have a metadata object in that field (hence never None), with either fields set appropriately empty or whatever else, | |
| 22:08:26 | dansmith | but it's hard to tell what the right thing is because it's not defined there | |
| 22:08:43 | dansmith | that's probably why I didn't comment, because I don't know WHAT that is, other than a dumping ground for blobs | |
| 22:10:03 | mriedem | it's this thing i think https://review.opendev.org/#/c/678453/19/nova/objects/resource.py | |
| 22:10:03 | efried | it's for hypervisor-specific, resource-specific metadata for a Resource. And not all ResourceZ are going to have any. It would seem like a lot of work to a) make sure to set the value b) to an empty object, meaning c) you have to make sure the object type can be "empty", whatever that means, etc. | |
| 22:10:12 | mriedem | used here https://review.opendev.org/#/c/678454/19/nova/virt/libvirt/driver.py@6934 | |
| 22:10:33 | mriedem | efried: not empty, just don't set the field | |
| 22:10:44 | efried | so does "nullable=False" just mean you're not allowed to set it to None? | |
| 22:10:48 | mriedem | correct | |
| 22:10:53 | efried | and that's the default behavior. | |
| 22:11:01 | mriedem | yeah | |
| 22:11:09 | dansmith | correct | |
| 22:11:20 | efried | and you check with | |
| 22:11:20 | efried | if 'metadata' in res_obj: | |
| 22:11:20 | efried | ? | |
| 22:11:23 | dansmith | if there's really a reason to have it =None then it _should_ be nullable, | |
| 22:11:43 | dansmith | but for something like this, the presence of the metadata object isn't the thing you want, it's what is inside | |
| 22:11:44 | mriedem | efried: yup | |
| 22:12:00 | dansmith | so if you always make these things nullable=True, then you always have to check first | |
| 22:12:11 | dansmith | like, if that was what it was intended to be in the first place, you'd have to do: | |
| 22:12:42 | dansmith | if foo.metadata: if parse(foo.metadata): do_something(foo.metadata) | |
| 22:12:49 | dansmith | when really you want to just be able to do something like | |
| 22:13:03 | dansmith | if foo in resources.metadata | |
| 22:13:05 | dansmith | or something like that | |
| 22:13:15 | dansmith | take a degree of freedom out of the thing by always making it present | |
| 22:13:22 | mriedem | if you like mega conditionals https://github.com/openstack/nova/blob/master/nova/scheduler/host_manager.py#L760 | |
| 22:13:49 | efried | egads | |
| 22:13:50 | mriedem | RequestSpec is i think the king of "if a and b and c and not d" | |
| 22:13:51 | dansmith | because later when you have two versions out there, ambiguity is the enemy | |
| 22:15:21 | efried | cool, thanks for the primer. This was easier than having 12h between each call & response. | |
| 22:15:40 | dansmith | not for me | |
| 22:15:57 | mriedem | time to start a versioned objects FAQs doc | |
| 22:16:01 | dansmith | easier to ignore with 12h latency | |
| 22:16:37 | dansmith | on my blog, which is apparently the canonical source for nova RPC information | |
| 22:16:51 | openstackgerrit | Adam Spiers proposed openstack/nova master: Apply SEV-specific guest config when SEV is required https://review.opendev.org/644565 | |
| 22:16:59 | mriedem | heh, you know it | |
| 22:17:36 | mriedem | pulling stuff from slides 5-8 here (which is a lot based on the blog) into nova docs might be good to start https://docs.google.com/presentation/d/1YeXlL1EPaZTRkbJDywJKBrugXz-Amri3fIQk2ctOugs/edit?usp=sharing | |
| 22:18:17 | efried | dustinc: you around? | |
| 22:18:35 | mriedem | note slide 11 :) | |