Monday, 2018-06-04

*** d0ugal has joined #openstack-keystone00:01
*** bigdogstl has joined #openstack-keystone00:19
*** bigdogstl has quit IRC00:24
*** bigdogstl has joined #openstack-keystone00:34
*** bigdogstl has quit IRC00:39
*** bigdogstl has joined #openstack-keystone00:45
*** bigdogstl has quit IRC00:50
*** felipemonteiro has joined #openstack-keystone01:09
*** bigdogstl has joined #openstack-keystone01:11
*** bigdogstl has quit IRC01:16
*** bigdogstl has joined #openstack-keystone01:18
*** bigdogstl has quit IRC01:23
*** namnh has joined #openstack-keystone01:34
*** bigdogstl has joined #openstack-keystone01:35
*** gongysh has joined #openstack-keystone01:38
*** bigdogstl has quit IRC01:39
*** germs has quit IRC01:40
*** germs has joined #openstack-keystone01:41
*** germs has quit IRC01:41
*** germs has joined #openstack-keystone01:41
*** gagehugo has quit IRC01:44
empty_cupit looks like a role applied to a user is only effective by the default admin on users/projects in the default domain02:03
empty_cupthe admin user can assign a role of default admin on a user in a different domain and have it become effective02:05
empty_cupwhen using the other user, performing a role assign yields a 401 unauthorized even though the role admin is listed in the token response02:06
empty_cupbased on a blog posting, having the default admin role on a newly created domain for a newly created user will allow that user to manage the domain with a domain scoped token02:11
*** bigdogstl has joined #openstack-keystone02:16
*** gagehugo has joined #openstack-keystone02:17
empty_cupthe user is able to list objects successfully but not create new objects02:19
empty_cupthe openstack cli says the service catalog is empty02:19
*** bigdogstl has quit IRC02:20
*** bigdogstl has joined #openstack-keystone02:29
*** namnh has quit IRC02:33
*** bigdogstl has quit IRC02:34
*** namnh has joined #openstack-keystone02:34
*** bigdogstl has joined #openstack-keystone02:39
*** annp has joined #openstack-keystone02:47
*** Dinesh_Bhor has joined #openstack-keystone02:48
empty_cupit's not enough to be the admin role, an admin on a freshly created domain needs to belong to a newly created project called admin02:48
empty_cupthen the domain admin can list objects and create objects02:48
empty_cupas well as assign roles to objects02:49
empty_cupexcept that role assignment is not seen as effective02:49
*** zhongjun_ has joined #openstack-keystone02:49
empty_cupsure it exists but it is not effective02:50
*** bigdogstl has quit IRC02:52
*** lifeless_ has joined #openstack-keystone03:08
*** lifeless has quit IRC03:09
*** EmilienM has quit IRC03:22
*** gyankum has joined #openstack-keystone03:22
*** EmilienM has joined #openstack-keystone03:23
*** gyankum has quit IRC03:24
*** lifeless has joined #openstack-keystone03:29
*** lifeless_ has quit IRC03:29
*** pooja_jadhav has joined #openstack-keystone03:30
*** bigdogstl has joined #openstack-keystone03:31
*** openstackgerrit has joined #openstack-keystone03:31
openstackgerritwangxiyuan proposed openstack/python-keystoneclient master: WIP: functionality for registered limits  https://review.openstack.org/57200603:31
*** sonuk has joined #openstack-keystone03:33
*** bigdogstl has quit IRC03:40
*** bigdogstl has joined #openstack-keystone03:52
*** bigdogstl has quit IRC03:59
*** sonuk_ has joined #openstack-keystone04:09
*** sonuk has quit IRC04:12
*** sonuk has joined #openstack-keystone04:13
*** sonuk_ has quit IRC04:14
*** bigdogstl has joined #openstack-keystone04:22
*** bigdogstl has quit IRC04:27
*** gongysh has quit IRC04:31
*** germs has quit IRC04:34
*** bigdogstl has joined #openstack-keystone04:37
*** felipemonteiro has quit IRC04:43
*** empty_cup has quit IRC04:46
*** bigdogstl has quit IRC04:58
*** bigdogstl has joined #openstack-keystone05:02
*** Dinesh_Bhor has quit IRC05:03
*** bigdogstl has quit IRC05:07
*** bigdogstl has joined #openstack-keystone05:12
*** bigdogstl has quit IRC05:17
*** bigdogstl has joined #openstack-keystone05:25
*** bigdogstl has quit IRC05:30
*** links has joined #openstack-keystone05:38
*** bigdogstl has joined #openstack-keystone05:46
*** hoonetorg has joined #openstack-keystone05:49
*** bigdogstl has quit IRC05:58
*** Dinesh_Bhor has joined #openstack-keystone05:58
*** martinus__ has joined #openstack-keystone06:08
*** Dinesh_Bhor has quit IRC06:25
*** Dinesh_Bhor has joined #openstack-keystone06:27
*** bigdogstl has joined #openstack-keystone06:34
*** bigdogstl has quit IRC06:39
*** ispp has joined #openstack-keystone06:53
*** liuzz has joined #openstack-keystone06:58
*** bigdogstl has joined #openstack-keystone07:01
*** bigdogstl has quit IRC07:05
*** pcaruana has joined #openstack-keystone07:12
*** pcaruana is now known as pcaruana|worksho07:14
*** Dinesh__Bhor has joined #openstack-keystone07:15
*** sapd_ has quit IRC07:15
*** sapd_ has joined #openstack-keystone07:15
*** bigdogstl has joined #openstack-keystone07:16
*** tesseract has joined #openstack-keystone07:16
*** Dinesh_Bhor has quit IRC07:17
openstackgerritMerged openstack/oslo.policy master: Remove erroneous newline in sample generation  https://review.openstack.org/57183007:19
*** bigdogstl has quit IRC07:20
*** Dinesh__Bhor has quit IRC07:26
*** Dinesh__Bhor has joined #openstack-keystone07:31
*** bigdogstl has joined #openstack-keystone07:34
*** AlexeyAbashkin has joined #openstack-keystone07:35
*** jistr is now known as jistr|mtgs07:38
*** bigdogstl has quit IRC07:39
*** tesseract-RH has joined #openstack-keystone07:45
*** tesseract has quit IRC07:48
*** tesseract-RH has quit IRC07:48
*** tesseract has joined #openstack-keystone07:49
*** bigdogstl has joined #openstack-keystone07:54
*** ispp has quit IRC07:56
*** ispp has joined #openstack-keystone07:58
*** bigdogstl has quit IRC07:59
*** jaosorior has joined #openstack-keystone08:05
*** rcernin has quit IRC08:13
*** liuzz has quit IRC08:13
*** gongysh has joined #openstack-keystone08:16
*** bigdogstl has joined #openstack-keystone08:22
*** AlexeyAbashkin has quit IRC08:27
*** bigdogstl has quit IRC08:27
*** AlexeyAbashkin has joined #openstack-keystone08:27
*** tnogisto has joined #openstack-keystone08:43
*** ispp has quit IRC08:47
*** bigdogstl has joined #openstack-keystone08:49
*** ispp has joined #openstack-keystone08:49
*** bigdogstl has quit IRC08:54
*** bigdogstl has joined #openstack-keystone09:23
*** bigdogstl has quit IRC09:27
*** bigdogstl has joined #openstack-keystone09:42
*** sapd_ has quit IRC09:45
*** sapd_ has joined #openstack-keystone09:45
*** Dinesh__Bhor has quit IRC09:47
*** bigdogstl has quit IRC09:48
*** bigdogstl has joined #openstack-keystone10:01
*** namnh has quit IRC10:05
*** bigdogstl has quit IRC10:06
*** ispp has quit IRC10:11
*** gongysh has quit IRC10:13
*** gongysh has joined #openstack-keystone10:14
*** bigjools_ has joined #openstack-keystone10:14
*** gongysh has quit IRC10:15
*** frickler_ has joined #openstack-keystone10:16
*** bigjools_ has left #openstack-keystone10:16
*** alex_xu_ has joined #openstack-keystone10:17
*** bigdogstl has joined #openstack-keystone10:18
*** eglute_s has joined #openstack-keystone10:19
*** _glb has joined #openstack-keystone10:19
*** zzzeek_ has joined #openstack-keystone10:19
*** zzzeek has quit IRC10:20
*** eglute has quit IRC10:20
*** alex_xu has quit IRC10:20
*** frickler has quit IRC10:20
*** glb has quit IRC10:20
*** bigdogstl has quit IRC10:23
*** rha has quit IRC10:23
*** rha has joined #openstack-keystone10:25
*** rha has quit IRC10:25
*** rha has joined #openstack-keystone10:25
*** bigdogstl has joined #openstack-keystone10:37
*** rha has quit IRC10:38
*** sonuk has quit IRC10:39
*** tesseract has quit IRC10:41
*** rha has joined #openstack-keystone10:41
*** rha has quit IRC10:41
*** rha has joined #openstack-keystone10:41
*** dave-mccowan has joined #openstack-keystone10:41
*** bigdogstl has quit IRC10:42
*** tesseract has joined #openstack-keystone10:44
*** dave-mcc_ has joined #openstack-keystone10:47
*** dave-mccowan has quit IRC10:47
*** ispp has joined #openstack-keystone10:47
*** bigdogstl has joined #openstack-keystone10:52
*** bigdogstl has quit IRC11:02
*** bigdogstl has joined #openstack-keystone11:09
*** bigdogstl has quit IRC11:13
*** jrollinhatin is now known as jroll11:20
*** lifeless_ has joined #openstack-keystone11:21
*** lifeless has quit IRC11:22
*** sonuk has joined #openstack-keystone11:37
*** edmondsw has joined #openstack-keystone12:12
*** sonuk has quit IRC12:13
*** jroll has quit IRC12:29
*** jroll has joined #openstack-keystone12:30
*** bigdogstl has joined #openstack-keystone12:34
*** openstackgerrit has quit IRC12:34
*** frickler_ is now known as frickler12:39
*** bigdogstl has quit IRC12:39
*** empty_cup has joined #openstack-keystone12:45
empty_cupst12:46
*** empty_cup has quit IRC12:46
*** empty_cup has joined #openstack-keystone12:48
empty_cupnot sure why it's so difficult for a domain admin to grant roles to users and have those roles count as effective.12:50
*** JohnG has quit IRC12:50
empty_cupwhy would a domain admin be able to grant roles to users and not have them count as effective? what's the use case for that?12:51
*** Guest85905 is now known as zeus13:19
*** zeus has quit IRC13:19
*** zeus has joined #openstack-keystone13:19
*** raildo has joined #openstack-keystone13:20
*** Guest34116 has quit IRC13:24
elbragstadkmalloc: nice i can review all those today13:24
*** ispp has quit IRC13:27
*** rmascena has joined #openstack-keystone13:27
*** ispp has joined #openstack-keystone13:28
*** raildo has quit IRC13:29
kmallocelbragstad: there is a chunk more work, but I wanted to discuss structure before moving a ton of stuff.13:42
*** elbragstad is now known as lbragstad13:42
lbragstadkmalloc: so for https://review.openstack.org/#/c/571911/1/keystone/tests/unit/test_v3_oauth1.py,unified13:42
kmallocYeah.13:43
lbragstadthat test was written to expect a failure because the role name is 'fake_name'13:43
lbragstadand return a 404, but it never processes that because the request path is missing /v3/ ?13:43
kmallocRight, and it was getting a 404, but the wrong 40413:43
kmallocYep13:43
lbragstadgot it - that makes sense13:43
kmallocOnce we are on flask, I'm going to make tests explode badly with the wrong 40413:44
kmallocLike "Programmer Fail 404, do not pass go"13:44
lbragstadusing an assertion?13:44
kmallocSomething like that13:44
kmallocBut I want to get everything native flask13:45
lbragstadsure13:45
kmallocEasier to do.13:45
kmallocThere is also a lot more.code deletion after paste.deploy is removed, but I figured do it in steps.13:47
lbragstadyeah13:47
lbragstadare there any deployment changes people are going to have to be aware of?13:47
kmallocIt should just work.13:47
kmallocNote no testing or tempest changes besides some internal massaging13:48
*** r-daneel has joined #openstack-keystone13:48
kmallocIf we support loadable middleware (I can add that in)13:48
kmallocThen yes, paste-ini doesn't exist13:49
kmallocSo new way to do thst13:49
kmallocBut a vanilla keystone will work and just call the new flask app instead of the paste loader13:50
lbragstadwhoa...13:53
lbragstadms is buying github?13:54
kmallocThat's what we all hear13:54
kmallocWonder if Jesse Keating got a nice payout (assuming the rumor is true) :)13:55
kmallocNot a rumor.13:56
kmallocConfirmed :)13:56
lbragstadyeah - confirmed13:56
lbragstadhttps://blog.github.com/2018-06-04-github-microsoft/13:59
*** r-daneel_ has joined #openstack-keystone14:04
*** felipemonteiro has joined #openstack-keystone14:05
*** ispp has quit IRC14:06
*** dave-mcc_ is now known as dave-mccowan14:06
*** r-daneel has quit IRC14:06
*** spilla has joined #openstack-keystone14:07
empty_cuplol that link is certainly making the rounds14:07
*** ispp has joined #openstack-keystone14:08
lbragstadi usually start my day grabbing a link to github and saw the banner14:09
*** r-daneel_ has quit IRC14:09
kmallocPersonally I think it is good news for both companies.14:10
*** r-daneel has joined #openstack-keystone14:10
lbragstadi hope it is...14:10
*** links has quit IRC14:10
lbragstadi can see the relationship making sense with how much ms uses github14:11
*** felipemonteiro__ has joined #openstack-keystone14:13
*** xinran__ has joined #openstack-keystone14:14
*** felipemonteiro has quit IRC14:14
*** felipemonteiro_ has joined #openstack-keystone14:15
*** r-daneel has quit IRC14:15
*** r-daneel has joined #openstack-keystone14:16
kmalloclbragstad: we need a totally new test for that conditional14:16
kmallocalso, we never tested anything with the past test on bad_id14:16
kmallocit was doing the same thing as before: 404 because it was unrouted14:16
lbragstaddamn :(14:16
kmallocyour asssertion we tested other bits implies we hit the controller at all14:17
kmalloc:P14:17
kmallocwe didn't14:17
kmallocthis was largely bad copy-pasta that "passed testing" but didn't actually test anything useful14:17
lbragstadright... so how do we have less coverage with the test that actually hits the controller?14:17
kmalloc*shrug* because we're no longer hitting the unrouted 40414:18
*** felipemonteiro__ has quit IRC14:18
kmallocor because i had to make a new role for it to even pass14:19
kmallocbecause the user didn't have authorization to touch the api if i dind't make a new role14:19
*** alex_xu_ has quit IRC14:20
*** alex_xu has joined #openstack-keystone14:20
lbragstadahh14:20
kmalloclbragstad: http://logs.openstack.org/12/571912/1/check/openstack-tox-cover/85d317d/cover/keystone_oauth1_controllers_py.html#n416 is the conditional we never ever hit before14:22
kmallocwe are clearly hitting it now14:22
kmallocsee previous one that you approved before the fix14:23
kmallochttp://logs.openstack.org/11/571911/1/check/openstack-tox-cover/71c443c/cover/keystone_oauth1_controllers_py.html#n41614:23
kmallocthat is all we really changed.14:23
*** itlinux has quit IRC14:23
lbragstadyeah - looking at it again14:23
kmallocalso, test coverage % is a bad metric. it is easy to cause it to go down for no real reason14:24
kmallocbetter to look at actual coverage of code.14:24
lbragstaddid i have my links mixed up?14:24
lbragstadah - i think i did14:24
lbragstadnevermind14:25
kmalloc:)14:25
lbragstadso - https://review.openstack.org/#/c/571911/1 yields http://logs.openstack.org/11/571911/1/check/openstack-tox-cover/71c443c/cover/keystone_oauth1_controllers_py.html#n38214:25
*** felipemonteiro_ has quit IRC14:25
kmallocyes14:25
kmallocand the new one fixes that14:25
lbragstadhttps://review.openstack.org/#/c/571912/1 yields http://logs.openstack.org/12/571912/1/check/openstack-tox-cover/85d317d/cover/keystone_oauth1_controllers_py.html#n38214:25
*** felipemonteiro_ has joined #openstack-keystone14:25
lbragstadah - ok14:25
kmalloci could have made this all work with flask if i had made flask throw a json 404 for unrouted URLs14:26
kmallocbut, that seemed like a hack and tended to net incorrect test passage14:26
kmallocso i left it, but also corrected these tests before proposing the move to flask14:27
lbragstadright - which feels better IMO14:27
kmallocexactly14:27
kmallocless question of "is this an api or notanapi14:28
kmalloc"14:28
kmallocand the next step will be building a testing server-404 that we can assert on everytime rather than a "is_json" only check14:28
kmallocbut structre of moving to flask blueprints will come first.14:29
kmallocso we can be 100% flask native14:29
kmalloclbragstad: responded to your comment14:33
kmallocthe +114:33
kmallocnot the +2.14:33
kmallocbut, tl;dr - if someone was hitting a non-API and liked being fooled into thinking it was an API14:34
kmallocit might be a breaking change to them. but, we're not changing the status we're just being clear about what the difference between an API and non-API is.14:34
kmalloci can still make flask do app/json14:35
kmallocbut i felt the text/html response is better.14:35
kmallocand it is largely flask does the right thing and our home-grown wsgi thing did the wrong thing.14:35
*** felipemonteiro_ has quit IRC14:36
*** ispp has quit IRC14:37
*** felipemonteiro has joined #openstack-keystone14:37
*** felipemonteiro_ has joined #openstack-keystone14:38
kmallocalso lbragstad https://review.openstack.org/#/c/571955/ is a pattern i am proofing out, if we make all managers and controllers work like that, we can instantiate them on demand14:40
kmallocAND handle things like reloading configs live14:40
kmallocand possibly all configs.14:40
lbragstadsounds like that'd be nice for the community goal14:41
kmallocexactly14:41
kmallocif we share state of all the mutable thing(s) and have a mechanism to initiate a change out these bits, we can live-reload14:42
*** felipemonteiro has quit IRC14:42
kmallocbut that is the first pass at it to show how it works and to make providerAPIs better in a single run14:42
kmallocrebinding __dict__ is kindof amazing on that front and hitting a .locked setup ends up working well for ensuring we don't change values accidently14:43
kmallocesp. for say drivers14:43
lbragstadeyah14:43
lbragstadi'll make a point to look at that one too14:43
kmallocbut what if we (on request) just fire up  instances of the important things.14:43
kmallocwe become way more dynamic14:43
*** ispp has joined #openstack-keystone14:45
lbragstadthat sounds kinda like what dstanek was talking to me about14:46
lbragstada long time ago he brought up the idea of dynamic loading per request so that you only load what you need for a request instead of building this dictionary with a weird dependency relationship14:46
*** alex_xu has quit IRC14:47
empty_cupi haven't found a lot of resources that spell out the exact circumstances of what makes a role effective. roles are effective for the default admin on the default domain but do not appear to occur in domains outside the default.14:47
kmalloclbragstad: what dstanek was alluding to was the dependency injection being smarter14:49
*** alex_xu has joined #openstack-keystone14:49
kmallocbut we can at least head that way14:49
hrybackiFYI: Microsoft talks of purchasing GH appear to be confirmed: https://www.theverge.com/2018/6/4/17422788/microsoft-github-acquisition-official-deal14:49
empty_cupnote, it's stable/queens, and i'm running it without referencing an external policy.json file14:49
kmallochrybacki: yep.14:49
hrybackiI wonder if/how that will affect OpenStack?14:50
kmallocnot meaningfully14:50
hrybackiokay good14:50
kmallocwe mirror our code to github. but we don't use them as authoritative14:50
kmallocalso, i think it's a good thing for both github and microsoft14:51
* hrybacki nods14:51
hrybackiI hope you are right :)14:51
kmallocmicrosoft is a solid company, with a good culture these days [afaict]14:51
kmallocand they support some decent level of opensource (more than some other "big" companies)14:51
kmallocgithub has had a lot of struggles14:51
kmallocand MS knows how to run businesses14:51
kmalloci think it'll help github get things smoothed out (esp. since they've been lacking, what a CEO for months?), and help microsoft with more solid platform offerings.14:52
kmalloci doubt much will change wrt github for most users.14:52
lbragstadi hope you're right :)14:54
*** ispp has quit IRC15:00
*** tesseract-RH has joined #openstack-keystone15:01
*** tesseract has quit IRC15:02
*** pcichy has quit IRC15:03
*** pcichy has joined #openstack-keystone15:04
kmalloclbragstad: also the delete_tokens patch changes no behavior15:04
kmalloclbragstad: you may want to load up your tentative +1 on the flask conversion patch15:05
kmallocthe delete_tokens one still issues json 404s15:05
kmalloclbragstad: or even a no score (fwiw)15:06
kmallocthe first 4 patches in the flaskification chain are just test fixes15:06
*** bigdogstl has joined #openstack-keystone15:06
knikollao/15:08
*** lifeless_ has quit IRC15:08
kmallochi knikolla15:09
kmallocknikolla: i sent an email to some folks at redhat about our convos at the summit.15:09
kmallocknikolla: :) and around the federation stuff.15:09
kmallocknikolla: hopefully they like the direction and we can make life at the MOC better15:10
kmallocwrt keystone and helping to eliminate the proxy-hacky-ness15:10
knikollakmalloc: awesome!15:11
kmalloclbragstad: another future looking bit with flask, is i expect a hard split between identity and assignment to be easier, with a proxy-shim between it (so it can still feel like a single app) but you can run parts in isolation with the IDP part being almost like a federated source of ID15:11
lbragstadinteresting15:12
kmallocso we isolate all assignment/things and all identity things as two separate apps.15:12
*** bigdogstl has quit IRC15:12
kmallocfor compat we can just proxy-shim it.15:12
*** bigdogstl has joined #openstack-keystone15:13
*** felipemonteiro_ is now known as felipemonteiro15:14
*** felipemonteiro has quit IRC15:14
kmalloclbragstad: specifically thinking about the "edge-compute" scenarios15:14
kmalloclbragstad: if you're only deploying the authz bits and app-creds, it eliminates potential PII leaking and limits the data that could be sourced due to compromise15:15
kmalloclbragstad: we'll need to massage the data in the shadow tables.15:15
*** ispp has joined #openstack-keystone15:17
kmalloclbragstad: fwiw, i have been pondering a way to split each of ekystone's subsystems into it's own microservice since dolphm was the ptl.15:17
kmallocnot that it's really a good plan to do it in that extreme of a manner15:17
kmallocbut, just the core "how would this be done" [esp. splitting say Auth to an endpoint, IDP management to an endpoint, and everything else] is a good exercise in "how did we construct this"15:18
*** ispp has quit IRC15:18
hrybackiGoogle's text auto-responses are getting so good I'm fairly certain anyone 'behind the seat' could trick most of my friends were my acct hijacked -_-15:20
lbragstadkmalloc: sure - seems like an interesting case to design for15:21
lbragstadi can see people wanting to split out the authz/authn bits... that feels useful15:21
*** itlinux has joined #openstack-keystone15:23
*** bigdogstl has quit IRC15:29
*** pcaruana|worksho has quit IRC15:35
*** r-daneel_ has joined #openstack-keystone15:36
*** r-daneel has quit IRC15:38
*** r-daneel_ is now known as r-daneel15:38
*** openstackgerrit has joined #openstack-keystone15:40
openstackgerritMerged openstack/keystone master: Correct test_v3_oauth1.test_bad_authorizing_roles_name  https://review.openstack.org/57191115:40
lbragstadhuh15:45
lbragstadintersting15:45
*** AlexeyAbashkin has quit IRC15:45
lbragstadnot sure if it is related15:45
lbragstadbut i ran keystone unit tests w/o the flask chain and they completed in 100s flat15:45
*** mvenesio has joined #openstack-keystone15:45
lbragstadwith the flask chain including paste removal, they complete in 93s flat15:45
lbragstadkmalloc: ok - i've gone through the flask changes...15:49
lbragstadlooks good, thanks for picking that up!15:49
*** jmlowe has quit IRC15:49
hrybackilbragstad: just saw this while running tox -- not sure if you've seen it. Jumping into a meeting but will look aftewards: https://paste.fedoraproject.org/paste/B~nJrD-SHsiRCyPBpMnhRw16:00
lbragstadhrybacki: yeah - you need an updated version of oslo.policy16:07
lbragstadtox -r --notest should fix it for you16:07
*** gyee has joined #openstack-keystone16:08
*** pcichy has quit IRC16:09
*** pcichy has joined #openstack-keystone16:10
*** felipemonteiro has joined #openstack-keystone16:19
kmalloc:)16:22
lbragstadstepping out for a run quick16:25
lbragstadkmalloc: have you taken a gander at https://review.openstack.org/#/c/540803/ ?16:27
lbragstadcc anyone else interested on that front16:27
*** bigdogstl has joined #openstack-keystone16:28
kmallocI have not16:28
*** harlowja has joined #openstack-keystone16:28
kmallocI can maybe later today16:28
kmalloclbragstad: if someone has a custom paste, their customization is lost.16:31
kmallocPaste.deploy is a dead project16:31
kmallocWe will have to break them at some point. But that said, keystone will work, which is what I was aiming for16:31
kmallocPaste is terrible, and the way customization in it works makes for a highly variable experience deploying and consuming16:32
*** bigdogstl has quit IRC16:32
kmallocWe should just make the call and drop it. With an upgrade note.16:33
kmallocI can add in a way to load middleware, via keystone config16:33
kmallocBut we should just go with the hard break in rocky16:33
kmallocRubnign keystone will continue to work with the wsgi entry point scripts16:34
kmallocSince those are updated16:34
*** tesseract-RH has quit IRC16:34
kmallocBasically paste.ini is made obsolete without changing much of any behavior.16:35
*** edmondsw has quit IRC16:41
*** felipemonteiro has quit IRC16:43
*** pcichy has quit IRC16:46
*** pcichy has joined #openstack-keystone16:46
*** edmondsw has joined #openstack-keystone16:46
*** felipemonteiro has joined #openstack-keystone16:48
*** pcaruana|worksho has joined #openstack-keystone16:51
*** jmlowe has joined #openstack-keystone16:59
*** harlowja has quit IRC17:10
*** bigdogstl has joined #openstack-keystone17:14
*** bigdogstl has quit IRC17:18
*** pcaruana|worksho is now known as pcaruana17:18
lbragstadkmalloc: i suppose17:20
lbragstadif we offer a way for people to load customizations in via config, then there is an upgrade path17:20
kmallocso 2 things17:20
kmalloc1) if it is adding middleware, i am happy to allow them to load the middleware prior to the pipeline17:21
kmallocvia config17:21
kmallocif they are loading in API "extensions" they could verywell do the exact same thing with it's own WSGI app17:21
kmallocand i think we should not allow that17:21
kmalloci also am going to say, in as many words, you can no longer remove parts of keystone's api17:21
kmallocvia "config"17:21
*** germs has joined #openstack-keystone17:21
*** germs has quit IRC17:21
*** germs has joined #openstack-keystone17:21
kmallocwe're just closing that loop17:21
kmallocif we need to support "vendor" addons, i'm fine with also writing that17:22
kmallocbut i'm against that in general17:22
kmallochowever, i'm inclined to say they may have addons but we'll carve out some specific restrictions, e.g. "/catalog, /auth, /v[\d+][\.\d+]?, /, and a few others will become restricted17:23
kmallocif you're loading in an "extension" [aka, wsgi app, but dispatched from internal to keystone past our auth middleware], it can't live in our owned namespaces.17:23
kmalloclbragstad: ^ tell me if you need/want/feel like I should go down either of those two things.17:24
kmallocit's a bit more work, but ultimately doable, the latter on is much more work.17:24
*** AlexeyAbashkin has joined #openstack-keystone17:33
lbragstadok - checking17:36
*** Alexey_Abashkin has joined #openstack-keystone17:36
*** bigdogstl has joined #openstack-keystone17:36
kmalloclbragstad: responsed to your comments on the initial flaskification patch17:36
kmalloclbragstad: but the TODOs are going to go away in one or two patches i'm about to write, i just didn't want to get too deep into the chain if it all needed massive reworking17:37
*** AlexeyAbashkin has quit IRC17:37
*** Alexey_Abashkin is now known as AlexeyAbashkin17:37
kmalloclbragstad: and when you have a moment i want to discuss the actual subsystem->flask move, as its more invasive but i want to have a pattern we can move forward on and make keystone consistent17:38
kmallocin structure with the new "form"17:38
*** bigdogstl has quit IRC17:41
lbragstadok - i just went through the flaskification patch again17:49
lbragstadwhat about the subsystem->flask move?17:49
*** harlowja has joined #openstack-keystone17:49
kmallocso, with flask typically you do blueprints17:52
kmallocthink of blueprints like our routers17:52
kmallocbut a lot easier to work with17:52
kmallocset it as a "prefix" then @bp.route(xxxxX)17:52
kmallocfor the method (or a bp.add_route())17:53
kmallocbut concept is the same17:53
kmallochowever, flask tends to organize differently17:53
kmallocyou tend to have a top-level "app" which is where things like common, tests, etc live17:53
kmalloci was thinking of making it keystone.subsystem.application_credential17:53
kmallocfor example17:53
* lbragstad nods17:53
kmallocmove each routable subsystem into it's own s17:53
kmallocnamespace, but also move it out of the tree root17:54
kmallocso keystone.subsystem is where things like identity, assiignment, resource etc live17:54
lbragstadwhat's the advantage of having that versus keystone.application_credential?17:54
kmallocclean understanding of what is routable and what isn't17:54
kmallocright now looking at the code, do you know what is an API and what is not17:54
lbragstadoh17:55
lbragstadso what about revocation events?17:55
kmallocalso, future looking, if we have rendering, we cna have static assets in say keystone.subsystem.application_credential17:55
kmallocrev events should be killed/merged into tokens17:55
kmallocas appropriate17:55
lbragstadrevocation events are an internal API to keystone, but i don't think we expose them to the public17:55
lbragstadso would they be put into subsystems?17:56
kmallocyeah, but likely merged into token17:56
kmallocsince it is tied explicitly to token17:56
kmallocif it is RESTFuL it goes into subsystem17:56
kmallocor "blueprint"17:56
kmallocbut i wanted to avoid the name "blueprint" it seems loaded17:56
lbragstadok - so the only non-routable bits left in keystone would be things like common, conf, policies, etc..17:56
kmallocexactly17:56
kmallocit would be done as a 2-step per subsystem:17:57
kmallocmove to subsystem namespace, convert to flask17:57
kmallocso the move is "just move code" then "re-write to use blueprint.17:57
lbragstadok - so far i'm in favor of the term subsystem only because we've unofficially used that to describe the various parts of keystone for a while17:57
kmallocthat was why i picked it in the first place17:57
kmalloc(also, i might be guilty of coining that phrase 4 yrs ago or so to talk about keystone bits)17:58
*** r-daneel has quit IRC17:58
lbragstadso - does the rest of the subsystem tree now live there?17:58
kmallocyes.17:59
lbragstadso keystone.subsystem.token.providers.fernet would be a thing?17:59
kmallocyep17:59
lbragstadok17:59
*** markvoelker has quit IRC17:59
kmalloci want to keep the entire subsystem together17:59
kmallocif it's truely common code, it goes in common or keystone.XXXX17:59
lbragstadthat's going to be a huge refactor, but i think it makes sense18:00
kmallocif it's tied to a subsystem (aka, token providers to token) it goes in that subsystem18:00
*** markvoelker has joined #openstack-keystone18:00
kmallocit is, flask in itself is a big refactor18:00
lbragstadso - can we have keystone running with both architectures?18:00
lbragstadpart of the subsystem work done and part of it the old way?18:00
kmalloci'm willing ot take on some more of that work, and since i've constructed it to be each subsystem (well prefix, e.g. /users) will be converted to flask in one patch you will have both things18:01
kmallocduring the transition18:01
kmallocin flask, we will need to move a whole path (/users, /auth, etc) to flask in one shot18:01
kmallocbut anything outside of that path prefix can stay how it is18:01
kmallocthe only exception is version/root discovery MuST be first18:01
kmallocotherwise the dispatcher middleware will be weird.18:02
kmallocsince /v3 is explicitly matched in some cases.18:02
kmallocduring the transition, i was going to move smaller subsystems first (e.g. app-creds)18:03
lbragstadthat makes sense18:03
kmallocor more to the point, more constrained systems18:03
kmalloc /users is BIG18:03
kmalloc and is far reaching.18:03
lbragstadright18:03
kmallocin keystone.subsystem.identity you'll now also have a blueprint for /users and /groups18:04
*** xinran__ has quit IRC18:04
kmallocand if you need to add/extend to those, you'll just use that router and apply a route to it18:04
kmallocrather than keeping the route local [e.g. ec2]18:04
kmallocyou do @bp.route(<path>)18:04
kmallocand it constructs the route for you on the controller method18:04
kmalloc[other ways to do it as well]18:05
kmalloclbragstad: take a look at http://flask.pocoo.org/docs/1.0/blueprints/#my-first-blueprint18:05
kmallocfor example18:05
kmallocand i'll be using Restful with an eye to move to flask-restplus (restful example: https://flask-restful.readthedocs.io/en/latest/intermediate-usage.html#use-with-blueprints )18:06
kmallocrestplus just gives us swagger docs, which, is nice needs more thought but is super easy to convert18:06
kmalloc[also restplus isn't in g-r yet, i'll skin that horse later]18:07
kmallocand finally, i'll rip out our "internal" notification system and move to blinker [once the rest of this refactor is done]18:08
lbragstadok - so each subsystem is going to be a blueprint18:08
kmalloceach prefix18:08
kmallocis a blueprint18:08
kmallocidentity owns /user and /groups18:08
kmalloc and there is a bp for /users and a bp for /groups18:09
kmallocthink of it in terms of uri-routing matching18:09
kmallocand url tokenization18:09
*** AlexeyAbashkin has quit IRC18:09
*** r-daneel has joined #openstack-keystone18:09
lbragstadahh18:09
kmallocsee why i like the flask-isms?18:10
kmalloc:)18:10
lbragstadit would be nice to be on a framework18:10
lbragstadversus something we rolled ourselves18:10
kmallocyeah exactly18:10
kmallocthe next steps to isolate say idenitty from the rest of keystone [and maybe auth]18:11
kmallocbecomes very easy18:11
kmallocesp. with the state-sharing managers18:11
kmallocoh, make sure you review that state-sharing providerAPI change,it's super straightforward18:12
kmalloclbragstad: asked in -rc18:15
kmalloc-tc*18:15
kmalloci'll wire up v2.0 if needed18:15
kmalloclbragstad: ok, so i'll spin a patch to remove that v2.0 stuff in isolation so i can reconsitute it if needed18:32
kmalloclbragstad: i'll send an email either today or tomorrow before we land it18:32
*** cwright_ has joined #openstack-keystone18:46
*** mvenesio has quit IRC18:47
cwright_Hi, I'm struggling to find an example configuration for sending keystone metrics to ceilometer. Does anyone have a working config that they can share?18:49
*** spilla has quit IRC18:49
*** cwright_ is now known as cwright18:49
*** spilla has joined #openstack-keystone18:52
lbragstadkmalloc: nice - thanks for checking on that18:55
kmalloccwright: i.. don't know of one off the top of my head, lbragstad, cmurphy ^18:56
kmallocgyee: ^18:56
* cmurphy doesn't18:59
*** pcichy has quit IRC19:01
*** knasim-wrs has joined #openstack-keystone19:03
cwrightkmalloc: cmurphy: thanks. Yea, I am quite surprised I've not found any example configs at all about this when searching19:03
knasim-wrshey guys, quick question on Endpoint filter groups19:03
gyeekmalloc, keystone metrics?19:04
knasim-wrsI'm using endpoint filter groups to restrict endpoints for other regions19:04
cwrightgyee: yes19:04
gyeewe are using monasca agent plugin19:04
knasim-wrsand I want to specify a single filter for 2 regions:19:04
knasim-wrsopenstack endpoint group create distributed_cloud_RegionOne ./m.conf19:04
knasim-wrs+-------------+-----------------------------------------------------+19:04
knasim-wrs| Field       | Value                                               |19:04
knasim-wrs+-------------+-----------------------------------------------------+19:04
knasim-wrs| description | None                                                |19:04
knasim-wrs| filters     | {u'region_id': [u'SystemController', u'RegionOne']} |19:04
knasim-wrs| id          | 7df1295c31af42cda84c3b030e043c52                    |19:04
knasim-wrs| name        | distributed_cloud_RegionOne                         |19:04
knasim-wrs+-------------+-----------------------------------------------------+19:04
gyeefor monasca, you can use dimensions/expressions to filter the metrics19:04
gyeeI don't know how ceilometer works19:05
knasim-wrsand it returns to me an empty endpoint list.... so I'm guessing it takes it as an AND op instead of an OR op]19:05
knasim-wrsdoes anybody know how to specify multiple region_id filter values in an endpoint group? @lbragstad?19:05
*** oikiki has joined #openstack-keystone19:06
cwrightgyee: ah ok, we already have ceilometer integrated with all of our services so we are looking for a way to have keystone publish there: https://docs.openstack.org/ceilometer/pike/admin/telemetry-measurements.html#openstack-identity19:06
*** mvk has quit IRC19:08
lbragstadknasim-wrs: i'm not quite sure - it's been a while since i've dug into that part of the code19:09
gyeecwright, looks like its using audit middleware for this19:11
gyeehttps://docs.openstack.org/ceilometer/pike/install/install-controller.html#keystone19:11
gyeecwright, https://docs.openstack.org/keystonemiddleware/latest/audit.html19:11
*** mvenesio has joined #openstack-keystone19:14
kmallocaha it was the audit-middleware, i knew it was something we owned19:14
cwrightgyee: yea, i've read those a few times, can't quite wrap my head around the missing pieces.  I don't know what a audit map would look like for keystone and can't find an example19:14
lbragstadin case anyone is interested in tinkering with a test migration of all keystone LP data in storyboard - https://storyboard-dev.openstack.org/#!/project_group/46 is live19:17
*** jaosorior has quit IRC19:19
*** bigdogstl has joined #openstack-keystone19:21
*** mvenesio has quit IRC19:24
gyeecwright, try this http://paste.openstack.org/show/722670/ for audit map19:25
*** bigdogstl has quit IRC19:26
cwrightgyee: ok thanks, let me see if I can put this together19:27
*** rmascena__ has joined #openstack-keystone19:29
*** harlowja has quit IRC19:29
*** bigdogstl has joined #openstack-keystone19:30
*** rmascena has quit IRC19:31
gagehugochrome says the cert for storyboard is invalid19:32
lbragstadgagehugo: sounds like that's something they have on the TODO list for the staging environment19:34
gagehugoah ok19:34
*** lifeless has joined #openstack-keystone19:34
lbragstadyeah - i asked the same thing19:35
lbragstad:)19:35
*** bigdogstl has quit IRC19:35
gagehugostoryboard hacking my ip19:47
*** knasim-wrs has quit IRC19:55
*** harlowja has joined #openstack-keystone19:59
*** felipemonteiro has quit IRC20:17
*** sapd_ has quit IRC20:17
openstackgerritLance Bragstad proposed openstack/python-keystoneclient master: WIP: functionality for registered limits  https://review.openstack.org/53766820:20
*** felipemonteiro has joined #openstack-keystone20:21
*** sapd has joined #openstack-keystone20:40
empty_cuphow come when i make a direct assignment of a role to a user on a domain or project it is not shown in the effective listing?20:40
lbragstadempty_cup: i need to double check the docs, but that could because it's a direct assignment20:46
lbragstadan effective assignment is typically done with groups20:46
lbragstadif you're in the admin group and that group has a role assignment on the production project, you have an effective role assignment on the production project via the admin group20:47
*** lifeless_ has joined #openstack-keystone20:49
*** lifeless has quit IRC20:50
empty_cuplbragstad: yes, per docs effective is meant for displaying roles applied through groups, it will also show roles which will be returned in the token20:51
openstackgerritLance Bragstad proposed openstack/keystone master: Clarify scope responses in authentication api ref  https://review.openstack.org/57130920:51
empty_cupi found that in the case of the default admin, which belongs to no groups,  it will also list roles that are 'in force'20:51
empty_cupusing the default admin as an example the list of roles returned with and without effective are different20:53
empty_cupand the default admin is not in nonadmins or admins to start, yet the effective roles are a subset of the roles returned20:55
empty_cupi've noticed the same behavior when applying roles to other users where effective acts as a verification of roles returned with a token20:57
empty_cupand in my exploration i have avoided groups as i'm trying to come up with the most minimal use case of roles20:57
lbragstaddo you happen to have a trace or paste of the behavior you're seeing and what you expect it to be?20:57
lbragstadyou've avoided groups to minimize roles?20:58
empty_cupsure i can put something together, where can i paste? i remember it was an openstack pastebin thing20:58
lbragstadyou can use any paste service you like, but there is an openstack specific one http://paste.openstack.org/20:58
*** pcaruana has quit IRC20:59
*** bigdogstl has joined #openstack-keystone21:01
empty_cuplbragstad: i've avoided groups to leave out a variable, i'm completely focused on users, domains, and roles21:01
*** harlowja has quit IRC21:04
*** bigdogstl has quit IRC21:06
*** jmlowe has quit IRC21:08
*** felipemonteiro has quit IRC21:10
*** rmascena__ has quit IRC21:10
empty_cuphere we go: http://paste.openstack.org/show/722677/21:19
empty_cuplbragstad: thanks for responding21:22
empty_cupabove has the output of the openstack cli commands i've run with the results21:22
empty_cupfor context, i was able to create the newyorker user and perform the role assignment with a void_admin user21:24
*** felipemonteiro has joined #openstack-keystone21:27
lbragstadis line 41 of your paste describing the behavior you were expecting21:27
lbragstad?21:27
*** spilla has quit IRC21:28
empty_cuplbragstad: yep, it's broken into two parts by the ###, the first part is to show the difference between the use of effective and not effective on a boostrapped user21:28
lbragstadso - walk me through the first part21:28
empty_cupok21:29
lbragstadlines 1 - 4021:29
lbragstadlooks like you're just asking for all assignments with --names21:29
lbragstadand that looks sane to me?21:29
empty_cupshould it not be the same as effective?21:30
empty_cupthe admin is not in any groups21:30
empty_cupwhich means all of those roles are directly applied to the admin21:30
empty_cupif effective only aggegrated roles from groups than effective should be a superset not a subset21:30
empty_cupthe first table has 12 rows the second table has 10 rows21:31
lbragstad12 and 10?21:31
lbragstadthe first listing returns 8?21:32
empty_cupsorry i was counting lines21:32
lbragstadno worries - i did that too21:32
lbragstadhad a double take21:32
lbragstadthe entry at line 14 is not a domain or project assignment21:32
lbragstadit's actually a system role assignment, and that should be more apparent once https://review.openstack.org/#/c/524416/ merges21:33
empty_cupok21:33
empty_cupwhat about line 9?21:34
*** edmondsw has quit IRC21:35
empty_cupthe admin project from the plutos domain21:35
*** bigdogstl has joined #openstack-keystone21:35
lbragstadso - that's saying admin@Default has the admin role on a project called admin in the plutos domain21:35
lbragstadand it appears to be a direct assignment?21:35
empty_cupcorrect21:36
*** felipemonteiro has quit IRC21:36
*** harlowja has joined #openstack-keystone21:36
*** martinus__ has quit IRC21:37
lbragstadis that one not supposed to be there?21:38
empty_cupi issued the assignment command on the user and it succeed21:40
empty_cupi would have expected it to show in the effective as well21:40
lbragstaddid you just do an `openstack role add --user admin --user-domain Default --project admin --project-domain plutos admin21:41
empty_cupyes that's the command21:42
lbragstadso - that would be a direct role assignment, but if i understand the --effective argument correctly, it's a subset operation21:43
lbragstadwhere as the command you're using on line 3 is asking for all role assignments, direct and effective21:44
*** bigdogstl has quit IRC21:44
*** felipemonteiro has joined #openstack-keystone21:45
empty_cupthe default admin is not a member of any groups21:45
empty_cupwhy are there any entries in the effective table if that is the case?21:45
empty_cupthat's lines 28-3921:45
lbragstadhmm - i actually don't even see --effective documented via python-openstackclient21:48
lbragstadslightly unrelated, but that's probably a bug21:48
empty_cupthe lack of documentation is a bug, or the discrepancy between the two tables?21:49
lbragstadthe lack of documentation for sure21:49
empty_cupok21:49
lbragstadthis is what i have to help test21:50
lbragstadtext*21:50
lbragstadhttp://paste.openstack.org/show/722678/21:50
*** dave-mccowan has quit IRC21:50
lbragstadand if i use --effective21:50
lbragstadi get this with debugging21:50
lbragstadhttp://paste.openstack.org/show/722679/21:50
lbragstadnotice line number 321:51
*** itlinux has quit IRC21:51
empty_cupok include_names=True&effective=True21:52
lbragstadthe --effective tag apparently is passed through21:52
lbragstadbut it's not documented... so there must be logic in osc to handle it21:52
kmallochm.21:53
empty_cupinteresting, in my version of the command there is a line for --effective21:53
kmalloc--effective... now what does that actually do.21:53
empty_cup  --effective           Returns only effective role assignments21:53
kmallocthat sounds like an old-school v2 thing21:53
kmallocnow that i think about it more21:53
empty_cupi do have export OS_IDENTITY_API_VERSION=3 set21:54
lbragstadstrange21:54
kmallocoh no thats a v3... oh.21:54
lbragstadhttps://developer.openstack.org/api-ref/identity/v3/index.html#roles21:54
kmallocwait.21:54
kmallocthat is implied roles things21:54
kmallocright?21:54
lbragstadwell21:54
lbragstadthere are implied roles and there are effective roles21:54
lbragstadeffective are role assignments via a group membership21:54
lbragstadimplied roles are used to expand roles21:55
kmallocyep that is implied roles magic21:55
kmalloceffective does the expansion21:55
kmallocsounds like we have a bug in our api21:55
lbragstadif you look at that api ref link21:55
lbragstadGET /role_assignments?user.id={user_id}&effective21:55
lbragstadbut the client treats it as a boolean, which isn't consistent21:56
kmallocok hold on. let me go poke at our end.21:56
lbragstaddon't forget we also have "inherited" roles21:56
lbragstadwhich deal with project hierarchies21:57
lbragstadso that roles on a project can get propagated down the tree21:57
kmallochttps://www.irccloud.com/pastebin/y8injDAz/21:57
empty_cupi stayed away from implied roles and project hierarchies, as my end goal is to have a domain, flat projects inside, have users that can have a project scoped token21:58
kmalloceffective seems to be related to inherited roles *and* group roles21:58
* lbragstad shakes head21:58
lbragstadempty_cup: that seems like a completely reasonable use case21:58
* kmalloc grumps about some of these API things.21:58
kmallocempty_cup: your use case is fine, we have a wonky/non-descriptive api here :P21:59
kmalloceffective is ... weird.21:59
empty_cupok, i can provide more details if necessary21:59
lbragstadhttps://developer.openstack.org/api-ref/identity/v3/index.html#id59422:00
empty_cupfor my sanity though, can we walk through the second example?22:00
*** felipemonteiro has quit IRC22:00
lbragstadstarting at line 41 here - http://paste.openstack.org/show/722677/ ?22:00
empty_cupyes22:00
*** felipemonteiro has joined #openstack-keystone22:00
lbragstadempty_cup: go for it22:00
empty_cupi'll provide some context22:00
*** itlinux has joined #openstack-keystone22:01
*** itlinux has quit IRC22:01
empty_cupi used the default admin user to create the void domain, created the void_admin, assigned the default admin role to it, as that was the only way for the role to become "effective"22:01
empty_cupi also had to add the void_admin user to an admin project22:02
lbragstadwhat is void_admin?22:02
empty_cupthe admin for the void_domain22:02
lbragstadso a user?22:02
lbragstador a group?22:02
empty_cupa user22:02
empty_cupnever touched groups22:02
lbragstadok22:02
empty_cupi now login and receive a token for void_admin, i then can create projects, users, and roles22:03
empty_cupi can apply roles to users22:03
empty_cupbut they are not shown as effective22:03
empty_cupand i can only receive an unscoped token as newyorker who is a regular user within the void domain22:03
lbragstadso - like the newyorker user having the Member role on the reporter_portal project?22:03
*** rcernin has joined #openstack-keystone22:03
empty_cupyes22:04
lbragstadi would imagine they are not showing up as effective because there isn't a group involved22:04
kmalloclbragstad: wow effective is ... a super dense filtering method22:05
empty_cupok, i should be able to receive a domain scoped token then since i have a role assignment on the domain?22:05
kmallochttps://www.irccloud.com/pastebin/kTMeptQQ/22:05
lbragstadempty_cup: yes22:05
kmalloc^ that is painful to read [code snippet]22:05
empty_cuplikewise if i have a role on a project i can receive a project scoped token22:05
empty_cup?22:05
lbragstadempty_cup: yes22:05
lbragstadhow are you asking for those tokens?22:05
empty_cupcool, i can provide another paste, with the use case22:06
lbragstadkmalloc: ++ yeah - it's ridiculous22:06
lbragstadi spent a long time groking at that last release when i had to deal with the system role assignment stuff22:06
lbragstadand it pushed me to be opinionated about kwargs being bad22:07
lbragstadempty_cup: the newyorker user should be able to generate project tokens scoped to the reporter_portal project and domain tokens scoped to the void domain22:08
kmalloclbragstad: kwargs bad,mmmmkay22:08
kmalloclbragstad: seriously, i hate "kwarg" passthrough22:08
lbragstadwell - i think my main gripe is that it's super hard to follow22:08
kmallocand thus, should not be the case in a well-designed thing22:08
lbragstadmost of the /role_assignment API is literally two or three methods that accept all the cases22:09
kmallocyep, it's a trainwreck22:09
lbragstadand return something22:09
kmallocalso that effective filter method is TERRIBLE22:09
kmallocbecause of how big list_role_assignments_for_actor is defed inline22:10
lbragstadthat api is part of the reason why i didn't mind keeping the system role assignment completely separate22:10
kmallocmakes it opaque as hell.22:10
kmalloci appreciate you keeping system separate22:10
kmallocit makes me much much happier22:10
lbragstadimo - it would be an interesting exercise to do that with the user+project user+domain group+project and group+domain bits22:11
kmalloci think we can "fix" a lot of the role_assignment api by just expanding it and breaking out functionality [and let the ... other part that is dense be the "legacy" way of doing it]22:11
lbragstadthat would also pull some of the business logic from the assignment sql driver into a better place22:11
*** felipemonteiro has quit IRC22:12
lbragstadbecause, afaik, not even the manager knows if it's generating a list of role assignments for which target or actor, that's figured in the driver22:12
*** r-daneel has quit IRC22:12
*** idlemind has quit IRC22:12
lbragstadempty_cup: i can take a look at your auth requests (sans sensitive data/passwords) for the newyorker if you have them22:12
empty_cuphttp://paste.openstack.org/show/722680/22:13
lbragstador if you're using openstack CLI, you can use --debug22:13
*** jmlowe has joined #openstack-keystone22:13
empty_cupthanks lbragstad, it took me a moment to compile it since i'm using a script as a regular user22:13
*** r-daneel has joined #openstack-keystone22:13
empty_cupit occurred to me that i should be able to use the openstack cli tool to request tokens22:13
kmallocok, so hold on22:13
kmalloclbragstad, empty_cup: you're having issues with effective and domain roles? or all roles?22:14
*** felipemonteiro has joined #openstack-keystone22:14
empty_cupthe issue is that i create an admin inside a new domain who can create projects, users, and roles, yet the user who has been assigned a role, can only receive an unscoped token22:15
empty_cupfor some reason, they cannot receive a project or domain token if they have a role assigned to that project or domain22:15
kmallochm.22:17
kmalloclooking at that paste from a bit ago.22:18
kmallocdo you have the cli that you used to assign the roles to the user?22:18
kmallocthe command that is*22:18
lbragstadhmm22:19
lbragstadis this the raw authentication request? http://paste.openstack.org/show/722681/22:19
empty_cuplbragstad: looking22:19
* kmalloc kicks paste.o.o hard and hopes it loads.22:19
*** dave-mccowan has joined #openstack-keystone22:20
kmalloclbragstad: that paste 681 isn't loading for me.22:20
empty_cupsame here22:21
kmalloclbragstad: paste.o.o seems dead22:21
* lbragstad probably broke it22:21
kmalloccan we repaste on like... dpaste22:21
kmalloc?22:21
empty_cupi ran the cli tool with token issue and received the following:22:21
empty_cupUser 3f26bacf1bd948e688cb61c4dd75e513 has no access to project e90259e2a864490c8fc9688a37fd4ef4 (Disable insecure_debug mode to suppress these details.) (HTTP 401)22:22
empty_cupand that is with the user having the roles assigned from 47-49 in the original post22:22
empty_cupthe Member, big_money on reporter_portal and Member on domain22:23
*** felipemonteiro has quit IRC22:23
lbragstadhttps://paste.fedoraproject.org/paste/W-fPQ1HfQrhmJbJe9IL4Sw22:24
empty_cupgood, ol' fedora22:24
empty_cupyep, that looks like the json markup i serve in the request22:25
lbragstadproject authentication request22:26
lbragstadhttps://paste.fedoraproject.org/paste/33uZwtgOpkJZNeDzLr4~nQ22:26
lbragstadso - those requests look fine to me22:26
lbragstadso long as the role assignments exist, then that should give you back a token22:26
empty_cupok, that makes me feel better22:27
kmallocempty_cup: do you have an example of how you assigned the user the role?22:27
empty_cupsure22:27
kmalloceyah the auth reqeusts/payloads are good afaict22:27
kmalloci'm wondering if somehow we got some bogus role landed22:27
kmallocthis is really weird.22:28
lbragstadempty_cup: are you using master or queens?22:28
empty_cupi am using queens22:29
empty_cupstable/queens22:29
kmalloccool.22:29
kmalloci dont think much has changed, but yanno... good to be sure22:29
empty_cuphttps://paste.fedoraproject.org/paste/qpbkj6fmoRTH55IOeTV-QQ22:29
kmallocooh uhm22:30
lbragstadahhh22:30
kmalloc--role-domain is that a domain-specific role thing?22:30
lbragstadyeah22:30
lbragstadit is22:30
kmallocthis explains a LOT22:30
empty_cup?22:31
*** lifeless has joined #openstack-keystone22:31
kmallocit also means we might have a bug in that code.22:31
lbragstadempty_cup: try this out22:31
lbragstadhttps://paste.fedoraproject.org/paste/5fvWfO69PG50~-tc8AxpXA22:31
*** lifeless_ has quit IRC22:31
empty_cupok, trying now22:32
empty_cupNo role with a name or ID of 'big_money' exists.22:35
kmallocso, i think you've created a bunch of domain-specific roles that don't expand to anything22:35
lbragstaddo an `openstack role create big_money` should create a "global" role assignment for you22:36
empty_cupok, yes, i used the --domain flag when i created the roles22:36
lbragstadoriginally, role were usable across the entire deployment22:36
kmallocyep, so that role exists on the domain itself, but it must explicitly be setup to expand to a global role22:36
lbragstadmeaning you could recycle roles across domain, project, whatever22:36
lbragstaddomain-specific roles were an attempt to make it easier for domain admins to create role that could only be used from within their domain22:37
kmallocsince it expands to nothing, --effective and the role means the user can't actually get a scoped token22:37
kmalloclbragstad: i think we have a bug we might need to be more explicit about the effective and what not and/or prevent assigning an empty domain-specific-role to a user22:37
*** oikiki has quit IRC22:37
kmallocthough... api breaking change =/22:37
lbragstadack22:38
kmalloci don't think this behavior was intended22:38
kmalloclbragstad: how do we add roles to the domain-specific role again22:38
kmalloc?22:38
kmallocbecause that also should work.22:38
lbragstadi'd be inclined to agree, but i'm not super knowledgeable in that area of code22:38
kmalloci'll pile that onto my backlog.22:38
kmallocflask, cache fix [grump], domain-specific-roles.22:38
*** oikiki has joined #openstack-keystone22:39
empty_cupok now when listing roles with and without effective they both show the big_money role22:39
lbragstadat the same time, i'm not aware of any one intentionally using domain-specific role assignments22:39
empty_cupi would like to use domain-specific role assignments haha22:39
empty_cuphow can i do that?22:39
lbragstadempty_cup: can your newyorker user authenticate to the domain and project you gave them access to?22:40
empty_cupyep, now i received a project token! i will assume it works the same with domain22:40
lbragstadyep22:40
lbragstadnice22:40
kmalloclbragstad: https://developer.openstack.org/api-ref/identity/v3/index.html#create-role-inference-rule need the OSC version22:40
kmalloclbragstad: but that is how we add an inference22:41
lbragstadright22:41
lbragstaddocumentation on that front is pretty sparse22:41
kmallocoh look we can create implied roles22:42
empty_cupok, so a domain role is essentially empty and needs to map to a global role?22:42
lbragstadhttps://bugs.launchpad.net/keystone/+bug/173786322:42
openstackLaunchpad bug 1737863 in OpenStack Identity (keystone) "Lack of documentation for role inheritance" [Medium,Confirmed]22:42
kmallocempty_cup: yes22:42
kmalloclbragstad: implied roles, not role inheritence22:42
kmallocwell both22:42
kmalloclbragstad: this is implied roles.22:43
lbragstadoh - right22:43
kmalloclbragstad: this isn;'t super helpful either: https://docs.openstack.org/python-openstackclient/latest/cli/command-objects/implied_role.html22:43
kmalloclike. our api is ok if you dig into it, the OSC commands are downright bad.22:44
lbragstadnope22:44
lbragstadyeah - it needs work22:44
kmalloci think you need to so those osc commands with the role ids22:44
kmallocwhich makes my head explode22:44
lbragstadsame22:44
kmallocwe need to make up some clear example uses, domain-specific roles are fantastic in concept22:44
lbragstadright22:45
lbragstadi should dig up the specification later22:45
kmallocand would be amazing in the way empty_cup is using it, since admin X of new domain might create a bunch of domain-specific roles.22:45
lbragstadbecause i would hope they would be in there22:45
kmallochttps://specs.openstack.org/openstack/keystone-specs/specs/mitaka/domain-specific-roles.html22:45
kmallocnot really22:45
lbragstadhmm22:46
kmallocit describes the use better in real words22:46
kmallocbut there is just nothing showing how it should work22:46
kmallocso you need to do osc role create --domain-id, then osc implied_role <invocation that is opaque with role ids>22:47
kmallocand this would work22:47
kmallocreally, not terrible... if we had documentation22:47
empty_cupoh, that's the page of documentation i was missing. i was looking at the flags for the cli, and, it aligned with the use case of a role only needing to exist in a domain for a specific project in that domain22:47
lbragstadkmalloc: sounds like we need a doc bug22:47
lbragstadin keystone and in osc?22:48
kmallocyep, in both22:48
lbragstadcool22:48
kmallocbut really we need clear "howto" scenarios developed for keystone22:48
kmallocand some rich examples of that, esp. in light of the system roles and other stuff coming down the line22:48
kmallocjust a one-liner in osc that says "hey if you do this with --domain-id, make sure you add role implications"22:49
lbragstadso - better api ref documentation and a better introduction document explaining what implied roles + domain roles are why they're useful22:49
kmalloclbragstad: yeah22:49
lbragstadcool22:50
kmallocand probably just some "hey keystone is cool, here is all the nifty stuff you cand do"22:50
lbragstadthat could live in the admin guide22:50
kmallocif you want domain-specific/meaningful names, and here is why you'd do that.22:50
kmallocprobably22:50
kmallocbreak out a section with links of "cool admin things in keystone"22:50
kmallocbecause domain-specific roles and role-implications are badass22:50
lbragstadkmalloc: empty_cup do either of you have a bug report in the works yet?22:51
kmallocbut who in their right mind uses them... or in the case of someone like empty_cup stumbles onto it and results in opaque and siully behavior22:51
kmallocno bug on my front22:51
kmallocmy brain was still hurting from looking at _list_effective_role_blah_blah method22:51
empty_cuplbragstad: i can file a bug report if shown where22:52
kmalloclbragstad: refactoring all this to be better API sets in flask is going to be so much easier to do.22:52
kmallocand make the sql drive less responsible for... well...22:52
kmallocbusiness logic22:52
kmallocempty_cup: thanks for bearing with us on chasing this down. it really sholdn't have been this rough =/, sorry you hit this and it made things frustrating22:54
empty_cupwhat's really appealing about keystone is the user, project, role (authz) management all contained in a single domain.22:55
lbragstadempty_cup: kmalloc just created on e22:55
empty_cupi'm grateful for the help kmalloc and lbragstad22:55
lbragstadhttps://bugs.launchpad.net/keystone/+bug/177509422:55
openstackLaunchpad bug 1775094 in OpenStack Identity (keystone) "Lack of documentation for role permutations and possibilities" [Undecided,New]22:55
lbragstad^ feel free to add context to that and we can track things there22:55
empty_cupcool22:55
lbragstadif there is anything i missed that we should elaborate on in documentation, we can track it there22:56
empty_cupi'll add more context22:56
lbragstadempty_cup: thanks22:56
* lbragstad is fried22:56
lbragstadstepping away for a bit22:56
kmalloclbragstad: ok going to go through the flask conversion comments, and then propose a "rip out V2" change that happens before paste.deploy removal22:56
lbragstadack22:57
kmalloclbragstad: so we can get the email to the MLs22:57
kmallocand get this ish landed22:57
kmalloc:)22:57
lbragstadcool22:57
kmalloci also think the test fixes will be easy to get landed /me pokes gagehugo to get them moving22:57
kmallocjust so rebase chain doesn't get too icky22:57
kmallocgagehugo: https://review.openstack.org/#/c/571913/122:58
kmallocgagehugo: if you don't mind, you +2'd the others22:58
kmalloc:)22:58
kmalloclbragstad: man the gate queue is deep today22:59
*** oikiki has quit IRC23:03
*** r-daneel has quit IRC23:05
*** oikiki has joined #openstack-keystone23:07
kmalloclbragstad: do you need me to implement the "load external middleware"23:13
kmallocin flask, and/or the additional applications23:14
kmalloc?23:14
kmalloclbragstad: or is a release note for flask sufficient to land this patch?23:15
kmallocas is and contemplate the other bits?23:15
*** oikiki has quit IRC23:15
openstackgerritMorgan Fainberg proposed openstack/keystone master: Convert Keystone to use Flask  https://review.openstack.org/56837723:15
kmalloclbragstad: ^ needs releasenote, but should be ready for review based upon other feedback.23:16
kmalloclbragstad: i can add the release note as a followup as well unless we need the external MW/app loading bits23:16
*** oikiki has joined #openstack-keystone23:17
*** bigdogstl has joined #openstack-keystone23:35
*** pooja-jadhav has joined #openstack-keystone23:36
*** bhagyashri_s has joined #openstack-keystone23:36
*** pooja_jadhav has quit IRC23:39
*** bhagyashris has quit IRC23:39
*** bigdogstl has quit IRC23:46
*** masber has joined #openstack-keystone23:49
*** bigdogstl has joined #openstack-keystone23:49
*** masuberu has quit IRC23:52
*** bigdogstl has quit IRC23:56
*** empty_cup has quit IRC23:58

Generated by irclog2html.py 2.15.3 by Marius Gedminas - find it at mg.pov.lt!