17:00:07 #startmeeting cinder-nova-api-changes 17:00:08 Meeting started Thu Feb 9 17:00:07 2017 UTC and is due to finish in 60 minutes. The chair is ildikov. Information about MeetBot at http://wiki.debian.org/MeetBot. 17:00:09 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 17:00:11 The meeting name has been set to 'cinder_nova_api_changes' 17:00:20 scottda DuncanT ameade cFouts johnthetubaguy jaypipes takashin alaski e0ne jgriffith tbarron andrearosa hemna erlon mriedem gouthamr ebalduf patrickeast smcginnis diablo_rojo gsilvis xyang1 raj_singh lyarwood 17:00:22 hey 17:00:27 o/ 17:00:57 hi :) 17:01:00 o/ 17:01:06 * johnthetubaguy lurks 17:01:16 let's wait a bit before starting 17:01:30 o/ 17:02:29 mep 17:03:22 ok, let's deep dive in the today's meeting 17:03:26 jgriffith: metadata metadata metadata 17:04:04 I would like to touch on the items we might be able to get done before the PTG and also PTG planning as mriedem1 was suggesting too earlier today 17:04:50 we have a patch up for review in devstack-gate that will allow us to start testing Cinder V3 in the placement API job in Nova 17:05:04 link? 17:05:34 #link https://review.openstack.org/#/c/326585/ 17:05:45 oh that 17:06:10 mriedem: yep, this is the dependency one on the infra side 17:06:37 yeah i was expecting to see some DNM hack patch to do some immediate testing 17:06:46 mriedem: I think we don't have anything further prepared yet. Do you think we should try to put together something before this one gets merged? 17:06:54 i'm also wondering what the project-config change looks like, because we could stack that on top of this in d-g to hack it out for now 17:07:08 because then the cinder v3 in nova patch can depend on that for testing 17:07:10 smcginnis POOF@ 17:07:59 jgriffith: ;) 17:08:23 sdague: is localrc_set in devstack-tools? 17:08:36 mriedem: I would guess we need to set the catalog_info to V3 at some point 17:08:44 mriedem: currently, it's using a devstack shell function 17:08:56 mriedem: scottda and jgriffith were playing with Tempest tests more recently 17:09:00 but the theory is once we're running everything through that 17:09:08 we can flip that to dstools 17:09:20 so it will be doing raw local.conf sets 17:09:22 breitz got the tests to pass as well. 17:09:57 also, https://review.openstack.org/#/c/430368/ for local.conf pass through from job definitions 17:11:05 ok i'll need my hand held on that one 17:11:17 we'll add the local_conf builder to the placement job definition 17:11:19 smcginnis: breitz: great news! :) 17:11:43 but then i'm not sure what after that 17:12:17 mriedem: you mean from config perspective? 17:12:22 yes 17:12:28 well, from job template in p-c 17:12:33 i'll ask in the review 17:12:50 sdague: thanks for the update 17:13:35 mriedem: I'm not sure at this point either, I couldn't even successfully point Nova to Cinder V3 yet in my local Tempest tests... :/ 17:14:10 ildikov: I'd be glad to help with that. 17:14:19 sdague: left my question on usage in https://review.openstack.org/#/c/430368/ 17:14:21 ildikov: I just used cinder v3 in nova.conf... 17:14:28 ildikov: And ran tempest.scenario 17:14:31 maybe that can be worked into the commit message or a comment on how to use the builder or something 17:14:57 scottda: I added that there too, but according to the logs it didn't pick that up for some reason as the URL wasn't V3 17:15:17 so what are the tempest tests? 17:15:29 this is just normal tempest with cinder v3 right? 17:15:32 scottda: I will double check the config 17:15:59 mriedem: Yes, just tempest/scenario tests 17:16:05 mriedem: as a first step I think we would like to test V3 overall 17:16:38 mriedem: as we don't have anything in Nova yet to use the new attach/detach API that will be a next step 17:17:00 ildikov: +1 17:17:21 Then we need to figure out the best way to handle the workflow branching based on the available microversion I think. 17:17:28 so, https://review.openstack.org/#/c/420201/ 17:17:53 can't we create a devstack DNM patch that configures nova for cinder v3 and then depend on that nova change to test it out? 17:18:05 or stack a nova patch on top that depends on a devstack patch that configures nova for cinder v3? 17:18:15 or is this being tested some other way? 17:18:35 mriedem: Sure, I'll add a DNM patch as a dependency 17:18:36 also, https://review.openstack.org/#/c/425785/ is unreleased so i don't know how you're testing it without using LIBS_FROM_GIT 17:19:10 mriedem: It's not tested in the gate, just manually. 17:19:17 so locally 17:19:18 ok 17:19:44 i can also poke at that 17:20:10 so i think a good goal by the PTG is have this at least working with some DNM patch dependencies since we don't have the local.conf stuff in yet 17:20:19 "this" meaning the nova cinder v3 patch 17:20:22 mriedem: The lingering question that smcginnis pointed out it how to get cinder api version info and store/use in nova code. 17:20:34 s/it/is 17:20:53 One example being that ^^^ POC 17:21:04 I think we can hack a proof of concept, but it will be up to the nova team to decide how best to integrate that. 17:21:12 we store it in the client i think 17:21:12 just wanted to ask whether we have a good understanding on how to handle the Cinder microversions in Nova? 17:21:15 that's what we do for glance 17:21:37 well glance is different since it's config-based right now 17:21:45 so you're either using glance v1 or v2 (v2 at this point) 17:21:48 and we have a client for each 17:22:19 i think glance v2 has something like microversions, but nova only ever cares about base v2 17:22:43 so i imagine we'll need to handle cinder like how we handle microversions in our placement client 17:23:28 for our placement client we don't do version discovery today, we just handle the 404 if request fails and fallback to older behavior 17:23:38 at some point we need to do version discovery so we don't need to dump errors in the logs 17:23:57 but e.g. https://github.com/openstack/nova/blob/21e36a2c4c280ff3b1d42b7bee16ffe3f235281d/nova/scheduler/client/report.py#L205 17:24:09 https://github.com/openstack/nova/blob/21e36a2c4c280ff3b1d42b7bee16ffe3f235281d/nova/scheduler/client/report.py#L287 17:24:33 that's a method in our client that's doing a 1.1 GET request 17:24:47 if we did version discovery we'd know if we could make that request or not and not log errors on failure 17:25:04 same for 1.4 https://github.com/openstack/nova/blob/21e36a2c4c280ff3b1d42b7bee16ffe3f235281d/nova/scheduler/client/report.py#L257 17:25:09 we could just hard depend on the v3 version we need right now? 17:25:17 maybe thats what you are saying here 17:25:21 the code that's using that stuff is handling a fallback scenario in ocata 17:25:24 mriedem: replied on expected usage 17:25:27 I think the direction with the Cinder client now is to get the max version supported 17:25:45 ildikov: cinder client in nova, or python-cinderclient/ 17:25:46 ? 17:25:49 ildikov: That's not hard-coded in the client.. 17:25:54 whew 17:25:57 ildikov: There's a patch to do that in the CLI 17:26:13 scottda: I didn't mean it's hardcoded 17:26:13 the python api binding user of cinderclient needs to opt in 17:26:18 which is nova in this case 17:26:53 so i think when we setup the client, like in scott's patch, we get the version and build the Client object that way, and when we do that, we know the highest supported v3 version, right? 17:27:03 mriedem: Yes 17:27:07 and we know the specific microversions that we need when making requests, 3.27 it looks like 17:27:13 so the base v3 micro-version will not work with the current Nova code, thats the thing that surprized me I guess. 17:27:25 mriedem: And then use a method or Global to refer to something like IS_NEW_API_SUPPORTED 17:27:27 johnthetubaguy: it's not backward compatible? 17:27:34 I believe its not 17:27:35 yep, exactly, so if the microversion is higher than 3.27 we use the new attach/detach flow 17:27:43 if not than we fall back to the old one 17:27:45 johnthetubaguy: What do you mean? 17:27:47 scottda: smcginnis: why isn't v3 compatible with v2? 17:27:56 I believe it is 17:28:19 IF I use cinder v3 in nova.conf, old api methods work 17:28:20 oh, I thought we said the old binding API would fail on the base v3 version? 17:28:22 Yes, base v3 is completely compatible with v2. 17:28:25 and tempest.scenario passes 17:28:45 OK, so I was clearly miss understanding what we said before, my mistake 17:28:52 scottda: what was the solution to the Tempest failures you saw earlier with V3? 17:28:53 It's just tricky once we start adding in microversion support and having to do different flows based on that. 17:28:59 scottda: I'm just curious 17:29:02 so we can just follow the usual micro-version patterns it would seem. 17:29:22 ildikov: It was a combination of too much concurency with too small a VOLUME_BACKING_SIZE 17:29:31 and failed for v2 as well as v3 17:29:34 right, if we can do 3.27, we do that, if not we fallback to v3 (the old attach/detach) 17:29:37 nothing to do with API version 17:29:39 scottda: ah, ok 17:29:59 ^ is essentially what i was saying we're doing with placement today 17:30:07 mriedem: +1 that makes sense to me 17:30:08 we allow a fallback in ocata even though placement is required, 17:30:10 however, 17:30:12 mriedem: +1 17:30:16 in pike i think we plan on dropping the fallback 17:30:39 so we're going to require a minimum placement microversion in pike, like how the Ironic virt driver requires a minimum Ironic microversion for their code 17:30:43 yeah, after a few cycles we drop the fallback, like we did with glance v1 17:30:47 johnthetubaguy: yup 17:30:59 mriedem: although we ask for the version in the current PoC as opposed to fall back in case of errors 17:31:19 ildikov: we're going to have to fallback to the old way if 3.27 isn't available 17:31:30 mriedem: yep, we will 17:31:31 i wouldn't be surprised if v3 itself won't be available 17:31:40 i.e. all of our grenade jobs 17:31:51 not available / not configured to use 17:31:54 yeah 17:31:59 because of the endpoint shenanigans you guys love to do 17:32:07 I'm trying to fix that... 17:32:14 We're discussing at the PTG 17:32:18 mriedem: :) 17:32:22 Consistent Versioned Endpoints. 17:32:30 scottda: like drop v3 and do it all in v2.x ? 17:32:37 Unfortunately, not possible to schedule a time and place for such discussions... 17:32:40 or volume endpoint just means, the thing you want 17:32:47 not sure 17:32:53 scottda: you're not supposed to ask about scheduling things at the ptg 17:32:56 it will just work 17:32:58 not sure what is possible, without breaking consumers of the catalog 17:33:02 ha 17:33:10 it would be a monday or tuesday talk, 17:33:15 yes 17:33:15 probably arch wg or something like that, idk 17:33:18 there are 20 wg's 17:33:25 yeah, actually on the arch wg etherpad ATM 17:33:25 api wg 17:33:38 ok, 17:33:40 so first things first, 17:33:55 we get the cinder v3 in nova change passing some testing so we know things are cool 17:34:02 and worry about the microversion / fallback dance after that 17:34:08 when we actually need to start requesting 3.27 17:34:45 #action scottda will post DNM patch for nova to use cinder v3 17:35:31 I like this scenario 17:35:31 I think regular tempest/scenario running will then test cinder v3 17:35:34 actually isn't https://review.openstack.org/#/c/420201/ self-testing? 17:35:43 since you're hard-coding the default config? 17:36:13 yah, actually it is. 17:36:20 and tempest jobs are failing... 17:36:45 it should be, yes 17:36:54 yeah, I'll have a look at the failures more closely 17:37:11 mriedem: Which tests run tempest/scenario for nova? 17:37:29 lots 17:37:32 neutron-full? 17:37:34 ok 17:37:35 test_volume_boot_pattern 17:37:37 is a big one 17:37:47 not just Tempest, even pep8 is failing there, so might be something other than V3 17:37:48 yeah, sorry, I meant which jenkins job 17:37:57 http://logs.openstack.org/01/420201/7/check/gate-tempest-dsvm-neutron-full-ubuntu-xenial/68f7c49/console.html.gz#_2017-02-01_00_55_26_080245 17:38:02 ^ is a failure for a known fixed issue 17:38:04 just recheck your change 17:38:36 i rechecked it 17:38:36 OK, I'll clean up test failures. That patch is a bit neglected. 17:39:08 http://logs.openstack.org/01/420201/7/check/gate-tempest-dsvm-neutron-full-ubuntu-xenial/68f7c49/console.html.gz#_2017-02-01_00_46_19_145600 17:39:15 Seems to be passing 17:39:22 test_volume_boot_pattern 17:43:30 mriedem: Did we want to try to set a Nova-Cinder PTG time? 17:43:34 i guess i never appreciated that we reconstruct the cinderclient on every call 17:43:37 Or just trust that it will all come together? 17:43:44 smcginnis: we want to schedule it 17:43:45 mriedem: I hate that we do that as well 17:43:47 so wed or thurs 17:44:12 I have no set schedule for those days, so really whatever you would like to do, we can schedule around it. 17:44:18 smcginnis: wed or thurs morning work for you? 2 hour block? 17:44:27 10-noon on wed? 17:44:39 or we could do it wed afternoon 17:44:45 I was going to say 9, but yeah, 10 is probably better so everyone gets some coffee in first. 17:44:52 let the teams flush out whatever else on the first vertical team morning 17:44:56 10-noon wed will be pretty much first session of the week 17:45:00 right 17:45:07 so maybe thursday is better 17:45:07 Morning is probably better than after lunch. 17:45:13 let's do thursday then 17:45:14 Thrusday at 10 17:45:16 done 17:45:21 +1 17:45:28 I'll add it to our etherpad. 17:45:35 #info cinder and nova will meet Thurs at 10:00 at the PTG 17:45:50 cinder people in nova room, and nova people in the cinder room 17:45:52 :) 17:45:53 oh, its different auth token for every call, as its the user token, so its a different client, I guess 17:46:13 scottda: :) 17:46:37 scottda: The jokes on you - we'll all just be in one big room all week. :P 17:46:41 johnthetubaguy: Yes, but some novaclient calls (like attach) require 4 cinderclient calls. That could use only one instnace of cinderclient 17:47:05 smcginnis: Ha. The Big Tent 17:47:06 scottda: oh, in that sense, good point 17:47:10 scottda: LOL 17:47:23 johnthetubaguy: yeah i guess we do the same for neutron 17:47:24 * smcginnis pictures a circus tent in a big parking lot in ATL. 17:47:42 we don't do that for the placement (scheduler report client) 17:47:57 smcginnis: LOL 17:49:06 OK, so devstack patch in flight for long term, scottda to recheck to get passing v3 results in the short term. 17:49:07 no sliders 17:49:24 Proof of concept will be worked for nova side of calling microversions. 17:49:30 we can use the Cinder-Nova etherpad to draft a few items to talk about at the PTG, along with the Nova spec 17:49:34 And possible cleanup of multiple sessions. 17:49:49 Anything else we need to figure out today? 17:49:51 ildikov: +1 17:50:19 mriedem: the remove check_attach patch was hitting a non-related error, Jenkins looks good on it now 17:50:39 mriedem: johnthetubaguy: what do I need to do to get that thing finally done? :) 17:50:44 I should clean up that nova spec 17:50:57 or did we have a new one now? 17:51:06 johnthetubaguy: Oh right. Not that I've seen. 17:51:27 I can get that tidied up 17:51:28 johnthetubaguy: I don't think we have a new one for Nova 17:51:39 the spec 17:51:41 johnthetubaguy: it's still yours 17:51:58 johnthetubaguy: we need to get the current one in shape based on the comments from mriedem and others 17:52:19 We've at least finalized the Cinder side, so hopefully that helps with the nova spec. 17:52:51 we also have a PoC patch: https://review.openstack.org/#/c/330285/ 17:53:07 jgriffith: made the attach/detach parts working 17:53:22 #link https://review.openstack.org/#/c/330285/ Nova PoC for new attach calls 17:53:24 still have many things to figure out, but at least we have a starting point 17:53:37 smcginnis: thanks :) 17:53:58 ildikov: Just trying to make the meeting logs look pretty. ;) 17:54:20 * ildikov is thankful for that :) 17:54:44 OK, I gotta run. Folks on the lunch train are starting to look angry. :) 17:54:47 johnthetubaguy: so you can look into the PoC above too to see what we hacked so far to make things work 17:55:11 smcginnis: I think we're mainly good for today 17:55:18 smcginnis: enjoy lunch :) 17:55:40 ildikov: gives me a good excuse to fix that 17:55:56 well, I mean look at those PoC patches, both ways 17:56:04 mriedem: johnthetubaguy: the PoC depends on the Remove check_attach patch as it seemed reasonable to order things 17:56:17 * johnthetubaguy nods 17:56:45 and rebasing is a nightmare, so I would love to see that merged as it's considered to be a bugfix 17:57:24 we are free to merge that now, I think, give we are open for pike 17:57:37 mriedem: johnthetubaguy: so pretty please review it :) 17:57:50 umm, 17:57:53 mriedem: johnthetubaguy: or tell me who from the cores would willing to look into that change 17:57:56 johnthetubaguy: i'd hold off until we release pike 17:58:00 yeah, its going to take a few hours to get my head back into that again 17:58:05 in case we need to bump the service version for anything in the next week 17:58:15 mriedem: yeah, thats true, service version 17:58:15 s/pike/ocata/ 17:58:27 hehe, yeah ocata 17:58:28 mriedem: ;) 17:58:36 so basically can't land that until we cut rc2 17:58:39 which is 2/16 at the latest 17:59:02 yeah 17:59:07 mriedem: johnthetubaguy: if you could give it a review run earlier rather than later that would still be good 17:59:20 we could be ready to +W in the PTG session, I suppose 17:59:34 so any issues it might has could be fixed by the time it can get merged 18:00:31 ok, please review it, so I can fix the issues, I don't want to spend time on this at the PTG 18:00:55 it should be more straightforward than that 18:01:29 ok, we're out of time and I think we also have plans 18:02:08 we can double check the progress next week and maybe try to add items to the PTG session agenda so we surely talk about all the items we see important now 18:02:23 anything else from anyone today? 18:03:57 alright, thanks everyone 18:04:29 #endmeeting