Thursday, 2018-07-12

*** felipemonteiro has joined #openstack-keystone00:15
*** linkmark has quit IRC00:23
*** felipemonteiro_ has joined #openstack-keystone00:23
*** felipemonteiro has quit IRC00:26
*** edmondsw has joined #openstack-keystone00:43
*** edmondsw has quit IRC00:48
wxylbragstad: thanks, looking now.01:07
*** elibrokeit is now known as ztrawhcse01:21
*** itlinux has joined #openstack-keystone01:36
openstackgerritMerged openstack/keystone master: Remove enable config option of trust feature  https://review.openstack.org/58058701:37
*** itlinux has quit IRC02:02
*** ztrawhcse is now known as elibrokeit02:14
*** yuxin_ has quit IRC02:20
*** yuxin_ has joined #openstack-keystone02:21
*** gongysh has joined #openstack-keystone02:29
*** edmondsw has joined #openstack-keystone02:32
*** jmlowe has quit IRC02:35
*** edmondsw has quit IRC02:36
*** gongysh has quit IRC03:26
openstackgerritBrin Zhang proposed openstack/keystone master: Remove the uuid token provider  https://review.openstack.org/58194003:37
*** gongysh has joined #openstack-keystone03:50
*** gongysh has quit IRC04:05
*** edmondsw has joined #openstack-keystone04:20
*** edmondsw has quit IRC04:24
*** agrebennikov has joined #openstack-keystone04:26
*** felipemonteiro_ has quit IRC04:58
*** links has joined #openstack-keystone05:03
*** d0ugal_ has joined #openstack-keystone05:54
*** d0ugal has quit IRC05:56
*** martinus__ has joined #openstack-keystone06:03
*** gongysh has joined #openstack-keystone06:04
*** belmoreira has joined #openstack-keystone06:19
*** belmore__ has joined #openstack-keystone06:26
*** belmoreira has quit IRC06:28
*** ispp has joined #openstack-keystone06:32
*** gongysh has quit IRC06:38
*** amoralej|off is now known as amoralej07:02
*** belmoreira has joined #openstack-keystone07:04
*** belmore__ has quit IRC07:05
*** aloga has joined #openstack-keystone07:09
openstackgerritBrin Zhang proposed openstack/keystone master: Remove the uuid token provider  https://review.openstack.org/58194007:19
*** rcernin has quit IRC07:20
*** ispp has quit IRC07:21
*** gongysh has joined #openstack-keystone07:24
*** peereb has joined #openstack-keystone07:25
*** gongysh has quit IRC07:27
*** ispp has joined #openstack-keystone07:30
*** gongysh has joined #openstack-keystone07:32
*** belmoreira has quit IRC07:40
*** kimamisa has joined #openstack-keystone07:42
*** ispp has quit IRC07:50
*** ispp has joined #openstack-keystone07:51
openstackgerritTuan Do Anh proposed openstack/keystone master: Update pypi url to new url  https://review.openstack.org/58199707:53
*** belmoreira has joined #openstack-keystone07:56
openstackgerritDuc Nguyen proposed openstack/oslo.policy master: Add py36 testenv  https://review.openstack.org/58199907:57
*** d0ugal_ has quit IRC08:03
*** d0ugal has joined #openstack-keystone08:03
*** d0ugal has quit IRC08:03
*** d0ugal has joined #openstack-keystone08:03
*** tosky has joined #openstack-keystone08:03
*** gongysh has quit IRC08:05
*** ispp has quit IRC08:08
*** itlinux has joined #openstack-keystone08:16
*** links has quit IRC08:24
*** links has joined #openstack-keystone08:26
*** mvk_ has quit IRC08:30
*** ispp has joined #openstack-keystone08:31
*** sapd has quit IRC08:35
*** sapd has joined #openstack-keystone08:35
*** tesseract has joined #openstack-keystone08:37
*** ispp has quit IRC08:48
*** ispp has joined #openstack-keystone08:53
*** mvk_ has joined #openstack-keystone08:54
*** agrebennikov has quit IRC09:01
*** links has quit IRC09:10
*** links has joined #openstack-keystone09:12
*** mvk_ has quit IRC09:16
openstackgerritwangxiyuan proposed openstack/keystone master: Strict two level limit model  https://review.openstack.org/55769609:25
openstackgerritwangxiyuan proposed openstack/keystone master: Add project_id filter for listing limit  https://review.openstack.org/57933009:25
openstackgerritwangxiyuan proposed openstack/keystone master: [WIP]Add show hierarchy filter  https://review.openstack.org/57933109:25
*** hoonetorg has quit IRC09:27
*** mvk_ has joined #openstack-keystone09:28
*** belmoreira has quit IRC09:31
*** hoonetorg has joined #openstack-keystone09:40
*** belmoreira has joined #openstack-keystone10:19
*** amoralej is now known as amoralej|lunch11:18
*** yikun has quit IRC11:46
*** belmorei_ has joined #openstack-keystone11:53
*** belmoreira has quit IRC11:55
*** itlinux has quit IRC12:01
*** raildo has joined #openstack-keystone12:04
*** edmondsw has joined #openstack-keystone12:09
*** belmorei_ has quit IRC12:09
*** belmorei_ has joined #openstack-keystone12:10
*** ispp has quit IRC12:16
*** amoralej|lunch is now known as amoralej12:20
*** ispp has joined #openstack-keystone12:22
*** yikun has joined #openstack-keystone12:27
*** belmorei_ has quit IRC12:32
*** felipemonteiro has joined #openstack-keystone12:43
*** mchlumsky has joined #openstack-keystone12:55
*** belmoreira has joined #openstack-keystone13:08
*** dklyle has quit IRC13:14
knikollao/13:28
*** spilla has joined #openstack-keystone13:29
*** felipemonteiro_ has joined #openstack-keystone13:38
lbragstado/13:39
*** rmascena has joined #openstack-keystone13:41
*** felipemonteiro has quit IRC13:42
*** raildo has quit IRC13:44
*** links has quit IRC13:50
kmalloco/13:54
knikollakmalloc: going through the flask stack now13:57
*** belmore__ has joined #openstack-keystone13:58
*** belmoreira has quit IRC14:00
kmallocknikolla: i saw the +2 on the json_home ;)14:01
*** linkmark has joined #openstack-keystone14:03
*** belmore__ has quit IRC14:36
*** mugsie has quit IRC14:36
*** mugsie has joined #openstack-keystone14:36
*** mugsie has quit IRC14:36
*** mugsie has joined #openstack-keystone14:36
lbragstadhttps://review.openstack.org/#/c/581346/ is a pretty quick review and closes a bug14:46
*** rmascena is now known as raildo14:47
*** felipemonteiro_ has quit IRC14:51
*** felipemonteiro__ has joined #openstack-keystone14:51
knikollalbragstad: done14:57
*** jmlowe has joined #openstack-keystone15:02
*** dpaterson has joined #openstack-keystone15:09
*** ispp has quit IRC15:12
*** ispp has joined #openstack-keystone15:13
dpatersonI have a Keystone/LDAP integration question in reference to: https://docs.openstack.org/keystone/latest/admin/identity-integrate-with-ldap.html.   It's not 100% clear to me if can use LDAP for 100% of auth/acl or is the keystone RDB still a requirement?  And if so, what pieces of data are persisted only in the database and cannot be stored in LDAP schema?15:16
*** felipemonteiro_ has joined #openstack-keystone15:28
*** gyee has joined #openstack-keystone15:30
*** felipemonteiro_ has quit IRC15:31
*** felipemonteiro__ has quit IRC15:31
*** ispp has quit IRC15:32
*** gyee has quit IRC15:34
*** felipemonteiro has joined #openstack-keystone15:42
openstackgerritMerged openstack/keystone master: Convert json_home and version discovery to Flask  https://review.openstack.org/57473615:45
*** peereb has quit IRC15:45
*** jmlowe has quit IRC15:47
*** agrebennikov has joined #openstack-keystone15:48
*** felipemonteiro has quit IRC15:51
lbragstaddpaterson: a user's role assignments will come from SQL but the authentication information is proxied to LDAP16:01
*** dklyle has joined #openstack-keystone16:02
*** gyee has joined #openstack-keystone16:08
*** pcichy has joined #openstack-keystone16:16
*** itlinux has joined #openstack-keystone16:26
openstackgerritMerged openstack/oslo.policy master: Teach Enforcer.enforce to deal with context objects  https://review.openstack.org/57899516:30
*** felipemonteiro has joined #openstack-keystone16:32
*** itlinux has quit IRC16:32
*** pcichy has quit IRC16:33
*** kimamisa has quit IRC16:41
openstackgerritMerged openstack/keystone master: Add support for before and after request functions  https://review.openstack.org/57663717:00
*** ayoung has quit IRC17:13
*** tesseract has quit IRC17:16
*** ayoung has joined #openstack-keystone17:26
openstackgerritMorgan Fainberg proposed openstack/keystone master: Flesh out and add testing for flask_RESTful scaffolding  https://review.openstack.org/57819017:34
openstackgerritMorgan Fainberg proposed openstack/keystone master: Make keystone.server.flask more interesting for importing  https://review.openstack.org/57992817:34
openstackgerritMorgan Fainberg proposed openstack/keystone master: Fix keystone.common.rbac_enforcer.__init__.py exporting  https://review.openstack.org/57993017:34
openstackgerritMorgan Fainberg proposed openstack/keystone master: Do not use flask.g imported as g  https://review.openstack.org/57998517:34
kmallocknikolla: ^ should have your comments addressed.17:34
knikollakmalloc: thanks, responded17:50
knikollawhoa, https://www.mail-archive.com/python-committers@python.org/msg05628.html17:56
lbragstadinoright?17:57
*** felipemonteiro has quit IRC18:03
lbragstadoh dhellmann responded https://mail.python.org/pipermail/python-committers/2018-July/005681.html18:07
kmallocWow.18:09
*** felipemonteiro has joined #openstack-keystone18:12
gagehugooh my18:15
*** amoralej is now known as amoralej|off18:17
openstackgerritMorgan Fainberg proposed openstack/keystone master: Flesh out and add testing for flask_RESTful scaffolding  https://review.openstack.org/57819018:22
openstackgerritMorgan Fainberg proposed openstack/keystone master: Make keystone.server.flask more interesting for importing  https://review.openstack.org/57992818:22
openstackgerritMorgan Fainberg proposed openstack/keystone master: Fix keystone.common.rbac_enforcer.__init__.py exporting  https://review.openstack.org/57993018:22
openstackgerritMorgan Fainberg proposed openstack/keystone master: Do not use flask.g imported as g  https://review.openstack.org/57998518:22
*** jmlowe has joined #openstack-keystone18:24
*** harlowja has joined #openstack-keystone18:24
kmallocknikolla: fixed. terrible ui for editing code is terrible18:30
knikollakmalloc: cool, that unlocked my +2. and with that i have reviewed the entire flask stack.18:31
kmallocknikolla: hehe. it's a dense/awful/painful stack18:32
kmallocbut... it leads to REALLY good things18:32
kmallocthe fact we have some API calls [ok ok just discovery] already in flask as of now, is good.18:32
* kmalloc needs to wrangle 1 more +2 and the stack should land and then API migration can start happening18:32
openstackgerritMerged openstack/keystone master: Invalidate 'computed assignments' cache when creating a project.  https://review.openstack.org/58134618:33
kmallocknikolla: if i can get all the APIs moved to flask in Rocky, i'll be stoked.18:34
knikollakmalloc: are we okay with that migration after feature freeze?18:34
lbragstadit should be transparent18:35
lbragstadsame with some of the work hrybacki is doing18:35
knikollai'm more concerned with potential fallout by huge changes late in the release18:37
kmallocshould be 100% transparent18:37
lbragstadthat's fair18:37
kmallocif a test has to be changed i messed up18:37
kmallocit should legitimately be "move api code to flask"18:37
kmallocand nothing else.18:37
knikollaalright, let's see how the initial ones go and be agile18:38
kmallocthe plan is to move the smaller ones first18:38
kmallocmoving /project is a beast18:38
kmalloci will have one or two more tests added in the grand scheme of things, but that is to prevent a mis-match of dispatching.18:38
kmallocaka, if /user is registered to flask, you cannot have it ever dispatched via the legacy dispatch middleware18:39
kmalloclong term we will want to move the subsystems to keystone.subsystem [managers, etc]18:39
kmallocso keystone.subsystem.identity and keystone.subsystem.resource will house the stuff, clean up our top level namespace some more18:39
kmallocbut that is a S/T/U release level of work18:39
knikollasounds reasonable18:40
kmallocthat means we have keystone.api.<path_prefix, discovery is a special case> for rest routes18:41
kmallocand keystone.subsystem.<subsystem name> for the manager/code/etc18:41
kmallocand it will make it very clear what is keystone code, common code, api code, etc18:42
kmalloc:)18:42
* kmalloc plays the loooong game18:42
lbragstadcontroller code won't be in there, right?18:42
kmalloccontroller code is going to disappear / become keystone.api.XXX18:42
lbragstadah - right..18:42
kmallocso when say /users is moved to keystone.api.users, all the controller code disappears18:42
kmallocand flask-restful resources are used18:42
lbragstadwell - the controller code will be in keystone.api.users, right?18:43
kmallocright, but it wont look anything like our current controller code18:43
lbragstadand flask handles the dispatches of requests on the /users path to keystone.api.users18:43
kmallocit will look more like the way the keystone_flask test code looks like18:43
lbragstaddispatching*18:43
kmallocUsers(flask_restful.ResourcE): -- implements get/put/patch/post/etc18:43
kmallocand those are automatically mapped to the routes18:44
lbragstadok - right18:44
* kmalloc is also very very very happy with the new RBAC Enforcer object18:45
*** felipemonteiro has quit IRC18:46
lbragstadthe token provider api refactor had a merge conflcit18:46
lbragstadresolving now, but should be up soon18:47
* hrybacki reads up18:49
*** jistr has quit IRC18:50
hrybackiI'm wondering if other services are going to have huge bottlenecks (like @protected in keystone) that will block them from easily adopting varying scope types lbragstad kmalloc18:52
*** felipemonteiro has joined #openstack-keystone18:53
lbragstadthat's a good question18:53
lbragstadimo - some of the stuff in nova actually makes more sense than @protected18:53
lbragstadbut that's really the only one i have a deeper understanding of with policy other than keystone18:53
kmallochrybacki: unlikely18:53
kmallocmost services don't try and be overly clever like we did18:54
lbragstadi want to say that decorator is a keystone-ism18:54
kmallocyeah18:54
kmallocVERY-keystone-ism18:54
lbragstad(at least i hope anyway)18:54
kmallocthankfully18:54
kmallocmost projects called .enforce() in the place they expect to18:54
kmallocwe got too clever18:54
lbragstadright - or call out to their policy module that handles that for them18:54
lbragstadnova.policy.authorize(context, request) etc...18:55
kmallocyep18:55
openstackgerritLance Bragstad proposed openstack/keystone master: Introduce new TokenModel object  https://review.openstack.org/55912918:55
openstackgerritLance Bragstad proposed openstack/keystone master: Add serialization for TokenModel object  https://review.openstack.org/57843418:55
openstackgerritLance Bragstad proposed openstack/keystone master: Simplify the token provider API  https://review.openstack.org/54545018:55
openstackgerritLance Bragstad proposed openstack/keystone master: Remove remnants of token bind  https://review.openstack.org/57843518:55
openstackgerritLance Bragstad proposed openstack/keystone master: Cleanup keystone.token.providers.common  https://review.openstack.org/57750718:55
openstackgerritLance Bragstad proposed openstack/keystone master: Remove KeystoneToken object  https://review.openstack.org/57756718:55
kmalloci'm still doing a TON of magic in the rBACEnforcer18:55
kmallocbut almost 100% of it is overridable if needed18:55
lbragstadwhich - imo, more closely resembles the pattern we want instead of what we currently have18:55
kmallocso it could work almost like nova.policy.authorize()18:55
lbragstad^ that chain should be good to review18:55
kmalloclbragstad: cool.18:55
kmalloci need to run18:56
kmallocalmost late. and still need to get some stuff packed in a bag before i run out the door18:56
lbragstadgood luck18:56
lbragstadin where ever you're running to18:56
hrybackiokay, that makes me feel better :)18:56
* hrybacki avoids thinking about neutron18:56
kmallocyeah just don't think about neutron18:59
kmallocbest bet18:59
knikollawhat other priority reviews need eyes?19:01
kmalloctoken refactor19:01
kmallocand.. limits19:01
lbragstad++19:01
lbragstadlimits is a big one19:01
kmallocand app-cred things.19:01
kmallocunless that one is on hold.19:01
lbragstadidk...19:02
lbragstadit hasn't been updated19:02
* knikolla looks at the red bar in the size column in gerrit and goes to grab coffee19:02
lbragstadknikolla: the unified limit stuff isn't terrible19:02
lbragstadwxy: has it well organized19:02
lbragstadand it isn't a ton of code19:02
knikollai was looking at the token model19:02
kmallocknikolla: the limits stuff and the token refactor are WAY easier than flask19:02
kmalloclike... as confusing as the token mode bits are19:03
kmallocthat is all because the token subsystem is wonky19:03
kmallocnot because the code is dense19:03
lbragstadyeah - it's a mess19:03
lbragstadit's easier to me to look at the end state before looking at the first patch19:03
kmallocflask conversion is deep voodoo19:03
lbragstad(like - what interface are we working towards)19:03
kmallocyeah start reverse for the token model stuff19:03
knikollai didn't know i didn't know flask until i reviews your flask stack19:04
kmallocway easier to review unbless you are an expert in all things token in keystone already... then meh, your headache not mine ;)19:04
lbragstadif you can grok the overall concept of the ideal interface, it shouldn't be too bad19:04
knikollareviewed*19:04
kmallocknikolla: fwiw, i learned most of the flask stuff in ~1wk writing that code19:04
lbragstadthe flask docs are pretty good too19:04
lbragstadthe tutorial helped19:04
kmallocyeah, but the internals are weeeeiirrrddd19:05
knikollayup, they were great19:05
kmallocalso grokking flask.g and flask.request and the differences19:05
lbragstadknikolla: if you have questions on the token provider refactor and want to do a high bandwidth review - i can do that19:05
* kmalloc runs off.19:06
lbragstadlater kmalloc19:06
knikollalbragstad: most probably tomorrow i'll have nothing else on my plate19:06
knikollaso we can do that19:06
lbragstadcool19:06
lbragstadthe gist of the series is that i added a new token model, work on replacing usage of the old one, then remove the old one19:07
hrybackiI'm interested in sitting in on that review lbragstad19:17
lbragstadcool19:17
* hrybacki has begun blocking off chunks of his calendar as a defensive tactic19:17
lbragstadwhat time are you free tomorrow?19:17
hrybacki0900-1530 your time19:18
lbragstadwfm19:18
lbragstadif that works for kristi - we can step through all of it19:18
hrybackisolid19:19
knikollaworks for me19:21
knikollawifi just went down at red hat for 5 minutes, lol19:21
*** markguz has joined #openstack-keystone19:22
*** markguz is now known as mguz19:23
gagehugolbragstad can you ping me for that as well19:24
gagehugoI'd like to follow along19:24
mguzall, just updated to Ocata and started using fernet-tokens.  Noticed that the cpu load from uwsgi keystone is big.  My cluster is barely (currently only 2 or 3 folks logged in) used and am noticing very high load on the server19:25
lbragstadgagehugo:19:25
mguzi;ve setup memcached cluster to try and alleviate the load, and seems to have helped only slightly19:25
*** jistr has joined #openstack-keystone19:25
* gagehugo doesn't see emojis :(19:25
lbragstadgagehugo: ack*19:25
mguzis there a tuning guide or setup specification out there to look at?19:25
lbragstadmguz: yeah - caching should be helping significantly19:26
mguzlbragstad: it's not19:26
mguzassuming i'm doing it right19:26
mguzi meant to say i updated from Ocata to Pike19:26
lbragstadmguz: the configuration it's trivial19:26
lbragstadisn't*19:26
lbragstadunfortuantely19:26
*** mvk_ has quit IRC19:27
lbragstadbut ken and chris gave a really good presentation in Vancouver on the caching tuning they do (they also include metrics)19:27
lbragstadhttps://www.youtube.com/watch?v=DKOJ-UToCKM19:27
mguzi set up 3 memcached servers and added them to the keystone_authtoken section of all the services.19:27
lbragstadeven though the presentation is focused on LDAP - the caching bits should be applicable to nearly all deployments19:28
lbragstadmguz: have you configured your keystone server to point to the your memcached cluster?19:28
mguzyes19:29
lbragstadcan you confirm keystone is hitting each memcache node?19:29
mguzlbragstad: seems to be. at least the stats are showing hits.19:31
mguzhttp://paste.openstack.org/show/725756/ is the config19:31
lbragstadmguz: does anything show up when you run ``keystone-manage doctor``?19:36
lbragstadspecifically related to caching?19:36
lbragstadfor example - my test config doesn't specify keystone.conf [cache] enabled http://paste.openstack.org/show/725758/19:38
mguzhmm. it says caching is "not enabled" ?19:38
lbragstad(yours doesn't either)19:38
lbragstadhttp://paste.openstack.org/show/725759/19:38
lbragstadsounds like we get the same thing19:38
lbragstadtry setting keystone.conf [cache] enabled=true19:39
lbragstadmguz: by default - that configuration option is disabled19:41
lbragstadhttps://github.com/openstack/oslo.cache/blob/master/oslo_cache/_opts.py#L67-L6819:41
lbragstadwhich means none of the options for keystone caching will work (e.g. the global caching toggle needs to be enabled before caching in any of the keystone subsystems will work)19:41
mguzyes i see that now. my bad19:42
lbragstadyeah - it's just another hoop to jump through19:42
lbragstadwe do have additional doctor checks to see if your actual caching configuration is sane, too19:43
lbragstadso there might be further improvements depending on the output of that19:44
mguzok. i hadn't used that before. Thanks for your help19:44
lbragstadmguz: no problem - let us know if you still see perf issues19:46
lbragstadafter making the change19:46
mguzlbragstad: will do. thanks19:46
lbragstadyour config might also need https://github.com/openstack/oslo.cache/blob/master/oslo_cache/_opts.py#L36 set19:48
lbragstaddogpile.cache.null is the default19:49
mguzwhat's the diff between oslo.cache and dogpile ?19:49
lbragstadi think oslo_cache has some different approaches to managing the interactions between the service and the cache19:51
lbragstad(e.g. i think oslo_cache.memcache_pool has some optimizations depending on your setup)19:51
lbragstaddogpile is maintained in a different library19:51
lbragstadhttps://github.com/openstack/oslo.cache/blob/master/oslo_cache/_opts.py#L49-L5119:52
*** agrebennikov_ has joined #openstack-keystone19:54
*** mvk_ has joined #openstack-keystone19:56
* lbragstad grabs a late lunch19:58
mguzlbragstad: now i'm seeing this in the logs... ERROR keystone IOError: write error20:04
mguzlbragstad: nvm20:17
*** belmoreira has joined #openstack-keystone20:30
*** dpaterson has quit IRC20:30
*** belmoreira has quit IRC20:36
lbragstadmguz: figure it out?20:38
mguzlbragstad: i did thanks20:38
*** raildo has quit IRC21:10
*** martinus__ has quit IRC21:33
*** edmondsw has quit IRC21:34
*** felipemonteiro has quit IRC21:37
*** edmondsw has joined #openstack-keystone21:40
*** edmondsw has quit IRC21:44
lbragstadwell a good portion of the flask stuff is in the pipe21:54
*** rcernin has joined #openstack-keystone21:58
openstackgerritMorgan Fainberg proposed openstack/keystone master: Flesh out and add testing for flask_RESTful scaffolding  https://review.openstack.org/57819022:08
*** boris_42_ has joined #openstack-keystone22:08
openstackgerritMorgan Fainberg proposed openstack/keystone master: Make keystone.server.flask more interesting for importing  https://review.openstack.org/57992822:09
openstackgerritMorgan Fainberg proposed openstack/keystone master: Fix keystone.common.rbac_enforcer.__init__.py exporting  https://review.openstack.org/57993022:09
openstackgerritMorgan Fainberg proposed openstack/keystone master: Do not use flask.g imported as g  https://review.openstack.org/57998522:09
kmallocknikolla: ^ bah, typos.22:12
*** dklyle has quit IRC22:16
*** dklyle has joined #openstack-keystone22:16
*** stewie925 has joined #openstack-keystone22:54
*** tosky has quit IRC23:01
stewie925hi guys, I have a VM separate from devstack - how do I ensure that my VM is talking to keystone specifically?23:19
stewie925I am able to ping the devstack IP address from my other vm23:20
stewie925and in devstack, I do see activities in keystone.log, plus devstack responds to 'openstack project list' command23:21
*** spilla has quit IRC23:50
openstackgerritMerged openstack/keystone master: Don't replace the whole app just the wsgi_app backing  https://review.openstack.org/57758723:57
*** markvoelker has quit IRC23:59

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