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