*** 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!