12:00:10 #startmeeting nova api 12:00:11 Meeting started Tue Mar 1 12:00:10 2016 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:12 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 12:00:14 The meeting name has been set to 'nova_api' 12:00:15 who is here today? 12:00:18 hi 12:00:48 o/ 12:01:08 today is quite 12:01:29 #topic API futures - patches for approved specs 12:01:40 o/ 12:01:57 we finish the goal we merge the LM patches \o/ 12:02:06 last week 12:02:27 anything people want to bring up today? 12:03:20 sdague: we will freeze the client in Thursday also? 12:03:47 alex_xu: yes, I think so, so probably we should get people to prioritize looking at the microversion lands in the clients 12:04:08 so that we can actually have users have these features on the command line 12:04:38 yea, those LM API client patch didn't merge yet 12:05:00 #link https://review.openstack.org/281335 12:05:04 there is the first one 12:05:17 #link https://review.openstack.org/#/c/260383/ 12:05:19 there is the last one 12:06:05 then we won't have any more api patch landing in Mitaka 12:06:21 right, I'm pretty sure we're done on API patches for Mitaka 12:07:07 sdague: https://review.openstack.org/281143 I changed this to the way you like, but I think it isn't hurry, it still can be merged after freeze 12:07:52 o/ 12:07:56 I guess no more question, then let's move on 12:07:58 Sorry to be late, internet connection very bad today in our office 12:08:01 alex_xu: right, that patch looks good 12:08:08 alex_xu: thanks for handling that 12:08:09 sdague: how about https://review.openstack.org/#/c/248662/ 12:08:13 sdague: np 12:08:30 sdague: as we are deprecating hook but still we should fix this issue? 12:08:40 gmann_: let's come back to that in open discussion 12:08:42 sdague: or not so critical 12:08:48 sdague: sure 12:09:05 #topic Nova Microversion testing in Tempest 12:09:18 gmann_: sdague your turn 12:09:32 I believe we landed the change that gmann_ posted for that 12:09:38 sdague: yea 12:09:45 gmann_: where do we stand now? 12:10:01 sdague: alex_xu i have posted other 2 patches to migrate to /lib and support microversion in all clients 12:10:07 o/ sorry I'm late 12:10:17 sdague: https://review.openstack.org/#/c/284387/ https://review.openstack.org/#/c/284414/ 12:10:34 sdague: after those we can implement any microversion tests 12:10:40 sdague: if you can have look into those 12:11:07 gmann_: sounds good 12:12:04 sdague: do you link for v2.20 tests patch 12:12:11 sdague: i can update that if you like 12:12:28 gmann_: oh, right, that would be great 12:13:43 sounds we are good at here, so let us move on? 12:14:04 alex_xu: yea. 12:14:11 #topic open 12:14:32 #link https://review.openstack.org/#/c/248662/ 12:14:38 gmann_: sdague ^ we can back to this 12:15:00 right, so there is a mailing list thread about nova.hooks now 12:15:15 basically, I think we should either be testing this or deprecate it 12:15:27 if the deprecation patch lands, then I'm happy taking the fix without functional testing 12:15:35 sdague: +1 for deprecate 12:15:48 because spending a bunch of time functional testing a features we're going to remove in the near future is busy work 12:16:11 humm, right 12:16:20 yes 12:17:11 it is a medium prority bug, so sounds ok, not critical for something 12:17:26 at least not critical for this point 12:17:48 yea 12:17:49 gmann_: I updated my review comment 12:18:40 sdague: i see. Thanks 12:19:03 so there were a couple of other interesting API bits that cropped up 12:19:25 have people noticed the regression tests in tree? 12:20:02 yeah 12:20:03 sdague: no, do you have link? 12:20:04 https://github.com/openstack/nova/blob/10da208f02fee532171d1d9e4667d0b71c455b8a/nova/tests/functional/regressions/README.rst#L13 12:20:36 I started building a little mini framework for building a functional test for a bug to verify behavior before a fix, and after 12:21:01 it is most applicable to API bugs 12:21:21 or, anythign you don't need actual libvirt for 12:21:34 https://github.com/openstack/nova/blob/10da208f02fee532171d1d9e4667d0b71c455b8a/nova/tests/functional/regressions/test_bug_1522536.py 12:21:39 sdague: oh, that's very nice 12:22:14 anyway, I found it easier to think about some of the api bugs by actually building the reproduce in tree, then fixing the code for them 12:22:21 sdague: is there clear rule which kind of bug need add that regssion test? 12:22:27 sdague: it is written that, those can removed later if needed but should not we keep those as normal tests? 12:22:43 gmann_: honestly, I figured we'd keep them unless they got in the way 12:23:11 alex_xu: I think any bug is fine. We're not going to make this a requirement of any bug 12:23:22 but if you want to do that, it's a good way to go 12:23:29 sdague: and keep moving those to functional tests if suitable? 12:23:45 gmann_: I don't know, I think I'm fine if they are just in this directory 12:23:58 ok 12:24:10 this is not about covering every possible edge case, it's about covering issues that come up often enough that people bothered to report bugs on them 12:24:18 sdague: those will run as functional tests gate job right 12:24:22 gmann_: yes 12:24:30 ok 12:25:08 alex_xu: I'm actually surprised your patch is passing this - https://github.com/openstack/nova/blob/10da208f02fee532171d1d9e4667d0b71c455b8a/nova/tests/functional/regressions/test_bug_1541691.py 12:25:16 we should figure out what's happening there 12:25:44 sdague: emm...that is interesting, I will take a look it 12:25:55 we should just look at the test run in detail after the meeting 12:26:09 sdague: ok, cool 12:26:12 the other thing of note is the case sensitivity issues on metadata 12:26:48 http://lists.openstack.org/pipermail/openstack-dev/2016-February/087404.html 12:27:04 I think we've resolved that metadata keys are just going to be non case sensitive 12:27:09 because of mysql 12:27:21 but that means some python code to deal with it 12:27:22 it is just keys that's the issue, not values? 12:27:28 just keys 12:27:36 then yeah, that seems reasonable 12:27:46 because of the way that lookups / deletes are processed 12:28:48 that has some api implications, and I guess the real question is should we be enforcing lower case in the jsonschema for these 12:29:01 because the current behavior is all wonky 12:29:57 although, I think, largely synthetic. They look like the kind of bugs a qa team finds when they are poking at the world. I haven't seen a bug that looks like an actual field issue yet. 12:30:23 anyway, those were my API related things 12:30:31 yes, I didn't think any people depend on that also 12:30:40 humm, yea 12:30:54 it is ok for enforcing lower case in the jsonschema 12:31:20 right, I don't know how much people might be setting upper case things today 12:31:29 but will that be ok for DB support case sensitive keys? 12:31:41 gmann_: it won't break there 12:31:51 * gmann_ still need to read full mail 12:32:08 sdague: but json schema will block upper case right 12:32:13 oh, right, so the issue is if we are going to fully enforce at json schema, then we'll also probably need a data migration to force all the keys to lower in the db 12:32:19 gmann_: right 12:32:42 alex_xu: sdague: just to confirm on python-novaclient, we have to make the final release for Mitaka sometime before the end of Thursday, as I understand it 12:32:45 I think something like that probably needs an ops email, just to figure out if anyone is using upper case 12:32:51 johnthetubaguy: yep 12:32:56 johnthetubaguy: thanks, got it 12:32:57 sdague: yea 12:33:16 not sure an Ops email helps though, isn't this an end user facing API? 12:33:26 sdague: is it ok just using a python code to convert the data from the db, then needn't data migration? 12:33:28 johnthetubaguy: and I think any API team focus should be on landing microversions in the client to support these new LM features 12:33:38 sdague: +1 12:33:40 johnthetubaguy: well, the first one is aggregate metadata 12:33:46 that's not user facing 12:33:54 ah, OK, true, I was thinking about server metadata 12:33:59 server metadata is also an issue 12:34:06 and... I agree, that's more complicated 12:34:29 I was thinking we should fix server metadata, and make the others match 12:34:49 ok, well aggregate metadata was the one we were working on first 12:35:15 mostly because if we get push back on the fix once people deploy it, it's easier to unwind 12:35:41 ah, yeah, thats true 12:35:57 any mess up there, is less impacting 12:37:35 * eliqiao is still on line ? 12:37:49 johnthetubaguy: now that you are back up, the nova.hooks deprecation patch is updated 12:38:19 I also looked through the thread, and am skeptical about the usefulness of taking this to the ops list, because I have no idea what we'd do with the feedback 12:38:49 as I don't think anyone has said that crytalizing the current interface is a good idea 12:40:12 ok, anything else today? 12:40:17 we seem to have stalled out 12:40:20 yes 12:40:24 I got one bug. 12:40:31 eliqiao: ok, cool 12:40:35 #link https://bugs.launchpad.net/nova/+bug/1536513 12:40:35 Launchpad bug 1536513 in OpenStack Compute (nova) "os-getConsoleOutput fail with 500" [Medium,Confirmed] - Assigned to Eli Qiao (taget-9) 12:41:12 The thing is, we don't handler that exception in REST API layer. 12:41:23 yeh, that seems like a thing we should fix 12:41:28 And neither do compute api layer. 12:41:33 also, I think it should be a 404 not a 400 12:41:45 because it's a console doesn't exist for that guest, right? 12:41:52 I think we should check more detail, ensure the virt driver raise a useful exception 12:42:01 sdague: not all drivers raise same exception for example https://github.com/openstack/nova/blob/master/nova/virt/hyperv/vmops.py#L667 12:42:14 sdague: for others, they raise NovaException. 12:42:31 eliqiao: ok, I would suggest making a standard exception for that 12:42:42 and getting all the virt drivers use that 12:42:53 drivers should cast to unified exception themselves and reraise yeah? 12:42:53 maybe a couple, depending on the failure modes 12:43:15 sdague: sometime people just raise NovaException for unexpected error, and we should return 500 for unexpected error? 12:43:21 cdent: right, some kind of detail that can be translated at the top layer 12:43:41 alex_xu: I think that's probably ok in general 12:43:50 yeah, I think we need to deep into driver case by case. 12:43:56 as we see these issues, we should try to make them more defined behavior 12:44:44 sdague: I am think that in compute api layer(or compute manager) catch exception then do a reraise? 12:44:46 sdague: ok, just afriad that will hide some bug 12:45:02 alex_xu: a 500 error is always a bug 12:45:11 we even tell people to report them all 12:45:31 hmm... yeah, we do have that information to remine them to report bug... 12:45:36 sdague: so for RPC timeout, should we catch them? 12:45:53 alex_xu: was that the root issue here? and RPC timeout? 12:45:59 but somthime it's the driver itself's issue not of nova... 12:45:59 this is my first look at this bug 12:46:00 sdague: maybe timeout just for huge load 12:46:31 ok, what do you believe the root issue is here? 12:46:46 maybe we can work backwards from there, because I think I've gotten myself turned around 12:47:04 sdague: alex_xu or other folks, can you help to leave some comments on that bug. 12:47:07 sdague: ok 12:47:16 eliqiao: sure, yeh, lets just leave comments on the bug 12:47:31 sdague: thx. 12:47:52 https://github.com/openstack/api-wg/blob/master/guidelines/http.rst, API wg has some comments on the MessageQueueTimeout 12:48:18 seems in their guideline 500 is acceptable if timeout 12:49:00 jichen: I think in some cases that's fine 12:49:09 sdague: ok 12:49:23 I got one issue if eli's is done 12:49:23 5xx is really supposed to mean "your servers are broken / breaking" 12:49:24 https://review.openstack.org/#/c/276144/ 12:49:36 hitting rpc timeouts seems to be in that camp 12:49:46 yeah 12:50:15 sdague: yea, that is what i'm thinking, some exception raise because server broken 12:50:59 jichen: what does neutron return in these cases? 12:51:00 my question is whether we need microversion if change from 503 to 409 , our microversion document didn't mention it's aceeptable to do this without microversion 12:51:06 alex_xu: does server mean nova? 12:51:19 jichen: not needed in v2.1? 12:51:21 alex_xu: what if lowlevel broken? 12:51:26 eliqiao: yeah, or the component of nova 12:51:46 jichen: I think we ended up with not needed when downgrading a 500 error 12:51:53 gmann_ : I changed v2.1 code 12:52:05 sdague: you mean 5xx error? 12:52:08 yes 12:52:12 ok 12:52:29 I can comment back on it 12:52:40 I was already +2 on it 12:52:49 ok, anything else? 12:52:50 I don't have chance to try neutron, will try and update it in the patch 12:52:59 also, I will write a follow up to change the microversion doc 12:53:06 I have a feeling we said no bump if its an existing error message, but yeah, removing a 500 seems like another case we shouldn't have to bump 12:53:17 we wouldn't want to leave the 5xx error in the old API versions, thats the key bit 12:54:00 johnthetubaguy++ 12:54:13 +1 12:54:45 i too +1 on not version bump for 500 fix, but we should update doc too 12:55:28 yeah 12:55:28 +1 12:55:33 +1 12:55:42 I remember our devref said that 12:56:01 yeah, it's bug fixing, so no bump 12:56:20 ok, anyway, no more from me 12:56:25 " Fixing a bug so that a 400+ code is returned rather than a 500 does not require a microversion change." 12:56:30 http://docs.openstack.org/developer/nova/api_microversion_dev.html 12:56:56 johnthetubaguy: cool, thanks 12:57:15 ok, anything else? 12:57:25 nothing from me 12:57:29 not from my side. 12:57:44 3... 12:57:46 2.. 12:57:49 1. 12:57:51 thanks all! 12:57:52 bye 12:57:54 #endmeeting