Earlier  
Posted Nick Remark
#openstack-nova - 2025-06-05
10:12:06 stephenfin gmaan: let me know if you want to discuss https://review.opendev.org/c/openstack/nova/+/936368 too. I'm *very* surprised there's been so much pushback on that, since it seems a no-brainer and is spec-compliant. I suspect you (and Uggla) might be missing something and that I haven't explained it properly
13:21:25 opendevreview Merged openstack/nova-specs master: Re-propose API policy service role spec https://review.opendev.org/c/openstack/nova-specs/+/951218
13:54:11 gibi Uggla: thanks for the review on the eventlet-removal series. I replied. I will respin the series based on you comments as there are points that worth to mention in the commit messages / doc tests
13:55:49 Uggla gibi, you're welcome. I have not continue reviewing the serie today, but I will try tomorrow or next week.
13:56:37 gibi cool
14:06:25 Uggla Maybe I should recommend for reviewers to read your latest blog post, before reviewing the first patch. It clarifies the context and the "service worker" bug.
14:08:06 gibi yeah the blog is there to give more context that is hard to give via a single commit message as it is not related to a single commit but a series of commits / events
14:32:16 stephenfin Uggla: Got another one for you to revisit when you have a chance https://review.opendev.org/c/openstack/nova/+/937047
15:10:42 gmaan stephenfin: thanks for review specs. for 936368, I will ping you top of hr, hope that is not late for u.
15:10:54 stephenfin ack
16:43:30 gmaan stephenfin: I read your reply, let me check some test for non-string as part of jsonschema as whole. I agree not to include those in format-checker tests
16:46:14 opendevreview Pierre Riteau proposed openstack/nova master: doc: Fix Caracal release number https://review.opendev.org/c/openstack/nova/+/951883
17:22:19 gmaan stephenfin: I am good on 936368, found the testing in controller tests which is what I was looking for
17:23:31 gmaan sean-k-mooney: in case you forgot :), manager role spec is ready https://review.opendev.org/c/openstack/nova-specs/+/937650
17:29:08 sean-k-mooney ill take a look later this evening
17:29:55 sean-k-mooney ah you renamed the file so i cant just see what chagned between v5 and v9 no worreis
17:46:37 gmaan for v5, yes it is renamed but you can see from ps7-ps9 (your last +1 ) https://review.opendev.org/c/openstack/nova-specs/+/937650/7..9
18:02:19 sean-k-mooney ack im writing something up which will take me about anouther hour or so. ill try an take a look after that
20:14:26 opendevreview Merged openstack/nova master: Remove contrib/clean-on-delete.py https://review.opendev.org/c/openstack/nova/+/950592
20:14:48 opendevreview Merged openstack/nova master: doc: Fix Caracal release number https://review.opendev.org/c/openstack/nova/+/951883
#openstack-nova - 2025-06-06
08:00:10 opendevreview Friedrich Hiekel proposed openstack/nova master: Fix nova-scheduler placement error https://review.opendev.org/c/openstack/nova/+/951936
09:42:49 stephenfin sean-k-mooney: Could you add this follow-up to your review queue? https://review.opendev.org/c/openstack/nova/+/951640/
09:43:18 sean-k-mooney im still going though my emilas this morning so i can review it now
09:43:48 sean-k-mooney ok so its a followup to api: Stop using wsgi.Controller.api_version to switch between API versions
09:44:53 stephenfin yup
09:45:01 stephenfin per gmaan's comments on same
09:47:09 sean-k-mooney cool done
09:47:51 sean-k-mooney assumign the parent pass ci this time it should be mergable when ever it gets to that point
10:39:28 opendevreview Stephen Finucane proposed openstack/nova master: api: Address issues with hypervisors APIs https://review.opendev.org/c/openstack/nova/+/950867
10:45:47 opendevreview Stephen Finucane proposed openstack/nova master: api: Address issues with instance actions API https://review.opendev.org/c/openstack/nova/+/951941
11:31:10 opendevreview Balazs Gibizer proposed openstack/nova master: Remove unused config options https://review.opendev.org/c/openstack/nova/+/951945
11:32:56 gibi sean-k-mooney: stephenfin: a follow up for WSGIServer removal ^^
11:33:39 sean-k-mooney didnt you propose that before i tough i reveied it
11:33:42 stephenfin I love deleting code
11:33:45 stephenfin done
11:33:56 gibi thanks
11:34:20 sean-k-mooney oh there are more cases we missed.
11:34:42 gibi yepp, I just detected them when I started looking at the deeventletification of nova-api
11:36:27 sean-k-mooney ok that going to conflcit with my pre-commit updates but ill approve and i cna update the last patch for bandit
11:36:52 sean-k-mooney stephenfin: since your about mind looking at https://review.opendev.org/q/topic:%22update-precommit%22
11:39:39 stephenfin done to
11:39:40 stephenfin *too
11:40:58 sean-k-mooney thanks, ill need to rebase the bandit one later but ill do that after the other changes have merged
11:56:05 stephenfin gmaan: sean-k-mooney: gibi: If any of you have the time/inclination, I could do with some thoughts on how to approach https://github.com/stephenfin/nova/commit/2d14a58f6310861b426359d71fba085e924e0538 (not pushed yet to avoid overwhelming Gerrit more than I have already)
11:56:38 stephenfin the tl;dr: is that our use of the "soft" additionalProperties validator doesn't work when oneOf is used
11:57:46 sean-k-mooney ... 4/6 just for servers. better then all in one but that going to be fun to review...
11:58:29 stephenfin That validator deletes unrecognised ("additional") keys from the input data. That's all fine and dandy normally, but when you're using 'oneOf' with 2 or more subschemas with non-overlapping keys, then keys that are invalid for an earlier schema but which are valid for a later schema will end up getting deleted
11:58:35 sean-k-mooney stephenfin: so it nice an short but is there a specic point you want input on
11:59:06 stephenfin yeah: how on earth do we work around this? 😅
11:59:24 sean-k-mooney jsut reading now
11:59:33 sean-k-mooney so ok were are you using onof there
12:00:06 sean-k-mooney ah
12:00:23 sean-k-mooney so either we get teh reservation_id
12:00:36 sean-k-mooney or the fulll server responce?
12:01:09 stephenfin yup
12:01:18 sean-k-mooney can we set addtionalProperties true in the reservation_id path
12:01:21 gibi stephenfin: I'm a bit low on context. Why does the validator delete keys based on earlier schemas?
12:01:26 stephenfin I didn't know that was a thing until I'd to write the schema for it
12:01:36 stephenfin gibi: sean-k-mooney: Here's a much smaller example https://paste.opendev.org/show/bpifVj7I2TTaQtFwVj4T/
12:02:03 sean-k-mooney stephenfin: reservation id is only used in multi create
12:02:09 stephenfin gibi: https://github.com/openstack/nova/blob/master/nova/api/validation/validators.py#L182
12:02:44 stephenfin first added here https://github.com/openstack/nova/commit/4fefd25c807c087694a0e66f4d91fe0e64ef3f18
12:03:16 sean-k-mooney let me try something locally for one sec
12:03:48 stephenfin gibi: the idea behind that appears to be to allow users to specify provide additional properties in requests when using the legacy v2 API, but to strip them out and ignore them so that e.g. they can't accidentally trigger code paths for newer API versions
12:04:02 stephenfin s/specify provide/provide/
12:05:34 gibi stephenfin: I see so this is only for the legacy v2 compatible mode
12:05:34 stephenfin but if you apply that to that minimal reproducer I just shared, and make a request that satisfies the second subschema (e.g. {"bar": "hello, world"}) but not the first, we attempt to match against the first one and strip out properties that are not permitted by that
12:05:38 stephenfin yes
12:06:42 gibi so the rule would be to strip out only those properties that are not in the oneOf branch that eventually matched. But I guess this is not easy to impelement in that context
12:06:51 stephenfin I've been sitting on this for a few months, and now that things are merging rapidly (thanks sean-k-mooney, gmaan), it's properly time to figure out a solution 😅
12:07:36 stephenfin no, unfortunately not
12:08:24 stephenfin jsonschema iterates through the oneOf entries and processes each subschema separately, so we have no visibility into anything "above" the subschema, if that makes senes
12:08:25 stephenfin *sense
12:09:49 gibi then the best we can do is that for those schemas that has oneOf we relax the current rule and always preserve additional properties
12:10:44 stephenfin Yeah, that's where I'm thinking we'll end up too. I just don't know the consequences of same
12:11:27 gibi this is a compatibility layer that should not really used any more
12:11:42 stephenfin I was thinking I could move this "delete additional properties" logic into the various affected methods themselves, but that's a big list and I don't know if there's any way to know we're handling a v2 request vs. a v2.1+ request
12:11:44 gibi I would inclined to simply deprecate it as we cannot maintain it any more
12:11:55 stephenfin yeah, that's the other option: delete v2
12:12:04 sean-k-mooney is something like this valid https://paste.opendev.org/show/bkS797jQUZZoSNXnhlvO/
12:12:30 sean-k-mooney and if so is oneOF valid as the value of required
12:12:45 sean-k-mooney also have you asked gemini :)
12:14:23 sean-k-mooney ok it has a idea
12:14:33 sean-k-mooney https://paste.opendev.org/show/bMERk0Vt08kwAdUW6tLi/
12:14:46 sean-k-mooney let me ask it with the full example
12:14:54 gibi hm does the validator in the _soft_validate_additional_properties sees the whole big schema? or has some kind of memory when the validation descends the tree? Could we use that validator object to stop applying the rule in the subtree of all oneOfs dinamically?
12:15:39 stephenfin sean-k-mooney: ah, no that won't work (and I actually recall trying it before): you can't combine additionalProperties with oneOf https://github.com/python-jsonschema/jsonschema/issues/193
12:16:11 stephenfin https://ajv.js.org/faq.html#additional-properties-inside-compound-keywords-anyof-oneof-etc
12:17:15 stephenfin gibi: it does not, at least not with oneOf. It gets handed the subschemas individually
12:18:54 stephenfin and the issue is that e.g. if I'm given a body like {'server': {...}, 'invalidkey': 'stuff'} then I probably want to strip out 'invalidkey' (a made up example but you get my point)
12:20:34 sean-k-mooney https://paste.opendev.org/show/828072/
12:20:50 sean-k-mooney stephenfin: ^ still readign that but that what gemini thinks about the problem
12:22:37 stephenfin Not a fan of approach 1. I really don't want to encode logic in our schemas. They're already complex enough
12:23:20 sean-k-mooney for this specific case i tought that was possibel ok if it was only this one case we neede to handel for 2.0 validation
12:23:21 stephenfin Hmm, actually: maybe I can just disable response schema validation entirely for v2.0...
12:23:36 sean-k-mooney that was gong to be my other question
12:23:44 sean-k-mooney v2.0 is technially unversioned
12:23:51 stephenfin It doesn't fix the problem but it does side-step it
12:23:57 sean-k-mooney so it cant really ahve a schema
12:24:25 sean-k-mooney by the way this coudl also be a bug

Earlier   Later