16:00:15 <ildikov> #startmeeting cinder-nova-api-changes
16:00:16 <openstack> 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 <openstack> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote.
16:00:20 <openstack> The meeting name has been set to 'cinder_nova_api_changes'
16:00:29 <ildikov> johnthetubaguy jaypipes e0ne jgriffith hemna mriedem patrickeast smcginnis diablo_rojo xyang1 raj_singh lyarwood jungleboyj stvnoyes
16:00:50 <jungleboyj> @!
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 <jungleboyj> Nice spot for you here buddy.
16:01:39 <mriedem> o/
16:01:51 * johnthetubaguy doh!
16:02:30 <ildikov> ok, let's start
16:02:42 * smcginnis hides behind johnthetubaguy
16:03:18 <ildikov> so we have the last bit of the new flow enablement in Nova: https://review.openstack.org/#/c/330285/
16:03:30 <ildikov> I was begging for review on the Nova meeting today
16:04:02 <mriedem> 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 <mriedem> twice
16:04:28 <mriedem> https://review.openstack.org/#/c/515426/
16:04:34 <ildikov> although I think I need to rely on mriedem and johnthetubaguy with that or maybe I can ask jaypipes too
16:05:07 <ildikov> mriedem: right, thanks for the reminder
16:05:46 <johnthetubaguy> 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 <ildikov> johnthetubaguy: we must be close now, I did some polishing on the functional tests too by now
16:07:11 <johnthetubaguy> 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 <johnthetubaguy> otherwise felt close I think
16:07:51 <ildikov> yep, I remember that one, we can fix it in a follow up patch
16:08:09 <ildikov> I would not want to increase the size of this one if we can avoid that
16:09:47 <ildikov> we can figure out the remaining nits on the review
16:10:36 <ildikov> 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 <smcginnis> ildikov: Looks like the patch at least needs a rebase. Just waiting to see if there are any other changes?
16:11:05 <smcginnis> The flow patch, not the libvirt one.
16:11:29 <ildikov> smcginnis: we were talking about doing one more version bump once the shared_targets changes land
16:11:34 <mriedem> 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 <ildikov> smcginnis: this one: https://review.openstack.org/#/c/520676/
16:12:01 <ildikov> and jgriffith promised a follow-up patch with the API changes and the microversion bump
16:12:05 <smcginnis> ildikov: Ah, OK. Maybe jungleboyj can take a look at that (hint, hint)
16:12:28 * jungleboyj will look.
16:12:44 <ildikov> mriedem: nope, the multi-attach changes need some update now to match the new flow
16:12:52 <smcginnis> Although a couple good questions jgriffith should probably respond to first.
16:13:01 <jgriffith> ildikov: if/when the shared_targets implementation lands yes
16:13:19 <ildikov> smcginnis: yeah, that kept me back from begging for review again :)
16:13:31 <ildikov> jgriffith: plz check the two minor comments on that one :)
16:13:44 <ildikov> jgriffith: so I can annoy people to land it then
16:13:58 <jungleboyj> Ah, the shared targets one.  Cool.
16:14:32 <ildikov> mriedem: the libvirt change only sets the 'shareable' flag, so it doesn't enable multi-attach right away
16:15:47 <ildikov> 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 <ildikov> mriedem: johnthetubaguy: plz give it a quick read so we don't miss anything critical
16:17:08 <mriedem> so simply creating a volume with multiattach=True isn't good enough?
16:17:10 <ildikov> jungleboyj: smcginnis: quick question, who could help us with the policy changes in Cinder?
16:17:26 <jungleboyj> The spec looked pretty good yesterday.  I will look through it again now that it is updated.
16:17:35 <jgriffith> mriedem: I'd prefer not to do that if we can avoid it
16:17:58 <smcginnis> 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 <jgriffith> mriedem: using the type and capabilities filter makes that a bit more solid
16:18:13 <jungleboyj> ildikov:  Good question.  Need a volunteer there.
16:18:16 <jgriffith> 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 <jungleboyj> jgriffith:  ++
16:18:38 <ildikov> smcginnis: I think so, I'm one of the least knowledgable people around as far as policy goes :(
16:19:12 <jgriffith> 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 <smcginnis> jgriffith: Helps with scheduler ability to place it too I think.
16:19:28 <jungleboyj> smcginnis:  Right
16:19:35 <mriedem> that's fine, it's basically a flavor extra spec
16:19:45 <jungleboyj> You could then have multi-attach capable and incapable backends.
16:19:50 <smcginnis> 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 <jgriffith> smcginnis: yes for sure; you can make the flag set the capability but that's another story :)
16:19:53 <jungleboyj> The scheduler would get the right onw.
16:20:24 <ildikov> smcginnis: oh, ok, that does not sound too bloody, but we'll see I guess :)
16:21:02 <jgriffith> 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 <jgriffith> ^^ what I mean is part of the job for whomever implements the spec/changes
16:22:03 <jungleboyj> Right.
16:22:18 <ildikov> 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 <smcginnis> ildikov: Yeah, should be enough existing examples that it won't be too bad.
16:23:36 <ildikov> smcginnis: sounds good
16:23:55 <jungleboyj> ildikov:  Right.  There are lots of policy examples.
16:24:24 <johnthetubaguy> jgriffith: do you allow changing of the volume while it is attached?
16:25:24 <jgriffith> johnthetubaguy: so that's an interesting one..... retype does allow that sort of thing if it does not include a migration
16:25:38 <johnthetubaguy> so that would be a problem on the Nova side
16:25:46 <jgriffith> johnthetubaguy: that's probably worth detailing and clearing up in the spec
16:25:57 <jgriffith> johnthetubaguy: how so?
16:26:07 <jgriffith> johnthetubaguy: I mean being a problem on the Nova side?
16:26:20 <johnthetubaguy> we need to tell libvirt to stop its caching when its multi-attach
16:26:29 <johnthetubaguy> we can't do that if its already attached
16:26:42 <jgriffith> johnthetubaguy: ahh, right... on *all* of the attachments right
16:26:54 <ildikov> jgriffith: yes
16:27:27 <smcginnis> johnthetubaguy: No way to change that setting while attached?
16:27:28 <jgriffith> johnthetubaguy: I'll look into that; we may end up back at using a flag on create again then :(
16:27:52 <jgriffith> johnthetubaguy: where did things on the extend attached volume end up on the Nova side?
16:27:55 <johnthetubaguy> its fine if you can update the flag only when there are no attachment records I guess
16:28:00 <smcginnis> Just, from the Cinder side, it's very simple to just retype to enable/disable multiattach this way.
16:28:02 <jgriffith> johnthetubaguy: we could just use the same mechanism there maybe?
16:28:34 <mriedem> "where did things on the extend attached volume end up on the Nova side?" not sure what that means
16:28:39 <johnthetubaguy> so detach can fail, when the volume is in use, so its not easy on the Nova side
16:28:52 <johnthetubaguy> mriedem: I think the answer is we never merged that code?
16:28:58 <jgriffith> mriedem: there was a patch a while back to allow extending an attached volume
16:29:00 <mriedem> it was merged in pike
16:29:12 <jgriffith> mriedem: said operation required a disconnect/reconnect on the Nova side IIRC
16:29:24 <mriedem> https://review.openstack.org/#/c/454322/
16:29:29 <jgriffith> mriedem: thanks
16:30:09 <johnthetubaguy> ah...
16:31:55 <ildikov> 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 <johnthetubaguy> would that work?
16:33:33 <jgriffith> ildikov: it's an option... johnthetubaguy ildikov I don't think it's worth doing at the onset though
16:33:52 <jgriffith> another option is to put login in Cinder to check that condition and disallow it at the API layer
16:33:58 <ildikov> johnthetubaguy: I don't know, I never checked whether or not it is possible
16:33:58 <jgriffith> grrr
16:34:02 <jgriffith> s/login/logic/
16:34:14 <johnthetubaguy> seems a good starting point
16:34:26 <jgriffith> and make that a policy as well so if we change it some day we have that ability
16:34:32 <smcginnis> So we need to block retype if a) it's attached, and 2) the retype include a multiattach capability change?
16:34:40 <jgriffith> smcginnis: correct
16:34:50 <jgriffith> smcginnis: that's what I'm thinking for now at least
16:34:53 <ildikov> jgriffith: sounds like a good start to me
16:34:53 <smcginnis> Bleh. OK, that works.
16:34:58 <jgriffith> smcginnis: it's pretty easy to infer that on the Cinder side
16:35:11 <jgriffith> smcginnis: yeah... not great, but not the worst either
16:35:13 <smcginnis> Yeah, at least it won't involve a too much hackery.
16:35:32 <jungleboyj> It seems like a reasonable start.
16:35:53 <jungleboyj> Would rather limit the function than hack up Nova.
16:36:09 <jungleboyj> It still gives us better all-around function.
16:36:17 <ildikov> 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 <jgriffith> we used to disallow retype of in-use volumes
16:38:34 <jgriffith> anyway... I'll look at it and see what we can/can't do
16:38:48 <jgriffith> if nothing else fall back to using an option on create
16:39:10 <ildikov> jgriffith: sounds good, thank you
16:40:01 <johnthetubaguy> option on create that can be updated when there are no attachments?
16:40:13 <jgriffith> johnthetubaguy: no
16:40:21 <jungleboyj> jgriffith:  Sounds good.
16:40:26 <jgriffith> johnthetubaguy: if it's an option on create it's static for the life of the volume
16:40:45 <jgriffith> johnthetubaguy: if you want to change then you have to do something like create-from-volume with that option
16:41:00 <johnthetubaguy> OK
16:41:14 <jgriffith> 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 <ildikov> 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 <jgriffith> ?
16:41:48 <smcginnis> 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 <jgriffith> 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 <ildikov> jgriffith: the request to change the flag or type or whatever we choose came up earlier
16:43:16 <jgriffith> ildikov: what?
16:43:36 <jungleboyj> 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 <jgriffith> 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 <ildikov> 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 <jgriffith> 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 <ildikov> jgriffith: type sounds good if we can block that for attached volumes for now
16:44:57 <jgriffith> ildikov: yeah
16:45:27 <ildikov> jgriffith: then we're on the same page? :)
16:45:40 <jungleboyj> Sounds like it.
16:48:52 <ildikov> 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 <ildikov> jgriffith: what fits into Cinder the best
16:49:43 <ildikov> so to sum it up
16:50:27 <ildikov> 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 <ildikov> then get that patch merged finally if everything works well
16:51:06 <ildikov> in Cinder let's have the shared_targets patch merged and have the microversion bump in place
16:51:35 <ildikov> update the Cinder spec with the type/retype restrictions we've talked about just now
16:51:52 <ildikov> and that will cover a weekly work I think easily
16:51:57 <ildikov> did I miss anything?
16:53:49 <jungleboyj> ildikov: That sounds good to me.
16:54:10 <ildikov> jungleboyj: cool :)
16:54:35 <ildikov> mriedem: johnthetubaguy: jgriffith: plz let me know if I missed any critical item from the list above
16:54:51 <ildikov> anything else to discuss today?
16:54:57 <jgriffith> ildikov: sounds like you got it
16:55:24 <ildikov> jgriffith: cool, thanks
16:57:04 <ildikov> ok, then thanks everyone for joining today!
16:57:18 <ildikov> let's get some progress by the meeting next week!! :)
16:57:34 <ildikov> have a good rest of the day everyone!
16:57:50 <ildikov> BTW, I know it's KubeCon next week
16:58:06 <ildikov> will we still have the majority of people available?
16:58:12 <jungleboyj> I will be around.
16:58:21 <jungleboyj> Wanted to go but couldn't work it out.
16:58:28 <ildikov> johnthetubaguy: mriedem: jgriffith: smcginnis: ^^?
16:58:39 <ildikov> jungleboyj: sadness, next time I guess
16:59:01 <jungleboyj> ildikov:  Indeed.  I am sure jgriffith  and smcginnis will be good reps.
16:59:04 <smcginnis> I'll be at Kubecon, so probably won't be able to attend.
16:59:40 <ildikov> ok, will chat with the Nova guys then I guess :)
16:59:53 <ildikov> thanks again
17:00:07 <ildikov> let's move the further chats to the channels
17:00:14 <jungleboyj> Sounds good.
17:00:14 <ildikov> #endmeeting