Earlier  
Posted Nick Remark
#openstack-nova - 2019-09-05
18:36:05 efried the latter, yes, IMO
18:36:16 efried no?
18:36:30 dansmith efried: why? the scheduler doesn't need to know why to exclude aggregates, it just needs to know that it should
18:36:52 efried well
18:37:12 dansmith AZs are aggregates, what if I were to ask next cycle for a "disabled" flag on AZs? all we would need to do is tell scheduler (and thus placement) that AZ aggregate $uuid should be forbidden
18:37:19 efried gimme a sec to make sure I'm thinking of the right object hierarchy here...
18:37:28 dansmith it's not isolated in the notion that nova's new isolated aggregate feature means, it's something else
18:38:48 efried ...so IMO what we want to be working toward is to have the placement-isms represented all and only in the RequestSpec.requested_resources field.
18:39:15 efried and in that case, since those are RequestGroup, absolutely we would have already funneled everything forbidden_aggregates into forbidden_aggregates.
18:39:24 dansmith yup, agree there
18:39:24 artom mriedem, yep, shamelessly reviewing your bugfixes to quary favour
18:39:39 efried The fact that anything that still needs to be translated to placement-ese lives in Destination (or elsewhere) is, to my way of thinking, tech debt.
18:39:42 mriedem favoUr?!
18:39:56 artom mriedem, *shrug* I changed it to a +1, didn't I? Given what dansmith said afterwards, looks like my concern was valid
18:40:22 artom mriedem, yes, the Queen's spelling
18:40:37 dansmith efried: because the words "forbidden" and "aggregates" in that order are forever trademarked by placement?
18:40:53 dansmith efried: call them excluded_aggregates in the Destination object and that'd also be fine
18:41:31 dansmith artom: here and I was all ready to defend you, but I can't get behind the queen and her broke-ass spelling
18:44:55 artom dansmith, thank you, you know you're my favourite
18:45:01 dansmith grr.
18:45:48 efried dansmith: but for the sake of shilpasd taking action, which will happen while we sleep, Destination.forbidden_aggregates will work for you, yes?
18:46:22 dansmith efried: I think I've already said it would
18:46:45 efried It's worth clarifying
18:46:48 efried measure twice, cut once
18:47:09 dansmith if this wasn't codified in our object schema until version 2.0, you could totally claim that arguing over naming is not worth the trouble
18:47:18 dansmith but this stuff will stick with us for a long time
18:47:50 dansmith so while you try to make it sound like I'm being unreasonably pedantic about the naming, I think I have a lot of version bumping battle scars (which nobody else has, btw) to back up my reasoning
18:48:17 dansmith (*object version bumping scars.)
18:48:48 efried dooood
18:48:59 efried I'm not trying to make it sound like you're being unreasonable
18:49:06 efried all I've said is I don't see the difference
18:49:15 efried and I'm happy to defer to your judgment.
18:49:33 efried which is why I ask you for reviews on object/RPC/etc stuff
18:50:07 aspiers efried: quick question, I want to reuse most of the fixture in test_config_kvm() https://github.com/openstack/nova/blob/master/nova/tests/unit/virt/libvirt/test_config.py#L2511 in new test I'm adding to test_designer.py - should I move it to fake_libvirt_data.py in a separate commit before reusing it, or move it as part of the commit adding the new test?
18:51:09 aspiers artom: BTW this is how our discussion with sean-k-mooney turned out if you're curious https://review.opendev.org/#/c/680065/
18:51:43 efried aspiers: is the patch you're adding just a test?
18:51:57 aspiers efried: no, it's the whole "apply SEV config" patch
18:52:15 efried yar. Then do it separately.
18:52:18 aspiers OK thanks!
18:53:09 artom aspiers, yep, logic looks good
18:53:17 aspiers artom: cool, thanks
18:53:46 aspiers artom: fairly close to having the follow-on commit ready which adds the machine type check to the driver
18:54:23 aspiers I'm using sean-k-mooney's nice idea of having the machine_type parameter in hardware.py optional, so the checking code can be reusedin both scenarios
18:54:44 aspiers took several redesigns but I think we're finally there
19:15:30 efried dansmith: moving up, the current ordering is my fault: I thought it was worse to first expose a conf opt that doesn't do anything, followed by the code that does the thing; than to introduce and unit test all the code, followed by a "master switch" that exposes it to the user in one go.
19:15:53 efried and thus the latter is the approach I've been advocating to *all* the series I've been reviewing this cycle.
19:16:00 dansmith efried: it is, I'm not suggesting to put the conf toggle first, of course
19:16:14 dansmith I'm suggesting you get all the plumbing that is in the last patch in front, and then land the filter and its knob together last
19:18:48 efried dansmith: that would effectively be combining the last two patches afaict. Which last-patch plumbing do you mean? Add the filter to the list but put an `if True: return` at the top of the filter method, and then s/True/CONF..../ in the last patch?
19:19:01 dansmith efried: nova-status, scheduler/report.py, utils.py and associated tests can all be done ahead of time
19:19:04 dansmith from the last patch
19:19:16 dansmith then you can add the filter and the knob,
19:19:22 dansmith and docs could be in there or in a following patch
19:19:36 dansmith the last patch is a jumble of things
19:19:44 dansmith some of which are like rebase noise or something
19:20:45 efried Yes, actually, utils.py looks like it should have been earlier regardless. client/report could just be flattened. I think the only reason these are split is to make the review smaller.
19:20:49 dansmith it's likyes
19:20:49 efried reviews
19:20:54 efried which is probably also my fault.
19:21:09 dansmith it's like the "uh, add the conf knob and all the other shit I forgot about" patch
19:21:35 efried if it was just the former, it would be okay IMO
19:22:00 dansmith there's no reason to land the filter and the knob separately
19:22:03 dansmith there is reason to land the plumbing separate from the filter/knob
19:22:15 dansmith and it's fine to add the docs in a separate patch, which could slip past FF even
19:22:41 efried yeah, I just don't actually see any "plumbing" to speak of in that last patch
19:22:54 dansmith well, like you said, it's stuff that should have been earlier
19:23:16 dansmith the utils change, the placement version requirement bump, etc
19:23:55 efried okay, so again for the sake of being able to give shilpa a clear message, would it be acceptable to move the .py bits (including conf knob) of the last patch into the second-last patch, and leave the last patch for docs/reno?
19:24:27 efried because rn I don't think she understands that there's an action to be taken, based on her response.
19:25:44 dansmith I think that the sorted change in utils is probably its own patch, with tests so that it's easy to validate which test is confirming that, then yes the filter, knob,
19:26:00 dansmith isn't the report client bit actually already late?
19:26:27 dansmith meaning we already have code landed to put the not-member-of stuff in the qparams, we just won't ever run that code nor ask for the right version?
19:26:30 efried dansmith: it's not necessary until there's code that can hit the placement request with forbidden agg syntax
19:26:37 dansmith if so, that would also be a "whoopsie" pre-patch, IMHO
19:27:14 dansmith efried: mixing that up is not great to me.. if there's code that, if called, could generate a query that needs a newer version but it won't be provided,
19:27:17 dansmith that was a mistake
19:27:25 dansmith but whatever
19:27:39 efried yeah, could be perceived as "we can't hit this code so it doesn't matter" regardless of the reason we can't hit it, but I see your point.
19:28:00 dansmith anyone else could land a patch right now that calls that code in such a way that it won't generate a sensible placement request
19:28:07 dansmith and since it's kinda library/client code, it should be landed in a way that makes it work if called, IMHO
19:28:35 efried ack
19:28:36 dansmith so, to summarize,
19:28:41 dansmith if it were me, I would ask for:
19:29:03 dansmith 1. A patch to fix up all the "oops I forgot" stuff in the placement client section, which is a chunk of the last patch currently
19:29:12 dansmith 2. A patch to add the filter and its knob
19:29:42 dansmith 3. Docs (and reno) at the end, which is the remaining bit of the last patchI think (if you subtract some of the random changes that are in there like renaming a test)
19:30:14 mriedem artom: some comments/questions on patches 2 and 3, onto the big one https://review.opendev.org/#/c/634606/
19:31:04 artom mriedem, cheers! I have to pick up kids from school in 15, so my responses will have to wait later tonight, and probably into tomorrow morning
19:32:20 efried dansmith: okay. I think I could probably do that shuffle and still +2 without losing sleep.
19:32:37 dansmith efried: agree
19:35:42 mriedem artom: yeah nothing major so far, just +1 with "i'm still going, but answer before i +2"
19:37:11 dansmith mriedem: presume you've seen the CI job logs that shows this working too.. it's handy to trawl that looking for things to line up
19:37:26 dansmith and also, sean-k-mooney did some manual testing yesterday that was meaningful to me, with edge cases and such
19:38:06 artom "+1 I'm still going" is all we can hope from life
19:43:50 mriedem dansmith: yes i was https://zuul.opendev.org/t/openstack/build/d51f91efa937411a9179b930eff3ab08/log/controller/logs/screen-n-cpu.txt.gz#2199
19:44:50 efried rebase only...
19:44:53 openstackgerrit Eric Fried proposed openstack/nova master: DB API changes to get non-matching aggregates from metadata https://review.opendev.org/671074
19:44:53 openstackgerrit Eric Fried proposed openstack/nova master: Nova object changes for forbidden aggregates request filter https://review.opendev.org/671072
19:44:54 openstackgerrit Eric Fried proposed openstack/nova master: Enable request filter isolate_aggregates https://review.opendev.org/667952
19:44:54 openstackgerrit Eric Fried proposed openstack/nova master: Add a new request filter to isolate aggregates https://review.opendev.org/671075

Earlier   Later