| *** wchrisj has joined #openstack-sdks | 00:11 | |
| *** mhagedorn has quit IRC | 00:16 | |
| *** mhagedorn has joined #openstack-sdks | 00:18 | |
| *** mhagedorn has quit IRC | 00:43 | |
| *** WhatTheFoley has quit IRC | 00:43 | |
| *** mhagedorn has joined #openstack-sdks | 00:44 | |
| *** wchrisj has quit IRC | 01:08 | |
| *** jdag____ has joined #openstack-sdks | 01:19 | |
| *** mordred has quit IRC | 01:23 | |
| *** jamielennox has quit IRC | 01:23 | |
| *** bknudson has quit IRC | 01:23 | |
| *** elight has quit IRC | 01:23 | |
| *** jdag___ has quit IRC | 01:23 | |
| *** jdag____ is now known as jdag___ | 01:23 | |
| *** mordred has joined #openstack-sdks | 01:24 | |
| *** elight has joined #openstack-sdks | 01:24 | |
| *** jamielennox has joined #openstack-sdks | 01:24 | |
| *** bknudson has joined #openstack-sdks | 01:25 | |
| *** krames has joined #openstack-sdks | 02:36 | |
| *** mhagedorn has quit IRC | 02:43 | |
| *** mhagedorn_ has joined #openstack-sdks | 02:43 | |
| *** wchrisj has joined #openstack-sdks | 02:58 | |
| *** wchrisj has quit IRC | 03:02 | |
| *** mhagedorn_ has quit IRC | 03:13 | |
| *** mhagedorn has joined #openstack-sdks | 03:14 | |
| *** krames has quit IRC | 03:35 | |
| *** wchrisj has joined #openstack-sdks | 03:42 | |
| *** wchrisj has quit IRC | 03:46 | |
| *** wchrisj has joined #openstack-sdks | 03:51 | |
| *** wchrisj has quit IRC | 04:06 | |
| *** wchrisj has joined #openstack-sdks | 04:29 | |
| *** wchrisj has quit IRC | 04:57 | |
| *** jamielennox is now known as jamielennox|away | 06:24 | |
| *** jamie_h has joined #openstack-sdks | 07:56 | |
| *** samchoi has quit IRC | 09:19 | |
| *** jamie_h has quit IRC | 12:13 | |
| *** jamie_h has joined #openstack-sdks | 12:37 | |
| *** mfer has joined #openstack-sdks | 13:04 | |
| *** krames has joined #openstack-sdks | 13:07 | |
| *** krames has quit IRC | 13:08 | |
| *** krames has joined #openstack-sdks | 13:08 | |
| *** terry_howe has joined #openstack-sdks | 13:25 | |
| *** wchrisj has joined #openstack-sdks | 13:34 | |
| *** wchrisj has quit IRC | 13:41 | |
| *** wchrisj has joined #openstack-sdks | 13:44 | |
| *** wchrisj has quit IRC | 13:46 | |
| *** wchrisj has joined #openstack-sdks | 14:27 | |
| *** etoews has joined #openstack-sdks | 14:37 | |
| *** jdag___ is now known as jdag | 14:57 | |
| mfer | anyone know what time the design summit stuff ends on Friday of the atlanta summit? | 15:33 |
|---|---|---|
| mfer | dtroyer, mordred or anyone else with experience ^^ | 15:33 |
| *** wchrisj has quit IRC | 15:37 | |
| mordred | mfer: by late afternoon Friday I usually want to die | 15:38 |
| mordred | mfer: but it typically is a full day | 15:38 |
| mfer | mordred so, it's useful to book flights out at night? | 15:38 |
| mfer | i'm usually done with these kinds of things by Friday morning. No more ability to be really useful | 15:39 |
| *** wchrisj has joined #openstack-sdks | 15:41 | |
| mordred | mfer: yup. I think I'm leaving Saturday IIRC | 15:42 |
| mfer | thanks | 15:42 |
| glenc | mfer my flight out is at 3PM, so hopefully there's nothing interesting after that :) | 15:46 |
| dtroyer | mfer: it is a full day, and my sessions are the last two… ;) | 15:55 |
| dtroyer | devstack, that is, so youse guys probably don't care | 15:56 |
| mfer | dtroyer you know yours are at the end of the day on Friday already? | 16:00 |
| dtroyer | only the tracks have been assigned so far and I only have two for devstack | 16:01 |
| dtroyer | none of the cross-platform or anything like that is determined yet | 16:01 |
| *** wchrisj has quit IRC | 16:03 | |
| *** wchrisj has joined #openstack-sdks | 16:08 | |
| mfer | ok | 16:09 |
| *** mhagedorn has quit IRC | 16:27 | |
| *** mhagedorn has joined #openstack-sdks | 16:27 | |
| *** mhagedorn_ has joined #openstack-sdks | 16:48 | |
| *** mhagedorn has quit IRC | 16:50 | |
| *** mhagedorn_ is now known as mhagedorn | 16:50 | |
| *** mhagedorn has quit IRC | 17:03 | |
| *** mhagedorn has joined #openstack-sdks | 17:03 | |
| *** wchrisj has quit IRC | 17:06 | |
| *** mhagedorn has quit IRC | 17:26 | |
| *** mhagedorn has joined #openstack-sdks | 17:27 | |
| *** WhatTheFoley has joined #openstack-sdks | 17:29 | |
| WhatTheFoley | https://review.openstack.org/86657 if anybody wants to look at .NET stuff... | 17:30 |
| *** etoews has quit IRC | 17:40 | |
| elight | mhagedorn: Are you having any luck with hptng inheriting from OSC tng? | 17:41 |
| elight | mhagedorn: I believe I see what the problem is with composition | 17:42 |
| elight | mhagedorn: The composing class (HP::Identity::Real) needs to advertise it’s collections/requests/mocked_requests but ALSO those of the OSC::Identity::Real it is composing | 17:42 |
| *** wchrisj has joined #openstack-sdks | 17:42 | |
| elight | mhagedorn: Inheritance may solve for this | 17:42 |
| mhagedorn | elight… a bit of luck.. got requests collection working I think | 17:43 |
| mhagedorn | will know by COB | 17:43 |
| elight | k | 17:43 |
| elight | Still working on composition here to see if it can be done and what it would look like | 17:43 |
| mhagedorn | however it means I have to know about @required from Service… that is a HUGE ick | 17:43 |
| elight | http://dl.dropboxusercontent.com/u/379705/images/what.gif | 17:43 |
| mhagedorn | talk about close coupling | 17:43 |
| mhagedorn | I will put up a gist when I get it all working | 17:44 |
| mhagedorn | harder to explain than to show | 17:44 |
| mhagedorn | not saying I love it though | 17:44 |
| mhagedorn | feels code smellish | 17:44 |
| mhagedorn | @required is the the way I am using to know that the hierarchy above me is all built correctly… basically. | 17:45 |
| *** etoews has joined #openstack-sdks | 17:57 | |
| elight | I think I liked it better when we had DI’able Authenticators. :-( | 18:19 |
| elight | mhagedorn: Looking at your compositional PR, I don’t see how it’s creating a Fog::HpTng::IdentityVx::Real | 18:28 |
| elight | mhagedorn: https://github.com/fog-openstack-tng/fog_hp_tng/blob/feature/inheritance/lib/fog/hptng/identity.rb#L13-L15 calls OSC which should then be creating an Fog::OSC::Identity…. | 18:29 |
| mhagedorn | elight, its not. I gave up on it. | 18:46 |
| mhagedorn | elight. when I tried to create an instance of OSC::Identity it immediatelly tried to auth using the form of the OSC requests. Not acceptabl | 18:47 |
| mhagedorn | becuase extention layers have to be able to control the requests form, just like the OSC::Identity class does | 18:47 |
| mhagedorn | elight, when you guys changed the underlying layer and switched to using real requests for like, create_token | 18:48 |
| mhagedorn | that took away the ability to customize at extention layers | 18:48 |
| mhagedorn | thats when I realized that composition was problematic at best | 18:48 |
| mhagedorn | the minute you #new up an instance of OSC::Identy, there is an auth attempt, and that attempt happens with OSC requests. Bad (in this case) | 18:49 |
| elight | mhagedorn: Which was why we were talking about injectable Authenticators | 19:00 |
| mhagedorn | yeah | 19:00 |
| mhagedorn | its a bit of a wash ‘cause I kind of like having each provider provider their own request files..... | 19:00 |
| elight | But once you get past that, I think you’re still fighting Fog to expose the composed class’ requests/collections | 19:00 |
| elight | I *think* I know how to work around that but I hate it. | 19:01 |
| mhagedorn | yeah…. working on a fix for that | 19:01 |
| mhagedorn | but I hate it | 19:01 |
| elight | heh | 19:01 |
| mhagedorn | If I can get this working, at least we will have something to throw darts at.... | 19:02 |
| *** jamie_h has quit IRC | 19:03 | |
| mhagedorn | (and rolling up the requests seems to work… models in process) | 19:03 |
| mhagedorn | (but it only goes one layer up, which is probably as problematic as the original code) | 19:03 |
| elight | TemplateMethod pattern makes Evan sad. | 19:24 |
| elight | Getting there though... | 19:24 |
| mhagedorn | elight :) | 19:31 |
| mhagedorn | this part of this effort is likely making everyone sad. “how to make Fog do something it wasnt designed to do” | 19:31 |
| elight | At least I didn’t say it this time. ;-) | 19:33 |
| *** mhagedorn has quit IRC | 19:37 | |
| *** mhagedorn has joined #openstack-sdks | 19:37 | |
| *** etoews has quit IRC | 19:39 | |
| elight | Oh my. I should not have looked inside excon’s /lib. I knew this would hurt. | 19:40 |
| *** etoews has joined #openstack-sdks | 19:40 | |
| elight | https://github.com/geemus/excon/blob/master/lib/excon/connection.rb#L264-L269 | 19:41 |
| wchrisj | Holy crap | 19:44 |
| terry_howe | If only excon devs put that kind of effort into printing out debug output | 19:46 |
| elight | terry_howe: LOLOLOLOLOL | 19:46 |
| elight | terry_howe: funny because it’s true | 19:46 |
| terry_howe | you do get used to it though | 19:46 |
| elight | terry_howe: https://www.youtube.com/watch?v=3vAnuBtyEYE | 19:47 |
| terry_howe | :) | 19:48 |
| mhagedorn | terry_howe, never bother with that.. I just use CharlesProxy.. so much clearer | 19:59 |
| elight | ? | 20:00 |
| mhagedorn | see the debug output comment | 20:00 |
| mhagedorn | as in exconns is excrement | 20:00 |
| elight | +1 | 20:01 |
| terry_howe | I have not messed with CharlesProxy, looks cool | 20:01 |
| mhagedorn | elight. closer but missing some secret sauce…all the collections, models and mocked_requests appear to be properly rolled up in a subclass.. however doing something like <Subclass>.users fails | 20:01 |
| elight | http://dl.dropboxusercontent.com/u/379705/images/single-facepalm.gif | 20:02 |
| mhagedorn | even though <Subclass>.collections now properly shows users in the list | 20:02 |
| mhagedorn | so its working but I am feeling like I am right in the middle of fog-core magic | 20:02 |
| elight | yep | 20:02 |
| elight | That’s better than me. I keep getting a 404 when I try to auth to Rackspace in my impl | 20:03 |
| elight | And it looks like the Excon::Connection has the right resource…. so….. o.0 | 20:03 |
| *** Klumben has quit IRC | 20:03 | |
| elight | Aaand maybe I’ve got it. Weird.. | 20:04 |
| *** Klumben has joined #openstack-sdks | 20:11 | |
| WhatTheFoley | https://review.openstack.org/86699 for all you .NET fans... (minor fixes that I wasnt able to make before the last review was merged) | 20:13 |
| elight | Gah | 20:24 |
| elight | Finally got it auth'ing | 20:24 |
| elight | mhagedorn wchrisj: Template-method approach to Identity extensions is a bit painful. | 20:27 |
| elight | Though it’s a fuzzy line for me between the pain caused by that and Excon | 20:28 |
| WhatTheFoley | sharwell_: Thanks for the review | 20:38 |
| *** krames has quit IRC | 20:44 | |
| mhagedorn | elight | 20:49 |
| mhagedorn | up | 20:49 |
| mhagedorn | yup | 20:49 |
| *** jamielennox|away is now known as jamielennox | 20:49 | |
| mhagedorn | elight the inheritance approach also is painful :) | 20:49 |
| elight | mhagedorn: Actually, that’s where I’ve found myself (Template Method) | 20:50 |
| elight | Inheritance | 20:50 |
| elight | And yes | 20:50 |
| elight | I’m a little surprised. | 20:50 |
| elight | I thought, from looking at Service#setup_requirements, that damn thing would correctly handle subclassing | 20:50 |
| elight | Evidently not... | 20:50 |
| wchrisj | elight bug in there? | 20:51 |
| elight | Unsure. Or I completely misunderstood the intent behind the code... | 20:51 |
| elight | mhagedorn: ah i’ve got it | 21:01 |
| *** samchoi has joined #openstack-sdks | 21:01 | |
| mhagedorn | teach me | 21:01 |
| elight | requests, collections, and mocked_requests are tracked in instance variables IN EACH SERVICE CLASS | 21:01 |
| mhagedorn | yeah | 21:01 |
| mhagedorn | having to do crap like: | 21:02 |
| elight | So when you call #collections, that calls YourClass.collections | 21:02 |
| elight | So you only see the collections defined in your particular subclass | 21:02 |
| elight | Oh | 21:02 |
| elight | Hrm | 21:02 |
| elight | But I still don’t see the collections as actual methods here. | 21:02 |
| elight | Ok, that’s only part of the problems then | 21:02 |
| mhagedorn | elight https://gist.github.com/mwhagedorn/10423228 | 21:03 |
| elight | dayumn | 21:04 |
| elight | that’s the kind of nastiness I was writing for the compositional version | 21:04 |
| elight | The compositional version of that was less ugly though untested... | 21:05 |
| elight | Welcome to the 9th circle of metaprogramming hell | 21:07 |
| *** mfer has quit IRC | 21:09 | |
| elight | Ok, so I can see all of the request methods on my Identity subclass. | 21:11 |
| elight | I wasn’t even sure that hadn’t been somehow damaged | 21:11 |
| WhatTheFoley | https://review.openstack.org/86716 for any .NET peepz out there. Minor bug fix. | 21:20 |
| *** wchrisj has quit IRC | 21:54 | |
| *** wchrisj has joined #openstack-sdks | 22:04 | |
| *** mhagedorn has left #openstack-sdks | 22:36 | |
| wchrisj | hey jamielennox | 23:22 |
| jamielennox | hey | 23:23 |
| wchrisj | I've been looking at your sdk code | 23:23 |
| wchrisj | good stuff | 23:23 |
| wchrisj | question | 23:24 |
| jamielennox | sure, i don't consider it complete - i'm sure there will be plenty of problems with it but i think i prefer this approach to managers | 23:24 |
| wchrisj | why are the POST, GET, etc commands in resource.py, and not session.py? | 23:24 |
| wchrisj | seems like I had a discussion with someone recently where it was mentioned that session was basically the transport layer, HTTP | 23:25 |
| wchrisj | those seem to "fit" better in session | 23:25 |
| jamielennox | so session is something very global, it contains things that are with every single request | 23:25 |
| wchrisj | am I missing something? | 23:25 |
| wchrisj | so it's NOT the http transport layer, in your world? | 23:26 |
| jamielennox | there are always going to be some things that are common to just the way a subsection uses the session | 23:26 |
| jamielennox | no - session is still the transport system | 23:26 |
| jamielennox | and the requests in the resource.py file do send those through to the session object | 23:27 |
| jamielennox | so lets take for example everything in keystoneclient is going to want to talk to the identity endpoint | 23:27 |
| wchrisj | ok | 23:27 |
| jamielennox | i want to provide an object to those methods so that the service_type='identity' value is set automatically rather than need that to be set that manually for every request | 23:28 |
| jamielennox | so essentially i put a wrapper around the session | 23:28 |
| wchrisj | agreed | 23:28 |
| jamielennox | so not only do i get the common parameters on the session, i get the parameters of the wrapper | 23:29 |
| jamielennox | i've got exactly this pattern as a WIP review on keystoneclient now: https://review.openstack.org/#/c/86237/ | 23:29 |
| jamielennox | so the only reason i have those wrappers in resource is to add a couple of headers to every request | 23:30 |
| wchrisj | In that review the HTTP verbs are a part of session, like I was suggesting | 23:31 |
| wchrisj | that makes more sense to me | 23:31 |
| jamielennox | well it takes a session object so that you can do 1-M session-binding relationships | 23:32 |
| wchrisj | In the session.py I am reviewing there are no verbs in session.py | 23:32 |
| jamielennox | which review is this? | 23:32 |
| wchrisj | okhang on | 23:33 |
| wchrisj | https://review.openstack.org/#/c/86227/ | 23:33 |
| jamielennox | oh, right we are talking about my one | 23:34 |
| wchrisj | yeah | 23:34 |
| jamielennox | i thought that, but i don't know what you mean then with no verbs in session.py | 23:34 |
| jamielennox | oh | 23:35 |
| jamielennox | right | 23:35 |
| jamielennox | wow | 23:35 |
| wchrisj | no verbs | 23:35 |
| jamielennox | ok, so that's something that dtroyer has apparently left out at least for now | 23:35 |
| jamielennox | i didn't realize that | 23:35 |
| wchrisj | def head(self, url, **kwargs): | 23:35 |
| wchrisj | 474 return self.request(url, 'HEAD', **kwargs) | 23:35 |
| wchrisj | 475 | 23:35 |
| wchrisj | 476 def get(self, url, **kwargs): | 23:35 |
| wchrisj | 477 return self.request(url, 'GET', **kwargs) | 23:35 |
| wchrisj | 478 | 23:35 |
| wchrisj | 479 def post(self, url, **kwargs): | 23:35 |
| wchrisj | 480 return self.request(url, 'POST', **kwargs) | 23:35 |
| wchrisj | 481 | 23:35 |
| wchrisj | 482 def put(self, url, **kwargs): | 23:35 |
| wchrisj | 483 return self.request(url, 'PUT', **kwargs) | 23:35 |
| wchrisj | 484 | 23:35 |
| wchrisj | 485 def delete(self, url, **kwargs): | 23:35 |
| wchrisj | 486 return self.request(url, 'DELETE', **kwargs) | 23:35 |
| jamielennox | yea | 23:35 |
| jamielennox | i'm not sure why they aren't on the session, they are in the keystoneclient version are | 23:35 |
| wchrisj | I'm still digesting, so just curious | 23:36 |
| jamielennox | they are only simple wrappers anyway so it's not a huge problem to add those later | 23:36 |
| jamielennox | i guess he's just keeping it minimal for now | 23:36 |
| jamielennox | but yes, i expect that the verbs will get added to the session later | 23:36 |
| wchrisj | other question is how quickly could we get this sample code actually doing a very basic auth ("create_token") | 23:37 |
| wchrisj | I'd like to be able to play with this code | 23:37 |
| jamielennox | i'm hoping to keep the same auth plugin structure as we have with keysteonclient | 23:37 |
| jamielennox | i think he's just waiting for everything to settle down around that before adding it | 23:38 |
| jamielennox | there is some stuff like loading plugins from conf files still to be accepted | 23:38 |
| jamielennox | i'm guessing that what we'll do is just add one very simple auth method so that we can do testing with the library | 23:39 |
| jamielennox | and then work on full auth plugin structures later | 23:39 |
| jamielennox | if you want to play with it now i would just hack up a basic v2 password auth into the session somewhere | 23:39 |
| wchrisj | ok... makes sense... | 23:40 |
| *** etoews has quit IRC | 23:49 | |
| *** wchrisj has quit IRC | 23:56 | |
Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!