18:03:27 #startmeeting keystone 18:03:28 Meeting started Tue Jul 1 18:03:27 2014 UTC and is due to finish in 60 minutes. The chair is dolphm. Information about MeetBot at http://wiki.debian.org/MeetBot. 18:03:29 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 18:03:31 The meeting name has been set to 'keystone' 18:03:33 #topic Update on oslo libraries 18:03:38 bknudson: o/ 18:03:49 ok, not a whole lot to say but the oslo team are starting to release libs 18:04:07 unfortunately they release with an alpha release and then I can't add it to global requirements 18:04:13 there was a note to the mailing list about this 18:04:15 does that mean -incubator is dying? 18:04:35 I think there are some things that will be in -incubator still 18:04:35 dolphm, yep. 18:04:36 dolphm, slowly 18:04:38 and new stuff can go there 18:04:39 bknudson, ++ 18:04:45 but we'll have 18:05:01 - fixture moved to oslo.config (reviews out there) 18:05:05 - oslo.i18n 18:05:15 had a conversation recently about a (potentially) a new oslo incubator module -- would that just become it's own lib immediately instead? 18:05:17 - oslo.utils 18:05:32 #link http://lists.openstack.org/pipermail/openstack-dev/2014-July/039089.html 18:05:41 bknudson: was that the right thread? 18:05:46 oslo.utils has the import function that we use for managers 18:06:20 lbragstad: thanks, that's the link. I hadn't seen the latest update. 18:06:39 so I think that's it for the update... 18:06:47 kind of blocked by having to redo the entire infrastructure 18:07:14 dolphm: I think it depends on how stable you would consider the interface whether it goes to incubator 18:07:41 there has been an oslo lib where they didn't go to incubator first (vmware) 18:07:57 so, starting in incubator is still the default path 18:08:06 dolphm: I think so. 18:08:12 cool 18:08:31 well 18:08:35 #topic open discussion 18:08:35 dolphm, afaict the idea is move things out of incubator faster now that there is a set pathc. 18:08:37 but we already have a lot less code in keystone due to loss of db.session 18:08:46 dolphm, ooh i have something for open discussion! 18:09:01 morganfainberg: well it's open... 18:09:05 2 things 18:09:06 Keystonemiddleware! 18:09:10 yay! 18:09:30 there was a devstack review blocking it's release -- did that merge? 18:09:36 as soon as it merges into dev stack we can have a release (or well things): https://review.openstack.org/#/c/102326/ 18:09:43 it's approved and just fighting with gate 18:09:46 btw, we already have a change to auth_token tests in keystoneclient that now needs to be made in keystonemiddleware,too 18:10:32 https://review.openstack.org/#/c/99846/ 18:10:51 ok 18:11:02 I've got changes lined up to get the other projects using keystonemiddleware 18:11:05 well need to get that ported across 18:11:08 bknudson, ++ 18:11:26 https://review.openstack.org/#/q/status:open+branch:master+topic:keystonemiddleware,n,z 18:11:33 can't we just nuke tests in keystoneclient? 18:11:46 in favor of 'ensure the import from keystonemiddleware works' 18:11:54 we don't import 18:11:56 not until we remove it i think 18:12:05 dolphm, well, we can't do that import due to circular deps 18:12:11 bknudson, VERY COOL!!! 18:12:14 dolphm, we'd need to break apart ksc more than it is to do that 18:12:17 still don't want to break existing 18:12:35 morganfainberg: ah, forgot about that. 18:13:10 and we might make some people very sad if we broke apart and added a new package dep (read: havana / icehouse deployments) 18:13:40 we're going to need to hold middleware in ksc (at least an old version) probably until L releases. 18:13:45 at the very least K. 18:14:11 morganfainberg: 2.0 18:14:11 but it is mostly isolated from the rest of keystoneclient, so maintaining it wont be awful. 18:14:26 btw, can we have a 1.0 package depend on a < 1.0 package? 18:15:01 seems odd to have a stable lib depend on an unstable one 18:15:12 bknudson, i think we can. 18:15:24 bknudson, there is a lot of python that is not 1.0 and is used. 18:15:46 bknudson, we could release a 0.9 of middleware i guess and then make the next release of ksc 1.0? :P 18:15:47 bknudson: what's the < 1.0 package? 18:15:52 keystoneclient 18:15:54 dolphm, keystoneclient 18:16:31 i don't think it matters too much - we control both versioning schemes and know exactly how stable each are 18:16:44 bknudson, iso8601 is 0.1.9, pbr is < 1.0, prettytable is < 1.0, netaddr is < 1.0 18:16:49 i think we should be fine 18:17:00 ok, works for me 18:17:13 so keystonemiddleware is just waiting for the devstack change 18:17:18 yep 18:17:41 and then we can do a release [no blockers unless some change to the code is needed] 18:17:41 any reviews in progress that we should have in? 18:17:43 * topol morganfainberg digging up the concrete example! 18:18:07 bknudson, i think we said 1.0.0 will be a straight cut over 18:18:19 I thought there were some docs 18:18:36 we got readme and contributing added 18:18:37 already merged 18:19:08 ok 18:19:14 morganfainberg: i was thinking (and been lazy about it) that we should take the opportunity to make everything in auth_token private 18:19:28 everything but the class defenition 18:19:44 dolphm, want to keep as is or make that changeover before release? 18:19:53 dolphm, should be an easy/transparent change 18:20:06 it'll make porting patches a bit harder between the two, but we've always had the problem that people want to override it where they shouldn't 18:20:35 jamielennox, i'm ok with that, but i'll defer to dolphm 18:20:40 i'm leaning towards that being a 1.1 thing :-/ 18:20:50 jamielennox: will that actually stop them? 18:20:53 maybe that it's in keystonemiddleware now rather than in an API will convince people that they shouldn't override things 18:21:05 bknudson, ++ 18:21:11 jamielennox, is that code someone would want to override? 18:21:14 dstanek: probably not but it's a clear sign that if they do and we change it then it's there own fault 18:21:28 there -> their 18:21:34 dolphm: sure, but if we're calling something 1.0 we are declaring it stable and non-changing api - this wouldn't be 18:21:39 dstanek, it may not stop them but it gives us coverage when they bitch 18:21:54 dstanek, been to that rodeo before 18:22:01 topol: i always thought no, but there's always someone doing odd things - it has come up before 18:22:05 jamielennox, we have said in the past middleware internals are internal. we just ddin't do that before 18:22:14 jamielennox: propose the patch, and let's talk in code review? 18:22:14 prefix with _ that is 18:22:47 will do 18:22:52 jamielennox, I agree. not having the prefix means someone can do a lot of overrides and then when we change the API, their whole world breaks and they are angry 18:24:05 ok quick second topic, non-persistent tokens. wanted input from folks on this. 18:24:11 https://review.openstack.org/#/c/103416/ I proposed making [token]/driver [token]/persistence_driver 18:24:35 this is the start of a long chain that will deprecate token_api, merge most of that functionality into the token_provider_api 18:24:49 token_api will be kept around for a cycle (like we did with the proxy for assignment from identity) 18:25:08 public Rest APIs are not affected by this, and already reference the token_provider_api 18:25:38 any thoughts / concerns / "don't you dare, I have an affair with the token_api and can't let it go" ? 18:26:08 morganfainberg: i don't like the inconsistency with other 'driver' options :( 18:26:11 this all driving towards making persistence of tokens through as minimal an interface as possible, so we can drop it easil. 18:26:12 * topol I broke up with token_api months ago\ 18:26:47 dolphm, i could move it to [token_persistence]/driver 18:26:49 dolphm, instead 18:27:03 morganfainberg: all driver's are 'persistence' drivers, right? 18:27:09 drivers* 18:27:44 dolphm, i want to say no, but it was the exception to the rule and i don't remember which it is :P 18:27:51 dolphm, so, yeah i need to agree, they are. 18:28:51 will non-persistant tokens need a driver? all will it be indicated by driver=None 18:28:57 s/all/or 18:29:12 jamielennox, ideally that would be the way you do it. UUID would override that choice. 18:29:47 or i could just make that logic really part of the provider 18:30:05 only affects providers that implement persistence 18:30:07 so provider=pki persistence=None ? 18:30:21 oh wait. no, revoke by id implies need for persistence 18:30:45 why does revoke by id imply persistence? 18:30:48 there is a matrix of "needs / doesn't need" persistence. and if it needs persistence, it is configurable 18:30:58 extract the issued time from the token 18:31:05 bknudson, i want to revoke all tokens for user X, how do you know the IDs of that 18:31:22 bknudson, you need to search through the token persistence driver to find all the token ids belonging to user X 18:31:31 oh, you're saying if you use revocation list you need persistent tokens 18:31:35 bknudson, yep 18:31:39 makes sense 18:31:51 but if you're using revocation events then don't need persistent tokens 18:32:05 bknudson, and "revoke_by_id" is the option [probably should be renamed to "use_revocation_list") 18:32:10 bknudson, using revocation events exclusively 18:32:21 bknudson, some environments may need both (mix of middleware?) 18:33:32 this is going to require a novel in the sample config. 18:33:36 disable the token (persistence) driver should implicitly disable revocation list, right? 18:33:48 dolphm, unless you're using UUID tokens 18:34:02 morganfainberg: then you can't disable the persistence driver anyway 18:34:06 dolphm, ++ 18:34:17 morganfainberg: that should be a fatal exception on startup 18:34:22 dolphm, yes 18:34:27 morganfainberg dolphm btw guys I addressed comment about plugins for rally in keystone 18:34:41 morganfainberg dolphm https://review.openstack.org/#/c/98836/ 18:34:46 seems like mergable=) 18:34:48 dolphm, so yes, we could disable revocation_list based on disabling the persistence 18:35:14 might be the easiest way. 18:35:16 morganfainberg, definitely will need some good docs to keep this all straight 18:35:21 topol, yes we will 18:35:54 this is an opportunity for us to develop a gui 18:36:07 bknudson, can it be written in java? 18:36:13 morganfainberg: go 18:36:24 morganfainberg: that's the language we know! 18:36:47 morganfainberg, Jquery and AngularJS? 18:37:05 so does anyone have issues with deprecating token_api internal interface? 18:37:16 who is gonna do the accesibility review for the GUI??? 18:37:20 regardless of the other mechanisms we bring along (persistence vs uuid vs revocation_list) 18:37:42 morganfainberg: what's the problem with it? 18:38:07 bknudson, trying to make it so anything that "stores" or "accesses" tokens from the persistence engine goes through one interface 18:38:18 and the provider_api duplicates a lot of functionality 18:38:32 * topol topol refuses to build a java GUI ever again :-) 18:38:53 i'd rather the provider_api be the interface for all of this stuff since it's providing the tokens, regardless of if we persist tokens to something or not 18:39:17 morganfainberg: are we still supporting gui interfaces using visual basic to track tokens? 18:39:33 I'm surprised that gyee hasn't made a comment since he wrote it 18:39:45 although he's probably painting himself red white and blue 18:39:53 dolphm, only because two people were typing on the keyboard at once to build that app 18:40:36 bknudson, we'd be keeping the token_provider_api, and just making token_api disappear in K (send a nice fat warning "HEY DONT USE THIS YOU HAVE ANOTHER OPTION") in J 18:40:47 morganfainberg: well then as long as the token provider API supports four hands on the keyboard at once i'm good 18:40:59 morganfainberg: I was discussing at the meeting of hierarchical multitenancy about inherited roles, and we have two questions, this is a good moment to talk about that or i talk with you later? 18:41:05 dolphm, sold 18:41:06 thats a big keyboard 18:41:17 ok i'm out of things to talk about :) 18:41:19 topol: at least with a 10-kay 18:41:44 raildo: when is this meeting, btw, I’d like to attend 18:41:50 #topic, restaurant options for the Hackathon? 18:42:22 topol, # some taco stand that brad will be told to meet us at after 9pm? *duck* 18:42:24 henrynash: friday, 16:00 UTC 18:42:41 raildo: thx 18:42:44 morganfainberg. I fixed that. Im buying drinks first night 18:42:46 topol, (don't hurt me, and still buy the first round of drinks0 18:43:02 What-a-burger? I hear that it's magical 18:43:09 raildo, we are in open discussion here, if this is somehting for the wider eystone audience / meeting, this is a good time to chat 18:43:19 raildo, if not we can chat post meeting (and post lunch for me) 18:44:24 i would love people to take a look at the series: https://review.openstack.org/#/c/95015 18:44:30 morganfainberg: I was going to lunch now as well, I'll talk to you in #openstack-keystone later, ok? 18:44:31 morganfainberg, dstanek, ayoung: sorry to stalk, but if one of you could (hopefully_ give the final +2 to https://review.openstack.org/#/c/102430 18:44:39 raildo, sounds great 18:44:42 they are what I most need for using keystoneclient with other clients 18:45:15 just had to update the first for a few bknudson comments - but they were doc fixups, and the code itself has been unchnaged for a while 18:45:17 also, somewhat related to jamielennox reviews -- I wrote up a spec for nova to use use v3 18:45:20 morganfainberg, dstanek, ayoung: it’s teh 2nd of the 3 multi-backend uuids pacthes, just rebasing the 3rd now 18:45:40 henrynash: shoudl there be some foreign key relationships in that table? or are they left our on purpose? 18:45:55 https://review.openstack.org/#/c/103617/ 18:45:56 once we have that chain in, a release would be useful 18:46:05 jamielennox: i don't see how that patch has anything to do with the blueprint? 18:46:05 henrynash, i am withholding a +2 on the one i did the sql work in 18:46:11 henrynash, otherwise i will review others 18:46:32 dstanek: so right now the mapping table is in identity…so can’t fk to assignment 18:46:40 #link nova spec for use identity v3: https://review.openstack.org/#/c/103617/ 18:46:40 jamielennox: there's also an open bug that sounds a lot like the bp description... have a link to that? 18:46:48 jamielennox: it was sort of recent 18:46:51 morganfainberg: ? 18:46:59 dolphm: a standard way of loading session and auth plugins from conf 18:47:19 dolphm: i don't know the one off the top of my head 18:47:21 henrynash, i contributed code to https://review.openstack.org/#/c/102430/4 so i am not +2ing it :) 18:47:24 jamielennox: so auth_token would change to have those config options? 18:47:35 henrynash subsequent patches i will review. 18:47:38 jamielennox: that ^ doesn't have anything to do with the bp: "so that we get the same config options everywhere. This also helps developers create the objects and means that config and CLI options will be automatically updated by changes in keystoneclient." 18:47:39 bknudson: no, the options match auth_token 18:47:42 henrynash: ah, makes sense 18:47:44 morganfainberg: ah, sorry got ya! 18:48:05 jamielennox: and for example nova can use those options when it switches to use session for neutronclient? 18:48:50 dolphm: the patch is about registering CONF options required for the session and being able to load one from those optoins 18:49:20 dolphm: so same config options, and if we add things to register_ in ksc then we can use them in load_from_ without having to change every consumer 18:49:37 henrynash: what line 26 doing https://review.openstack.org/#/c/102430/9/keystone/common/sql/migrate_repo/versions/051_add_id_mapping.py ? 18:49:37 bknudson: that's the intention 18:49:45 jamielennox: but the config setup doesn't have auth plugin stuff yet? 18:49:55 bknudson: they are the reviews after that 18:50:03 they are a bit more difficult 18:50:08 ok 18:50:14 jamielennox: this seems to be completely missing the pain point that we're seeing in every other project using keystoneclient 18:50:21 dtsanek: ahh…damn…left over from when I mistakingly DID haev a FK in there! 18:50:41 dstanek: it’s a fair cop, guv 18:50:43 jamielennox: so i don't understand where this solution is coming from - where is the problem that it is solving? 18:51:12 henrynash: i only got 3 files in on the latest, but i can finish up after this meeting 18:51:19 dolphm: so every service ends up with things like cacerts and usernames and passwords scattered through there config files 18:51:30 there -> their 18:51:32 dtsaneK; ok, great….I’ll wait for those, then re-patch as required 18:52:05 bknudson, hehe 18:52:05 dolphm: i want a standard mechanism that says create a session object from these config options and have all the config options named the same across all the projects 18:52:15 dolphm: eg heat uses ca_cert not cacert 18:52:17 dstanek: thx 18:52:26 dolphm: this is more important when we get to auth_plugins 18:52:57 dolphm: we need a way to load any auth plugin (not just username/password as in current configs) and create a client based on that 18:53:22 and we can't expect the other clients to figure out how to do that 18:53:23 there's a lot of auth options that aren't going to be useful in a config file 18:53:38 so the procedure would be 18:54:00 auth = keystoneclient.auth.conf.load_from_conf(CONF, group) 18:54:16 session = keystoneclient.session.Session.load_from_conf(CONF, group, auth=auth) 18:54:32 client = keystoneclient.client.Client(session=session) 18:55:27 or client = neutronclient.client.SessionClient(session=session) 18:55:30 jamielennox: right, what you're doing is forward-looking, but the problem statement sounds like this- https://bugs.launchpad.net/python-keystoneclient/+bug/1332337 18:55:32 Launchpad bug 1332337 in python-keystoneclient "python-keystoneclient not providing shell parameters" [Wishlist,In progress] 18:55:48 bknudson: right 18:56:30 so he's looking at CLI 18:56:55 that'd be: https://review.openstack.org/#/c/95678/ and https://review.openstack.org/#/c/95679/ 18:58:13 same concepts though 18:59:08 jamielennox: this looks like the patch i was expecting: https://review.openstack.org/#/c/95680/2/keystoneclient/shell.py 18:59:11 now i get it! 18:59:30 that bug says in progress but I don't see a review 19:00:25 jamielennox: BTW. for the saml auth plugin i'd need to be able to pick another plugin (for IdP authN) load it and pass some params there. Of course params would differ per idp-authN plugin. Do you think we should make it somehow hierarchic or maybe try to squeeze parameters in one group/section, for both plugins (Unscoped token plugin and idp-auth plugin) 19:00:27 bknudson: re-assigned :-/ wish i had known about jamie's work sooner 19:00:33 (time) 19:01:24 #endmeeting