16:00:15 #startmeeting cinder-nova-api-changes 16:00:16 Meeting started Thu Nov 30 16:00:15 2017 UTC and is due to finish in 60 minutes. The chair is ildikov. Information about MeetBot at http://wiki.debian.org/MeetBot. 16:00:17 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 16:00:20 The meeting name has been set to 'cinder_nova_api_changes' 16:00:29 johnthetubaguy jaypipes e0ne jgriffith hemna mriedem patrickeast smcginnis diablo_rojo xyang1 raj_singh lyarwood jungleboyj stvnoyes 16:00:50 @! 16:00:50 <_pewp_> jungleboyj ( ^_^)/ 16:01:07 * johnthetubaguy hides at back of the room 16:01:24 * ildikov sees johnthetubaguy :) 16:01:25 * jungleboyj pulls johnthetubaguy to the front 16:01:33 Nice spot for you here buddy. 16:01:39 o/ 16:01:51 * johnthetubaguy doh! 16:02:30 ok, let's start 16:02:42 * smcginnis hides behind johnthetubaguy 16:03:18 so we have the last bit of the new flow enablement in Nova: https://review.openstack.org/#/c/330285/ 16:03:30 I was begging for review on the Nova meeting today 16:04:02 need to re-run my tempest patch against that to make sure we're failing if trying to attach the same volume to the same instance 16:04:03 twice 16:04:28 https://review.openstack.org/#/c/515426/ 16:04:34 although I think I need to rely on mriedem and johnthetubaguy with that or maybe I can ask jaypipes too 16:05:07 mriedem: right, thanks for the reminder 16:05:46 ildikov: don't think there were many open questions now, trying to remember the hour or so I spent going through the patch 16:06:28 johnthetubaguy: we must be close now, I did some polishing on the functional tests too by now 16:07:11 I was worried about left over attachments in a few places, but they didn't look like new bugs (missing unreserve call too) 16:07:29 otherwise felt close I think 16:07:51 yep, I remember that one, we can fix it in a follow up patch 16:08:09 I would not want to increase the size of this one if we can avoid that 16:09:47 we can figure out the remaining nits on the review 16:10:36 I have the libvirt patch for multi-attach on top of this one, we can get that landed too if we agree on a few nits as it doesn't do any harm but will help enabling multi-attach 16:10:38 ildikov: Looks like the patch at least needs a rebase. Just waiting to see if there are any other changes? 16:11:05 The flow patch, not the libvirt one. 16:11:29 smcginnis: we were talking about doing one more version bump once the shared_targets changes land 16:11:34 ildikov: have you run my tempest test for multiattach on your nova multiattach patch? i'm assuming that tempest test is in need of cleaning up now though. 16:11:41 smcginnis: this one: https://review.openstack.org/#/c/520676/ 16:12:01 and jgriffith promised a follow-up patch with the API changes and the microversion bump 16:12:05 ildikov: Ah, OK. Maybe jungleboyj can take a look at that (hint, hint) 16:12:28 * jungleboyj will look. 16:12:44 mriedem: nope, the multi-attach changes need some update now to match the new flow 16:12:52 Although a couple good questions jgriffith should probably respond to first. 16:13:01 ildikov: if/when the shared_targets implementation lands yes 16:13:19 smcginnis: yeah, that kept me back from begging for review again :) 16:13:31 jgriffith: plz check the two minor comments on that one :) 16:13:44 jgriffith: so I can annoy people to land it then 16:13:58 Ah, the shared targets one. Cool. 16:14:32 mriedem: the libvirt change only sets the 'shareable' flag, so it doesn't enable multi-attach right away 16:15:47 mriedem: johnthetubaguy: as for multi-attach, jgriffith has a spec on the Cinder side for that: https://review.openstack.org/#/c/523608/ 16:16:09 mriedem: johnthetubaguy: plz give it a quick read so we don't miss anything critical 16:17:08 so simply creating a volume with multiattach=True isn't good enough? 16:17:10 jungleboyj: smcginnis: quick question, who could help us with the policy changes in Cinder? 16:17:26 The spec looked pretty good yesterday. I will look through it again now that it is updated. 16:17:35 mriedem: I'd prefer not to do that if we can avoid it 16:17:58 ildikov: Policy as far as adding a policy check for this? That's just done in the implementation now. Is that what you're asking? 16:18:06 mriedem: using the type and capabilities filter makes that a bit more solid 16:18:13 ildikov: Good question. Need a volunteer there. 16:18:16 mriedem: and it allows you to update/modify a volume after the fact 16:18:19 * jungleboyj smiles at ildikov and jgriffith 16:18:34 jgriffith: ++ 16:18:38 smcginnis: I think so, I'm one of the least knowledgable people around as far as policy goes :( 16:19:12 mriedem: there's pros/cons to either; but using types fits a bit more with our existing workflows and requriements so I thought it was a good fit 16:19:18 jgriffith: Helps with scheduler ability to place it too I think. 16:19:28 smcginnis: Right 16:19:35 that's fine, it's basically a flavor extra spec 16:19:45 You could then have multi-attach capable and incapable backends. 16:19:50 ildikov: Yeah, no worries. With the policy-in-code changes, we just need to add the policy checking in the code for those operations. 16:19:51 smcginnis: yes for sure; you can make the flag set the capability but that's another story :) 16:19:53 The scheduler would get the right onw. 16:20:24 smcginnis: oh, ok, that does not sound too bloody, but we'll see I guess :) 16:21:02 smcginnis: ildikov I had just assumed that's part of the code, not sure what's being asked WRT to help on that 16:21:21 ^^ what I mean is part of the job for whomever implements the spec/changes 16:22:03 Right. 16:22:18 jgriffith: if that person is me, then I'll need at least someone to ask dumb questions and still get sane answers :) 16:23:13 ildikov: Yeah, should be enough existing examples that it won't be too bad. 16:23:36 smcginnis: sounds good 16:23:55 ildikov: Right. There are lots of policy examples. 16:24:24 jgriffith: do you allow changing of the volume while it is attached? 16:25:24 johnthetubaguy: so that's an interesting one..... retype does allow that sort of thing if it does not include a migration 16:25:38 so that would be a problem on the Nova side 16:25:46 johnthetubaguy: that's probably worth detailing and clearing up in the spec 16:25:57 johnthetubaguy: how so? 16:26:07 johnthetubaguy: I mean being a problem on the Nova side? 16:26:20 we need to tell libvirt to stop its caching when its multi-attach 16:26:29 we can't do that if its already attached 16:26:42 johnthetubaguy: ahh, right... on *all* of the attachments right 16:26:54 jgriffith: yes 16:27:27 johnthetubaguy: No way to change that setting while attached? 16:27:28 johnthetubaguy: I'll look into that; we may end up back at using a flag on create again then :( 16:27:52 johnthetubaguy: where did things on the extend attached volume end up on the Nova side? 16:27:55 its fine if you can update the flag only when there are no attachment records I guess 16:28:00 Just, from the Cinder side, it's very simple to just retype to enable/disable multiattach this way. 16:28:02 johnthetubaguy: we could just use the same mechanism there maybe? 16:28:34 "where did things on the extend attached volume end up on the Nova side?" not sure what that means 16:28:39 so detach can fail, when the volume is in use, so its not easy on the Nova side 16:28:52 mriedem: I think the answer is we never merged that code? 16:28:58 mriedem: there was a patch a while back to allow extending an attached volume 16:29:00 it was merged in pike 16:29:12 mriedem: said operation required a disconnect/reconnect on the Nova side IIRC 16:29:24 https://review.openstack.org/#/c/454322/ 16:29:29 mriedem: thanks 16:30:09 ah... 16:31:55 hmm, so are we saying now that a volume retype in Cinder would trigger hacking the libvirt domain xml to set the 'shareable' flag while the volume is attached? 16:32:28 would that work? 16:33:33 ildikov: it's an option... johnthetubaguy ildikov I don't think it's worth doing at the onset though 16:33:52 another option is to put login in Cinder to check that condition and disallow it at the API layer 16:33:58 johnthetubaguy: I don't know, I never checked whether or not it is possible 16:33:58 grrr 16:34:02 s/login/logic/ 16:34:14 seems a good starting point 16:34:26 and make that a policy as well so if we change it some day we have that ability 16:34:32 So we need to block retype if a) it's attached, and 2) the retype include a multiattach capability change? 16:34:40 smcginnis: correct 16:34:50 smcginnis: that's what I'm thinking for now at least 16:34:53 jgriffith: sounds like a good start to me 16:34:53 Bleh. OK, that works. 16:34:58 smcginnis: it's pretty easy to infer that on the Cinder side 16:35:11 smcginnis: yeah... not great, but not the worst either 16:35:13 Yeah, at least it won't involve a too much hackery. 16:35:32 It seems like a reasonable start. 16:35:53 Would rather limit the function than hack up Nova. 16:36:09 It still gives us better all-around function. 16:36:17 I wouldn't be comfortable with the hackery on the Nova side now, so if these restrictions would work in Cinder that made me happy for now 16:38:18 we used to disallow retype of in-use volumes 16:38:34 anyway... I'll look at it and see what we can/can't do 16:38:48 if nothing else fall back to using an option on create 16:39:10 jgriffith: sounds good, thank you 16:40:01 option on create that can be updated when there are no attachments? 16:40:13 johnthetubaguy: no 16:40:21 jgriffith: Sounds good. 16:40:26 johnthetubaguy: if it's an option on create it's static for the life of the volume 16:40:45 johnthetubaguy: if you want to change then you have to do something like create-from-volume with that option 16:41:00 OK 16:41:14 johnthetubaguy: I'm saying that if restricting the retype of an in-use volume looks hacky/ugly then revisit the use of a create flag 16:41:19 jgriffith: johnthetubaguy: we talked about changing the flag if the volume is not attached, I guess we can iterate on that later if we would fall back to the flag 16:41:41 ? 16:41:48 That's the nice thing with using volume type. It let's us switch that without forcing the user to do stupid things. 16:42:18 ildikov: well if you're going to do the same monkey trick with a create flag then there's zero point in going that route as opposed to a type 16:43:04 jgriffith: the request to change the flag or type or whatever we choose came up earlier 16:43:16 ildikov: what? 16:43:36 jgriffith: Retyping versus having to clone a volume though, far less obvious to the end user as far as how to get the desired result. 16:44:03 ildikov: if you're talking about using a create flag, and then saying implement something to allow that to be changed then I'm saying that's a horrible idea and I'm back to just doing type/retype 16:44:07 jgriffith: so I think it'll come up again once we have the feature enabled, so better to figure out now what we are willing or not willing to/can or can't do 16:44:42 and won't consider the flag option, because you're proposing putting in the same logic checks that would need to go into retype which is an accepted/general solution to these sorts of things already 16:44:45 jgriffith: type sounds good if we can block that for attached volumes for now 16:44:57 ildikov: yeah 16:45:27 jgriffith: then we're on the same page? :) 16:45:40 Sounds like it. 16:48:52 jgriffith: anyway, I don't want to argue, just remember having a proposal in Cinder to update the multiattach flag a while back, so if type/retype will be the solution for that with care, I'm all supportive; if we have other ideas that would be fine with me too 16:49:06 jgriffith: what fits into Cinder the best 16:49:43 so to sum it up 16:50:27 I will rebase the new attach patch in Nova and re-run the tests a couple of times to see whether the blocking to attach the same volume to the same instance works fine 16:50:42 then get that patch merged finally if everything works well 16:51:06 in Cinder let's have the shared_targets patch merged and have the microversion bump in place 16:51:35 update the Cinder spec with the type/retype restrictions we've talked about just now 16:51:52 and that will cover a weekly work I think easily 16:51:57 did I miss anything? 16:53:49 ildikov: That sounds good to me. 16:54:10 jungleboyj: cool :) 16:54:35 mriedem: johnthetubaguy: jgriffith: plz let me know if I missed any critical item from the list above 16:54:51 anything else to discuss today? 16:54:57 ildikov: sounds like you got it 16:55:24 jgriffith: cool, thanks 16:57:04 ok, then thanks everyone for joining today! 16:57:18 let's get some progress by the meeting next week!! :) 16:57:34 have a good rest of the day everyone! 16:57:50 BTW, I know it's KubeCon next week 16:58:06 will we still have the majority of people available? 16:58:12 I will be around. 16:58:21 Wanted to go but couldn't work it out. 16:58:28 johnthetubaguy: mriedem: jgriffith: smcginnis: ^^? 16:58:39 jungleboyj: sadness, next time I guess 16:59:01 ildikov: Indeed. I am sure jgriffith and smcginnis will be good reps. 16:59:04 I'll be at Kubecon, so probably won't be able to attend. 16:59:40 ok, will chat with the Nova guys then I guess :) 16:59:53 thanks again 17:00:07 let's move the further chats to the channels 17:00:14 Sounds good. 17:00:14 #endmeeting