19:01:00 #startmeeting Python OpenStack SDK 19:01:00 Meeting started Tue Apr 29 19:01:00 2014 UTC and is due to finish in 60 minutes. The chair is edleafe. Information about MeetBot at http://wiki.debian.org/MeetBot. 19:01:01 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 19:01:04 The meeting name has been set to 'python_openstack_sdk' 19:01:17 Agenda: https://wiki.openstack.org/wiki/Meetings/PythonOpenStackSDK#Agenda_for_2014-04-29_1900_UTC 19:01:45 #topic Roll Call 19:02:03 If you're here for the Python OpenStack SDK meeting, state your name and affiliation 19:02:28 Alex Gaynor, Rackspace 19:02:31 Ed Leafe, Rackspace 19:02:47 briancurtinmobil: Why are you at a gas station? 19:02:57 Chris Johnson, HP 19:03:52 Jamie Lennox, Red Hat 19:04:12 I'm stuck on my phone, in route to San Antonio...was hoping to be there by now. weather hasn't cooperated 19:04:34 #topic Open Discussion 19:04:55 I didn't know of any particular issues that need to be discussed, so does anyone want to open one up? 19:06:32 19:06:47 thank you to whoever is running this, my connecting flight is boarding soon. sorry about this. 19:07:27 Anyone have any topics they want to discuss today, or do we just need to do more reviews? 19:07:31 see you in sa, briancurtinmobil 19:07:42 review.openstack.org gives 503 :( 19:07:52 jamielennox: restart your browser 19:07:56 same thing happened to me 19:08:04 yeah, mine's working now 19:08:16 it's due to the Gerrit upgrade 19:08:35 ah, ok 19:09:11 so i thought we should possibly discuss the presentation layer patch: https://review.openstack.org/#/c/90538/ 19:09:22 that seems the next big thing 19:10:19 in general i think it's ok to use it for now. The only issue i see is that it means a user of resources would need to pass a Json layer rather than a session 19:10:36 if you look at mixing in XML or others there i don't know how that works 19:12:04 I'd love it if when we add new layers we could add examples, showing how users are supposed to use teh whole system, not docs per se, just, as we're building up the design, making sure we see what the whole system looks like 19:12:35 Alex_Gaynor: +1 19:12:43 It would help me understand the intent 19:13:12 I.e., how would this impact what a developer using the SDK would need to do 19:16:33 edleafe, sorry I'm late, what was the context of this discusion? 19:17:12 terrylhowe: The presentation layer patch 19:17:24 terrylhowe: """ I'd love it if when we add new layers we could add examples, showing how users are supposed to use teh whole system, not docs per se, just, as we're building up the design, making sure we see what the whole system looks like""" 19:17:35 I should have added at the end "from a user's perspective" 19:18:39 Yeh, I like what dtroyer did with example code, but some of these classes may be kind of internal 19:18:52 maybe in the commit? 19:19:32 I was thinking vaguely there would be some factory type class on top of this where you would request a connection and it would give you the appropriate presentation layer 19:20:17 If the answer is "a user never see's this" I think that's enough 19:20:54 i think most of what we are doing at this level would be available to user's wanting to do API version specific tasks - but not part of the general API 19:21:16 s/general API/general library usage 19:21:49 yes, so maybe not in the example code 19:22:31 in the presentation patch, it integrates itself with the resource class. I can't think of any more layers in there, so I think that is "done" 19:26:13 so is there a rule as to what __init__ should do on a Resource? 19:26:37 how do we distinguish between something a user wants to create and something that exists and is being loaded? 19:33:35 give me an example jaimelennox 19:34:00 something other than loaded=False? 19:34:08 jamielennox (sorry) ^^ 19:35:05 so taking the User example, if we do __init__(self, **kwargs) what do the kwargs mean in terms of attributes? 19:36:21 do we just do a .update() with the underlying dictionary? 19:37:02 or do we do something more user centric and specify the available kwargs 19:37:49 jamielennox: I thought we had decided that **kwargs and dynamically-created attributes were "bad things" for Resources 19:37:49 __init__(self, name) and if you want to add something to the object that we don't handle explicitly you do user['address'] = 'xxx' post __init__ 19:39:09 seems like __init__ would need to handle things the class does not know 19:39:37 In case the SDK was out of sync with the server 19:40:16 edleafe: yea, i think that it will be a problem - but in looking at the Resource Properties patch of mine, if name = prop('userName') then what is the kwarg? 19:40:35 name or userName 19:40:55 name makes more sense for the user, userName is what will be available from the create function 19:41:23 I think calling the name of a user 'userName' is redundant 19:41:32 edleafe: ++ 19:41:34 (and non-pythonic) 19:41:52 well, at least non-pep8-ish 19:42:17 it's a contrived example too, i can't remember what is set by the keystone server 19:42:47 but i needed an example where the object attribute wasn't the same as the attribute in the API 19:42:47 I also think that it makes for a better experience if Resources across services have common properties with the same attribute name 19:42:58 E.g., "name", "id" 19:44:03 so do we simply ban Resources having __init__ arguments altogether? and then have factory functions? 19:44:29 jamielennox: the Rackspace identity stuff is filled with things like 'apiKey' instead of 'api_key'. I translate those in my SDK so that the user can expect a consistent naming even when the services are inconsistent 19:45:33 edleafe: ++, yep that's what i was looking for with prop() - and easy to see what's supported as well 19:47:29 I need to mess with an actual implementation of a resource to get a real feel for it. 19:49:49 terrylhowe: yea, i think so 19:50:59 Ten minutes left. Any other topics we need to cover? 19:52:45 I was going to take a stab at authorization 19:53:22 unless someone else has something going on. I chatted with Brian about it. 19:53:41 terrylhowe: do you mean parsing the service catalog? Or something else? 19:54:20 well, I'm not sure how deep I'll go. I was just hoping to get a token really 19:54:28 Is dtroyer looking into the discovery process/algo? Anyone know? 19:55:03 his api discovery stuff must of been abandoned. I don't see it open 19:55:14 wchrisj__: i think he was but i haven't heard from him for a while now 19:55:37 Was hoping to discuss at the Summit if not before ... 20:00:15 OK, times up! Thanks everyone! 20:00:19 #endmeeting