| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-03-01 | |||
| 19:32:15 | aspiers | The serialization is lossy, so it is not trivial to infer the tree from the series | |
| 19:32:41 | temka | Heh | |
| 19:32:44 | aspiers | Coincidentally, I've done a lot of work on this topic outside OpenStack: https://github.com/aspiers/git-deps | |
| 19:33:21 | aspiers | But anyway, I welcome all nitpicks, so thanks ;-) | |
| 19:33:54 | temka | aspiers, heh, I can't bring myself to concentrate fully on what I'm trying to do, so instead I nitpick others's work :/ | |
| 19:34:07 | aspiers | LOL I have exactly the same problem ;-) | |
| 19:34:23 | temka | I had no idea of your level of experience with Gerrit, so just wanted to make sure you're not pushing one patch at a time and manually specified the deps | |
| 19:35:00 | aspiers | temka: Yeah thanks, it's definitely worth checking that with unfamiliar faces^Wnicks :-) | |
| 19:35:37 | aspiers | I'm pretty familiar with Gerrit. Attended the last User Summit which was super fun and interesting. | |
| 19:35:57 | temka | But then you started talking about DAGs and I realized I'm *probably* barking up the wrong tree ;) | |
| 19:36:04 | aspiers | ;) | |
| 19:36:31 | temka | Mind you, I've seen people graduate with CS degress and not be able to write a single line of C, so :P | |
| 19:36:38 | aspiers | This is true | |
| 19:36:58 | aspiers | git and its ecosystem is actually one of my specialist areas | |
| 19:38:29 | aspiers | I've hacked on git a bit, and built a plethora of tools. Since it's Friday, you can find more ramblings at https://blog.adamspiers.org/tag/git/ if you're curious | |
| 19:38:50 | temka | "Structured Procrastination" | |
| 19:38:52 | temka | Sounds about right | |
| 19:39:13 | aspiers | Also will finish adding https://ethercalc.openstack.org/github-gerrit to the Contributor's Guide one of these days ... maybe :-o | |
| 19:41:16 | temka | aspiers, wanna add https://github.com/berrange/gerrymander in the Gerrit clients square? | |
| 19:41:31 | aspiers | ooh, that's a new one for me I think | |
| 19:41:35 | aspiers | temka: please feel free | |
| 19:42:05 | temka | Not sure it's still maintained, it's been a few years since last commit | |
| 19:43:21 | aspiers | add it anyway | |
| 19:43:25 | temka | Done | |
| 19:44:47 | aspiers | mriedem: SEV trait successfully detected on real hardware using capabilities :) https://pasteboard.co/I3rPhvJ.png | |
| 19:52:43 | mriedem | get right out of town | |
| 19:52:50 | aspiers | :) | |
| 19:53:25 | aspiers | plus all those new capability traits too of course | |
| 19:57:16 | mriedem | aspiers: so you've already worked around the virConnectGetDomainCapabilities thing? | |
| 19:57:25 | cfriesen | sean-k-mooney: ran into a problem with the cold migration with TPM.../var/lib/libvirt/swtpm and the directories under it are owned by root and nova-compute is not running as root. | |
| 19:57:58 | aspiers | mriedem: yes, https://review.openstack.org/#/c/633855/7/nova/virt/libvirt/host.py@711 | |
| 19:58:57 | aspiers | mriedem: for SEV, this is *almost* good enough for now; I think the only possible issue is that if testing on another distro, qemu-kvm might live in a different place | |
| 19:59:14 | aspiers | I don't have a RHEL / Fedora box handy to check | |
| 20:00:19 | aspiers | mriedem: and the code in comments is pretty darn close to what it will look like when that patch does land | |
| 20:19:55 | temka | Dammit, even something as simple as 2 different hostnames for the 2 compute services is going to be annoying | |
| 20:20:34 | temka | https://github.com/openstack/nova/blob/master/nova/tests/unit/virt/libvirt/fakelibvirt.py#L1131 | |
| 20:20:42 | mriedem | melwitt: i'm confused about your comment here https://review.openstack.org/#/c/633350/7/nova/objects/instance_mapping.py@42 | |
| 20:21:20 | mriedem | temka: ah that's where that comes from...i was wondering because that question came up in a functional test that gibi wrote which was using the fakelibvirt stuff | |
| 20:21:48 | mriedem | can't you modify Connection to pass in a hostname which defaults to 'compute1'? | |
| 20:22:18 | mriedem | note that self.start_service() in the tests will allow you to specify the binary (compute) and hostname which is what our multi-host functional tests do, | |
| 20:22:23 | mriedem | but those aren't using the fakelibvirt stuff | |
| 20:23:41 | temka | mriedem, it's solved in the fake virt driver, but that's different because it's a virt drive | |
| 20:24:00 | temka | fakelibvirt isn't a driver - the real libvirt is the driver | |
| 20:24:17 | temka | fakelibvirt just mocks out the parts that call the libvirt API | |
| 20:24:43 | mriedem | i.e. https://github.com/openstack/nova/blob/master/nova/virt/fake.py#L654 | |
| 20:25:08 | temka | mriedem, right, and virt/fake.py replaces virt/libvirt/driver.py | |
| 20:25:15 | mriedem | yeah i know | |
| 20:25:23 | temka | fakelibvirt.py replaces what virt/libvirt/driver.py calls down to | |
| 20:25:41 | mriedem | right the python-libvirt interface | |
| 20:25:57 | temka | Right | |
| 20:27:04 | mriedem | dansmith: am i correct in my understanding of what you're asking for here? https://review.openstack.org/#/c/633350/7/nova/objects/instance_mapping.py@42 | |
| 20:27:35 | mriedem | on load of instance mapping, of it doesn't have a user_id, try to get it from the request spec, failing that, try the build request, failing *that* try the instance via the cell mapping | |
| 20:27:45 | mriedem | s/of/if/ | |
| 20:28:04 | dansmith | mriedem: right, the nullability has nothing to do with where or how we get the user_id to fill it in | |
| 20:29:01 | temka | I guess I have to mock ComputeManager._get_nodename() | |
| 20:29:14 | temka | ... per service | |
| 20:29:26 | mriedem | dansmith: which means we wouldn't need to update the instance mapping on read of the instance from the api https://review.openstack.org/#/c/638574/4/nova/compute/api.py@2404 | |
| 20:29:42 | mriedem | although, if the request spec doesn't have user_id, and the build request is gone, and the cell the instance is in is down... | |
| 20:30:10 | mriedem | then i guess you're sol? | |
| 20:30:45 | mriedem | temka: you can't override the fakelibvirt.Connection hostname value it uses? | |
| 20:30:46 | aspiers | OK, weekend time. Have a good one everyone o/ | |
| 20:31:22 | temka | mriedem, I guess I could, but I can't make it different depending on which compute service is calling it | |
| 20:32:51 | dansmith | temka: mock service.manager._get_nodename() after it's started to return the value it needs to keep returning, instead of mocking the class | |
| 20:33:15 | temka | dansmith, tried that just now, didn't work | |
| 20:33:25 | temka | I think it needs to be mocked *before* (somehow) it's started | |
| 20:33:35 | dansmith | mriedem: yeah, I mean, making that value nullable for the down-cell-and-not-anywhere-else case is not reasonable I think | |
| 20:33:38 | temka | Because upon startup it reports to placement, and there's a hostname conflict | |
| 20:33:48 | dansmith | temka: you have to mock it both places, | |
| 20:34:00 | dansmith | temka: which is why I said "needs to keep returning" | |
| 20:34:16 | temka | dansmith, which both places? | |
| 20:34:27 | dansmith | the class will catch the startup case, but be invalid once you move to the next service, so you need to mock the resulting instance of the manager class to keep returning the value ongoing | |
| 20:34:50 | temka | Ah, I see | |
| 20:35:08 | dansmith | we used to be able to pass in a different manager class to start_service i think, which would let you just subclass per node.. can we still do that? | |
| 20:35:46 | temka | So mock fakelibvirt's getHostname, start compute0, mock its get_nodename, mock getHostname to the 2nd thing, start compute1, mock its get_nodename() | |
| 20:35:50 | temka | That feels... racy | |
| 20:36:02 | temka | Actually no | |
| 20:36:07 | dansmith | temka: there are no threads here so, no | |
| 20:37:03 | mriedem | heh you still can technically classload a compute manager class it looks like | |
| 20:37:13 | dansmith | mriedem: yeah that's what I was thinking of | |
| 20:38:08 | mriedem | self.start_service('compute', host='fake-host1', manager='artom.special.fake.ComputeManager') | |
| 20:38:28 | temka | If anyone says 'dependency injection' there's going to be violence | |
| 20:38:28 | dansmith | yeah | |
| 20:38:38 | temka | I *still* have no idea what that is | |
| 20:39:01 | temka | Despite university's best attempt to drill it into our heads with massive bloated Java frameworks | |
| 20:39:27 | mriedem | i should have gone to university to learn about hospital | |
| 20:39:38 | temka | dansmith, woot, that worked | |
| 20:39:39 | mriedem | colour flavour | |
| 20:40:44 | mriedem | dansmith: so my one reservation on loading the instance mapping user_id from the turducken is that down cell case because i'm not sure what we'd do, likely 500 from the api, but you can't really online data migrate your way out of that b/c the online data migration relies on, you guessed it, the cells being up | |
| 20:41:02 | dansmith | mriedem: yeah | |
| 20:41:29 | dansmith | you're also migrating from a state where cells had to be up, | |
| 20:41:42 | dansmith | so until all that data is patched up, it's not surprising that...all cells have to be up | |
| 20:44:49 | openstackgerrit | Merged openstack/nova master: Ironic: bump minimum API version to 1.38 https://review.openstack.org/636326 | |
| 20:56:31 | temka | "Allocation for resource provider 'e7fbbec5-7f95-4f4e-895c-a14b691bca6e' that does not exist" | |
| 20:56:40 | temka | Looks like I'm missing a placement-y fixture or something | |
| 20:57:34 | mnaser | does nova cache neutron port info somewhere? | |
| 20:57:50 | mriedem | mnaser: instance_info_caches table | |
| 20:57:51 | mnaser | i had a misconfigured n-ovs-agent which lead to resizes failing with binding_failed on the port | |
| 20:58:00 | mnaser | i've reset the info, but its still grabbing the cached value | |
| 20:58:12 | mnaser | ok, i'll dig there, thanks mriedem | |
| 20:58:47 | mriedem | mnaser: see https://review.openstack.org/#/c/591607/ | |