19:00:25 #startmeeting python-openstacksdk 19:00:26 Meeting started Tue Aug 5 19:00:25 2014 UTC and is due to finish in 60 minutes. The chair is briancurtin. Information about MeetBot at http://wiki.debian.org/MeetBot. 19:00:27 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 19:00:30 The meeting name has been set to 'python_openstacksdk' 19:00:47 Terry Howe, HP 19:00:55 if you're here for the python-openstacksdk meeting, say hi 19:00:58 Steve Lewis, Rackspace 19:00:59 Brian Curtin, Rackspace 19:01:05 Dean Troyer, Nebula 19:01:42 https://wiki.openstack.org/wiki/Meetings/PythonOpenStackSDK#Agenda_for_2014-08-05_1900_UTC - somewhat of an agenda 19:02:07 #topic Current Neutron reviews from Terry 19:02:45 so Terry has a million reviews out there for the openstack.network resources. i've gone through most of them and they seem fine, the only real thing i have is that some of the properties should be using the type paramter 19:03:28 Terry and I talked briefly earlier and i'm wondering if anyone else is ok with mostly approving these reviews as-is and perfecting the type situation later (with bugs submitted for the ones that need to be changed) 19:05:05 most of them are just attributes, neutron has a pretty simple api. I think security group is the only tricky one because it as a security group rule. 19:05:49 example of where type is needed? 19:06:17 it would be good to get extra eyes on that one https://review.openstack.org/#/c/111047/ 19:06:32 I'm neutral on committing them as-is. This is one of the reasons I usually prefer to push a couple of things all the way through to establish these details, then iterate on the rest of the objects. 19:06:57 I did the network through slow, then all the rest 19:07:14 jamielennox: an example i think is /quotas, where the values coming in should all be ints. i think we should enforce that since it's documented that they're ints and they do come back as ints 19:08:20 they're going to be ints right now regardless, they're just left unchecked. i dont feel super strongly about it, but we do have that type parameter in there 19:08:41 i'm fine with letting that slip through for now, if it's being returned correctly anyway 19:09:36 briancurtin: at some point later we will need to decide what level of spec enforcement we do, the current clients say that whatever the server returns is fine and whether we enforce the spec more strictly 19:10:32 jamielennox: jon postel had it right: be liberal in what you accept and strict in what you send 19:11:09 maybe type checking on values coming from the server are (eventually) warnings? 19:11:31 i like both of those messages 19:11:52 +1 19:12:14 dtroyer: from memory we try to actually cast to the types, but we can always allow it to fail and warn 19:12:24 so back to the original thing quickly - i'm going to continue +2'ing terry's reviews unless they're including incorrectly named properties or something, and then we can figure out the strictness later 19:12:32 briancurtin: ++ 19:12:49 +1 19:14:24 #topic swift account/container 19:14:52 I haven’t fully reviewed it, but I put in some comments before the meeting 19:15:19 I still think we could just not have an account resource 19:15:32 yeah i'm going to see what it looks like to drop it 19:16:05 it felt right with the previous (but odd) implementation. now *this* seems odd 19:16:28 i kind of left it beacuse it's account-wide metadata, but it could just be on the container class 19:16:54 FWIW when doing these bits in OSC I stole the methods (process) but not the naming 19:17:41 it would be nice to have a way to capture the headers and the body for a get 19:17:49 I’m not sure how to do taht 19:18:43 terrylhowe: i had something hacked up when i first added HEAD to the Resource class through a param to the get calls 19:18:47 the existing one returns the decoded body and the received message as a tuple, maybe we have to do that as well 19:19:15 s/existing one/current clients 19:19:42 had thought we didn't need that, but at very least i can see status code being needed 19:19:56 I don’t know if anyone other than swift will need that 19:19:57 jamielennox: so you always get head+body then? 19:20:08 that being header and body 19:20:24 you get back the requests.Response and the decoded JSON as a dict 19:21:01 terrylhowe: yep, i believe it's just swift that would need this 19:23:46 we could customize the dict object that is returned from a request such that it has a status_code or headers parameter - but at that point is it better than just returning the requests.Response? 19:24:19 probably not 19:24:33 Making the return look as much like the rest of the APIs is a win 19:25:03 Swift is a special snowflake in a lot of ways but the fresh SDK is an opportunity to hide that 19:26:06 yeh, there is a lot of potential to make things easier for the user 19:31:43 does that come back to an extra parameter on the Resource.get* calls to add in header data, then handling that inside the various Swift resources? 19:31:48 or am i a level off? 19:32:50 Yeh, either a parameter or a different method 19:34:03 i'll see if i can do it with a parameter. adding another method is going to end up making us duplicate things 19:34:25 yep 19:35:25 i haven't done anything to split out those lower level things, so i'll try to take care of that around the same time 19:35:55 #topic automating Resource class creation 19:36:13 terrylhowe: i think you mentioned a script that had created some or all of those neutron classes, right? 19:36:40 I don’t know if anyone would want to use my bash script, it is probably hard to follow 19:37:05 https://github.com/TerryHowe/pogo/tree/master/sdkgen 19:37:32 is where I have been dumping that stuff though. it is pretty much just some throw away code 19:37:59 it has been handy for what I’ve been doing though 19:38:59 at least useful to write up the skeletons 19:39:08 It is just put the sdkgen directory in the sdk project and run: 19:39:11 ./sdkgen/t.sh sdkgen/database/v1.0/instance 19:39:14 for example 19:39:30 it creates a branch and creates a resource and test file 19:41:17 cool. i'll try it out for whatever i get into next 19:41:47 feel free to ask me questions if you try it 19:41:59 will do 19:42:51 anything else to cover while we're here? 19:43:01 nothing here 19:44:07 i'm good 19:44:23 nope 19:44:31 cool. thanks everyone! 19:45:04 #endmeeting