18:00:58 #startmeeting keystone 18:00:59 Meeting started Tue Jul 30 18:00:58 2013 UTC and is due to finish in 60 minutes. The chair is henrynash. Information about MeetBot at http://wiki.debian.org/MeetBot. 18:01:00 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 18:01:02 The meeting name has been set to 'keystone' 18:01:16 hi 18:01:23 Hi 18:01:37 ok, first off reminder that Havana m3 cut in Sept 4th 18:01:37 all present and accounted for 18:01:53 #info Havana m3 cut in Sept 4th 18:02:24 is anyone working on a bp that ISN't already tagged as heading for m3 ? 18:02:37 hmm , I may be 18:02:38 (i.e. they are expecting it to land for m3_ 18:02:39 henrynash: yes... 18:02:43 multi repos 18:02:43 https://blueprints.launchpad.net/openstack/?searchtext=user-locale-api 18:02:58 #link https://launchpad.net/keystone/+milestone/havana-3 18:03:19 #link https://blueprints.launchpad.net/keystone/+spec/user-locale-api 18:03:42 #link https://blueprints.launchpad.net/keystone/+spec/multiple-sql-migrate-repos 18:03:51 #action all to make sure any bps they are planning for m3 are tagge as such 18:04:06 henrynash, ^^ should be a prereq for any extensions going in that need sql schema updates\ 18:04:10 that way, we'll have a good picture as we burn down 18:04:11 henrynash: Is that something I do myself? 18:04:46 bknudson: as core, yes you can do that (Dolphm might change it…but you should set it) 18:05:19 henrynash: that was easy 18:05:33 ayoung: re we targeting the sql migrate at Havana…thought i saw a discussion about it going to iceHouse? 18:05:44 bknudson :-) 18:05:58 * topol sql migrate seems scary 18:06:02 ayoung / henrynash: I'm going to write up an updated BP based upon my conversations w/ dolph about caching layer instead of the revocation-list caching 18:06:20 henrynash / ayoung: this should be tagged for h3 18:06:46 caching revocation list makes sense since it doesn't change that much 18:07:14 bknudson: the revocation-list caching will be implementing the same way. 18:07:25 morganfainberg: Ok, but get it in their quick so you can get comment….as the clock ticks down we'll not want too many new Bps flowing in 18:07:35 henrynash: i'll write it up today. 18:07:43 ayoung: back to migrate, so you are planning this for m3? 18:07:47 morganfainberg, no API changes required for that? 18:07:53 morganfainberg: thx 18:08:10 we should fix migrate in m3 18:08:22 topol: no. it'll be just caching on top of current driver/manager calls 18:08:38 topol: and config options to make it functional. 18:08:43 morganfainberg. cool. I look fwd to reading the BP 18:08:53 topol: nod. 18:08:56 morganfainberg, you caching it at the driver level? 18:08:58 henrynash, yes 18:09:04 henrynash, migrtate should go in ASAP 18:09:07 gyee: fix, as in fix anything we have broken? 18:09:20 henrynash, the Alembic migration should wait until icehouse 18:09:25 gyee: there is a WIP that dolph put up as an example. it'll work a lot like that 18:09:28 henrynash, we need to get migration straighten out ASAP 18:09:40 morganfainberg, you mean the one I did? 18:09:48 besides the Alembic migration what are you referring too? 18:09:52 ayoung: you did that and dolph posted it? 18:09:56 gyee: are you referring to young's patch, or just tables we have mucked up 18:10:04 topol, migrations for extensions in their own repos 18:10:10 henrynash, sorry, I mean migration for the extensions 18:10:11 I'll post an example here in a second 18:10:19 guee: Ok 18:10:21 ayoung: https://review.openstack.org/#/c/38866/ 18:10:30 using dogpile.cache 18:10:34 ayoung, I remember you mentioning those. I thought they were tied to Alembic migration.. 18:10:46 dogpile? w00t! 18:10:52 gyee: :) 18:11:08 ok, so let's get the meeting back to an agenda! 18:11:20 henrynash, I am referring to https://review.openstack.org/#/c/36731/ 18:11:22 yeah sorry. didn't mean to derail. 18:11:31 we'll pick up discussion on the migrate items under high priority code reviews 18:11:33 the comments say it needs documentation 18:11:36 thought i was jumpin in ontime for h3 ... 18:11:53 ayoung: I'd like docs too, but can go in a separate commit. 18:12:08 #topic HIgh priority bugs or immediate issues? 18:12:30 anything hot? 18:12:47 No bugs marked as Critical 18:12:58 builds were broken by a dependency over the weekend but that's fixed. 18:13:02 can we change that Agenda item to "Critical Priority bugs" in the future? 18:13:04 ayoung: agreed…think we are Ok shape 18:13:23 * topol maybe we can all go on that hawaii vacation for m3 like I suggested before... 18:13:31 #action henrynash to change item to "Critical Priority bugs" 18:13:51 topol: there's a plan... 18:14:10 #topic Reducing the default token duration in support of abandoning token revocation 18:14:31 what do we need to cache token revocations for if we have this? 18:14:42 who's item is this? 18:14:52 dolphm, I believe 18:15:04 topol: I had a feeling someone would say that 18:15:17 to 1 hour? 18:15:21 He wanted to start stress testing the idea of tokens expiring to see what breaks 18:15:36 #link https://review.openstack.org/#/c/38672/ 18:15:38 I put a comment in that said, did you inform the other PTLs??? 18:16:20 henrynash, I want to do that, but it is not in H3 time frame 18:16:22 bknudson: we still need to cache, people can ask for longer tokens. 18:16:42 and limiting the backend impact… is good. 18:16:46 do we expect it to break (I know if we set it to minutes it definitely breaks) 18:17:02 morganfainberg, but when you change the default and folks find out by surprise.... 18:17:10 any work flow that lasts longer than the token duration will break. 18:17:25 ayoung: yep 18:17:27 topol: right. don't surprise people ; 18:17:29 assuming you can't get another token 18:17:37 But a 1 hour token duration was too long to avoid the need for revocation, according to backlash from the community 18:17:42 ayoung, I thought folks were supposed to code such that they reauthenticate if the token expires... Not true??? 18:17:58 we need something like this 18:17:59 ayoung, that's where to pluggable token providers come in handy, you can customize expiration base on account :) 18:18:01 topol: that was my understanding 18:18:01 just saying 18:18:17 #link https://blueprints.launchpad.net/keystone/+spec/delegation-workplans 18:18:40 Ok, sounds like need to circle back with dolphm on this one….to see how he plans to "experiment" with this. 18:18:43 gyee, no. its a matter of correct expectations... Either we are allowed to assume folks can code properly to this or we need to back it out 18:18:48 that way, you can say "use this trust or oauth request token to get the token you need whne you need it" 18:19:38 clients need to be able to handle tokens becoming invalid for other reasons already 18:19:45 topol: if you code such that you can re-authenticate, you risk leaving the "secret" (password) out in the clear where bad things can happen... 18:19:51 topol, client behaves the same way, regardless of expiration policy 18:19:55 if he other projects arent ready to handle this I need to change my vote... 18:20:14 brich1, that is why we have ecure delgation mechanisms now 18:20:15 if token expires, get a new one 18:20:23 ecure -> secure 18:20:46 ugg... forcing folks to adopt something new by changing a default that nows screws them is not how we should do this.. 18:20:56 #action dolphm to explain approach to rolling this out and discussion with other projects 18:21:00 topol, they will just change it back in the puppet module anyway 18:21:09 * topol need to go change my vote 18:21:26 #topic High priority code reviews 18:21:35 topol, if client code is so depended on the default expiration, something is fundamentally wrong 18:21:38 Client reviews! 18:21:39 ok, so what's in most need of pushing ahead 18:21:40 ayoung, yeah after getting pissed off at us 18:21:56 As jamielennox's daytime voice, I need to push people to do more client reviews 18:22:00 fear not the client 18:22:05 those client reviews are always so scary because everybody seems to want to rewrite it. 18:22:09 heh 18:22:38 ayoung: ok, so migration, 18:22:43 I have a WIP to show 18:22:51 #link https://review.openstack.org/#/c/39351/ 18:22:57 this is based on simo' 18:23:00 s kds patch 18:23:10 gyee, either we have a plan for success for our stakeholders for using shorter token expiration or we dont. sounds like we dont 18:23:21 topol, Icehouse 18:23:52 ayoung, K. then change default *in icehouse* 18:24:03 topol, I am more worried on other issues, like performance 18:24:04 on migrations, the question is whether I should contineu on with the sql migrations as is, or wshould we do the alembic move before we split out the extension repos 18:24:17 I think that Alembic support is going to require some thinking 18:24:19 topol, gyee: have set action for dolphm to come back with the plan….let's move on 18:24:21 ayoung: i am for doing the migration work now. 18:24:26 and I don't really want to force that through 18:24:26 ayoung: agred 18:24:31 morganfainberg, I do to 18:24:37 ayoung, avoid death or glory. go crawl walk run 18:24:38 and hit alembric in Icehouce 18:24:48 morganfainberg +1 18:25:02 dolph had the objection, so if we drive on, we have to be ready to convince him when he comes back. Do we have unanimous support for it? 18:25:21 support for doing it in stages??? 18:25:26 I think his problem was that we now have to do alembic on multiple repos 18:25:26 ayoung: I'd just like clarification of how a "complex" extension work work with a separate repo? 18:25:34 topol, for doign the migrations per extension in the existing technology 18:25:42 henrynash, see the above link 18:26:15 ayoung, yes that to me means stages. Unless thatmakes alembic 10 times harder later... 18:26:15 henrynash, the short of it is you need a migrate_repo subdir, a versions subdir under that, a config file, and a couple empty __init__.puy files 18:26:21 ayoung, is alembic required for separating out the extension migration? 18:26:21 ayoung: so I posted a question on patch 11 to this end 18:26:30 if we have multiple repos and have alembic, we have to decide how we're going to do the sqlalchemy -> alembic change. 18:26:53 henrynash, yep,. just got to the point that I had one to show, and I will convert that to documentation in both the commit message and in the doc dir 18:27:19 bknudson, we need to do that anyway, and I think the migration will be no more complex with or without the split 18:27:30 gyee, alembic is not required 18:28:00 ayoung, I would vote for getting the extension migration done first 18:28:01 ayoung: ok, I don't know how the sqlalchemy -> alembic migration works. Other projects always have a point where they consolidate migrations 18:28:04 ayoung: my question is much more fundamental…my initial reaction is that complex extensions will no long rbe possible since we won't have the DB changes sequenced with core…any sometimes I think you need to….so I am yet to be convinced over the whole approach 18:28:07 gyee, doing alembic support after the split means that we will have to deal with multiple migrate repos in the conversion, but that should be only slightly more complex than what we are doing now 18:28:12 but keystone hasn't done that (consolidation) 18:28:32 henrynash, if an extension needs to talk to the db, and change the core schema, it can still do that in common 18:28:44 we just should not allow that in a review with out serious justification 18:28:44 ayoung: I'd suggest we need a better BP that explains what will and won't be possible…like before we start coding it 18:30:03 henrynash, extension , by definition, are defined to be split out from the main keystone server. I don't want any more extesnions going in until we resolve this 18:30:15 ayoung: +1 18:30:25 henrynash, credentials should have had its own repo, hell, Identity and token stuff should be in their own repos 18:30:39 catalog and policy should certainly be in their own repos, too 18:30:50 ayoung, amen brother 18:31:40 So, henrynash do you really think an extension should be allowed to communicate with the underlying sql schema? 18:32:02 ayoung: so i get those suggestions….I thought the primary point of an extension was to allow API changes that we are not necessarily committing to support long ter, 18:32:11 ayoung, you sure you didn't work on OSGi before? 18:33:09 henrynash, having sql-specific schema dependencies is pretty messy 18:33:27 especially we are supporting different backend drivers 18:33:36 gyee, I've worked on everything before 18:33:56 ayoung: I (think what I ) am advocating is that often an extension might need to change a core schema. The schema change might be done in core (and not part of the extension) as long as it is benign….but "private" sql extension changes would be in their own repo 18:34:01 gyee: yes, it makes sense especially with the pluggable nature/mutiple backends. 18:34:45 henrynash, I would argue that if you are modifying a set of tables, all the changes to those should be in a single repo. Extensions *can* and *should* have their own sql repos, but because some extensions are already munged into the common repo, we can't make that a *must* at least not yet 18:34:45 ayoung: otherwise I don't see how our dependencies will work, we'll break extensions at the drop of a hat 18:35:31 henrynash, so, the rule is "no new extension that requires a new sql schema goes into the common repo" 18:35:33 henrynash: we should have unit tests to ensure extensions work 18:35:55 bknudson, at the minimal 18:35:59 bknudson, and those will be part of the sql upgrade test with that extensions patch 18:36:24 and we need a real sql in the gate 18:36:28 ayoung: so I'm not arguing that should not be able to have a repo….I'm just skeptical it is the right solution for all extension (in the future) to be wholly contained within their repo 18:36:47 yes, real SQL in gate (or something that emulates it cleanly) is important. 18:37:30 henrynash, it is a code standard, but one that we can address when the time comes. For example, the ec2 extensions are currently based on code in the common repo. THat won't be broken by this 18:37:37 do we expect to have enough extensions in the future to merit supporting multiple repos? 18:37:42 henrynash, it just provides a missing mechanism 18:37:44 topol, yes 18:37:49 topol, 3 have 3 right now 18:37:51 kds 18:37:53 mapping 18:38:03 oauth 18:38:11 everybody loves adding to our database... 18:38:20 ayoung, don't forget endpoint filtering 18:38:26 ayoung: and that's my point, I don't see where we have planned out how different types of extensions will work….I really want to see it described how the dependencies will work, be obvious to those working on core etc. 18:38:27 so today an extension can't really count on the identity sql, since identity could be ldap. 18:38:29 gyee, make that four 18:38:34 bknudson, right 18:38:36 pho for pho! 18:39:08 ayoung: you probably have it all worked out….I just need to be able read it and think through how it would work in practice 18:39:17 henrynash, fair enough. 18:39:38 #action ayoung to properly document split repos as part of the patch 18:39:43 ayoung: if you could do that, it would be great 18:39:49 thx 18:39:56 Ok, other high priority code reviews 18:40:08 one thing we might need is a more extensible way to notify extensions of events. 18:40:22 more comprehensive might be a better word 18:40:47 bknudson, can you translate that in plain english? 18:40:49 bknudson: do we ahem any way implemented today? I didn't think so? 18:41:11 bknudson, that statement scares me 18:41:35 more of a thought, but you use foreign keys for example to delete rows from a table when the user goes away. 18:41:37 * topol plz be thinkijng of something lightweight :-) 18:41:43 and now we don't have foreign keys for that. 18:41:59 so some way to tell an extension that the user has gone away and it should clean up. 18:42:04 bknudson, LDAP does not notify anyway 18:42:10 users never "go away" 18:42:23 now, projects, OTOH, 18:42:27 users was an example... not sure if there's another one. 18:42:36 roles get removed, and tokens get revoked 18:42:51 integration happens at the component to component level 18:43:21 does openstack have a common event listening mechanism? 18:43:36 we've got a discussion of notifications later on the agenda already. 18:43:38 bknudson, you thinking of an internal message queue or something? 18:43:41 wirth extensions, we should try to keep integration to a minimum. Ideally, different extensjhions should be able to run on different servers, and Keystone can then just act as a n incubatoer for new services with them all living in a single server 18:44:10 gyee: yes, it could be through an internal mechanism to register for events. 18:44:40 bknudson: Ok, think we need to table that topic, to make sure we get through the agent - maybe add it to next week? 18:44:45 anyway we can avoid not invented here and rolling our own for this??? 18:44:57 any other high priority reviews? 18:45:16 probably a bit early in the cycle 18:45:16 Implement apiclient library 18:45:21 ayoung: ahh! 18:45:26 https://review.openstack.org/#/c/28043/ 18:45:30 ayoung: indeed 18:45:38 we need to solve the common authentication mechanism problem 18:45:48 it's only 3000 lines 18:45:57 heh 18:46:03 seems like common authentication mech wouldn't take 3k loc 18:46:04 with lots of -1s to boot 18:46:21 agreed, so what do we do about moving this ahead? 18:46:26 I think we need to work with him 18:46:42 but scope down this into multiple, independent blueprints 18:46:50 with auth being the highest priority 18:46:54 ayoung: +1 18:46:57 ayoung: +1 18:46:58 ayoung +1 18:47:07 ayoung: are any clients "signed up" to use such a think…or is it that if build (we hope) they shall come? 18:47:18 does ti have stakeholders lined up? Will folks jump to this once its avail or say, what I have works... leave me alone? 18:47:27 so novaclient already has this plugin mechanism 18:47:28 henrynash, I think cinder already pullins the keystone client 18:47:35 I know at least one client does, 18:47:45 ayoung:I think that is true, yes 18:48:40 henrynash, it is in cinder's pip-requires but not in python-cinderclient 18:49:09 glance has it , though 18:49:13 ayoung: ahh. that might be just that it wants the middleware 18:49:36 https://github.com/openstack/python-glanceclient/blob/master/requirements.txt#L6 18:50:14 all the clients will need keystoneclient to get a token 18:50:26 bknudson, they do direct calls right now 18:50:57 the safe thing to do would be to confirm what the stakeholders really need in this space, that they are willing to move to the new code base and to make sure the 3000 lines are trimmed down to deliver only what the stakeholders need. could waste a lot of time if not real agile dvelopment is used on this one 18:51:03 ayoung: oh, so we've got some work ahead of us! 18:51:09 bknudson, so we want them to consume the python-keystoneclient in order to manage how the authenticate both when they get a token and when they pass that token to aremote service, assuming the remote services can handle SPNEGO or CLient certs. Down the road of course 18:51:52 #action cores (at least) to take some the to work on this issue this week….. 18:52:00 bknudson, yeah, I would say so, and it is going to take some joint engagement. Thus, the first challenge to the core devs is to get comfortable with the client code, and get a common vision of how it should look and work. 18:52:19 we need to make progress or we still won't have a v3 nova client by Havana ship 18:52:25 v3 auth 18:52:49 henrynash, who's working on this? 18:52:50 We need to work with the other projects to up the minimum version, too 18:53:04 ayoung, what kind of help you need from on this front? 18:53:06 we should be able to use the latest keystone client in all projects 18:53:27 ayoung, +1 and if not to understand why not 18:53:28 gyee, jamielennox has been working on it 18:53:37 young, guee: so I raised this at the project meetinga few weeks ago (when deputising for Dolphm) and the reaction was…use the mailing list! 18:53:57 henrynash, or submit patches 18:54:02 henrynash, yup 18:54:02 ayoung: always better 18:54:07 just do it 18:54:32 young, gyee: ..and I coming round to thinking that this is what we must do 18:54:48 henrynash, yes, we'll have to write the code 18:55:16 gyee, ayoung, bknudson: let's chat after the meeting on this one 18:55:24 henrynash: ok 18:55:34 #topic Oslo unified logging patch landing soon? (https://review.openstack.org/#/c/34834/) 18:55:41 #link https://review.openstack.org/#/c/34834/ 18:55:48 gyee, plz find a stakeholder from each project that needs to adopt. My rule of thumb would be if you cant get a stakeholder its a recipe for a waste of time.. 18:56:00 henrynash, I'll OK the approach once we are certain it doens't mess up apache 18:56:15 hoping that this lands soon, and this change was purposed for keystone a while ago to implement a unified logging solution but concerns were raised about eventlet 18:56:34 topol, sure, make sense 18:56:44 just wanted to give everyone a heads up on this, and once it lands in Oslo I'll plan to implement the unified logging solution to keystone 18:56:52 so do we want to wait for the oslo change before we get notifications or stick with where we were before? 18:57:11 bknudson, does it require changes to the config file? 18:57:27 lbragstad: and the question of apache? 18:57:36 If so, that breaks the feature freeze rule. Otherwise, I am OK with it going in to H3. 18:57:37 jsut about to test it in apache. 18:57:41 henrynash: ^ 18:57:49 ayoung: do notifications require changes to the config file? I'm sure there's config options to tell it what notifier to use. 18:57:57 yes 18:58:01 lbragstad, can you file that as an Agenda item for next week, then, to make sure we close it on out? 18:58:02 ayoung: bknudson^ 18:58:11 bknudson, optional changes are OK 18:58:11 #link http://docs.openstack.org/trunk/openstack-network/admin/content/ch_adv_notification_overview.html 18:58:18 bknudson, required changes are not 18:58:19 ayoung: I didn't think changes to config file where verboten…just that we can't break anything that is in there already 18:58:36 right, it has to have a sensible default. 18:59:05 henrynash, think of it as an integration problem. API's are fixed to keep from breaking iother apps. Config files are fixed to keep from breaking the puppet modules and installers 18:59:44 people are going to think we're on vaca in Hawaii if we don't make work by breaking other apps. 18:59:50 1 minute remaining 18:59:54 henrynash, endpoint filter is ready for review 19:00:04 fabiog, add me to the review, please 19:00:04 ayoung: hmm, agree we can't change existing values…take offline 19:00:08 #link https://review.openstack.org/#/c/33118/ 19:00:20 #topoc open discussion ! 19:00:31 ayoung, added 19:00:34 but we are out of time! 19:00:36 fabiog, dolph has a red x on it. why would we review??? 19:00:47 #stopmeeting 19:00:54 #endmeeting