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