12:00:09 #startmeeting nova api 12:00:10 Meeting started Tue Aug 18 12:00:09 2015 UTC and is due to finish in 60 minutes. The chair is alex_xu. Information about MeetBot at http://wiki.debian.org/MeetBot. 12:00:11 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 12:00:13 The meeting name has been set to 'nova_api' 12:00:20 o/ 12:00:25 who is here today? 12:00:35 o/ 12:00:54 o/ 12:01:09 hello everyone~ 12:01:10 I have a feeling sdague is away, but I might have my weeks mixed up 12:01:25 yea 12:01:38 let's get start 12:01:48 #topic actions from last meeting 12:02:17 there are two actiosn for sdague~ so we can't ensure this week 12:02:56 one from me about cleanup elevated context 12:03:11 I created bp for it https://blueprints.launchpad.net/nova/+spec/cleanup-elevated-context 12:03:20 that will be M release work item 12:03:35 what were the actions for sean? 12:03:45 sdague to build experimental devstack/tempest job to test v2.0 on v2.1 12:03:50 sdague to find gerrit query to pull all API changed specs 12:03:57 cool 12:04:17 let's check with him when he back, or next week 12:04:42 #action check sdague his action in next week meeting :) 12:05:25 the last one is about checking merge api samples status, and gmann_ in the meeting today, let us talk about that later 12:05:38 experimental devstack/tempest job to test v2.0 on v2.1 is interesting 12:05:46 #topic v2.0 on v2.1 12:05:54 gmann_: yea 12:06:07 so this change is interesting: https://review.openstack.org/#/c/214085/3 12:06:13 see the tempest failures 12:06:15 #info bp relax-api-validation is finished 12:06:56 alex_xu: except, we break tempest 12:07:01 johnthetubaguy: we remember we said create v2 on v2.1 endpoint after we have tempest experimental job for relax validation? 12:07:19 johnthetubaguy: hummm 12:07:26 johnthetubaguy: emm..... 12:07:28 I didn't but that makes some sense 12:08:38 tempest.api.compute.servers.test_server_metadata_negative.ServerMetadataNegativeTestJSON looks to be failing 12:08:41 but it's worth take a look at what happend for tempest failure in https://review.openstack.org/#/c/214085/3 12:08:57 I guess thats because of the relaxed validation? 12:10:02 johnthetubaguy: alex_xu may be validation is fully relaxed as of v2 12:10:17 not sure, it return 500, looks like some unexpected exception raise up 12:10:25 or there might be valid failure as per v2.1 strong validation 12:10:30 I think its just tempest is adding extra props, which we don't check 12:10:38 ye, need to look up those 12:10:52 I suspect v2 used to validate that, but v2.1 with relaxed validation is not 12:11:13 johnthetubaguy: yea seems like that 12:11:36 anyway, my idea is to get that patch into liberty 12:11:43 default to v2.1 for everything 12:11:47 johnthetubaguy: in those case we need to put such validation in python code 12:11:49 remove v3 endpoint 12:11:51 yea 12:12:15 johnthetubaguy: +1 12:12:36 +1 12:12:38 johnthetubaguy: tomorrow i have plan to rebase all merge tests thing and have you patch depends on those 12:13:00 gmann_: my patch does depend on all those already 12:13:39 johnthetubaguy: gmann_ means depend on https://review.openstack.org/#/q/status:open+project:openstack/nova+branch:master+topic:merge_sample_tests,n,z 12:13:40 anyways, I think we are agreeing the end goal 12:13:59 alex_xu: gmann: ah, OK 12:14:07 alex_xu: gmann: not sure thats needed 12:14:07 johnthetubaguy: on v3 tthings but not on functional tests merge.thats why nova functional job fail 12:14:14 yea 12:14:45 gmann: I don't see any test failures after my patch though, unit test wise, its just the tempest issues 12:15:09 anyways, I think the key thing is, v2.1 by default, deprecate v2.0 and remove v3 12:15:29 now to do that, we might need some tempest tweaks, including those sdague was going to be looking into for us 12:15:56 johnthetubaguy: i can look tomorrow in JST if i find time 12:16:14 gmann: you mean the tempest failures? 12:16:19 yea 12:16:31 gmann: cool, that would be good, thanks 12:16:36 gmann_: thanks 12:16:41 gmann_: I also can give help on it 12:16:41 np 12:16:54 alex_xu: sure thanks 12:17:00 anyway we are on almost same timezone 12:17:18 OK, I guess we are done with this bit? maybe? 12:17:27 alex_xu: yea 12:17:31 #action gmann_ and alex_xu take a look at tempest failure of https://review.openstack.org/#/c/214085/3 12:17:45 #topic policy.json updates to remove admin hard code at the db level 12:18:01 #link https://review.openstack.org/#/q/status:open+project:openstack/nova+branch:master+topic:bp/nova-api-policy-final-part,n,z 12:18:09 The last one patch is ready! 12:18:24 johnthetubaguy: if you have time, it is easy patch 12:19:15 cool 12:19:24 looks good 12:19:49 then nothing need to do in Liberty for this, will remove it from the agenda 12:19:51 yep 12:19:59 ok, let's move on 12:20:04 #topic Test collapse of v2.0 and v2.1 12:20:25 already metion a little 12:20:26 #link https://review.openstack.org/#/q/status:open+project:openstack/nova+branch:master+topic:merge_sample_tests,n,z 12:20:47 after gmann_ rebase those patch, then we need a lot of review for them 12:21:02 alex_xu: yea, around 80% is done. left out i will finish by tomorrow 12:21:10 then those will be ready for review 12:21:31 gmann_: so we can remove v3 endpoint after those patches merged, right? 12:21:34 do we have a blueprint to track the progress of all this? 12:21:40 I think that would be useful 12:21:47 alex_xu: yea, we can remove 12:22:09 johnthetubaguy: we do not have BP, should i create one? 12:22:10 I guess not 12:22:20 #link https://etherpad.openstack.org/p/merge_sample_tests 12:22:23 gmann_: create one, and pass me the link and I can get that approved 12:22:29 as I know, gmann_ use etherpad track them 12:22:40 now I think this is lower priority that some of our other efforts, but I could me missing something 12:22:47 johnthetubaguy: sure 12:22:59 johnthetubaguy: just BP not spec right? 12:23:04 gmann_: yes 12:23:09 ok 12:23:24 if you want to remove v3 endpoint from api-paste.ini, then it isn't low priority... 12:23:51 alex_xu: the unit tests pass right now when I removed that, somehow 12:24:17 johnthetubaguy: yea, the main problem is functional test 12:24:26 johnthetubaguy: UT will pass. actually some functional tests use /v3 12:25:08 ah, so I totally didn't see that one, gotcha 12:25:12 johnthetubaguy: current merger tests work make them on v2.1 and v2 12:26:24 almost all the patch at here, the patch review is high priority 12:27:00 ok, so no more question for this? 12:27:34 ok, let's moving one 12:27:39 #topic Removal of v3 naming from source tree 12:27:54 all the file moving are done! 12:28:02 \o/ 12:28:04 so there is the v21 vs no version debate 12:28:19 yeah, top job on getting the moves done, awesome to see :) 12:28:29 johnthetubaguy: +1 12:28:43 yea, v2.1 is name for nova new api with microversions 12:28:56 and actually v2.1 always bump it's version 12:29:03 I've always felt that versions in the URL are an anti-pattern 12:29:14 so we prefer not mention the version in the code 12:29:14 edleafe: sure, but they are there now, sadly 12:29:28 johnthetubaguy: can you think of a better time to remedy that? 12:29:43 edleafe: its too late, I feel 12:29:50 we are changing the way we approach versioning 12:29:54 edleafe: at least we don't have v2.13 in the URL 12:30:03 johnthetubaguy: heh 12:30:13 that would be horrible 12:30:24 but it shows that versions simply don't belong there 12:30:26 and it will difficult to remove as uri has tenant-id also 12:31:00 so we are keeping compatiblity with the old APIs, so the /v2 and /v1.1 have to stay 12:31:03 gmann_: yea, it also a problem 12:31:20 unfortunately, we have already released v2.1, so that has to stay too 12:31:30 anyway look like we have agreement on this. 12:31:44 yeah, lets talk about liberty 12:31:55 the class names 12:31:56 how about /v∞ 12:31:59 what should they be 12:32:08 edleafe: sure 12:32:25 :) 12:32:47 I'm working on update this https://review.openstack.org/212734 12:33:02 class names: definitely not V3; probably V21 for now 12:33:07 remove the V21 prefix from the class name 12:33:16 we can always change in M 12:33:32 when we drop v2 12:33:34 alex_xu: me also on side to not hve v21 in class nme 12:34:16 so the worse case, is leaving v3 in there 12:34:20 edleafe: is it ok for you? let's remove it for now, as we already touch them 12:34:34 alex_xu: sure 12:34:35 as long as v3 goes, I am happy really 12:34:41 I think we needn't remove V21 form those test class https://github.com/openstack/nova/blob/master/nova/tests/unit/api/openstack/compute/test_access_ips.py#L32 12:34:50 so here is the thing 12:35:04 I was thinking more gradual until the dual-support ends, but I'd love to get rid of it now 12:35:09 that is used to distinguish v2 and v2.1 unittest in the same file, after we remove v2 code and test, we cleanup them 12:35:15 v3 -> v21 might be better to be consistent with those other ones 12:35:56 then maybe we remove all v21 when we drop the v2 code (probably in O release) 12:36:42 so I have a lean towards v21 for the moment 12:37:00 ok, if we think keep V21 for now is more clear, I'm ok with that 12:37:14 plan looks good 12:37:16 just in terms of consistency I guess 12:37:22 johnthetubaguy: that's pretty much what I was thinkning 12:37:23 yea 12:37:32 thinking, even 12:37:36 ok, I needn't update the patch 12:37:58 ok, so we have consistency now, let's move on 12:38:06 cool 12:38:27 #topic API Documentation Improvement 12:38:35 so we're keeping V21 in class names and URLs? 12:38:40 what I woke up for! 12:38:52 morning, annegentle! 12:38:52 edleafe: V21 in class, not URL 12:38:59 annegentle: morning 12:39:10 edleafe: use '/v2' in the unittest 12:39:31 edleafe: its in there, and we released the API already, don't think we have a choice now 12:39:47 edleafe: / is the API that lists the available versions 12:40:07 alex_xu: you should record those with the #agreed action 12:40:25 ha, we have such command 12:40:25 johnthetubaguy: understood. Not ideal, but necessary at this point 12:40:55 yeah, I think its the best option of those we had available at the time 12:41:02 alex_xu: yeah, I think only the chair can use that one 12:41:11 #agreed use V21 for class name for consistency now. After v2 api removed, we will remove V21 prefix from the class name also 12:41:54 #agreed use '/v2' in the unittest that is consistency with existed unittest 12:42:13 back to the doc 12:42:31 I think we might need to change the unit tests, eventually, but yeah, lets not worry about that for now, its docs time 12:42:35 alex_xu: did you get a chance to look at fairy-slipper? 12:42:55 johnthetubaguy: +1. i have plan to do that 12:43:06 annegentle: yea, I take a look at few weeks ago, but honest a little hard to get understand it 12:43:07 Also I've updated the API docs spec to describe how to write conceptual information https://review.openstack.org/#/c/209669/ 12:43:20 annegentle: any doc how to use it, and how it structure 12:43:22 you can write more content in nova/docs/ and we'll publish to developer.openstack.org 12:43:35 so, just for the avoidance of doubt, docs are the most important API issue to get straight this release, and we have lost our way a little on that 12:43:35 alex_xu: no, sorry, and I know that's a big limiter. So far I know this: 12:44:16 run migrate.sh to clone a copy of the api-site and then look for errors in the WADL 12:44:22 alex_xu: annegentle : does fairy-slipper does same as json-home? 12:44:43 run a pecan server to serve the Swagger and RST content 12:44:51 as we have pln for json-home which generate api info from mapper 12:44:53 do we still have WADL for all our different versions? 12:45:27 gmann_: fairy-slipper should let us serve reference content 12:45:33 #link http://fairy-slipper.russellsim.org/swagger-ui-jensoleg/#!/images/get_tenant_id_images 12:45:36 that's an example 12:45:50 annegentle: do you have examples where it deals with version changes? 12:45:56 johnthetubaguy: for v2 and 21 yes and fairy-slipper has helped detect where the source doc is wrong 12:46:14 johnthetubaguy: not yet I have a related question for this group tho 12:46:22 annegentle: we have lots and lots of versions though now 12:46:42 annegentle: Thanks. ll look 12:46:57 Inheritance or annotation? Examples: 12:47:04 https://github.com/openstack/nova/blob/master/nova/api/openstack/rest_api_version_history.rst 12:47:10 :http:get /image/ 12:47:10 :inherits: /image/@>1.1 12:47:13 or 12:47:30 (oh followed by) 12:47:31 :parameter image_id: an image id 12:47:32 or 12:47:39 :parameter image_id@>1.1<3.0: an image id 12:47:43 it could be removal or addition, technically, in a new version 12:47:53 so the parameter exists in versions greater than 1.1 but less than 3.0 and would only appear in the documentation within that version range 12:48:11 so I guess its a whole new doc tree for each version? 12:48:33 do the users get to see "changes" since the last version inside those docs at all? 12:48:39 I am thinking about the python docs 12:49:23 johnthetubaguy: What we talked about is the drop down list next to Version: here https://libgit2.github.com/libgit2/#HEAD 12:49:36 johnthetubaguy: how that's sourced I don't recall 12:49:40 yeah, I was thinking something more like this: https://docs.python.org/2/library/unittest.html#unittest.TestCase.setUpClass 12:49:50 but in a REST API sense 12:50:05 johnthetubaguy: that's what that above question about params tries to encapsulate 12:51:07 annegentle: yeah, gotcha, I think 12:51:51 johnthetubaguy: I think that the versions will be sourced from the python code so all different versions of the doc will be in that doc string 12:52:04 we'll want to make nav consistent for every API 12:52:10 annegentle: yeah, that makes sense 12:52:24 so we need to get to a point of generating the docs 12:52:28 who is taking on that job? 12:52:48 at least scoping the scale of the problem 12:54:02 I can run the code locally now, but Russell Sim is working on the display/rendering. I'd like a volunteer to ensure they understand the decisions / output for microversions 12:54:11 I am sensing a tumble weed 12:54:14 so don't feel like you're signing up for a huge pile of work. 12:54:16 heh 12:54:30 johnthetubaguy: send out a call for help 12:54:55 yeah, I kinda want the subteam to own the call for help here, but happy to back that up if needed 12:54:59 #link https://github.com/russell/fairy-slipper 12:55:24 annegentle: so is the ask, look at the sample stuff thats been rendered and check it? 12:55:56 johnthetubaguy: look at the code base, ensure you understand what it's doing, correct if it isn't going to work for nova 12:56:04 OK, got it 12:56:13 so does anyone know if we have up to date WADL 12:56:15 sorry, I reboot the laptop.... 12:56:17 johnthetubaguy: we've caught and fixed WADL source bugs (still working on one myself) 12:56:22 I get the impression thats a no? 12:56:25 johnthetubaguy: this tool detects errors in the WADL 12:56:58 annegentle: where is the WADL coming from, I don't remember us updating that ever 12:57:16 I can help on any microversion question 12:57:32 johnthetubaguy: right it is in the api-site repo and authored over years 12:57:43 annegentle: is there gerrit for https://github.com/russell/fairy-slipper? 12:58:04 annegentle: thats what I was worried about, its not auto generated 12:58:15 alex_xu: no, but we think it can live as a common library 12:58:24 johnthetubaguy: this migration process will then autogenerate swagger 12:58:33 johnthetubaguy: the wadl conversion is a baseline to compare 12:58:56 we are run out of time, have to move on 12:59:14 alex_xu: what topics did we not cover today? 12:59:26 #help Take a look at https://github.com/russell/fairy-slipper 12:59:34 no exactly 12:59:42 #topic open 12:59:51 annegentle: Thanks. ll look sometime 12:59:55 With less than 60 days until release it's crucial we get this doc generation working. I know I'm "preaching to the choir" 12:59:56 sorry just jump to open, avoid some body need help in open 13:00:02 johnthetubaguy: BP for test merge - https://blueprints.launchpad.net/nova/+spec/test-collapse-v2-and-v21 13:00:21 annegentle: yea, will try to undersand fairy-slipper again 13:00:25 alex_xu: can you ask on the ML for some help with this? 13:00:43 johnthetubaguy: you mean fairy-slipper? 13:00:49 yeah 13:00:57 we need that doing 4 weeks ago, basically 13:01:06 johnthetubaguy: yea, that is right way 13:01:21 sorry, we have to close the meeting 13:01:31 we do, lets move on 13:01:31 #endmeeting