13:00:00 #startmeeting nova api 13:00:01 Meeting started Wed Jun 8 13:00:00 2016 UTC and is due to finish in 60 minutes. The chair is alex_xu. Information about MeetBot at http://wiki.debian.org/MeetBot. 13:00:02 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 13:00:05 The meeting name has been set to 'nova_api' 13:00:11 who is here today? 13:00:14 \o 13:00:19 o/ 13:00:19 o/ 13:00:19 o/ 13:00:24 hi 13:00:41 o/ 13:01:08 hello everyone, let's start the meeting 13:01:16 hi 13:01:19 #topic actions from previous meeting 13:01:28 o/ 13:01:32 action sdague to write up a spec about limitted (and deprecated) user_id support in policy in nova 13:01:42 #link https://review.openstack.org/#/c/324068/ 13:02:36 sdague: looks like it is waiting for more feedback 13:02:59 yeh, pretty much 13:03:33 one question, does it mean we didn't want to check policy with target in the future? if we want to check policy with target in the future, that means user can enforcement policy by user_id also. 13:03:37 the only real -1 is over my language about "not being openstack" 13:03:51 alex_xu: it does mean that 13:04:05 sdague: ok, got it, clear now 13:04:06 the unit of permissions should be a project 13:04:23 keypairs is the only place where that is weird.... 13:04:42 but in general we should be talking about projects here 13:04:54 I tried to make this the smallest list possible 13:05:09 and responding to jichen unlock and unpause are specifically left out 13:05:32 ok, without target, the policy discovery become easy also 13:05:37 alex_xu: yep 13:06:24 action: alex_xu to update policy docs to remove user_id references to server actions 13:06:24 the modern interpretation of policy is really project based 13:06:43 but it was a json file so people did crazy things in the past, and no one realized :) 13:07:05 so this all seems good, it seems I didn't submit my comments, but I was just wondering about changing the text for that "not openstack bit", I agree with what you mean though 13:07:20 * johnthetubaguy nods at crazy things 13:07:44 johnthetubaguy: yeh, we can word smith that for sure 13:08:01 sdague: not only keypair, also keystone use user_id, that was found when i update doc for user_id 13:08:01 alternative language is helpful, I was trying to get a first draft out there with the actions list detailed 13:08:13 alex_xu: well, keystone *is* different 13:08:20 #action alex_xu to update policy docs to remove user_id references to server actions 13:08:21 because keystone is about users 13:08:30 sdague: totally, that list was the new data, and seems like an OK minimal list to me 13:08:31 so, in keystone, it's fine 13:08:37 #link https://review.openstack.org/325645 13:08:48 #link https://review.openstack.org/#/c/325648/ 13:09:10 but all other projects are about resources owned by projects, and that should be the permissions model 13:09:21 mriedem: yea, it was done, one of merged. due to keystone use it, i just added note about user_id and remove the wrong example for nova 13:09:32 sdague: +1 13:09:48 so folks can be in multiple groups, and groups of one 13:09:50 alex_xu: yeh, merging that doc fix is good 13:09:54 johnthetubaguy: right 13:10:05 i suppose cinder has this same issue probably 13:10:23 and likewise manila, and maybe other projects that were created from nova 13:10:24 I think it also really shines a light on the hierarchical projects use case 13:10:31 sdague: +1 13:11:03 because it turns out that hierarchical projects often don't need dedicated quotas :) 13:11:15 yea, glance too, i remember some test case update for thsoe 13:11:18 which is the hard problem that basically jammed up any future progress 13:12:11 mriedem: yeh, it might be. I think it's somewhat on those projects to keep an eye on it. 13:12:57 we didn't know about it until the operators brought it up right? 13:13:23 a courtesy heads up to the general dev list might be useful for xp stuff, even though there is a thread in the ops list 13:13:25 just a thought 13:14:04 yeh, let's get the spec evolved first 13:14:12 sure 13:14:24 I honestly think that cinder is the only likely place with similar issues 13:14:35 given the use cases that came forward 13:14:52 btw, the abstract on your spec, 13:14:56 exceptionally flowery - good work 13:14:59 you said it would be 13:15:52 well it is a big anniversary of Shakespeare this year 13:15:54 mriedem: :) 13:16:17 you have to do something to make it so people don't fall asleep reading specs 13:16:34 sdague: I certainly appreciate that, rightly or wrongly 13:16:58 ok, so I think we've covered that, please review the spec 13:17:01 next topic? 13:17:16 yup 13:17:35 #topic API Priorities 13:18:00 api-ref first 13:18:07 sdague: any news? 13:18:29 we're down below 100 tags left - http://burndown.dague.org/ 13:18:53 the 0.3.0 os-api-ref went out on friday 13:19:05 that makes open/close sections stateful in the url 13:19:14 and fixes a microversion parsing issue so 2.1 != 2.10 13:19:33 heh, cool 13:19:38 and... there is a microversion selector, though it requires a conf add to nova 13:19:44 wow, nice data presentation. 13:19:45 I'll push a review for that 13:20:07 sdague: you mean drop down selector for microversion ? 13:20:27 I was talking to mugsie, we'll probably have a pop up os-api-ref meeting for the rest of the cycle to work through items on it 13:20:57 he's got a conversion to using the new openstackdocstheme that the rest of the docs moved to, but we have to be careful in how we cut folks over 13:21:12 sdague: but we are adding the microversion attributes in extising api-ref, do we need to undo thsoe? 13:21:26 gmann_: undo what? 13:21:37 i did not completly uderstood the benefit of adding those in v2.1 ref 13:22:12 like -https://review.openstack.org/#/c/325308/ 13:22:14 gmann_: i guess you will understand after you see the sample from sdague 13:22:31 * alex_xu try to find the link 13:22:43 gmann_: http://developer.openstack.org/api-ref/compute/?expanded=list-servers-detail 13:22:53 for the same reason as things like ip6 and the like 13:23:00 and tags 13:23:18 here is https://dague.net/testing/api-ref/ 13:23:27 adding that detail was really the point of the whole move 13:23:39 right, but even without the selector, the "New in" is important 13:23:52 just think about the entire python stdlib document 13:24:12 but example shows v2.1 response only which can be confusing? 13:24:25 because first thing people look is on example 13:25:22 gmann_: if people are only going to look at examples, and not at the parameter definitions, there isn't much we can do about it 13:25:54 it's fine if we specify which version number the response / request for the example is based on 13:26:04 sdague: true but i was thinking if we adding microversion attribute in param then example also should include those. 13:26:25 or we show max microversion response/request 13:26:32 for that API 13:26:36 gmann_: maybe, though I think the example is that, an example 13:26:39 to show some structure 13:26:47 the parameter list is actually the definition 13:27:04 once we have that selector across the top, I think we can change the examples to the "newest" example, but thats a follow up extra thing once we have the main data in there, I think 13:27:08 no API doc you've ever read has an example for every possible perterbation of parameters 13:27:33 johnthetubaguy: I'm also honestly a little unconvinced the selector is going to be clarifying vs. just more confusing to new folks 13:27:43 yea they do not most of the case 13:27:52 sdague: thats true, I just wonder about examples that are invalid in the latest version 13:28:04 johnthetubaguy: invalid is definitely different 13:28:14 and I agree that we should be careful about that 13:28:20 we could go for always show the newest samples, but thats also confusing, as it often includes stuff that is not available in the base version 13:28:30 I think what we have is the best starting point 13:28:32 but... we only have 1 instance of that around the service API right? 13:28:43 I guess the block device name as well 13:28:43 as we have sample for ech version then we can include those per version 13:28:47 e.g. os-getVNCConsole Action and the other type-specific consoles are dead in like 2.5? 13:28:57 mriedem: yeh 13:28:58 I was thinking about live-migrate removing params 13:29:39 so we have a handful, and we're going to need to handle those. But I think we should think about this again as human first content 13:29:40 anyways, its way better than before, where there was zero information 13:29:46 sdague: johnthetubaguy i was thinking if version selector bring up the new param in list 13:30:00 johnthetubaguy: +1 13:30:04 so not build some random hide / show infrastructure for everything, but actually explain, in words, here is an example for X.Y 13:30:15 in X.Z we removed this parameter, so it now looks like 13:30:23 yeah, the words I think are needed here 13:30:32 we could have an example for each edge in each section 13:30:40 documentation is communication, words are needed when things aren't obvious 13:30:52 that would help with get me a network, because today i'm just updating the description with notes https://review.openstack.org/#/c/316398/9/api-ref/source/parameters.yaml 13:30:55 but that's human judgement 13:31:05 would be good to show an example for the v2.31 microversion for get me a network 13:31:11 mriedem: yeh, get me a network is a good instance 13:31:28 it changes server.networks to required and adds new values for networks.uuid, so it's wonky 13:31:31 mriedem: yep, fortunately, we can just add another chunk of examples super easy, it's just another include :) 13:31:38 yeah 13:31:57 so if we have example for each version that will be more clear to understand each version update 13:32:33 gmann_: honestly, no 13:32:42 it will just get super confusing at times 13:32:47 yeah, thats going to be a disaster 13:32:50 explain it with words about what is different 13:32:53 yeah, comparing json blobs with my human eye fails 13:32:58 mriedem: ++ 13:33:10 sdague: yea with word in param definition 13:33:14 good point~ 13:33:32 but where we are going to show microversion's response exmple etc 13:33:56 gmann_: we don't need to show every single possibility 13:33:56 it's good to have sample when structure changed. 13:34:28 sdague: hummm 13:34:30 also, http://www.sphinx-doc.org/en/stable/markup/code.html#directive-literalinclude allows you to have highlighted lines in the example. Which means we can even point out the critical parts 13:34:49 even some microversion change the response completly 13:35:04 gmann_: i think the point is if it's drastic, an example is ok 13:35:11 gmann_: this isn't for machines, it's for humans, this is about ensuring you highlight the important change without drowning people in minor issues that make them miss the point 13:35:14 mriedem: sure 13:35:35 but just adding a couple of parameters to a response, really doesn't need another example in main docs 13:35:43 we also have the rest api version history doc for more detailed prose on each microversion change 13:35:48 mriedem: yep 13:36:32 move on? 13:36:37 yeh 13:36:53 for policy discovery 13:36:57 yea, may be we can go case by case there as per content changes 13:37:12 the spec for CLI merged last week 13:37:30 #link https://review.openstack.org/289405 13:38:00 on the oslo side we're just waiting for https://review.openstack.org/#/c/321243/ to land, and all oslo.policy changes will be in 13:38:15 yea, just found those landed 13:38:41 yeah, the last one 13:38:59 I've been bugging folks to make sure we move this all forward 13:39:17 hopefully we'll get that in this week, and an oslo.policy release 13:39:23 and i'm going to cleanup the policy rules for legacy v2 api 13:39:25 #link https://review.openstack.org/#/q/status:open+project:openstack/nova+branch:master+topic:remove_legacy_v2_policy 13:40:21 the last two patch are https://review.openstack.org/325684 and https://review.openstack.org/#/c/320751/, i probably can make it ready before sleep 13:40:55 alex_xu: awesome 13:41:30 +A on the bottom 2 13:41:47 all these deletes are exciting :) 13:42:06 then the other legacy v2 cleanup can be running in backaround, nothing urgent. 13:42:13 sdague: yeah :) 13:42:21 * edleafe like deleting code 13:42:36 alex_xu: sdague will be quick for you, extension setting cleanup in sample tests- https://review.openstack.org/#/c/326810/ 13:43:00 once we are ready of the policy changes, I think the OSIC folks are keen to help with the heavy lifting of moving the defaults into code 13:43:08 gmann_: cool, will look after the meeting 13:43:11 johnthetubaguy: great 13:43:18 sdague: Thanks 13:43:18 gmann_: cool! 13:43:21 so... are we done with priorities? 13:43:34 johnthetubaguy: ++ 13:43:44 i guess so 13:43:51 because I want to raise a thing about the v2.1 entry points (more for open discussion) 13:43:54 what about api deprecations? 13:44:17 mriedem: right... I am still on the hook for a spec on the api deprecations (non proxy) 13:44:24 I can probably write that up this week 13:44:34 is code up for the proxy apis? 13:44:36 I'm only good with about 1 spec per week on authoring 13:44:38 mriedem: nope 13:44:45 sdague: all specs and all code and all reviews all of the time 13:44:47 c'mon 13:45:05 np, was just wondering 13:45:06 mriedem: sorry, still working on API #1 priority, which is docs :) 13:45:13 and... the glance v2 land 13:45:23 yeah i think technically policy and docs were priority 13:45:31 mriedem: yep 13:45:45 I'll get the spec up for the deprecations this week 13:46:22 the actual code probably won't happen till after midcycle for either, given what my schedule (including vacation) looks like between now and then 13:46:51 is this something the OSIC folks could help with, I guess the spec will be quite prescriptive? 13:46:57 johnthetubaguy: yep, maybe 13:47:18 johnthetubaguy: the proxy one is approved 13:47:23 you could have them dive there now 13:47:34 i'd caution, 13:47:45 with maybe starting with one api proxy so we're comfortable with the pattern 13:47:49 if the osic people are doing it 13:48:04 sdague: good point, I will ask 13:48:14 * alex_xu also free for some coding 13:48:22 mriedem: yeah, a good example to copy would be good 13:48:29 sounds like alex_xu may have offered to do that bit 13:48:32 i can also help if needed 13:48:54 gmann_: sounds good 13:48:55 johnthetubaguy: yeah, i can take a look at 13:49:07 ok, alex_xu / gmann_ if you want to start diving on that spec, that would be awesome 13:49:24 and help osic folks as they come up to speed 13:49:30 ++ 13:49:32 sdague: sure 13:49:47 sdague: yeah 13:50:05 but i'm in vacation next week... 13:50:08 ok... are we good on that? 13:50:25 sdague: yea 13:50:28 yup 13:50:28 because I have another item to start people thinking about 13:50:39 #topic open 13:50:45 even though we deprecated and removed all our config options around extensions 13:50:54 we still have lots of things as entry points 13:50:56 https://github.com/openstack/nova/blob/f10349a60d8fd0c8556b9024e20c2b0349015be4/setup.cfg#L158-L170 13:51:05 so people can back door some things 13:51:07 the stevedoor stuff, good point 13:51:37 feels like we should be dropping that stuff too? 13:51:42 while I think we should get rid of all of that... the thing I really think we need to prioritize getting rid of the the extending existing resources 13:51:53 ah, the messy bits, yeah 13:51:58 because that is super complicated and confusing code 13:52:22 and causes bugs like https://review.openstack.org/#/c/315964/2/nova/api/openstack/compute/extended_server_attributes.py 13:52:31 i guess that is the first step for deprecating extension 13:52:50 is that like adding disk_config to the server response? 13:52:54 mriedem: yep 13:53:00 yea 13:53:01 ok 13:53:31 mriedem: the point is not to change our responses, but to stop doing that in 8 different decorator hops 13:53:33 mutated dicts via extension listeners is always a great stability pattern 13:53:39 mriedem: yeh, exactly 13:53:57 but if merging all modules into a single place, the code servers.py will become huge and complicated 13:54:05 oomichi_: but it will be in one place 13:54:14 now it's huge, complicated, and distributed 13:54:14 you can always break each part into private methods 13:54:22 mriedem: +1 13:54:34 its better than a single real entity spread between N files 13:54:40 johnthetubaguy: ++ 13:55:20 doing the api-ref docs work really drove home how confusing it is in the current format to even figure out what's in these responses without running all the code 13:55:32 and this directly inhibits people contributing 13:55:43 humm, that seems difficult balance 13:56:07 so, again, maybe we start with normalizing one of these and see the pattern 13:56:12 before getting overwhelmed 13:56:13 mriedem: agreed 13:56:19 and maybe servers.py still continues growing by additional microversions later if merging 13:56:45 seems like main issue is with server.py which becomes too huge 13:56:56 but yeah, I agree with that new developers will be confused due to current mechanism 13:56:58 oomichi_: if servers.py is too big and complicated for use to have it in our tree, the responses over the wire are probably too big and complicated for realize users 13:57:13 oomichi_: not just confused, and not just new developers 13:57:19 but i like the mriedem idea to out in private methods 13:57:20 * alex_xu still feel we check microversion deep in the code. the coe become complex 13:57:25 put 13:58:00 when mriedem was reviewing some api-ref change I had, we litterly had 2 hours of git links walking through where things were injected magically in resize 13:58:11 to prove we were right 13:58:18 with people that have worked on the project for 3 years 13:58:20 right, and we kinda know where to luck 13:58:29 but i'm exceptionally dense 13:58:30 it's basically impossible for anyone else to understand this layer 13:58:31 don't forget 13:58:35 sdague: :) truea and SHOW too 13:58:53 sdague: yeah, nice point 13:59:20 1 minutes 13:59:23 *minute 13:59:25 so, I'll propose some small patches to unwind a thing here and see how it goes 13:59:32 oops, mriedem thanks 13:59:38 but start thinking about the fact that we want to get rid of these entry points 13:59:39 i also spent lot of time to re verify the response schema in tempest 13:59:48 * alex_xu forget the time again 14:00:07 sorry, let's back to openstack-nova 14:00:10 #endmeeting