Tuesday, 2023-01-10

vanougood morning ironic01:04
*** JasonF is now known as JayF02:17
jandershey vanou04:28
vanouHi janders04:48
arne_wiebalckGood morning janders vanou and Ironic!07:26
jssfrgood morning Ironic.07:28
rpittaugood morning irocnic! o/08:05
rpittauyep, managed to write that wrong08:05
vanouHi arne_wiebalck08:07
arne_wiebalckhey jssfr and rpittau, good morning o/08:12
rpittauhey arne_wiebalck :)08:12
zigorpittau: Hi there! Any progress regarding https://bugs.debian.org/1026524 ?11:01
rpittauzigo: unfortunately no progress, haven't had the chance to look at it after the first time11:03
rpittauI'll see if I have time today or tomorrow11:03
zigoThat'd be great.11:03
iurygregorygood morning Ironic11:39
kubajjGood morning Ironic!11:53
rpittauzigo: I see debian is using py3.11 with stable/zed, I'm sure you're aware that is not supported; besides that I was able to reproduce the issue on master with python 3.11.113:03
zigorpittau: As always, contrary to what everyone believes, Debian is always "on the edge" and we get new version of components early in unstable. No choice, I have to support it ...13:04
dtantsuris it mocking again?13:04
zigoI wrote already *many* Py 3.11 patches.13:04
zigoSomething like 3 dozen ...13:04
* dtantsur should probably read the bug before asking13:04
rpittaudtantsur: not sure if it's mocking, it's an issue with the threading module13:04
zigodtantsur: Riccardo found out that the issue is also present in the latest 3.10 revision ! (ie: 3.10.6 doesn't have the issue, but 3.10.9 does)13:06
rpittauit happends with the latest versions of python 3.10 and 3.1113:06
rpittauyep13:06
dtantsurhmmm, where did we take is_locked from, it seems to be just locked..13:06
zigorpittau: I'm quite convince that I should have a working OpenStack with 3.11 at this time. It's hard for me to test, since we don't have puppetserver yet (we're working on finishing its packaging), but if there's issue, I probably can fix them during the Bookworm freeze.13:07
zigoIt was like this for Victoria & Bullseye already... and it worked out kind of well at the end.13:08
dtantsurrpittau: is_locked comes from our code but is somehow used on an upstream lock. I wonder if it's bad mocking nonetheless.13:08
rpittaudtantsur: the offending test is in node_cache, in the release_lock13:08
rpittauI also suspect mocking, I haven't had the time to check the changes between 3.11.0 and 3.11.1, probably something got "fixed"13:09
rpittauoh mmm, I wonder if it's https://github.com/python/cpython/pull/10074013:10
dtantsurrpittau: no, it's a tiny stupid typo. Lemme show.13:11
rpittauockam razor it is :)13:11
dtantsuror no? hmm, hold  on13:11
dtantsurokay, at least I'm also reproducing it13:17
rpittauit's quite easy with latest Fedora :D13:17
dtantsurrpittau: I have a bad feeling that maybe Mock() objects have a _lock attribute....13:19
rpittaummm yeah13:19
rpittaumaybe this change? https://github.com/python/cpython/pull/98797/files13:19
dtantsuryep, confirmed13:19
* dtantsur is pondering the best way to fix it without affecting the Mock class itself13:25
opendevreviewDmitry Tantsur proposed openstack/ironic-inspector master: Rename NodeInfo._lock to avoid conflict with Mock._lock in tests  https://review.opendev.org/c/openstack/ironic-inspector/+/86971913:31
dtantsurrpittau, zigo, ^^^13:31
dtantsurI don't have 3.11, try it if you do13:31
zigoAh, thanks ! :)13:31
rpittauyeah, I don't see another solution if not renaming that13:31
zigoLet me try.13:31
rpittaulet me test13:31
rpittaulooks ok on FC37 with python 3.11.1, it was failing without the patch13:32
rpittauheh, should've checked the changelog sooner :/13:33
zigoOne hunk fails, I have to apply manually.13:34
* zigo is building the ironic-inspector package with the patch.13:39
zigodtantsur: rpittau: +2w from my side ! :)13:40
zigoI'm "fixing" the patch header, and uploading the fixed package ... :P13:41
rpittauawesome, I really hope we'll have a py3.11 non voting job soon13:41
zigodtantsur: Thanks a lot.13:41
opendevreviewwaleed mousa proposed openstack/ironic-python-agent master: update NVIDIA NIC firmware images and settings by ironic-python-agent  https://review.opendev.org/c/openstack/ironic-python-agent/+/56654413:41
dtantsuryou're always welcome13:41
zigorpittau: By the time we get it, I'll have all py3.11 patches in good order ! :)13:41
rpittaufor sure! :D13:42
zigoOnly the Cinder one's missing now ...13:42
opendevreviewJakub Jelinek proposed openstack/ironic master: API for node inventory  https://review.opendev.org/c/openstack/ironic/+/86687613:42
kubajjdtantsur, TheJulia: I tried to implement most of your comments from before the holidays. Now I just need to fix the tests. Any suggestions on how to check that the data retrieved is what was intended for swift?13:44
dtantsurkubajj: I happily forgot what we discussed :) Do you have a WIP patch to comment on?13:46
kubajjdtantsur: It's the one I just pushed to above my message ;)13:46
dtantsurhaha, fair13:46
dtantsurkubajj: left a comment13:48
kubajjdtantsur: thanks13:49
* zigo uploaded ironic-inspector_11.1.0-2_source.changes13:53
opendevreviewRiccardo Pittau proposed openstack/ironic master: [WIP] [PoC] A metal3 CI job  https://review.opendev.org/c/openstack/ironic/+/86387313:56
TheJuliaAnyone thought of more last minute Summit CFP items?14:13
* dtantsur will be reading, not writing this time :)14:13
iurygregoryI'm finishing my proposal today14:20
TheJulialess than 10 hours left :)14:20
iurygregoryAre we submitting something for Project Onboarding for Ironic in Forum?14:21
iurygregoryor Working Groups/BoFs =)14:22
opendevreviewJakub Jelinek proposed openstack/ironic master: API for node inventory  https://review.opendev.org/c/openstack/ironic/+/86687614:22
iurygregoryIt would be a good thing I would say...14:23
kubajjTheJulia: I am now looking at your comment about rbac testing https://review.opendev.org/c/openstack/ironic/+/866876/comments/85d6154c_815964ad What is the expected behaviour for the inventory. Shouldn't anyone be able to access it?14:40
TheJuliaiurygregory: I think it makes sense to submit a BOF or something at a minimum. I've been wondering about an operator feedback session14:41
TheJuliakubajj: so, today, inspector is an Admin-only service inside a scope of system usage. So, only the most privileged of users can access the data14:41
iurygregory++ to an operator feedback session also14:41
iurygregoryI'm wondering if JayF submitted something.. .-.14:42
TheJuliapart of that is by limitation, but also need. There is no need for random user to be able to access a bunch of serial numbers inside of a server chassis14:42
TheJuliaThe funny thing about serial numbers, is you can generally begin to bypass support verification processes because possession of such information gets viewed as making one authoritative14:43
TheJuliafor example... I always found it amusing when you could look at Telco room photos and see giant printouts with circuit IDs... because you could take that circuit ID, and a little extra information via Open Source Intellegence or Social Engineering and use that to do naughty things like... have telecom circuits shut off.14:44
TheJuliaI don't think JayF has submitted, hopefully he will be around today so we can confirm14:46
TheJuliaI think he was looking at the date and punting for now since Forum stuff is still open after today14:46
kubajjTheJulia: do I need to set the privilege scope somewhere?14:47
TheJuliano, you've done it correctly in that14:47
TheJuliayour missing testing entries14:47
TheJuliauhh... I have an example here, granted this is a *massive* change, but you'll kind of see what is going on 14:47
TheJuliakubajj: Take a look at the two yaml files I'm editing in https://review.opendev.org/c/openstack/ironic/+/86961414:48
TheJulianow, in that *specific* change, I'm adding an entirely new "service" role to be supported14:49
TheJuliaso, the impact is kind of massive14:49
* TheJulia looks for a smaller single API change14:49
TheJuliakubajj: if you look at https://review.opendev.org/c/openstack/ironic/+/803855 the two yaml files are edited14:51
kubajjTheJulia: for admin headers it should be 200 and for anybode else a 404, right?14:52
TheJuliasystem admin and owner admin headers 14:54
TheJuliauhh... 404 or 403 depending on if the node itself can be viewed I think14:54
TheJulia404 if the user has no rights to see the node14:54
TheJuliaerr14:55
TheJuliadepends on discoverability I guess14:55
TheJuliafirst pass, give it a spin, when you run the unit tests, you'll see if you've got things mismatched14:55
kubajjTheJulia: yeah, I am getting a 404 (even for admin though)14:56
kubajjis owner admin the scoped member? (in the test_rbac_system there does not seem to be owner admin header)14:56
TheJuliain test_rbac_system_scope, there is no concept of owner14:58
TheJuliait is only "the system"14:58
TheJuliaI'd start with system scope and then do project scope14:58
TheJuliaso you *might* need to add in some mock or stub data14:59
kubajjok, thanks14:59
TheJuliakubajj: if you look at https://review.opendev.org/c/openstack/ironic/+/803855/10/ironic/tests/unit/api/test_acl.py14:59
TheJuliayou can see what was done there14:59
JayFiurygregory: TheJulia: I've submitted nothing for anything15:08
TheJuliait must be part of your evil plan!15:09
TheJulia:)15:09
JayFmy evil plan to [checks notes] actually complete some stuff on my list before adding to it ;) 15:09
TheJuliaan excellent evil plan!15:09
iurygregoryJayF, ack tks!15:20
iurygregoryI'm going to grab lunch and after it I will start working on the Forum submissions15:20
iurygregoryif anyone is interested let me know and I will add you to the submission15:28
* TheJulia raises hand15:28
kubajjTheJulia: is something wrong here? https://review.opendev.org/c/openstack/ironic/+/866876/8/ironic/common/policy.py It is allowing readers to access it for reason15:43
TheJuliaall readers, or just owner readers?15:48
kubajjTheJulia: It seems like all readers (reader_headers) in system scoped15:49
TheJuliathat is correct15:50
TheJuliasystem scope is like... the operators/admins of the cloud15:50
TheJuliaso you may have inventory/audit processes that only have reader access15:50
TheJuliahumans generally wouldn't have that role unless they are admins or managers of the cloud itself in system scope15:50
kubajjOh, so I should check in project scope for some non-owner readers?15:50
TheJuliaso in project scope, I would imagine lesses wouldn't be able to access15:50
TheJuliabut owners would15:50
TheJuliadoes that help make more sense?15:51
kubajjyeah, I think I understand a bit more now, thanks15:51
JayFFYI I'm going live with my OSS Office Hours in ~8 minutes @ youtube.com/jayofdoom ... unless folks come by with questions; I'm going to be working on node shardingh15:52
TheJuliaack, I'll be around if you have questions, I need to work on a promo document15:52
JayFI think I'll be working on sorting by lists-of-shards15:53
JayFwhich is just going to be no magic, just do it the long way lol15:53
kubajjTheJulia: what are the leased nodes?15:53
kubajjhttps://review.opendev.org/c/openstack/ironic/+/803855/10/ironic/tests/unit/api/test_acl.py#40915:53
JayFnode.lessee != null15:54
JayFmeans it's leased15:54
JayFand that gives extra access to the project in that field15:54
JayF(node.owner is to "node owner" as node.lessee is to "node leasee")15:54
kubajjbut they are not the owner, right?15:54
JayFI own an ironic node15:54
JayFI lease it to you so you can do stuff with it15:54
JayFit's two separate fields15:55
TheJuliaJay can take back that node at any time15:55
TheJuliabecause he is semi-evil :)15:55
TheJulia</joking>15:55
JayFI mean, in this scenario I'm an LL, it's a given ;) /s15:55
TheJuliaThe use case was there is a giant disaster recovery data center, the hardware needs to be on/used, but has to be available to be recovered by the owner should a disaster occur15:56
TheJuliaThat same hardware *cannot* run the DR workload, unless a disaster is declaired15:56
JayFThere are other use cases around multitenant-ironic to use lessee for, too15:56
TheJuliadeclared15:56
TheJuliaoh yes, but I'm speaking in regards to the original15:56
JayFat least ones I dreamed of when I worked at the big purple LOL 15:56
TheJuliakubajj: https://docs.openstack.org/ironic/latest/admin/secure-rbac.html15:58
TheJuliahopefully everything you *ever* wanted to know about rbac in ironic15:58
kubajjthanks15:59
kubajjso anybody leasing a node can't see introspection data is what I'm aiming for?16:00
opendevreviewJakub Jelinek proposed openstack/ironic master: API for node inventory  https://review.opendev.org/c/openstack/ironic/+/86687616:01
kubajjTheJulia, dtantsur: If you wanted to help me win this not-a-race for 1.81 and had a minute to review ^ please do. I need to have something to eat now, but will be back later.16:06
opendevreviewMerged openstack/ironic master: Use association_proxy for ports node_uuid  https://review.opendev.org/c/openstack/ironic/+/86293316:08
JayFTheJulia: I wouldn't hate some guideance on these project_scoped rbac tests16:13
dtantsurkubajj: will try to, but probably needs to wait until tomorrow. too much other stuff after vacation :)16:14
kubajjdtantsur: thanks16:15
* JayF might have just figured it out but not sure16:15
TheJulianot sure sounds... good? maybe?16:20
TheJuliawhat does the test results say?16:20
TheJuliaJayF: there is16:22
JayFI think I figured it out16:26
JayFnow just trying to see if there is any magic to getting a list of shards filtered16:27
JayFdoesn't look like we have anything else in our API that filters that way, afaict16:27
TheJuliakind of, but you might have to modify the query handling in the dbapi16:28
TheJuliato join/remove the parameter16:28
JayFit looks like now, all of our "multiple" ones are like16:29
JayFuuid="1111-1111-1-11" vs uuids_id="111-111-111","222-222-222"16:29
TheJuliayeah, I think that is what I saw16:29
TheJuliaon the screen at least16:29
TheJuliaerr16:29
TheJuliahmm16:29
rpittaugoodnight! o/16:36
dtantsurTheJulia: can I torture you about meta tags for our web site being not quite correct? Or should it be someone else?16:38
* dtantsur is trying to figure out from the source16:39
TheJuliadtantsur: is it something we an just fix by editing the generated code output?16:39
TheJuliaI was about to ask that....16:39
dtantsurTheJulia: ideally not16:39
TheJuliaJayF: _in ?16:39
dtantsurTheJulia: are you still on internal slack?16:40
TheJuliaJayF: go dbapi my friend16:40
TheJuliadtantsur: I can be16:40
dtantsurTheJulia: I shared a message to you that illustrates the problem. The meta tags are always from the main page, so when you paste a link to the blog post, the preview is quite off (the same problem will happen in twitter/mastodon).16:41
dtantsursome stuff is coming from src/content/site-metadata.json16:41
TheJuliahmm16:42
TheJuliaI suspect  it is a question for josh@openinfra.dev16:42
dtantsurThis is the actual email? (don't have it in my history)16:45
TheJuliayeah, actual email16:45
dtantsurthx. I'll cc you.16:45
dtantsursent16:50
dtantsurnow to fix the issues rloo found16:50
JayFsomeone available for a bit to help me with this api-list shenanigans I'm fighting with?16:50
JayFI'm in my office hours but close to the end so I can close it and go async if needed16:50
JayFdbapi layer wants uuid_in and provision_state_in for querying lists16:50
JayFbut AFAICT there's nothing at node layer that we have currently that allows filtering by a list16:51
JayFand/or if there is, I have been unable to find where it is16:51
JayFso if this is a net new thing; that's OK, I know how to make it work on the dbapi side now; but I do not know the right place for all that translation to end16:51
dtantsurJayF: what's the exact question? how to represent a list in the API design?16:51
TheJuliaso you'd have to add the functionality to query it outright16:51
TheJuliato dbapi's code itself16:52
JayFthe code exists in dbapi alreayd16:52
JayFfor provision_state, uuid -- I added shards to that list and it should work16:52
JayFbut what I don't see it anything, ever, exposing that at an API level16:53
* TheJulia raises an eyebrow16:53
JayF(nor do I really see inside-ironic code utilizing that dbapi ability to query for multiples; except for in the tests)16:53
JayFso this makes me really, really suspicious I've missed something16:53
JayFor maybe stumbled on something half-done?16:53
JayF https://github.com/openstack/ironic/blob/e91b59c47e28b94e0c84abf0e50dde985e7ca100/ironic/tests/unit/db/test_nodes.py#L39416:55
JayFscratch that16:55
JayFhttps://github.com/openstack/ironic/blob/81e10265ce08bd525388111720b91ca10c99bb28/ironic/db/sqlalchemy/api.py#L400 exists16:55
JayFand is only used in this test: https://github.com/openstack/ironic/blob/e91b59c47e28b94e0c84abf0e50dde985e7ca100/ironic/tests/unit/db/test_nodes.py#L394 and this code https://github.com/openstack/ironic/blob/8811b9b1f56ba6a074160ddca8139f3543dd453a/ironic/conductor/allocations.py#L11616:55
JayFI'm thinking I need to add something to node api code somewhere, looking at shard, and doing a split on , then seeing if I have >1, and if I do, flip the filter to shard_in instead of shard16:56
TheJuliaYeah, I think that is what you'd need to do16:56
TheJuliasimple enough right?16:56
JayFSo I have two basic questions: 1) Is my basic understanding right? Have  I obviously missed something? (sounds like no)16:56
TheJuliajust confusing16:56
JayF2) Where should that go? _get_node_collection in api layer?16:56
TheJuliaI don't thin your missing anything, I've got the same feeling16:56
TheJuliayeah, _get_node_collection sounds right to me16:56
JayFack16:57
JayFseeing half done stuff is really, really good at raising the "something is wrong" without the flag as to what :? 16:57
dtantsurTheJulia, rloo, https://github.com/OpenStackweb/ironic-website/pull/5316:58
JayFoh dammit, I owe you a zoom link16:58
JayFwait, didn't I give you one?16:59
dtantsurJayF: are we ready to publish it?16:59
TheJuliaJayF: in an hour16:59
dtantsuryou suggested we don't do it too far in advance16:59
TheJuliaerr. dofferemt tjomg16:59
dtantsur(maybe it's not too far any more)16:59
JayFoh, oh yeah that's right16:59
JayFI don't want folks brute forcing my room LOL17:00
dtantsurTypeError: Cannot read property 'match' of undefined17:02
dtantsur.......17:02
TheJuliahuh?17:25
dtantsurTheJulia: this is in my website PR17:25
* TheJulia blinks17:25
dtantsurokay, at least I finally guessed which distribution is compatible with building our website (debian 11)17:26
dtantsurI have a strong feeling it does not understand the markdown feature I'm using. Sigh.17:45
dtantsurhopefully fixed: https://github.com/OpenStackweb/ironic-website/pull/5317:48
dtantsurTheJulia: also, not sure what you think about https://github.com/OpenStackweb/ironic-website/pull/54, but I found no other way to hack on the web site18:14
dtantsuron this positive note - have a nice evening18:14
iurygregoryTheJulia, should I add you to both BoF and Forum?19:41
iurygregoryI think both would fit under presentation or I'm wrong?19:42
TheJuliaiurygregory: sure, it can always be changed later19:48
opendevreviewJay Faulkner proposed openstack/ironic master: API support for CRUD node.shard  https://review.opendev.org/c/openstack/ironic/+/86623522:40
JayFTheJulia: would hooking up comma-separated-GET-filtering for things like uuid/provision_state be a need-a-new-api-version change?22:40
-opendevstatus- NOTICE: One of our CI job log storage providers appears to be having trouble with log uploads and retrievals. We are in the process of removing that provider from the pool.22:44
JayFwell, it's trivial to hook up now at least. Just add provision_state and uuid to the constant I added to node.py in ^^ that change22:45
opendevreviewMerged openstack/ironic-ui master: Fix tox4 errors  https://review.opendev.org/c/openstack/ironic-ui/+/86875523:36

Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!