Thursday, 2014-03-20

dstanekjamielennox: waiting on stuff to be reviewed?00:01
*** marcoemorais has joined #openstack-keystone00:02
morganfainbergdstanek, ok i know you have memory-related issues for running tests00:06
morganfainbergdstanek, what would your opinion be of moving to an in-memory sqlite db?00:06
*** gokrokve_ has quit IRC00:13
*** gokrokve has joined #openstack-keystone00:14
dstanekmorganfainberg: i think that would be fine - i don't really have memory issues anymore00:18
*** gokrokve has quit IRC00:19
morganfainbergdstanek, i'll see if I can make that work sdague just pointed out that is what nova did to help limit the issues with needing tmpfs00:19
dstanekmorganfainberg: i'm experimenting with some stuff to speed up the tests - they should not be this insanely slow00:25
morganfainbergdstanek, i'm looking at it as well.00:25
dstanekall tests in < 60 seconds00:28
dstaneki'm at 1479 seconds now00:31
openstackgerritBrant Knudson proposed a change to openstack/keystone: Configurable token hash algorithm  https://review.openstack.org/8040100:31
morganfainbergdstanek,dstanek , so...00:32
morganfainbergdstanek, i think i know what jumped the time00:33
dstaneknotifications or revocation would be my guess00:33
morganfainbergdstanek, it's revoke_api, once it's loaded the dependency injection always occurs.00:33
dstanekreally? how?00:34
morganfainbergdstanek, same thing with any @dependency.optional00:34
morganfainbergi'm checking but...00:34
dstanekah, i see if will always be created since it thinks it should00:34
morganfainbergyep00:34
dstanekwe shouldn't be using DI in tests anyway00:34
morganfainbergwe don't clear the dep registry (to be fair, how could we?)00:34
morganfainbergexcept we need DI since we do restful tests00:35
bknudsonRan 3163 (+527) tests in 125.612s (-197.584s)00:35
morganfainbergbknudson, using parallel test pathc?00:35
morganfainbergbknudson, or normal?00:35
morganfainbergbknudson, and w/ or w/o tmpfs?00:35
bknudsonmorganfainberg: this is with 6587000:35
dstanekbknudson: you must be running a monster node compared to what i run00:35
morganfainbergbknudson, yeah, it really helps00:36
bknudsondstanek: I just got this new system... gave the vm 6 cpus00:36
bknudsonI don't think I've seen more than 2 cpus used before this.00:36
morganfainbergi'm usually running 4 vcpus, i think thats what jenkins uses.00:36
dstanekalso i would love to see a way to use pyopenssl or some C binding to sign/verify tokens00:37
dstanekusing subprocess like we are doesn't seem like the most scalable solution00:37
morganfainbergdstanek, but basically, our DI is naive00:37
morganfainbergdstanek, once you import the dep, it will always be used.00:37
morganfainbergoptional or not00:38
dstanekmorganfainberg: i started to guice it up - maybe i'll keep going00:38
morganfainbergit hurts us a lot w/ testing00:38
dstanekbut DI should only be used in the tests that create the servers00:38
morganfainbergdstanek, it should be used only in the tests that create the server AND where we want to test that injected system00:38
bknudsonand yes I am using tmpfs.00:38
morganfainbergdstanek, the bulk of our slowness is restful tests00:39
morganfainbergbknudson, cool.00:39
dstanekmorganfainberg: yeah, that's what i'm working on now00:39
morganfainbergdstanek, i think that will bring us back down to (non parallel) ~380-500s test time00:39
bknudsonwe have way too many tests that think they need to exercise the rest stck00:39
openstackgerritDavid Stanek proposed a change to openstack/keystone: Uses generator expressions instead of filter  https://review.openstack.org/7081600:39
bknudsonwe should have one set of tests to cover the rest translation00:40
bknudsonthe rest can go to the controller00:40
morganfainbergbknudson, that wouldn't solve our actual issues00:40
morganfainbergbknudson, but it would be a step in the right direciton00:40
morganfainbergin theory we could move most of those rest tests to tempest00:41
morganfainbergit's kinda what tempest is meant for00:41
bknudsonthey don't want them00:41
bknudsonI tried00:41
morganfainbergi thought the didn't want the ksc ones?00:41
dstaneki think we should have some in our tree as well - otherwise i'd have to run tempest all the time00:42
morganfainbergdstanek, hehe00:42
morganfainbergdstanek, i'd rather not have to do that either00:42
bknudsonright, they don't want the ksc ones.00:42
morganfainbergbknudson, i was talking about the v3_auth et al ones that are really testing the rest stack00:43
morganfainbergour slowness is mostly on tests based on the restful test case00:43
morganfainbergignoring the revoke tests atm00:43
bknudsonmorganfainberg: I think they would take tests like those... I don't think we want to trust that keystone tests are in tempest.00:44
bknudsontempest is happy to go their own way and remove tests that you think are important.00:45
morganfainbergbknudson, fair enough00:45
morganfainbergdstanek, actually, if we made all of the tests just set revoke_api to None explicitly :P it would probably speed stuff up00:46
morganfainbergdstanek, not saying that is a good plan00:47
*** devlaps has quit IRC00:47
dstanekmorganfainberg: can you unset whatever registry holds the deps after each test? and then in test_v3_os_revoke make sure it's in there in it's setUp?00:47
morganfainbergdstanek, well except that we only populate that registry on import00:47
bknudsonthe registry should be reset after each test00:48
morganfainbergbknudson, we'd need to re-work DI then00:48
dstanekmorganfainberg: also test_revoke would have to create it's own revoke_api00:48
morganfainbergbknudson, i'm not opposed to it.00:48
dstanekmorganfainberg: can we just keep track of the ones listed as optional and only clear those?00:48
bknudsonhttp://git.openstack.org/cgit/openstack/keystone/tree/keystone/tests/core.py#n43900:48
bknudsonor are you talking about something else?00:49
morganfainbergbknudson, huh ok i'm wrong then00:49
bknudsonI don't understand putting @dependency.optional('revoke_api') on the test classes??00:49
morganfainbergso reimport re-runs the decoprator?00:49
bknudsonseems weird.00:49
bknudsonnot really the way I was thinking it would be used, but if it works.00:50
bknudson*shrug*00:50
morganfainbergbknudson, i don't understand using DI on any test cases tbh00:50
dstanekyou're making me want to continue my port to the snakeguice model00:51
bknudsondstanek: anything is better than what we've got.00:51
morganfainbergdstanek, agreed00:51
morganfainbergbknudson, even00:51
morganfainbergooh i see i misread this00:52
morganfainbergoh gah,00:52
morganfainbergbknudson, /me is not a huge fan of our DI00:53
openstackgerritBrant Knudson proposed a change to openstack/keystone: Configurable token hash algorithm  https://review.openstack.org/8040100:53
morganfainbergok so factories is what isn't cleared out. i see now00:54
dstaneki want more tests to be like the class i added here - https://review.openstack.org/#/c/81528/1/keystone/tests/test_catalog.py00:54
*** andreaf has quit IRC00:54
dstaneki needed a manager, so i created one in setUp - no magic00:55
openstackgerritDavid Stanek proposed a change to openstack/keystone: More notification unit tests  https://review.openstack.org/8165900:55
openstackgerritDavid Stanek proposed a change to openstack/keystone: Refactor notifications  https://review.openstack.org/8166000:55
openstackgerritDavid Stanek proposed a change to openstack/keystone: wip: Implements notifications with blinker  https://review.openstack.org/8166100:55
jamielennoxmorganfainberg, bknudson: https://review.openstack.org/#/c/77026/ <- the @positional decorator00:56
jamielennoxdstanek and others feel free as well ^00:56
dstaneki eventually want a base class for database related tests - i just have to see what's wrong with my port to oslotests00:56
jamielennoxdstanek: have you seen the oslo-incubator db test work?00:56
morganfainbergbknudson, actually i think we do always load anything in factories in tests00:56
morganfainbergbknudson, http://git.openstack.org/cgit/openstack/keystone/tree/keystone/common/dependency.py#n24000:56
dstanekjamielennox: no00:56
morganfainbergwe call resolve_future_dependencies in load_backends() explicitly w/o a provider00:56
bknudsonmorganfainberg: the factory thing is new...00:57
morganfainbergwhich appears would inject things like revoke_api in all cases00:57
dstanekmorganfainberg: i know i'm missing the point, but the .copy caught my eye00:57
jamielennoxdstanek: https://github.com/openstack/oslo-incubator/blob/master/openstack/common/db/sqlalchemy/test_base.py00:57
bknudsonmorganfainberg: reset() isn't clearing _factories like it should.00:57
morganfainbergdstanek, lol not changing the iterator out from under00:58
jamielennoxi found it when setting up db testing for kite - i can't find anyone using it though because there does seem to be some problems with it00:58
bknudsonjamielennox: that seems to be a common theme with oslo libs.00:58
bknudsonyou try to use it and it's got problems.00:58
jamielennoxbknudson: i've seen that and i've no idea how - i thought it had to be working in another project before going to oslo00:59
dstanekjamielennox: that's pretty interesting00:59
bknudsonjamielennox: once it gets into olso it's open season on changing it... and they obviously don't test it with the projects.00:59
morganfainbergbknudson, yeah it's new. it solved the revoke_api being "optional" or not00:59
jamielennoxbknudson: i'd also appreciate if you could look at: https://review.openstack.org/#/c/60752/ it's been around a while now and it's important for progressing the session stuff01:02
morganfainbergbknudson, dstanek, i'm going to take a swing and cleaning up the DI stuff for Icehouse01:03
morganfainbergsince i think a far reaching refactor wont work01:03
morganfainbergbut at least we can make optionals not always inject w/ tests01:03
bknudsonjamielennox: I hope to be able to get back to doing reviews soon... people who pay my bills are asking me to look at things lately.01:03
dstanekmorganfainberg: sounds good to me01:04
jamielennoxbknudson: no worries, i'm just starting to resort to bullying tactics :)01:04
jamielennoxgyee: you here? i've got a new one you will be interested in too01:05
*** leseb has joined #openstack-keystone01:05
*** amcrn has quit IRC01:06
*** leseb has quit IRC01:10
gyeejamielennox, here01:34
*** stevemar has joined #openstack-keystone01:34
jamielennoxgyee: that's ok, nothing urgent - i was talking to dtroyer and came up with: https://review.openstack.org/#/c/79542/ which i thought you'd be interested in01:35
gyeejamielennox, you only corrected the syntax stuff since the last patch right01:35
gyeehttps://review.openstack.org/#/c/60752/ I mean01:35
jamielennoxgyee: yea, i think i answered the other questions01:35
bknudsonjamielennox: you figured out stevedore?01:35
jamielennoxbknudson: i'm not sure i figured it out01:36
jamielennoxbknudson: but enough to get it to do what i needed01:36
bknudsonjamielennox: I assume it finds and imports things?01:36
jamielennoxbknudson: yea, its a nicer wrapper around dealing with setuptools entry points on your own01:37
jamielennoxwhich isn't that hard just a bit messy01:37
openstackgerritBrant Knudson proposed a change to openstack/python-keystoneclient: Allow hash tokens with sha256  https://review.openstack.org/8039801:38
gyeejamielennox, so you load the plugin from the entry points01:39
jamielennoxgyee: yep01:39
jamielennoxgyee: i think it will be more useful when we have non-versioned auth plugins like:https://review.openstack.org/#/c/81147/01:40
*** stevemar has quit IRC01:40
jamielennoxso you have a v2password and a v3password which will take the versioned endpoints, or you just have password that most people will use and does version discovery first01:40
jamielennoxand then just offload to the v2 or v3 depending on what it finds01:41
gyeejamielennox, how does it know about the custom plugins?01:41
jamielennoxgyee: setuptools entry points01:41
jamielennoxanything that defines a plugin entry point like: https://review.openstack.org/#/c/79542/4/setup.cfg is fair game01:42
gyeeso I have a custom plugin in a custom package01:42
gyeeI just need to overwrite keystoneclient.auth.plugin entry point01:42
gyee?01:42
jamielennoxgyee: it's not a case of overwrite01:43
jamielennoxif you define an entrypoint with keysteonclient.auth.plugin then that will be available to keystoeclient01:43
jamielennoxbut i'm working on the principal that all auth plugins MUST be specified by name01:44
jamielennoxso if you want to load the password plugin you will have to specify something like --os-auth password --params --for --password01:44
jamielennoxi don't want to be in the situation of guessing the most appropriate plugin based on arguments01:44
jamielennoxbut if you do kerberos out of tree and you say --os-auth kerberos then it will use the plugin from your custom package01:45
gyeejamielennox, I am not setuptools savvy, here's a stupid question. Say I install both python-keystoneclient and a custom package, but define keystoneclient.auth.plugin in entry point section, keystoneclient will know about all of them?01:47
jamielennoxgyee: yes01:47
gyeesweeet!01:47
jamielennoxit will essentially append it to the list01:48
gyeelove it!01:48
* gyee needs to ramp up on stevedore01:49
jamielennoxso i'm not sure i've gotten everything about the AuthParams correct but that's the plugin descriptors you were talking about previously01:49
*** chandan_kumar has joined #openstack-keystone01:53
*** shakamunyi has joined #openstack-keystone02:00
*** marcoemorais has quit IRC02:06
*** marcoemorais has joined #openstack-keystone02:06
*** stevemar has joined #openstack-keystone02:07
*** lbragstad has joined #openstack-keystone02:11
morganfainbergenv02:14
*** hill has joined #openstack-keystone02:15
*** hill is now known as Guest7172202:15
*** richm has quit IRC02:18
*** gyee has quit IRC02:20
ayoungjamielennox, morganfainberg so my wife suggested I use Latex to do this upcoming presentation I have on Keystone to our Global Support Services people....and It flipping rocks02:20
morganfainbergayoung, LaTeX?02:21
jamielennoxayoung: i've found it variable02:21
ayoungSpecifcially, I've been using it for diagrams, and I feel like I am finally capturing concisely some of the key points02:21
ayoungjamielennox, I found that there is a decent graphics support library, and UML on top of that02:21
jamielennoxayoung: i would still use it to compose pdfs, but i tried the presentation layer (can't remember what it's called) and it wasn't that useful02:21
ayoungjamielennox, using it to make a PDF to use for a slide show02:22
jamielennoxbut once you recognise the format everynow and then you will see someone using the latex defaults02:22
jamielennoxmorganfainberg: it's essentially a text layout language for making good PDFs and dvis etc02:23
jamielennoxmorganfainberg: we got taught it at uni, that if you want to write something serious then you should do it in latex02:23
ayoungjamielennox, morganfainberg http://admiyo.fedorapeople.org/openstack/keystone/keystone.pdf02:23
morganfainbergjamielennox, yeah. haven't really had an excuse to use it02:23
ayoungmorganfainberg, so I would say it would have been a toss up between Latex and something HTML based if my wife hadn't just been through the process to make a poster02:24
jamielennoxayoung: nkinder's most recent pres i saw was in that gnome slides program02:24
jamielennoxpinpoint i think it was02:24
jamielennoxthat looks useful for much the same reasons, all in text02:24
jamielennoxbut it had the advantage of knowing how to use a presenters screen as well02:24
ayoungjamielennox, the thing I really like is that I am working text and compiling,02:25
ayounggit and everything02:25
ayounghttp://admiyo.fedorapeople.org/openstack/keystone/keystone.tex02:26
ayoungit is pretty easy to understand once you look at it, and I like the end results02:26
ayoungthing is, there is a decent poster layout that uses the same library,  I was thinkg that maybe I'll do some "keystone internals" as a poster and we can use as a visual during the summit based on these graphics02:26
ayoungBTW...that really should be stamped "DRAFT"02:27
jamielennoxayoung: interesting i haven't used the uml package02:27
ayoungjamielennox, funny thing, for interfaces to do <<this>> it needs \\guillemonts which is not in the codeset I am using...so I had to not use that02:27
ayoungI'm sure I can figure out how to get it in, but I really don't want to use the [french] encoding if I don't have to02:28
ayounganyways, just wanted to share, and let you guys know why I 've been AWOL today...and now I am headed to bed02:28
ayoungjamielennox, he did a nice job with it.  I'm doing pretty basic stuff, but some of the more complex examples look really good02:31
ayoungfrom http://perso.ensta-paristech.fr/~kielbasi/tikzuml/index.php?lang=en&id=doc#t-102:31
*** marcoemorais has quit IRC02:31
ayounghttp://perso.ensta-paristech.fr/~kielbasi/tikzuml/index.php?lang=en&id=doc#t-502:31
jamielennoxtool of the month/might be slightly longer now for me is httpie02:31
jamielennoxsooo much better for testing than wget/curl02:32
ayounginteresting02:32
jamielennoxi should have told people about that one before now, i've been using it for a while and can't go back now02:32
ayoungjamielennox, I'll give it a try, but some V3 API examples using it might be a worthwhile blog post02:33
*** daneyon has joined #openstack-keystone02:43
*** marcoemorais has joined #openstack-keystone02:54
*** mberlin1 has joined #openstack-keystone02:56
*** mberlin has quit IRC02:58
*** Guest71722 has quit IRC03:00
*** Guest71722 has joined #openstack-keystone03:01
*** derek_c has quit IRC03:01
*** Guest71722_ has joined #openstack-keystone03:03
*** Guest71722 has quit IRC03:06
*** marcoemorais1 has joined #openstack-keystone03:15
*** marcoemorais has quit IRC03:15
*** marcoemorais1 has quit IRC03:15
*** Guest71722__ has joined #openstack-keystone03:19
*** Guest71722_ has quit IRC03:22
*** chandan_kumar has quit IRC03:22
*** harlowja is now known as harlowja_away03:23
*** gtt116 has joined #openstack-keystone03:25
*** Guest71722__ has quit IRC03:39
*** Guest71722__ has joined #openstack-keystone03:39
*** Guest71722__ has quit IRC03:44
*** david-lyle has joined #openstack-keystone03:50
openstackgerritJamie Lennox proposed a change to openstack/python-keystoneclient: Add an exclude option to AuthToken middleware  https://review.openstack.org/8169503:55
*** gokrokve has joined #openstack-keystone04:09
*** saju_m has joined #openstack-keystone04:12
nkinderjamielennox: yeah, it was in pinpoint04:23
jamielennoxnkinder: i like the idea of doing things in text - i've gotten good things out of LaTeX in the past but it's just a lot of work to get right04:24
jamielennoxand generally the gnome dep doesn't make much difference to me04:25
nkinderyeah, haven't tried LaTeX myself04:25
*** gokrokve has quit IRC04:49
*** stevemar has quit IRC04:53
*** gokrokve has joined #openstack-keystone04:55
*** derek_c has joined #openstack-keystone04:59
*** chandan_kumar has joined #openstack-keystone05:10
*** chandan_kumar has quit IRC05:17
*** amcrn has joined #openstack-keystone05:31
*** gokrokve_ has joined #openstack-keystone05:34
*** gokrokve has quit IRC05:38
*** daneyon has quit IRC05:41
*** gokrokve_ has quit IRC05:57
openstackgerritJenkins proposed a change to openstack/keystone: Imported Translations from Transifex  https://review.openstack.org/7852506:00
*** saju_m has quit IRC06:02
*** saju_m has joined #openstack-keystone06:04
*** saju_m has quit IRC06:07
morganfainbergwow, we have some serious cruft in our code.06:08
*** saju_m has joined #openstack-keystone06:08
*** saju_m has quit IRC06:35
*** wchrisj has quit IRC06:54
*** bvandenh has joined #openstack-keystone06:59
*** bvandenh has quit IRC07:07
*** derek_c has quit IRC07:15
*** shakamunyi has quit IRC07:15
openstackgerritMorgan Fainberg proposed a change to openstack/keystone: Remove extraenous instantiations of managers  https://review.openstack.org/8172007:22
openstackgerritMorgan Fainberg proposed a change to openstack/keystone: Rename keystone.tests.fixtures  https://review.openstack.org/8172107:26
*** henrynash has joined #openstack-keystone07:27
morganfainberghenrynash, allo07:29
henrynashmorganfainberg: hi07:29
morganfainberghenrynash, how goes?07:29
henrynashmorganfainberg: good, you?07:29
*** bvandenh has joined #openstack-keystone07:29
morganfainberghenrynash, not bad, just did some deep debugging on weird edge-case manager instantiations07:30
henrynashmorganfainberg: just looking at those changes....07:30
morganfainbergwas getting different configurations / dependency injections depending on when things were run07:30
morganfainbergtook me a bunch of time to figure out what was going on. feels good to chase something like this down07:30
henrynashmorganfainberg: nice…you want to get these into rc1 ?07:32
morganfainberghenrynash, it would be nice to. but it isn't a hard requirement07:33
morganfainbergit will affect the next one in the chain which should help speed our tests back up (not as much as the parallel testing one)07:33
henrynashmorganfainberg: any risks in doing so (I don't think so)?07:33
morganfainberghenrynash, unlikely07:33
henrynashmorganfainberg: ok…nice job in work thing through something yukky like that….I'll review….(although seems pretty good from first glance)07:35
morganfainberghenrynash, hehe :)07:35
*** henrynash has quit IRC07:37
*** dstanek has quit IRC07:38
*** shakamunyi has joined #openstack-keystone07:41
*** marekd|away is now known as marekd07:41
*** leseb has joined #openstack-keystone07:44
*** shakamunyi has quit IRC07:45
*** flaper87|afk is now known as flaper8707:50
*** leseb has quit IRC07:52
*** andreaf has joined #openstack-keystone07:56
*** saju_m has joined #openstack-keystone07:57
openstackgerritMorgan Fainberg proposed a change to openstack/keystone: Make optional dependencies in tests optional  https://review.openstack.org/8173208:20
openstackgerritMorgan Fainberg proposed a change to openstack/keystone: Remove extraenous instantiations of managers  https://review.openstack.org/8172008:20
*** amcrn has quit IRC08:26
openstackgerritMorgan Fainberg proposed a change to openstack/keystone: Remove extraenous instantiations of managers  https://review.openstack.org/8172008:29
openstackgerritMorgan Fainberg proposed a change to openstack/keystone: Make optional dependencies in tests optional  https://review.openstack.org/8173208:29
*** shakamunyi has joined #openstack-keystone08:42
*** shakamunyi has quit IRC08:46
*** morganfainberg is now known as morganfainberg_Z08:54
*** leseb has joined #openstack-keystone08:58
*** henrynash has joined #openstack-keystone09:12
*** shakamunyi has joined #openstack-keystone09:43
*** shakamunyi has quit IRC09:47
*** rwsu has quit IRC10:18
*** henrynash has quit IRC10:31
*** rwsu has joined #openstack-keystone10:33
*** shakamunyi has joined #openstack-keystone10:43
*** shakamunyi has quit IRC10:48
*** zoresvit has joined #openstack-keystone10:49
zoresvitHello! In Keystone with LDAP backend, will user tokens be revoked once user gets locked/deleted in LDAP?10:50
*** chandankumar_ has quit IRC11:00
*** chandankumar has joined #openstack-keystone11:01
*** leseb has quit IRC11:14
*** leseb has joined #openstack-keystone11:15
*** leseb has quit IRC11:19
*** shakamunyi has joined #openstack-keystone11:44
*** shakamunyi has quit IRC11:48
*** david-lyle has quit IRC11:52
*** henrynash has joined #openstack-keystone11:57
*** saju_m has quit IRC12:09
ayoungdolphm, https://review.openstack.org/#/c/72126/  was made a while back12:17
*** saju_m has joined #openstack-keystone12:27
dolphmayoung: a few nits, but lgtm12:29
*** leseb has joined #openstack-keystone12:40
*** shakamunyi has joined #openstack-keystone12:45
*** shakamunyi has quit IRC12:49
*** zoresvit has quit IRC12:51
*** saju_m has quit IRC12:53
*** bknudson has quit IRC12:57
*** mberlin1 has quit IRC13:02
*** flaper87 is now known as flaper87|afk13:05
*** saju_m has joined #openstack-keystone13:07
*** flaper87|afk is now known as flaper8713:12
*** mberlin has joined #openstack-keystone13:13
*** browne has joined #openstack-keystone13:15
ayoungdolphm, do you want to keep the "revoke events slowdown" issue as an rc blocker?  I am not even certain it is a real problem.  Even if it does slow things down, with RE optional, it is not a real issue.13:20
ayoungI had made the changes to fix it...but must not have commited them to a branch or deleted the  branch in error13:20
ayoungI think13:20
ayoungI know I discussed the right way to cached the revocation tree with morganfainberg_Z as a staight up dogpile KVS in memory13:21
*** bknudson has joined #openstack-keystone13:21
dolphmayoung: i'd like to see a patch for it at least :-/13:21
ayoungif it is important, I'll knock it out now13:21
ayoungOK...getting on it13:21
*** vhoward has left #openstack-keystone13:21
ayoungbknudson, question about https://review.openstack.org/#/c/47441/8/keystone/identity/backends/ldap.py13:21
dolphmbknudson: did you notice any performance improvement from https://review.openstack.org/#/c/65870/ ?13:22
dolphmmorganfainberg_Z: ^13:22
ayoungI think that I can make the change you are suggesting on line 217ish, if I always pop the DN...the reason it was like that was to reduce the code impact since it is only for identity..right now13:22
*** saju_m has quit IRC13:23
bknudsondolphm: Ran 3163 (+527) tests in 125.612s (-197.584s)13:23
dolphmbknudson: =( with tox or running testr --parallel directly? i assume it *shouldn't* matter13:23
bknudsondolphm: tox13:23
bknudsondolphm: it was using all the cpus... i've got 6 on this vm13:24
dolphmbknudson: i'm just running on my laptop, but it actually increases the overall runtime substantially with tox, and doesn't seem to have any effect with testr13:24
bknudsondolphm: for me with that change it took 2 mins where it used to take 5 mins. I could try it again13:25
dolphmbknudson: i'll run it a few more times as well -- i'm hoping the tox run was a fluke13:25
dolphmbknudson: it was definitely running in parallel and the test lists look sanely divided13:26
bknudsonayoung: It looks like it's trying to reimplement a function in the subclass... why doesn't it use regular overriding?13:27
ayoungbknudson, it needs to call the baseclass function.13:27
ayoungIs there a cleaner way to do that?13:27
ayoungbknudson, somethinkg like super.blah...13:27
bknudsonsuper(UserApi, self)._ldap_res_to_model()13:27
ayoungok...that is what I was looking for.  I tried it back then, but I thjink I had the syntax wrong13:28
*** shakamunyi has joined #openstack-keystone13:32
dolphmayoung: fwiw, super() is easier to use in py313:32
*** dstanek has joined #openstack-keystone13:35
dolphmbknudson: yay! second attempt with tox finished in about half the time of a normal run from this week13:35
ayoungdolphm, starting to think that, in Juno, we push for py33 as the baseline for development.  We need to fix eventlet for that.13:37
ayoungthen treat py27 as "backport"13:37
ayoungI mean, both will still be required for the gate, just as far as a coding norm13:38
dolphmayoung: if we could run on py33 at all, you'd be able to develop with whichever13:38
ayoungdolphm, yep...its eventlet that is stopping that as far as I know.13:38
dolphmayoung: i think that's just the biggest blocker, not the last13:39
*** saju_m has joined #openstack-keystone13:39
ayoungprobably truw13:39
ayoungtrue13:39
dstanekayoung: there are 3 or 4 things that don't install on py3 the last time i checked13:39
ayoungmaybe Juno 1 is the "make Keystone run on py33" milestone13:40
ayoungis stevedore and using entry points for plugins/extensions something we want to pursue?13:42
*** wchrisj has joined #openstack-keystone13:43
*** nkinder has quit IRC13:44
*** andreaf has quit IRC13:46
dstaneki'm not sure the model of entry point for extensions works for us13:48
dstanekdo we have a need to automatically discover extensions without them being explicitly configured?13:48
*** saju_m has quit IRC13:48
*** stevemar has joined #openstack-keystone13:49
openstackgerritayoung proposed a change to openstack/python-keystoneclient: Regions Management  https://review.openstack.org/7909614:04
*** andreaf has joined #openstack-keystone14:05
dstanekit's eventlet, sqlalchemy-migrate, pysqlite and python-memcached14:08
dstanekeventlet's python3 branch seems to install ok, but i haven't used it14:09
dstaneki'm not sure why we need pysqlite - i thought python has had builtin support for it for a while now14:10
*** flaper87 is now known as flaper87|afk14:13
*** dstanek_afk has joined #openstack-keystone14:14
*** dstanek has quit IRC14:15
*** dstanek_afk is now known as dstanek14:15
ayoungdstanek, full court press once we get Icehouse delivered14:26
ayoungwe each take one and beat it into submission: I'll hit migrate, you hit eventlet and pysqlite, and morganfainberg_Z deals with python-memcached14:27
ayoungor I take eventlet and you take the two sql ones, probably makes more sense14:28
dstanekayoung: i'd but up for whatever14:29
ayounginteresting turn of phrase there14:29
dstaneklol14:30
dstanekisn't someone getting rid of migrate already?14:30
ayoungdstanek, nah, we were going to move to a different tool, but we instead decided to adopt migrate14:31
ayoungAlembic14:31
ayounghow do I run just one test with tox14:31
ayoung tox -epy27    keystone.tests.test_backend_ldap.LDAPIdentityEnabledEmulation  still seems to be doing discovery14:32
stevemarayoung, drop the keystone.tests. part14:32
*** nkinder has joined #openstack-keystone14:32
dstanekayoung: it will do discovery anyway14:32
stevemarwhats the context of " I'll hit migrate, you hit eventlet and pysqlite ... "14:33
ayoungno way to bypass that?14:33
ayoungstevemar, py33 support14:33
stevemarayoung, nice14:33
ayoungstevemar, post Icehouse14:33
stevemarof course14:33
dstanekayoung: not sure if it's our setup or testr14:33
*** derek_c has joined #openstack-keystone14:35
openstackgerritA change was merged to openstack/keystone: Store groups ids objects list in the OS-FEDERATION object.  https://review.openstack.org/8127714:44
brownequestion: v2 is being deprecated.  so is there a BP for other services to switch to keystone v3?  also does the keystoneclient middleware even support v3 yet?14:45
lbragstadbrowne: some of the other services are slowly moving towards v3, I know there have been mailing list threads on the subject..14:47
* lbragstad digs for a link14:47
brownei see that keystoneclient middleware always acquires a v2 token.  https://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/middleware/auth_token.py#L78514:48
brownedont' we need v3 support in the middleware first?14:48
lbragstadbrowne: http://lists.openstack.org/pipermail/openstack-dev/2014-March/030403.html14:50
brownelbragstad: thanks14:50
lbragstadbrowne: yep14:51
*** leseb has quit IRC14:55
*** thedodd has joined #openstack-keystone15:02
*** leseb has joined #openstack-keystone15:10
*** dstanek has quit IRC15:12
*** david-lyle has joined #openstack-keystone15:16
*** dstanek has joined #openstack-keystone15:17
*** gyee has joined #openstack-keystone15:25
*** derek_c has quit IRC15:29
*** shakamunyi has quit IRC15:29
*** daneyon has joined #openstack-keystone15:37
openstackgerritIlya Pekelny proposed a change to openstack/keystone: Sync test_migrations  https://review.openstack.org/8061815:40
openstackgerritIlya Pekelny proposed a change to openstack/keystone: Comparision of database models and migrations.  https://review.openstack.org/8063015:40
dolphmdstanek: parallel test workers just entered the gate :)15:42
*** gokrokve has joined #openstack-keystone15:42
dstanekdolphm: nice!15:43
openstackgerritA change was merged to openstack/keystone: Ability to turn off ldap referral chasing  https://review.openstack.org/7852115:46
*** devlaps has joined #openstack-keystone15:49
openstackgerritA change was merged to openstack/keystone: Add user_id when calling populate_roles_for_groups  https://review.openstack.org/8158715:53
*** joesavak has joined #openstack-keystone16:05
*** shakamunyi has joined #openstack-keystone16:06
*** zoresvit has joined #openstack-keystone16:10
*** shakamunyi has quit IRC16:10
*** leseb has quit IRC16:12
*** zoresvit has quit IRC16:14
*** derek_c has joined #openstack-keystone16:16
*** raildo_ has quit IRC16:21
*** derek_c has quit IRC16:22
*** marekd is now known as marekd|bbl16:25
*** gokrokve_ has joined #openstack-keystone16:25
*** gokrokve has quit IRC16:27
*** marcoemorais has joined #openstack-keystone16:32
*** derek_c has joined #openstack-keystone16:34
dstanekdolphm: right now i have several clones that i work out of so that as i wait for tests to finish in one i can work on other bugs/reviews in another16:36
*** dims has quit IRC16:37
*** leseb has joined #openstack-keystone16:43
*** leseb has quit IRC16:44
*** leseb has joined #openstack-keystone16:44
dolphmdstanek: good move :P16:45
*** leseb has quit IRC16:47
*** leseb has joined #openstack-keystone16:47
*** dims has joined #openstack-keystone16:49
openstackgerritIlya Pekelny proposed a change to openstack/keystone: Sync test_migrations  https://review.openstack.org/8061816:56
openstackgerritIlya Pekelny proposed a change to openstack/keystone: Comparision of database models and migrations.  https://review.openstack.org/8063016:56
*** leseb has quit IRC16:58
*** leseb has joined #openstack-keystone16:58
*** leseb has quit IRC17:02
*** derek_c has quit IRC17:14
dolphmanyone seen this? looks like a critical transient (this happened in jenkins) http://pasteraw.com/l36dblfxt7vv5rcz9j6mgqkie1yi1r317:21
dolphmayoung: ^17:21
ayoungdolphm, I think it is an ABC ordering thing17:21
ayoungdolphm, when YorikSar and I were discussing the fixes he proposed, we saw something of that sort17:22
dolphmayoung: abstract base class?17:22
ayoungno17:22
ayoungAlphabetical Order17:22
ayoungbut...maybe noit17:22
ayoungthat looks like a race condition17:22
ayoungdolphm, I am wondering if the comparison happens where one datetime is rounded and the other is not17:23
ayoungmicroseconds?17:23
ayoungdolphm, please file a bug on that...I am guessing it is something about the time allocations17:23
*** leseb has joined #openstack-keystone17:23
*** morganfainberg_Z is now known as morganfainberg17:23
ayoungit should be a problem only in unit tests if am right, but still needs to be fixed17:24
dstanekif if were a rounding issue i would expect it to happen a lot more17:24
dolphmayoung: https://bugs.launchpad.net/keystone/+bug/129526117:24
uvirtbotLaunchpad bug 1295261 in keystone "test_v3_os_revoke.OSRevokeTests: invalid event issued_before time; Too early" [Critical,New]17:24
ayoungdstanek, not if it was two different values rounded, and this only happens when one is rounded up and the other rounded down17:24
morganfainbergdolphm, did you remove your .testrepository directory?17:24
ayoungor something on a chaotic fringe like that17:24
morganfainbergdolphm, i was having the same issue because i had one w/ old data17:25
morganfainbergcaused dumb binning of tests17:25
dolphmmorganfainberg: this wasn't local...17:25
morganfainbergdolphm, oh17:26
morganfainbergdolphm, huh17:26
dolphmmorganfainberg: i swear i saw that in one of the jenkins run for one of your patches?17:26
dolphmmorganfainberg: i copied the logs and accidentally closed the jenkins window17:26
morganfainbergdolphm, i was seeing a net improvement, ~10min total, 380s vs some other similar runs 1000s+17:26
dstanekayoung: you may be right - before_time isn't normalized17:26
dstanekbut i don't know what normalize is really doing17:26
ayoungdstanek, normalize is adding in the TZ data.17:27
dstanekayoung: maybe it fails based on the timezone of the box running the tests then :-)17:27
ayoungdstanek, shouldn't17:28
ayoungdstanek, but keeping out time functions straight is a PITA17:28
ayoungthe JSON marshalling choses one thing and the database another17:28
* ayoung just ranting without confirming details17:28
morganfainbergdolphm, example http://logs.openstack.org/99/81499/1/check/gate-keystone-python27/904e5a5/console.html#_2014-03-19_16_18_46_308 vs http://logs.openstack.org/70/65870/8/check/gate-keystone-python27/4a329c9/console.html#_2014-03-19_23_36_51_066 (is typically what i was seeing)17:28
*** richm has joined #openstack-keystone17:29
dolphmmorganfainberg: my run time went down from 18-20 minutes to 13 minutes17:30
morganfainbergdolphm, that seems about normal.17:31
morganfainbergdolphm, gate is seeing 24min -> ~10-1117:31
dolphmmorganfainberg: nice!17:31
morganfainbergdolphm, next we should move to in-mem sqlite17:31
morganfainbergdolphm, like nova did, that means no more needing to specify TMPFS dir to get speedup17:32
dolphmayoung: dstanek: morganfainberg: logstash query for the "too early" but https://review.openstack.org/#/c/81855/17:32
dolphmbug*17:32
morganfainbergdolphm, ++17:32
ayoung++17:32
dolphmshows 3 hits in last 48 hours17:33
ayoungugh17:33
morganfainbergayoung, https://review.openstack.org/#/c/81732/ in your fix for dependency you made it so optionals weren't optional if they had ever been imported17:33
morganfainbergayoung, i'm working on fixing the current bug.17:33
morganfainbergayoung, erm the check fail17:34
morganfainbergayoung, it also looks like you never instantiated revoke.Manager() like you did w/ oauth so adding the pipeline wouldn't have enabled it17:34
ayoungmorganfainberg, Um...that looks wrong17:34
ayoungmorganfainberg, I think you misunderstand how this is supposed to work...17:35
ayoungthe extensions themselves are not supposed to be added unless they are references17:35
ayoungreferenced17:35
morganfainbergayoung, you kept _factories around forever and if a provider wasn't instantiated you always instantiated it17:35
ayoungwhich, on a live server should only happen by the pipelie17:35
ayoungthat is correct behavior17:35
morganfainbergayoung, instantiating the manager should resolve the future deps17:36
morganfainbergayoung, at least that is how it used to work17:36
ayoungmorganfainberg, it only ends up in _factories if it gets registered17:36
morganfainbergayoung, but if it was registered _ever_ all tests get it17:36
morganfainbergayoung, forever17:36
ayoungand that is a problem because?17:36
ayoungwait...17:37
morganfainbergayoung, test A registers revoke, test B doesn't need it17:37
morganfainbergtest b gets it anyway17:37
ayoungno I see that17:37
morganfainbergand you registered it on import not on instantiation.17:37
ayoungok, the right thing is to hace @dependecy.requires on the tests that need something, but our reset the backend logic doesn;t allow it17:37
openstackgerritDavid Stanek proposed a change to openstack/keystone: Start using to oslotest  https://review.openstack.org/7906817:38
openstackgerritDavid Stanek proposed a change to openstack/keystone: Allows override of stdout/stderr/log capturing  https://review.openstack.org/7906917:38
ayoungregistering on import is the right approach17:38
morganfainbergayoung, negative.17:38
morganfainbergayoung, not with the current model17:38
ayoungexplicit instantiation is how we got into this mess in the first place17:38
ayoungUgh...OK,  we were doing this anyway17:38
ayoungif you looked at the old patch, the other extension were explicitly added17:39
morganfainbergayoung, yeah. lets commit to fixing this in Juno17:39
* ayoung facepalm17:39
morganfainbergayoung, the issue is we can't rely on import if we can't clear that list, and we can't clear that list since import happens once.17:39
ayoungsure17:39
ayoungwhatever...17:39
morganfainbergayoung, we already said we wanted to overhaul DI.17:40
morganfainbergayoung, and we should. dstanek has some work along those lines somewhere i think17:40
ayoungmorganfainberg, is there a bug associated with https://review.openstack.org/#/c/81732/  ?17:40
dolphmmorganfainberg: ++17:41
morganfainbergayoung, no i need to open one17:41
ayoungOk, do that first...17:41
morganfainbergayoung, i'll mark it as partial.17:41
dstanekmorganfainberg, ayoung: yes, i've been toying with redoing di17:42
ayoungdstanek, take a look at that one and tell me if there is a real problem there...I'm not convinced17:43
dstaneki think the need for optional deps isn't related to how the di is working; i think it's a matter of not having a real model for extension17:43
morganfainbergdstanek, ++17:43
dolphmdstanek: ++17:44
dstanekan object should either depend on something or not17:44
*** gokrokve has joined #openstack-keystone17:44
*** gokrokve_ has quit IRC17:44
dolphmdstanek: we have a real model for extension (paste!), but we're unfortunately lazy about using it17:44
morganfainberghttps://bugs.launchpad.net/keystone/+bug/129528017:44
uvirtbotLaunchpad bug 1295280 in keystone "Dependency Injection always injects optional after import" [Undecided,New]17:44
ayoungmorganfainberg, look at the patch before mine.  I don't think there were any real "optional" dependencies in tests.17:45
morganfainbergayoung, no there weren't.17:45
dstanekdolphm: i don't know that paste really gives you what you need in our code; paste give you the ability to automatically discover extensions, but i think we would still want people to manually configure them in most cases17:46
dolphmdstanek: i don't understand the "but"?17:46
dstaneki would want to make sure someone has to actively enable an extension.17:47
dolphmdstanek: right; paste gives you that17:48
*** gokrokve has quit IRC17:50
dstanekdolphm: i'm thinking at a deeper level in our code. for example, the token manager had to be updated for the revoke extension.17:50
*** gokrokve has joined #openstack-keystone17:50
dstanekit has an option dep on revoke_api which to me is weird.17:51
dstanekit also means that in many cases an "extension" can't be delivered by a third party without hacking keystone17:51
dolphmdstanek: that's the laziness i'm referring to -- we aren't using the pipeline very well17:52
dolphmdstanek: it's sort of half hearted -- we're using it for some endpoints, but not to modify others17:52
dstanekwe may not actually have the need for this, but i don't think a pipeline would give you deep integration. it allow for decorator like actions at the higher level17:54
dstanek(not saying this is a good idea) but consider the power of sending defined signals where entities are about to be save and after they are saved. like django or mongoengine17:55
*** gokrokve has quit IRC17:55
dstanekor defining extention points where a extenstion can register callback that keystone will call17:55
dstaneklots of different way to architect it, but they key difference is that keystone doesn't have to changed to get deep integration17:56
morganfainbergdstanek, i always was a fan of hooks and registering hooks17:57
morganfainbergdstanek, but i don't know how scalable that actually is17:57
dstaneka practical example would be verifying a password meets certain criteria. having the right extension points available i could get notified before a password is saved and run arbitrary code against it17:58
dstanekmorganfainberg: what wouldn't be scalable?17:59
morganfainbergdstanek, i've seen issues where the hooks get bound up because of poorly designed callbacks etc.17:59
morganfainbergdstanek, and/or odd interactions depending on when things are registered18:00
morganfainbergdstanek, but my experience was debugging coroutine C++18:01
dstaneki can definitely see issues with plugins stomping on each other, but any model will likely have that problem18:01
morganfainbergdstanek, it was also a stupidly complex codebase18:02
morganfainbergdstanek, and near impossible to debug :P18:02
dstaneki don't think it is an issue as far as slowing the system down18:02
morganfainbergdstanek, well it did in this case. but it might have been a coroutine hell thing as well18:02
dstanekwe're alread saying 'if opt_dep: do_stuff' - i just want the do_stuff somewhere more standard18:03
morganfainbergdstanek, true18:03
dstanekjust food for thought18:04
morganfainbergdstanek, in either case, fixy next release :)18:04
stevemardstanek, i wasn't a fan of how the token manager had to updated for revoke either18:08
*** leseb has quit IRC18:08
dstanekstevemar: i was just picking on that one because it was first in my grep - we do that in several places i think18:09
morganfainbergdstanek, oauth same thing.18:10
stevemaryep18:10
dstaneki think my grep found a bug: http://git.openstack.org/cgit/openstack/keystone/tree/keystone/common/models.py#n16418:10
stevemardstanek, very likely a bug...18:11
ayoungdstanek, the token provider dependency on the revoke_api would go away if it emitted events18:14
ayoungwith the exception of checking revocation18:14
ayoungthat should be done as a pipeline component18:15
*** gokrokve has joined #openstack-keystone18:21
ayoungso howdo I label a patch "proba bly should fix a bug but not sure?  Partial?"18:26
morganfainbergayoung, uhm.18:26
morganfainbergayoung, i'd probably still use closes18:27
ayoungmorganfainberg, k18:27
morganfainbergayoung, if it isn't a partial fix, and should fix it, it closes the bug18:27
ayoungmorganfainberg, what if it just makes it harder to reprodce18:27
morganfainbergayoung, if it legitimately is just a partial fix and something more in-depth will be needed to really fix, partial would be correct18:28
morganfainbergayoung, if it's just making it harder to happen, then probably partial18:28
ayoungmorganfainberg, thing is, I don't know...I'll show you18:28
morganfainbergayoung, k18:28
openstackgerritayoung proposed a change to openstack/keystone: Comparisons should account for instantaneous test execution  https://review.openstack.org/8187918:28
ayoungmorganfainberg, ^^18:28
ayoungmorganfainberg, I should probably add in the times in failure message18:29
morganfainbergayoung, sec18:29
morganfainbergayoung, where is that value being written?18:30
morganfainbergthe before_dime that is18:30
morganfainbergbefore_time ?18:30
*** gokrokve has quit IRC18:31
morganfainbergayoung, oooh i think i see the root of the problem18:31
morganfainbergayoung, give me a moment.18:31
morganfainbergayoung, might actually fix it vs masking (not that it would be bad to keep the <=)18:32
morganfainbergayoung, also you have an extra "e" after report18:33
morganfainbergassertReporteEvent...18:33
ayoungand it is camel case18:33
morganfainbergayoung, hehe18:34
morganfainbergayoung, the camel case is consistent with other assert* methods18:34
ayoungmorganfainberg, I don't have an extra e.   I am missing a d18:34
morganfainbergayoung, just noticed the extra e :P18:34
morganfainbergahhhh18:34
morganfainbergayoung, are we really getting tests with microsecond skew?18:35
ayoungmorganfainberg, no idea18:35
ayounghence my reluctance to say "this is the problem"18:36
morganfainbergayoung, because afaict short of clock drift mid-execution we shouldn't be seeing this error18:36
ayoungbut unless the clocks are out of skew, this is the only thing I can think of18:36
morganfainbergayoung, of the test.18:36
ayoungmorganfainberg, I can see issued_at == before_time being true18:36
ayoungshould only be on a single CPU18:37
morganfainbergayoung, correct. and on a single cpu we shouldn't see a drift back?18:37
ayoungnot back..just not adnvacing of the clock18:37
morganfainbergayoung, ah right18:38
ayoungmorganfainberg, thing is, I am comfortable making this change.  Anything more significant would indicate a larger issue.  I'd like to see if this fixes it18:38
ayoungbut let me report the error, too18:38
*** raildo has quit IRC18:41
*** raildo has joined #openstack-keystone18:41
morganfainbergayoung, lets call this closed18:45
morganfainbergayoung, if it hasn't solved it, we should reopen18:45
ayoungmorganfainberg, sounds good18:45
morganfainbergayoung, i'm comfortable with this being a test bug18:46
morganfainbergayoung, i'm going to defer the DI fix until J, we'll supersede this bug w/ the real fix/bug/bp. this only affects tests and tbh, is going to be a way worse fix than leaving it as is.18:47
morganfainbergdolphm, ^18:47
*** amcrn has joined #openstack-keystone18:51
*** gokrokve has joined #openstack-keystone18:54
bknudsonI think I tried to add some code to the DI once where it would reject any attempt to re-assign a provider... gave up because of the reload backends multiple times.18:58
morganfainbergbknudson, yeah19:00
morganfainbergbknudson, i think we need to just make it a Juno target and really fix things up19:01
morganfainbergbknudson, we can avoid just tacking code onto it in that case19:01
openstackgerritayoung proposed a change to openstack/keystone: Comparisons should account for instantaneous test execution  https://review.openstack.org/8187919:03
dolphmmorganfainberg: ack19:04
ayoungmorganfainberg, ^^ should better report a failure if it happens in the future19:06
morganfainbergayoung, saw it, looks way better19:06
ayoungdolphm, 7c9746c4  should have added in that it fixed the other RC blocker bug19:22
dolphmayoung: which bug?19:22
ayoungREVOCATION_CACHE_EXPIRATION_TIME19:22
ayounghttps://bugs.launchpad.net/keystone/+bug/1291423  dolphm19:23
uvirtbotLaunchpad bug 1291423 in keystone "revocation events sync slows responses to all authenticated calls" [High,Triaged]19:23
dstanekayoung: are there tests that test taking an LDAP response and converting to a model object?19:24
ayoungdolphm, there was a dependency issue that motivated me to make it use the same caching as the rest of dogpile19:24
dolphmayoung: oh yeah!19:25
ayounger...the same dogpile approach to caching?19:25
ayoungI'll update the bug19:25
*** daneyon has quit IRC19:25
dolphmayoung: oh, i just did19:26
ayoungdolphm, I knew I had made that change, and it was driving me crazy that I couldn't find it.  Finally, I said,\ "ah must have deleted that branch (even though I don't see it in git reflog  must have not checked it in"  and went to rewrite it....and I noticed it was already implemented19:27
* ayoung scares /me19:27
dolphmayoung: i thought i had seen a patch as well, but figured it must not have been in gerrit19:27
openstackgerritDavid Stanek proposed a change to openstack/keystone: expires_at should be in a tuple not turned into one  https://review.openstack.org/8189419:28
ayoungdolphm, is stevedor something to be embraced or resisted?19:29
dolphmayoung: -1 due to risk of market confusion with stevemar19:29
ayoungHeh19:29
morganfainbergdolphm, ++19:30
morganfainbergdolphm, https://bugs.launchpad.net/keystone/+bug/1294862 seems to be unrelated to memcache specifically19:30
uvirtbotLaunchpad bug 1294862 in keystone "Token expiration time with memcache->kvs->dogpile is wrong" [Medium,New]19:30
morganfainbergdolphm, i'm setting up a UTC+1 devstack to poke at it19:30
dstanekayoung: ^ i have no idea where to add a test for that, but i'm pretty sure that there is some issue with Trust.expires_at as it related to LDAP19:30
morganfainbergdolphm, but reread the bug report, this might be an auth_token bug19:31
*** andreaf has quit IRC19:31
dolphmmorganfainberg: auth_token comparing against the wrong TZ?19:31
ayoungmorganfainberg, looks like a config error19:31
ayoung UTC + conf.token.expiration,  == now if conf.token.expiration == 019:32
dolphmmorganfainberg: given our 1 hour tokens, we shall detect time zone issues with great precision19:32
morganfainbergdolphm, yeah19:32
morganfainbergayoung, expiration = 360019:32
dstanekayoung: i think he means the the machine timezone is UTC+119:32
morganfainbergayoung, and the system time is UTC+119:33
morganfainbergayoung, i talked w/ him on irc about it19:33
morganfainbergdolphm, i like 1h tokens!19:33
dstanekit's likely that auth_token just isn't using UTC19:33
dolphmwhich means tokens might be immediately expired if it's comparing against system time without regard for timezones19:33
ayoungso token is issued withlocal time, but expires at is set with UTC?19:33
morganfainbergayoung, it should all be converted to UTC19:33
dolphm*should*19:33
morganfainbergayoung, but he claims keystone API calls worked, just not nova19:34
morganfainbergayoung etc19:34
morganfainbergayoung so i think it might actually be an auth_token issue19:34
dolphmmorganfainberg: ++19:34
morganfainbergdolphm, it might be the same memcache bug we had w/ keystone actually19:34
ayoungor memcache19:34
ayoungbut if it were memcache, token would be valid first time and invalid on second19:34
morganfainbergayoung, yeah so i'm setting up a devstack to get more info19:35
morganfainbergayoung, since he's UTC+1 (i think) hard to sync up sometimes19:35
ayoungmorganfainberg, in which time zone?19:35
morganfainbergayoung, oslo19:35
ayoungyou can set the machine tz to be oslo time then19:35
morganfainbergayoung, that is what i did19:35
ayoungI know...you are faster than I am on the uptake.  We all know that19:36
morganfainbergayoung, just need to stack up to run checks19:36
ayounghttps://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/middleware/auth_token.py#L31219:36
ayounghttps://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/middleware/auth_token.py#L33919:36
morganfainbergayoung, oh god, we have will expire soon and confirm_not_expired19:36
morganfainbergthe parse should be fine in confirm19:37
morganfainbergthat is related to expires_at which we make sure is normalized inside keystone19:37
ayoung  def get_admin_token(self):19:37
ayounghttps://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/middleware/auth_token.py#L68019:37
morganfainbergayoung, yeah will expire soon is prob it.19:37
morganfainbergthe admin token is always expired19:37
ayoungwhy do we need to normalize?  Isn;t that suspect?19:37
ayoungnah, its like in 30 seconds...so go get a new one19:38
ayoungif that is a problem, so is the other19:38
dolphmayoung: i don't know what normalize does offhand, but we call it consistently every time we do parse_isotime()19:38
morganfainbergdolphm, it makes sure a datetime object is UTC tz19:38
ayounghttps://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/openstack/common/timeutils.py#L6819:38
ayoungdrops the time zone19:38
dolphmmorganfainberg: and if it's naive?19:39
morganfainbergdolphm, parse_isotime doesn't enforce TZ-aware objects19:39
ayoungother way 'round, I think19:39
morganfainbergayoung, ++19:39
morganfainbergayoung, yeah sorry inverted it19:39
ayoungso...normalize is suspect.  What are we using non TZ times for?19:40
ayoungutcnow  is non TZ, isn't it?19:40
morganfainbergayoung, because otherwise we need to do TZ math19:40
morganfainbergayoung, we want everything UTC19:40
morganfainbergayoung, so we say if it has a TZ make it UTC and unset the offset19:40
ayoungbut that just drops the TZ19:40
morganfainbergayoung, it does the offset math as well19:41
morganfainbergreturn timestamp.replace(tzinfo=None) - offset19:41
morganfainbergso it undoes the offset and drops the TZ19:41
ayoungI'd almost say "convert it to UTC  with the Z on it"19:42
morganfainbergayoung, six of one.19:43
ayounginstead of implicit "oh, naive?  mst be UTC"19:43
ayoungnah, explicit instead of implicit19:43
morganfainbergayoung, iirc the only place we get datetiem objects is utcnow19:43
dolphmmorganfainberg: until we make a mistake19:44
morganfainbergbut isotime is tz aware19:44
morganfainbergdolphm, we could propose extra features to timeutils and make everything TZ UTC datetime objects instead19:44
morganfainbergi don't think we should do it internal to keystone alone though19:45
dolphmayoung: i can only imagine that something really doesn't like TZ-aware datetime objects, so that became the default?19:46
dolphmayoung: but i agree19:46
morganfainbergdolphm, either that or everything was naive first19:47
morganfainbergdolphm, and it was easier to convert the few originally non-naive objects19:47
*** jamielennox is now known as jamielennox|away19:48
*** zhiyan_ is now known as zhiyan19:50
*** raildo has quit IRC19:52
*** raildo has joined #openstack-keystone19:52
dolphmbknudson: did you see this? https://bugs.launchpad.net/grenade/+bug/129497119:54
uvirtbotLaunchpad bug 1294971 in keystone "gate-grenade-dsvm-partial-ncpu Failure in upgrade-keystone" [Critical,Triaged]19:54
dolphmbknudson: looks like that started (mostly in stable/havana) in the last day or two, if i'm reading the hits correctly19:55
bknudsondolphm: I did see that... a change went in recently to switch to use _19:55
bknudsondolphm: https://review.openstack.org/#/c/58766/19:55
bknudsondolphm: so one theory -- there's another problem that's occurring, raising an exception19:56
bknudsonand keystone isn't handling the case where an exception is thrown properly anymore.19:56
bknudsonas in, an exception gets thrown before the _ is installed19:56
dolphmbknudson: we still have a couple gettextutils.enable_lazy()'s19:56
bknudsondolphm: right, you still have to do that.19:57
bknudsondolphm: but you don't do gettext.install() anymore.19:57
dolphmbknudson: ah, that's what i'm thinking of19:57
bknudsonit used to be gettextutils.install() that added _ to builtins19:57
bknudsonnow every module has to import _ to get it19:57
dolphmbknudson: ah, keystone-all uses _() but doesn't import it itself20:00
dstanekdolphm: ugg..pep8 probably doesn't look at non .py Python files20:01
bknudsondolphm: when there's a socket error.20:01
dolphmdstanek: yep! bknudson: yep!20:01
bknudsonmaybe this is how keystone fails when someone's using its port20:01
dolphmbknudson: lol exactly20:01
openstackgerritDolph Mathews proposed a change to openstack/keystone: explicitly import gettext function  https://review.openstack.org/8190320:03
dolphmdstanek: bknudson: https://review.openstack.org/#/c/81903/20:04
*** raildo has quit IRC20:04
bknudson2014-03-20 15:06:26.231 CRITICAL keystone [-] NameError: global name '_' is not defined20:06
bknudsonthat's what it said when keystone was already running20:06
bknudsonnow it does 2014-03-20 15:06:15.157 CRITICAL keystone [-] error: [Errno 98] Address already in use20:06
*** daneyon has joined #openstack-keystone20:08
ayoungdolphm, are we following suit?  http://lists.openstack.org/pipermail/openstack-dev/2014-March/030576.html20:09
dolphmayoung: i'd love to!@20:09
lbragstad++, that would be nice20:09
bknudsonayoung: dolphm: no objection from me20:09
ayoungdolphm, then lets request http://git.openstack.org/cgit/openstack/keystone-specs20:09
dolphmayoung: i'll put it on the agenda for next week20:09
bknudsonseconded20:09
ayoungThirded20:09
dolphmfourthded20:10
morganfainbergi kinda think gerrit is the wrong tool for the job :(20:11
* morganfainberg wants storyboard20:11
morganfainbergor a tool that is more in line with this type of workflow20:12
morganfainbergi don't think it's a bad idea though to have this20:12
morganfainbergjust saying git / gerrit feels like the wrong tool for the job :P20:12
morganfainberg(no i don't have an alternative)20:12
bknudsonI believe nova's goal was to get better quality blueprints... not just "do this".20:13
morganfainbergbknudson, and thats fine, i still think git is a really atrocious tool for that20:13
bknudsonthey want "do this this way"20:13
lbragstadusing gerrit gets a lot of eyes on a lot of different blueprints20:13
morganfainberglbragstad, i firmly believe that this is solving an issue w/ Launchpad with something better but also not great.20:14
morganfainbergand since i don't have an alternative....20:14
morganfainbergno reason not to use better tools than we have20:14
dolphmmorganfainberg: i want to hear ttx's feedback, because he's going to be impacted first20:15
morganfainbergdolphm, sounds good to me.20:15
dolphmmorganfainberg: all his LP tooling will be shot, and i don't know what he's doing that can/can't be adapted to this20:15
dolphmmorganfainberg: things like milestone targets are relevant20:15
morganfainbergdolphm, i think this new "system" will rapidly go away if we get storyboard off the ground20:16
morganfainbergsince if we need added features/functionality we can then add it20:16
dolphmmorganfainberg: what IS storyboard?!20:16
lbragstadisn't that ttx's project?20:16
dolphmmorganfainberg: i've heard about it in passing a few times, and even read the meeting log today...20:16
morganfainbergdolphm, meant to be a replacement for LP because LP has almost no support20:16
dolphmlbragstad: he's definitely involved20:16
lbragstadahh gotcha20:16
morganfainbergdolphm, LP basically has no forward momentum (afaict there are like 2 guys doing bare minimum maintenance), it's got a ton of limiations, and isn't a good solution20:17
dolphmmorganfainberg: reading russell's email again, i don't think he wants to supersede LP, just supplement it?20:17
morganfainbergdolphm, correct20:17
morganfainbergdolphm, and if we have a new non-sucky system instead of LP i think this supplement will be redundant20:18
morganfainbergLP's whiteboards are useless, searching is bad, bps aren't good.  this supplements that and aims to solve some of those issues.20:18
morganfainbergstoryboard is afaict meant to replace LP with something we can manage/maintain/enhance which would make this supplement redundant20:19
morganfainbergi am sure git is the wrong tool for this, but it is far superior to LP alone20:20
morganfainbergso, i don't thing we shouldn't follow in suit.20:20
morganfainbergerm, i think we should (no double negatives)20:20
morganfainbergif ttx doesn't say this is all around terrible20:20
dolphmmorganfainberg: i take back most of my concern for any objection from ttx20:23
dolphmmorganfainberg: this is really just applying our /identity-api/ philosophy to everything blueprinty20:23
morganfainbergdolphm, yep20:24
dolphmmorganfainberg: and he couldn't care less about /identity-api/ i imagine20:24
dolphmmorganfainberg: replied on list -- hopefully we can simplify it20:24
morganfainbergdolphm, now if LP didn't suck, i don't think this would be needed20:24
*** flaper87|afk is now known as flaper8720:25
morganfainbergdolphm, ++ on you comments :)20:28
*** dstanek_afk has joined #openstack-keystone20:30
*** dstanek has quit IRC20:32
*** pcargnel has joined #openstack-keystone20:32
*** rwsu has quit IRC20:37
*** marekd|bbl is now known as marekd20:38
*** daneyon has quit IRC20:40
*** dims has quit IRC20:46
pcargnelHi! I'll appreciate if someone could take a look on this one: https://review.openstack.org/#/c/80368/7. Thanks :)20:52
dstanek_afkpcargnel: why rename to handle_*?20:53
*** dstanek_afk is now known as dstanek20:54
*** jamielennox|away is now known as jamielennox20:55
*** pcargnel has quit IRC20:56
*** flaper87 is now known as flaper87|afk20:56
dstaneki'm also not sold on event_callbacks in Manager instances. what happens if multiple manager are instantiated?20:57
dstanekmorganfainberg: ^ notification/singleton question20:57
ayoungdstanek, depends.  Are ou talking consuming or producing events.  Either way, So long as the event is produced/consumed once or in a idempotent way, it is ok21:01
dstanekayoung: consuming events21:01
*** dims has joined #openstack-keystone21:02
dstanekayoung: does dependency make sure only one handler per class is registered?21:02
morganfainbergdstanek, the first one ... i think is registered21:02
morganfainbergdstanek, and the subsequent instantiations are not21:03
dstanekmy connectivity is really bad here...so i may drop on and off21:03
dstanekmorganfainberg: ok, i had not seen code to do that21:03
morganfainbergdstanek, let me check but i think the _register_callbacks does htat21:04
*** rwsu has joined #openstack-keystone21:04
dstanekmorganfainberg: no, it uses a set and that won't work for bound methods21:04
dstanekunless i'm misremembering21:04
morganfainbergdstanek, it works for bound methods since it does registration post instantiation21:05
dstanekmorganfainberg: isn't that why it wouldn't work?21:06
morganfainbergdstanek, actually os it looks like if you instantiate a class mutiple times you'll have multiuple callbacks registered21:06
* morganfainberg check 100%21:06
dstanekeach bound method hashes differently because it is bound to a different instance21:07
*** jaypipes has quit IRC21:07
morganfainbergdstanek, the original code only allowed for a single callback21:07
morganfainbergdstanek, iirc but that is not how this works.21:08
morganfainbergdstanek, yeah each instantiation of the manager listens for events21:08
morganfainbergdstanek, i think we need to move to a model where a manager is instantiated exactly 1 time.21:09
ayoungSo long as we are only listening to internal events, we should be OK.21:09
ayoungassume a 4 worker scenario21:09
morganfainbergayoung, yeah we're only listening for internal callbacks21:10
ayoungif there were crosstalk between them, there would be a problem, but for internal only we should be OK21:10
dstanekbut if two callback try to delete the same user we'll produce a 50021:10
morganfainbergayoung, it's just extra overhead to call the event if it will be a noop21:10
ayoungand "internal" does not mean to avoid routing them to the outside world21:10
morganfainbergdstanek, if the callback is smart, it shouldn't try if the user doesn't exist, right?21:11
dstanekmorganfainberg's patch gets us much better off my not creating instances or managers, but nothing prevents it right now21:11
ayoungdstanek, we don't perform operations like that on callbacks,21:11
ayoungjust create revocation events for now,  or do we?21:11
morganfainbergayoung, no but pcargnel's patch does introduce that21:11
ayounglink?21:11
morganfainbergayoung, https://review.openstack.org/#/c/80368/721:12
morganfainbergif we are mucking with all that stuff moving to events would be better.21:12
morganfainbergbut i'm seeing some oddities that make that hard21:12
dstanekmorganfainberg: the callback could catch the SQL exception21:12
ayoungsomething really wrong there21:12
ayoungthose operations should not be on the assignment API any longer21:13
jamielennoxdolphm: https://review.openstack.org/#/c/60752/ - can you please have another look21:13
morganfainbergdstanek, also https://review.openstack.org/#/c/80368/7/keystone/contrib/revoke/core.py trying to figure out line 10821:13
morganfainbergdstanek, how is that not raising an exception?21:13
ayoungLDAP is a little wonky in the the assignment API assumes an LDAP identity, but you still should not be calling delete_user on assignmnet21:13
ayoungthat should only be in identity21:13
morganfainbergindexed lookup on a string?21:14
morganfainbergayoung, if the assignment manager needs to take an action on user being deleted, where do you put that?21:14
ayoungLDAP Identity Driver does not call delete_user or delete_group on the LDAP assignment api21:14
ayoungOK, that makes more sense21:14
ayoungI had it backwards21:14
dstanekmorganfainberg: what string?21:14
morganfainbergdstanek, the payload['resource_info']21:14
morganfainbergdstanek, that is just the iud21:14
morganfainbergid*21:15
morganfainbergmaybe we're missing tests for the places that occurs in this patchset21:15
ayoungmorganfainberg, I'm almost willing to say that one should be solved by "LDAP to LDAP secret backchannel negotiations"21:15
nkindermorganfainberg: when you have a chance, do you mind re-reviewing this one for me?21:15
dstanekmorganfainberg: ah, so it is21:15
nkinderhttps://review.openstack.org/#/c/73935/21:15
morganfainbergnkinder, sure thing21:15
ayoungBut the question is if we want to handle these types of events in the general case...21:15
morganfainbergayoung, sure, but ok so identity LDAP (r/w) w/ sql assignment, user is deleted21:16
morganfainbergdoes that make an explicit assingment call? or just issue a callback event?21:16
* morganfainberg swears he can type assignment21:16
morganfainbergayoung, i would like to think that we can use the callbacks for most things inter-manager that need to happen because of X21:18
morganfainbergayoung, it's not that often that stuff needs to happen21:19
morganfainbergayoung, but i'm not 100% sold.21:20
*** nkinder has quit IRC21:20
morganfainbergayoung, i prefer a "just listen for X and act if it occurs" rather than needing to change code in X Y and Z to support a manager needing to cleanup post user_delete21:20
morganfainbergdstanek, this is along the same lines of using hooks vs explicit changes for deps.21:21
*** jamielennox is now known as jamielennox|away21:22
dstanekmorganfainberg: in my mind a callback would be an instance with dependencies injected; indexed in Notifications by the class21:22
morganfainbergdstanek, so (object) with *_api and a method that knows what to do w/ an event?21:23
dstanekmorganfainberg: this is similar to what i have done in the past21:24
dstaneki like functions as call backs, but i needed to have the injector to it's magic21:25
dstanekin this case register would create the instance21:25
*** flaper87|afk is now known as flaper8721:27
morganfainbergdstanek, so @dep.provider registers the callback?21:27
morganfainbergdstanek, still?21:27
dstaneki need to setup and irc bouncer21:27
morganfainbergdstanek, ++ they're useful21:28
dstanekmorganfainberg: no, maybe another decorator like you do in celery21:28
morganfainbergdstanek, ah ok21:28
morganfainbergdstanek, sure. not opposed to that.21:28
dstanekmorganfainberg: part of my blinker demo should be to show some of these ideas21:29
morganfainbergdstanek, here is another that i'm not sure how it passes tests https://review.openstack.org/#/c/80368/7/keystone/credential/core.py21:30
morganfainbergline 11521:30
morganfainbergdstanek, or even https://review.openstack.org/#/c/80368/7/keystone/credential/backends/sql.py21:31
dstanekthe tests can't be testing this21:31
morganfainbergdstanek, obviously21:31
morganfainbergoh gah21:33
morganfainbergdstanek, https://review.openstack.org/#/c/80368/7/keystone/identity/backends/sql.py line 23821:33
*** daneyon has joined #openstack-keystone21:33
morganfainbergi don't know how this passed tests.21:34
morganfainbergi'm looking at code that this should have failed on.21:34
*** flaper87 is now known as flaper87|afk21:34
*** david-lyle has quit IRC21:37
openstackgerritAndreas Jaeger proposed a change to openstack/keystone: Remove obsolete po entries - they break translation jobs  https://review.openstack.org/8192521:37
morganfainbergdstanek, i... i am scared by this test working.21:44
*** dstanek has quit IRC21:46
*** gokrokve has quit IRC21:52
*** gokrokve has joined #openstack-keystone21:52
*** zhiyan is now known as zhiyan_21:55
*** gokrokve has quit IRC21:56
*** marcoemorais has quit IRC21:59
*** marcoemorais has joined #openstack-keystone21:59
*** marekd is now known as marekd|away22:10
*** nkinder has joined #openstack-keystone22:10
*** marcoemorais has quit IRC22:20
*** gokrokve has joined #openstack-keystone22:23
*** marcoemorais has joined #openstack-keystone22:24
*** marcoemorais has quit IRC22:33
*** marcoemorais has joined #openstack-keystone22:33
*** david-lyle has joined #openstack-keystone22:38
*** flaper87|afk is now known as flaper8722:50
*** stevemar has quit IRC22:52
*** gokrokve has quit IRC23:00
*** gokrokve has joined #openstack-keystone23:01
*** daneyon has quit IRC23:05
*** gokrokve has quit IRC23:05
*** daneyon has joined #openstack-keystone23:05
*** flaper87 is now known as flaper87|afk23:07
*** jamielennox|away is now known as jamielennox23:08
*** richm has quit IRC23:13
*** bknudson has quit IRC23:16
*** henrynash has quit IRC23:16
*** thedodd has quit IRC23:17
*** daneyon has quit IRC23:23
*** david-lyle has quit IRC23:31
*** dstanek has joined #openstack-keystone23:46
jamielennoxwhere are with with RC freeze?23:51
jamielennoxi only just saw the -1 on https://review.openstack.org/#/c/78068/623:51
jamielennoxbut i'm wondering if i'm too late to fix it now23:51
*** henrynash has joined #openstack-keystone23:51
*** browne has quit IRC23:54

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