*** markvoelker has quit IRC | 00:24 | |
*** NM has quit IRC | 00:32 | |
*** gyee has quit IRC | 01:19 | |
*** jamesmcarthur has quit IRC | 01:22 | |
*** jamesmcarthur has joined #openstack-keystone | 01:31 | |
*** jamesmcarthur has quit IRC | 01:43 | |
*** jamesmcarthur has joined #openstack-keystone | 01:44 | |
*** jamesmcarthur has quit IRC | 02:00 | |
*** jamesmcarthur has joined #openstack-keystone | 02:00 | |
*** jamesmcarthur has quit IRC | 02:39 | |
*** jamesmcarthur has joined #openstack-keystone | 02:40 | |
*** jamesmcarthur has quit IRC | 02:43 | |
*** jamesmcarthur has joined #openstack-keystone | 02:43 | |
*** whoami-rajat has joined #openstack-keystone | 03:14 | |
*** jamesmcarthur has quit IRC | 03:45 | |
*** jamesmcarthur has joined #openstack-keystone | 03:46 | |
*** jamesmcarthur has quit IRC | 03:49 | |
*** jamesmcarthur_ has joined #openstack-keystone | 03:49 | |
*** lbragstad has quit IRC | 05:09 | |
*** pcaruana has joined #openstack-keystone | 05:12 | |
*** pcaruana has quit IRC | 05:23 | |
*** pcaruana has joined #openstack-keystone | 05:28 | |
*** jamesmcarthur_ has quit IRC | 05:29 | |
*** evrardjp_ is now known as evrardjp | 06:43 | |
*** tkajinam has quit IRC | 07:24 | |
*** tkajinam has joined #openstack-keystone | 07:24 | |
*** adriant has quit IRC | 07:29 | |
*** markvoelker has joined #openstack-keystone | 07:32 | |
*** xek has joined #openstack-keystone | 07:52 | |
*** markvoelker has quit IRC | 08:05 | |
*** adriant has joined #openstack-keystone | 08:18 | |
*** jaosorior has joined #openstack-keystone | 08:21 | |
*** tkajinam has quit IRC | 08:24 | |
*** spsurya has joined #openstack-keystone | 08:51 | |
*** ayoung has quit IRC | 08:54 | |
*** tesseract has joined #openstack-keystone | 08:56 | |
*** mvkr has joined #openstack-keystone | 08:59 | |
*** rcernin has quit IRC | 09:07 | |
*** tesseract has quit IRC | 09:40 | |
*** jaosorior has quit IRC | 09:41 | |
*** mugsie_ is now known as mugsie | 09:52 | |
*** markvoelker has joined #openstack-keystone | 10:02 | |
*** markvoelker has quit IRC | 10:36 | |
*** jaosorior has joined #openstack-keystone | 11:07 | |
*** raildo has joined #openstack-keystone | 11:26 | |
*** markvoelker has joined #openstack-keystone | 11:33 | |
*** dave-mccowan has joined #openstack-keystone | 11:37 | |
*** jaosorior has quit IRC | 12:00 | |
*** markvoelker has quit IRC | 12:05 | |
*** mugsie is now known as mugsie_ | 12:18 | |
*** mugsie_ is now known as mugsie | 12:18 | |
*** shyamb has joined #openstack-keystone | 12:34 | |
*** BlackDex_ is now known as BlackDex | 12:35 | |
*** NM has joined #openstack-keystone | 12:39 | |
*** spsurya has quit IRC | 12:40 | |
*** NM has quit IRC | 12:41 | |
*** shyamb has quit IRC | 12:49 | |
*** jamesmcarthur has joined #openstack-keystone | 13:00 | |
*** shyamb has joined #openstack-keystone | 13:01 | |
*** jamesmcarthur has quit IRC | 13:20 | |
*** jamesmcarthur has joined #openstack-keystone | 13:20 | |
*** jamesmcarthur has quit IRC | 13:25 | |
*** lbragstad has joined #openstack-keystone | 13:32 | |
*** shyamb has quit IRC | 13:54 | |
*** shyamb has joined #openstack-keystone | 13:57 | |
knikolla | o/ | 13:58 |
---|---|---|
cmurphy | \o | 14:00 |
lbragstad | o/ | 14:00 |
openstackgerrit | Kristi Nikolla proposed openstack/keystone-specs master: Expiring Users https://review.opendev.org/604201 | 14:32 |
gagehugo | o/ | 14:32 |
*** vishakha has joined #openstack-keystone | 14:38 | |
*** itlinux has quit IRC | 14:58 | |
*** shyamb has quit IRC | 15:02 | |
*** jamesmcarthur has joined #openstack-keystone | 15:11 | |
*** joshualyle has quit IRC | 15:15 | |
openstackgerrit | do3meli proposed openstack/keystone master: add raw format link to keystone config sample. https://review.opendev.org/663063 | 15:20 |
*** joshualyle has joined #openstack-keystone | 15:20 | |
lbragstad | lifeless i still don't think i'm fully understanding testresources - despite setting up a resource manager, each test case seems to be generating new resources on each run | 15:20 |
lbragstad | in your example - https://github.com/testing-cabal/testresources/blob/master/doc/example.py#L23-L29 does this mean you need to override both make() and getResource()? | 15:22 |
lbragstad | if i override only getResource to return an instance of the resource i'm trying to share, it gets set on each test case, but it's also generated each time? | 15:22 |
lbragstad | after reading the source a couple of times and digging through it, it appears TestResourceManager can be used a couple different ways and it's not clear to me which methods i need to override to do what i want | 15:24 |
lbragstad | currently - i only want to manage a single resource, i'm not trying to implement a dependency of resources | 15:24 |
*** joshualyle has quit IRC | 15:24 | |
*** joshualyle has joined #openstack-keystone | 15:25 | |
*** joshualyle has quit IRC | 15:28 | |
*** joshualyle has joined #openstack-keystone | 15:28 | |
kmalloc | o/ | 15:28 |
kmalloc | lbragstad: let me look at it today as well. | 15:29 |
lbragstad | thanks kmalloc | 15:29 |
kmalloc | lbragstad: i've dug around in that in the past. | 15:29 |
lbragstad | the library is really small and i get the idea... but i must be missing something still | 15:29 |
kmalloc | so keep in mind there *will* be duplicate resources made. | 15:29 |
kmalloc | but that should be per-worker. | 15:30 |
lbragstad | i think that's fine | 15:30 |
lbragstad | the main thing we're trying to solve here i think is just reusing the bootstrapper across test cases run by the same worker | 15:30 |
kmalloc | let me see your example code | 15:32 |
lbragstad | lemme push what i have... it's trash, but.. | 15:32 |
kmalloc | sure. | 15:32 |
kmalloc | paste is fine too | 15:32 |
*** joshualyle has quit IRC | 15:33 | |
openstackgerrit | Lance Bragstad proposed openstack/keystone master: WIP: use testresources for sharing across unit tests https://review.opendev.org/663065 | 15:33 |
lbragstad | i think i've changed the actual implementation about a dozen times | 15:34 |
lbragstad | based on either the documentation in testresources or the actual code i'm trying to hook into | 15:34 |
kmalloc | right. | 15:35 |
*** gyee has joined #openstack-keystone | 15:35 | |
lbragstad | https://review.opendev.org/#/c/663065/1/keystone/tests/unit/base_classes.py@148 is supposed to be the *new* test case we use for protection testing | 15:35 |
lbragstad | it should load a bootstrapper instance and bootstrap keystone | 15:35 |
lbragstad | then set the bootstrapper instance as an instance variable of the tests case | 15:36 |
lbragstad | then - in test_policies, we would define a test class for each persona we want to test | 15:36 |
lbragstad | https://review.opendev.org/#/c/663065/1/keystone/tests/unit/protection/v3/test_policies.py,unified | 15:36 |
kmalloc | you do need to override "make" according to the docs | 15:36 |
lbragstad | maybe? | 15:37 |
kmalloc | make | 15:37 |
kmalloc | Must be overridden in every concrete subclass | 15:37 |
lbragstad | right... | 15:37 |
lbragstad | but, the weird thing | 15:37 |
kmalloc | it should be called by getResource though | 15:37 |
lbragstad | is that if i just override getResource(), it works and a NotImplemented isn't raised | 15:37 |
lbragstad | because my implementation isn't calling make() | 15:38 |
*** joshualyle has joined #openstack-keystone | 15:38 | |
*** joshualyle has quit IRC | 15:39 | |
*** spsurya has joined #openstack-keystone | 15:40 | |
*** joshualyle has joined #openstack-keystone | 15:40 | |
kmalloc | hm. | 15:40 |
lbragstad | it can - but it's also not really clear to me what i'm supposed to do with dependency_resources | 15:41 |
kmalloc | https://github.com/testing-cabal/testresources/blob/master/testresources/__init__.py#L847 | 15:41 |
kmalloc | on tearDown it's cleaning the resources up | 15:41 |
kmalloc | so it's not caching it. | 15:41 |
lbragstad | welll - yes and no i think | 15:42 |
lbragstad | that calls this | 15:42 |
lbragstad | https://github.com/testing-cabal/testresources/blob/master/testresources/__init__.py#L556 | 15:42 |
lbragstad | which only sets a counter | 15:42 |
lbragstad | then calls | 15:42 |
lbragstad | https://github.com/testing-cabal/testresources/blob/master/testresources/__init__.py#L535 | 15:42 |
lbragstad | and clean doesn't do anything unless you override it https://github.com/testing-cabal/testresources/blob/master/testresources/__init__.py#L543 | 15:42 |
kmalloc | hm. you're also only ever incrementing uses | 15:42 |
kmalloc | in your code | 15:42 |
lbragstad | right - that's another thing that i'm not really sure what to do with | 15:43 |
lbragstad | apparently other parts of testresources rely on self._uses | 15:43 |
lbragstad | but i didn't know if i should be in control of setting that if it's private? | 15:43 |
lbragstad | the method docs for the things i'm supposed to override don't really tell you if you should be setting that variable | 15:43 |
kmalloc | oh, i wonder. | 15:44 |
kmalloc | sec. | 15:44 |
*** bnemec has quit IRC | 15:44 | |
*** jistr is now known as jistr|call | 15:45 | |
*** jistr|call is now known as jistr | 15:45 | |
*** bnemec has joined #openstack-keystone | 15:46 | |
cmurphy | keystone meeting in 13 minutes in #openstack-meeting-alt, please add items to the agenda https://etherpad.openstack.org/p/keystone-weekly-meeting | 15:48 |
kmalloc | i'm surprised you're not causing an exception to be raised since .finishedWith shouldn't be callable in tearDown | 15:48 |
kmalloc | since bootstrapper is not a resource. | 15:48 |
lbragstad | isn't it? https://review.opendev.org/#/c/663065/1/keystone/tests/unit/base_classes.py@150 | 15:49 |
kmalloc | hm. i don't think that is returning what you think it's returning. | 15:49 |
kmalloc | https://github.com/testing-cabal/testresources/blob/master/testresources/__init__.py#L837 | 15:50 |
lbragstad | that's another question i have | 15:50 |
kmalloc | that calls .getResource() | 15:50 |
kmalloc | so you're returning the bootstrapper | 15:50 |
kmalloc | itself | 15:50 |
lbragstad | is the manager suppose to return the source from __init__() or make() or both? | 15:50 |
kmalloc | which isn't a resource. | 15:50 |
lbragstad | i'm treating the bootstrapper as the resource | 15:51 |
lbragstad | when an instance of bootstrapper is created, i can set all the things i need to then call bootstrapper.bootstrap() once | 15:51 |
*** joshualyle has quit IRC | 15:51 | |
kmalloc | bootstrapper is coming from keystone.cmd | 15:51 |
lbragstad | yeah | 15:52 |
lbragstad | that's the same object we invoke when operators use `keystone-manage` | 15:52 |
kmalloc | which isn't a testresource / doesn't have .finishedWith, etc | 15:52 |
kmalloc | i'm surprised that doesn't cause an exception on .tearDown | 15:52 |
kmalloc | and may cause other unexpected behavior | 15:52 |
lbragstad | well - i think the TestResourceManager is supposed to implement that interface, no? | 15:52 |
kmalloc | but you're directly implementing .getResource to return a bare bootstrapper | 15:53 |
lbragstad | yeah | 15:53 |
lbragstad | because i want each test case to have the instance of bootstrapper() as self.bootstrapper | 15:53 |
kmalloc | i think you need to implement make to return a bootstrapper | 15:54 |
kmalloc | not .getResource() | 15:54 |
lbragstad | that's what i originally did here - https://review.opendev.org/#/c/663065/1/keystone/tests/unit/base_classes.py@94 | 15:54 |
lbragstad | (ignore the _ in the name) | 15:54 |
*** itlinux has joined #openstack-keystone | 15:54 | |
kmalloc | right | 15:54 |
kmalloc | and don't implement .getResource directly | 15:54 |
kmalloc | put your logic in .make() to get a new bootstrapper. | 15:55 |
* lbragstad nods | 15:55 | |
*** joshualyle has joined #openstack-keystone | 15:55 | |
kmalloc | i think overriding .getResource may have broken a number of things in weird ways | 15:55 |
kmalloc | since you're not supering up to the parent | 15:56 |
kmalloc | which means you're not calling https://github.com/testing-cabal/testresources/blob/master/testresources/__init__.py#L582 | 15:56 |
kmalloc | which doesn't set current_resource | 15:56 |
kmalloc | etc | 15:56 |
kmalloc | now... i'm not saying your implementation shouldn't just work as well | 15:57 |
kmalloc | but we're kindof end-around working past the testresource manager's code this way | 15:57 |
kmalloc | instead of leaning on it | 15:57 |
lbragstad | i'm not surprised that it doesn't... i'm just confused what the intended interface is | 15:57 |
kmalloc | the intended interface is .make() to return a new resource | 15:57 |
lbragstad | but not according to this? https://github.com/testing-cabal/testresources/blob/master/doc/example.py#L23-L29 | 15:57 |
kmalloc | when it's really needed | 15:57 |
kmalloc | i'm looking at the docs | 15:58 |
kmalloc | i think .make() is what is intended to be overridden | 15:58 |
kmalloc | this looks like it's the error raised. | 15:58 |
kmalloc | and it might be historically getResource vs. make | 15:58 |
*** itlinux has quit IRC | 15:59 | |
kmalloc | or pre-dated the push to github. | 15:59 |
kmalloc | anyway. i'd try just implementing make | 15:59 |
kmalloc | you're missing a bunch of logic by overriding .getResource | 16:00 |
lbragstad | yeah - maybe | 16:00 |
lbragstad | i'll tinker with it and push a new patch with just make() implemented | 16:00 |
kmalloc | and you call .dirtied() when you make a change that should force a new resource to be generated | 16:01 |
kmalloc | so to start to mirror current tests you call .dirtied() every time | 16:01 |
*** joshualyle has quit IRC | 16:02 | |
openstackgerrit | Lance Bragstad proposed openstack/keystone master: WIP: use testresources for sharing across unit tests https://review.opendev.org/663065 | 16:02 |
kmalloc | once we eliminate the need to care about the data changing, you stop calling it | 16:02 |
lbragstad | ^ that's just with make() implemented, and it creates a new resource on each test run (so no better than what we're currently doing i don't think) | 16:02 |
kmalloc | and this is why | 16:07 |
kmalloc | https://github.com/testing-cabal/testresources/blob/master/testresources/__init__.py#L568 | 16:07 |
kmalloc | the uses are dropped to 0, and the resource is unset | 16:08 |
kmalloc | TestResources are, afaict, supposed to be shared concurrently | 16:09 |
lbragstad | yeah - i don't really understand that bit completely, the logic makes sense | 16:09 |
kmalloc | if no one is using it, it is fair to cleanup | 16:10 |
*** joshualyle has joined #openstack-keystone | 16:11 | |
*** itlinux has joined #openstack-keystone | 16:11 | |
kmalloc | part of it is likely to ensure the resource is cleaned up at the end of the tests that need it | 16:13 |
kmalloc | i'd want to check w/ lifeless on this, but i *think* there is a bug here. let me check one more thing. | 16:14 |
* lbragstad nods | 16:14 | |
lbragstad | if we get something working, i'd like to ask if i can propose some more documentation to testresources | 16:14 |
lbragstad | or some more detailed examples | 16:15 |
*** joshualyle has quit IRC | 16:15 | |
kmalloc | so, i think this is more for the case: X depends on Y and Z, and Q also depends on Y, so only create one instance of Y | 16:16 |
kmalloc | for both | 16:16 |
kmalloc | unless Y is dirtied. | 16:16 |
lbragstad | i don't think our use cases is that complicated | 16:16 |
lbragstad | we just want to make sure bootstrap only happens once across an entire suite of tests | 16:17 |
kmalloc | we want to maintain the same testresource (except if dirtied) across the lifespan of the TestCaseClass | 16:17 |
kmalloc | so... i *think*... we might need to override .finishedWith, let me check one more thing | 16:17 |
kmalloc | right and .dirtied would still force a .reset/new instance to be added to .current_resource | 16:18 |
*** xek has quit IRC | 16:20 | |
*** xek_ has joined #openstack-keystone | 16:20 | |
*** imacdonn has joined #openstack-keystone | 16:26 | |
*** itlinux has quit IRC | 16:29 | |
*** itlinux has joined #openstack-keystone | 16:31 | |
johnthetubaguy | lbragstad: dumb question, I am failing to create a fake system scoped context, with system_scope="all", seems like policy is checking for "system" in the creds, not "system_scope"? | 16:33 |
lbragstad | on the context object? | 16:34 |
johnthetubaguy | https://opendev.org/openstack/oslo.policy/src/branch/master/oslo_policy/policy.py#L928 | 16:34 |
johnthetubaguy | yeah, creating a context object, trying to get it to pass the tests | 16:34 |
lbragstad | do you have a patch up or a diff I can look at? | 16:34 |
johnthetubaguy | but test fails saying my context is project scoped | 16:34 |
johnthetubaguy | https://review.opendev.org/#/c/657823/2 | 16:34 |
johnthetubaguy | is the wider context | 16:34 |
johnthetubaguy | I should upload the new version... there is a red herring in the failures | 16:35 |
*** itlinux has quit IRC | 16:37 | |
johnthetubaguy | oh wait, I found a bit of code that confused me... hmm | 16:37 |
*** xek_ has quit IRC | 16:37 | |
johnthetubaguy | that was confusing me | 16:38 |
lbragstad | which part? | 16:38 |
johnthetubaguy | if context.system_scope: creds['system'] = context.system_scope | 16:38 |
johnthetubaguy | at least I now see why it should work | 16:38 |
johnthetubaguy | although still a bit confused | 16:38 |
lbragstad | https://opendev.org/openstack/oslo.policy/src/branch/master/oslo_policy/policy.py#L977-L996 | 16:39 |
lbragstad | yeah - ^ that is what makes it easy for nova to just pass context objects directly to oslo.policy during enforcement | 16:39 |
lbragstad | nova shouldn't have to worry about building custom creds dictionaries anymore | 16:39 |
*** itlinux has joined #openstack-keystone | 16:41 | |
johnthetubaguy | lbragstad: ah, this is what I needed: https://review.opendev.org/#/c/657823/4/nova/policy.py | 17:12 |
johnthetubaguy | I see what you mean now :) | 17:12 |
*** adriant has quit IRC | 17:20 | |
*** itlinux has quit IRC | 17:23 | |
*** itlinux has joined #openstack-keystone | 17:24 | |
*** whoami-rajat has quit IRC | 17:24 | |
lbragstad | johnthetubaguy aha - yep | 17:25 |
lbragstad | we were hoping that would make it easier for people to make the change | 17:25 |
lbragstad | instead of having to understand this nebulous dictionary called `creds` | 17:25 |
lbragstad | if we push the commonality into the context object and teach oslo.policy how to understand that, then hopefully it lowers the bar by not requiring each service to populate system-scope things in their hand-rolled dictionaries | 17:26 |
*** gyee has quit IRC | 17:41 | |
cmurphy | wonderful, sphinx release two days ago broke our gate :( | 17:43 |
*** jamesmcarthur has quit IRC | 17:46 | |
*** adriant has joined #openstack-keystone | 17:50 | |
kmalloc | knikolla, cmurphy: added you as core for spectroscope. | 17:51 |
kmalloc | any keystone core has a free pass to join spectroscope core | 17:51 |
kmalloc | but it will be developed separately from keystone until it's either ready to be official keystone or the team decides it should remain separate | 17:52 |
kmalloc | for now it will live in x/spectroscope | 17:52 |
kmalloc | and the repo has not yet been initialized. | 17:52 |
kmalloc | it does not use a bug tracker (we might get gitea issues when some bugs with gitea get fixed), likely I'll add a trello board for tracking work for the initial standup. | 17:52 |
knikolla | kmalloc: awesome! | 17:57 |
*** spsurya has quit IRC | 18:24 | |
*** whoami-rajat has joined #openstack-keystone | 18:25 | |
*** itlinux has quit IRC | 18:30 | |
*** itlinux has joined #openstack-keystone | 18:31 | |
kmalloc | cmurphy, knikolla: added a trello board for now to cover "to evaluate" "design choices", "work items" and "completed items" | 18:31 |
kmalloc | i've invited both of you to it as well | 18:32 |
cmurphy | thanks kmalloc | 18:32 |
*** itlinux has quit IRC | 18:39 | |
*** joshualyle has joined #openstack-keystone | 18:40 | |
*** joshualyle has quit IRC | 18:40 | |
*** itlinux has joined #openstack-keystone | 18:42 | |
*** vishakha has quit IRC | 19:05 | |
kmalloc | so, last minute travel changes, going to be headed out for a funeral tonight. I'll be around (hit/miss) for some of the days thurs, fri, monday. but I'm working where I can. | 19:37 |
kmalloc | have to head to the east coast for this upcoming weekend. | 19:37 |
kmalloc | =/ | 19:38 |
*** imacdonn has quit IRC | 19:38 | |
*** altlogbot_1 has joined #openstack-keystone | 19:39 | |
cmurphy | :( sorry to hear that kmalloc, safe travels | 19:40 |
kmalloc | thanks | 19:40 |
kmalloc | last minute change, I'm joining brie for her grandfather's funeral (originally I wasn't planning on going) | 19:41 |
lbragstad | :( | 19:41 |
lbragstad | travel safe | 19:41 |
*** jamesmcarthur has joined #openstack-keystone | 19:42 | |
*** jamesmcarthur has quit IRC | 19:45 | |
*** jamesmcarthur has joined #openstack-keystone | 19:45 | |
*** itlinux has quit IRC | 19:50 | |
*** imacdonn has joined #openstack-keystone | 19:53 | |
*** itlinux has joined #openstack-keystone | 19:54 | |
*** dave-mccowan has quit IRC | 19:55 | |
*** dave-mccowan has joined #openstack-keystone | 20:00 | |
openstackgerrit | Michael McCune proposed openstack/keystoneauth master: add a handler for unknown HTTP errors https://review.opendev.org/663132 | 20:07 |
*** dave-mccowan has quit IRC | 20:27 | |
*** itlinux has quit IRC | 20:30 | |
*** itlinux has joined #openstack-keystone | 20:32 | |
*** hoonetorg has quit IRC | 20:42 | |
*** dklyle has quit IRC | 20:49 | |
*** dklyle has joined #openstack-keystone | 20:49 | |
*** whoami-rajat has quit IRC | 20:54 | |
*** hoonetorg has joined #openstack-keystone | 20:55 | |
*** jamesmcarthur has quit IRC | 21:00 | |
*** jamesmcarthur has joined #openstack-keystone | 21:00 | |
*** jamesmcarthur has quit IRC | 21:04 | |
*** pcaruana has quit IRC | 21:07 | |
*** jamesmcarthur has joined #openstack-keystone | 21:14 | |
*** itlinux has quit IRC | 21:16 | |
*** jamesmcarthur has quit IRC | 21:18 | |
*** jamesmcarthur has joined #openstack-keystone | 21:20 | |
*** jamesmcarthur has quit IRC | 21:28 | |
*** raildo has quit IRC | 21:29 | |
*** jamesmcarthur has joined #openstack-keystone | 21:49 | |
*** jamesmcarthur has quit IRC | 21:51 | |
*** jamesmcarthur has joined #openstack-keystone | 22:04 | |
*** jamesmcarthur has quit IRC | 22:16 | |
*** dave-mccowan has joined #openstack-keystone | 22:44 | |
*** tkajinam has joined #openstack-keystone | 22:51 | |
*** dave-mccowan has quit IRC | 22:56 | |
*** dave-mccowan has joined #openstack-keystone | 22:57 | |
*** rcernin has joined #openstack-keystone | 23:20 | |
*** gyee has joined #openstack-keystone | 23:29 | |
*** itlinux has joined #openstack-keystone | 23:37 | |
*** itlinux has quit IRC | 23:38 | |
*** itlinux has joined #openstack-keystone | 23:42 | |
*** itlinux_ has joined #openstack-keystone | 23:45 | |
*** itlinux has quit IRC | 23:47 |
Generated by irclog2html.py 2.15.3 by Marius Gedminas - find it at mg.pov.lt!