13:00:01 #startmeeting nova api 13:00:02 Meeting started Wed May 18 13:00:01 2016 UTC and is due to finish in 60 minutes. The chair is alex_xu. Information about MeetBot at http://wiki.debian.org/MeetBot. 13:00:03 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 13:00:05 The meeting name has been set to 'nova_api' 13:00:09 who is here today? 13:00:12 o/ 13:00:58 o/ 13:01:13 \o 13:01:25 o/ 13:01:46 ok, i think we can start the meeting 13:02:00 #topic API Priorities 13:02:20 let's talk about api-ref 13:02:47 still have a lot of patches need review 13:02:51 #link https://review.openstack.org/#/q/status:open+project:openstack/nova+branch:master+topic:bp/api-ref-in-rst 13:03:12 ah, not too much, just less than one page 13:03:27 apologies for not participating in that but I was crunched under trying to get generic resource pools moved forward 13:03:27 right, we still have a lot of work outstanding 13:03:44 I updated the burndown with the list of files and where they stand - http://burndown.dague.org/ 13:03:50 cdent: congrats the resource pool spec merged 13:04:02 alex_xu: one small step in many :) 13:04:16 yeah, a lot of work 13:04:37 so I think on the api-ref front we should decide what must be done before we switch to this being kind of constant background work 13:05:17 and in my mind I think that's: flavors.inc, servers.inc, versions.inc, metadata.inc 13:05:30 which are the more complicated ones 13:05:30 sdague: +1, at least we can ask people write doc for any new api change in newton 13:05:52 however, I think that if we get those sorted well this week, we're way better than the existing site 13:06:08 ah, i point to the thing for supporting microversion, but i guess most of thing are done 13:06:17 yeh 13:06:31 there is still a few things we need to poc there 13:06:58 whats missing for microverisons now, roughly? 13:07:05 sdague: do you have list 13:07:18 that max_version patch? 13:07:32 max_version is landed 13:07:37 cool 13:07:38 and in os-api-ref 0.1.1 13:07:45 that I released yesterday 13:07:51 you can see it in nova patches 13:08:29 alex_xu: honestly, I haven't really built a detailed list on the next microversion steps here yet, I've been focussed on the os-api-ref release and getting the content right within the current constraints 13:08:53 alex_xu: I think you had an old versions.inc patch, right? 13:09:02 sdague: yes, i had one 13:09:20 sdague: do we still want that? 13:09:26 well, we want something :) 13:09:32 I went through flavors yesterday 13:09:36 it took a while 13:10:09 so, mostly I'm looking to see if we could get volunteers on: servers.inc, versions.inc, metadata.inc for this week 13:10:16 if not, I'll try to take one a day 13:10:29 but splitting that up would be nice 13:10:36 will spend some time , too 13:11:03 jichen: cool, thanks 13:11:03 ah, i already take versions.inc 13:11:09 alex_xu: great, thank you 13:11:21 jichen: you want to finish metadata.inc ? 13:11:24 sdague: np 13:11:33 I will make time for the review side 13:11:40 sdague: ok, I can 13:11:57 great 13:12:15 ok, we have plan for this week 13:12:18 ok, I'll poke at servers.inc later this week then. And keep up the work on all the other files as well 13:12:44 but those 4 getting landed defines some first stage done and we can do the rest as background during the cycle, and have a final sprint if needed 13:13:08 ok, cool 13:13:26 ok, I think we're good there. The only other thing to realize is os-api-ref is now a dedicated repo 13:13:35 so fixes / patches / features should be proposed there 13:13:36 do we feel happy getting rid of the old site, once we have those three done? 13:14:05 johnthetubaguy: yes, I think so, though anne is still coming up with how all these stitch together 13:14:20 so I think we'll mostly work with her and follow her lead there 13:14:33 but I would feel comfortable with this being the cannonical docs at this point 13:14:36 sounds good, I guess the key bit is we are not blocking her work their 13:14:40 yeah, +1 13:14:59 ok, i think we can move on 13:15:03 yep 13:15:09 * mriedem joins late 13:15:25 for policy discovery, i saw the spec merged 13:15:43 awesome 13:15:48 #link Embed policy defaults in code 13:15:56 #link https://review.openstack.org/290155 13:16:10 sorry for the wrong link 13:16:47 i think just waiting Andrew send out the base patch, when he need help on other part, he will reach to us 13:17:00 sounds great 13:17:27 anything else for policy? 13:17:28 what's the bp topic for that for patches? I'll update the gerrit dash for priority reviews on that 13:17:36 sdague: doesn't exist yet 13:17:36 https://blueprints.launchpad.net/nova/+spec/policy-in-code 13:17:54 sdague: i've already got the needles into laski about it 13:18:02 ok, cool 13:18:26 the oslo policy code has to land and release first 13:18:49 ok, do we need to help review there as well? 13:19:07 https://blueprints.launchpad.net/oslo.policy/+spec/policy-in-code 13:19:25 no patches yet that i see in there 13:19:29 just saw this patch 13:19:31 i'll ping jhesketh about approving the bp 13:19:32 #link https://review.openstack.org/#/q/status:open+project:openstack/oslo.policy+branch:master+topic:bp/policy-in-code 13:19:59 cool, stared it for review 13:20:23 #link https://review.openstack.org/309153 13:20:36 one more spec for policy.json generate 13:21:24 ok, i think this all for policy, let's move on? 13:22:07 yes 13:22:12 so we can begin to talk about deprecation 13:22:52 sounds good, I went back through comments last night and here I think are the open issues 13:23:26 * there are a few missing network related things that should be added (fping, net associate) (easy, non controversial) 13:24:23 * there is an open question about how to help sites not build a bunch of software that's going to break (the big red button question), lets do that last 13:24:39 * there is a question on whether we 404 the network apis at this microversion 13:24:47 (which mriedem does not like) 13:25:17 yeah, I kinda like the 404 as a signal that they are going away 13:25:20 in part because nova-network isn't a proxy api 13:25:24 it shouldn't break existing users scripts 13:25:44 but neither is fping i guess 13:25:45 johnthetubaguy: well, it will if they move up the microversion 13:25:59 mriedem: well fping only works with nova net in most cases 13:26:10 yeah, so the spec started out being about proxy apis 13:26:19 and it's easier to think of a big hammer on those 13:26:31 but other nova-net specific wrinkles makes this mesier 13:26:34 *messier 13:26:43 sdague: ack, if they do that for those requests 13:27:11 ok... so, how do we want to navigate this? 13:27:13 plus as a client do i know or care what backend networking is being used? 13:27:18 so what is the alternative for nova-net? 13:27:38 we deprecate the APIs after we remove nova-net? 13:27:40 mriedem: at some level, yes, because what you can do is quite different 13:27:55 sdague: yeah i'm sure i could figure it out via trial and error 13:27:57 but still, that sucks 13:28:02 but it's latent suck i guess :) 13:28:03 mriedem: I agree 13:28:05 mriedem: agreed it sucks 13:28:22 hence, why we're deprecating nova-net, because eventually you'll know as nova-net isn't an option 13:28:33 the problem i have with a 404 on nova-network requests is, with proxies it's easy - go use neutron/cinder/glance/ironic apis 13:28:36 what matters more: transitional suck, or eternal suck? 13:28:44 but with nova-net, you can't use neutron apis 13:28:53 you have to use the nova apis for nova-net until that cloud moves to neutron 13:29:10 so then you have to pin any network-related requests you make < the deprecation microversion 13:29:11 mriedem: right, which just means you don't get new Nova features in your cloud 13:29:12 so security groups and floating ips are the sticking point here? 13:29:29 which, I'm not sure why that's an issue 13:29:37 but deprecated by microvesion, if user not upgrade to new microversion, so he will be fine 13:29:41 just seems like we're pushing a lot of complexity on the client 13:29:49 mriedem: why? 13:30:02 sdague: to special case their calls based on microversion 13:30:08 unless they just cap at this version and don't move ahead 13:30:10 until they are off nova-net 13:30:13 mriedem: right 13:30:16 and that's my suggestion 13:30:18 I feel like we are warning the client that these old APIs are going away 13:30:20 they cap at 2.25 13:30:36 if we don't warn, what do we do when we drop nova-net? 13:30:41 and they just don't get new nova features until their cloud moves on 13:30:44 johnthetubaguy: exactly 13:30:46 and as a client i can't really do anything about that until the cloud endpoint i'm talking to moves on, or i move on, or i special case my code 13:30:55 mriedem: right, but just "2.25" 13:31:07 we're assuming this is done with a single global in code 13:31:10 yeah, but see i really really want 2.40 :) 13:31:11 that's tested on that version 13:31:12 or keep using v2.0 or v2.1 base version 13:31:18 mriedem: well, honestly, too bad 13:31:23 like they probably are, since we haven't documented any microversion 13:31:29 we're about to actually delete all this code in 2 cycles 13:31:40 johnthetubaguy: except novaclient 13:31:47 continuing to make it easy for people to use it up until it's ripped out from under them seems weird 13:31:59 emm...one more thing, it is safe for v2.1 compat mode? 13:32:11 for the 7% of users still hitting nova-net 13:32:17 mriedem: only the CLI 13:32:25 mriedem: which we can fix 13:32:33 we honestly need to stop treating nova-net sites and users as first class citizens 13:32:40 nova net is deprecated, they are not any more 13:32:55 so here is an alternative... 13:33:02 today: deprecate nova-net 13:33:09 next cycle: deprecate the nova-net APIs 13:33:21 i.e. give folks a warning its going to get really hard, real soon 13:33:22 today is already done 13:33:25 right 13:33:43 and that means when we delete in P they've only had 6 months warning 13:33:56 we deprecated the code that powers those APIs 13:34:10 I don't understand how those APIs are not also deprecated and blocked in a microversion 13:34:10 i think people probably need a year at least for this 13:34:41 like people are just upgrading to kilo now because it's going end of life 13:34:48 so i think 6 months is a bit harsh yeah 13:34:53 making APIs first class for deprecated code... just seems like all the wrong messaging 13:35:13 mriedem: if they are only just upgrading to kilo now, then a six month window in master-based time is 18 months? 13:35:26 (in kilo-based time?) 13:35:35 which is a _lot_ of time 13:35:43 cdent: idk, my gut is when they get to newton, we've already ripped out nova-net 13:35:50 because they are so far behind 13:35:51 mriedem: right 13:36:11 so, people that far behind, honestly don't get to be part of the conversation. 13:36:25 so if we're saying people just need to cap in their clients until their cloud moves to nova-net, then i guess i'm fine with that 13:36:36 mriedem: right, I think that's what we're saying 13:36:43 at least that's what I'm saying 13:36:45 when i originally read the spec i was thinking people would have to special case their calls 13:36:53 i think we should be very clear about that in the spec 13:36:58 sure, I can make that clear 13:37:03 so that was point #3 13:37:16 seems like we have resolution there 13:37:25 point #2 - big red switch 13:37:57 i.e. do we provide an easy config option for adminstrators to disable deprecated APIs (all of them, not getting to pick / choose) 13:38:25 mostly as a defensive mechanism to help prevent their users from building code against APIs that will go away 13:38:57 this is really the meta issue of how to communicate to end user apps they are using deprecated stuff 13:39:10 unless administrator knew that will break the old client. 13:39:33 btw, before we move on from the nova-net thing, no one answered alex_xu's question about v2.1 compat mode 13:39:49 ok, alex_xu what's the question on the v2.1 compat mode? 13:40:04 actually it wouldn't be a problem 13:40:13 alex_xu: because that's just a v2.1 request 13:40:17 not v2.26 or whatever 13:40:30 i think we should keep all the proxy api works for v2.1 compat mode. and what happen after we remove nova-net in v2.1 compat mode? 13:40:42 if we delete the nova-net code, then yes v2.1 compat and everything below the deprecation microversion is busted 13:41:15 alex_xu: at some point, we have to drop these proxies 13:41:26 we can't delete nova-net unless we raise the minimum microversion past the deprecation microversion 13:41:42 alex_xu: for the proxies, we aren't dropping the code, just giving a 404 after a certain microversion 13:41:43 to signal 13:41:50 so we can eventually raise the minimum required version and then drop the code 13:41:51 mriedem: that's what concerns me 13:42:05 because what that means is nova-network exists until the T release (at least) 13:42:08 mriedem: yea, need raise the min version 13:42:13 and all that code is massively rotted 13:42:14 sdague: or, 13:42:19 well, 13:42:32 i was going to say, it moves out of tree and we just call it, but don't really maintain it, 13:42:39 right, which is just dumb 13:42:40 but we would still need to test it i tihnk 13:42:52 which means someone has to fix it 13:42:56 yeah 13:43:01 and no one will 13:43:10 vish might :) 13:43:18 j/k 13:43:22 I get that this is a violation of our norms, but it is a special case 13:43:39 so, 13:43:47 we did the same thing with the XML drop 13:43:47 we don't need to decide if we're going to drop the code this cycle 13:43:52 right 13:44:06 I honestly think the delete is in P 13:44:07 getting the deprecation microversion in place doesn't break v2.1 or compat mode 13:44:10 right 13:44:18 but it gets signalling early 13:44:23 so let's punt on the deleting part 13:44:30 if all the network api is extension in legacy v2, i think we can remove then by removing them from the extension api also. 13:44:30 so we can get people prepared 13:45:01 ok, so... big red switch? 13:45:20 yes 13:45:24 because that's the thing I want to discuss before doing the rev of the spec 13:45:29 as I think that's the last sticking point 13:45:30 ok, i'm ok with that, let talk about big red switch 13:46:07 i was wondering why deployers that wanted this couldn't just disable the apis via policy? 13:46:15 there might have already been a reason that i'm forgetting 13:46:26 mriedem: because it's super complicated 13:46:41 and it means that inevitably everyone would do it differently 13:46:51 so few people actually modify policy 13:47:09 ok, but by the same logic, wouldn't a big red switch put a big x on interop? 13:47:12 the situation I'm thinking about is we get to P cycle 13:47:17 yeah, most folks always fail at policy changes 13:47:26 people have deployed Newton clouds 13:47:37 so...we have red button, which leads to the api return 403... 13:47:46 we dropped nova-net in P 13:47:59 which means anything using any of that is broken 13:48:18 the cloud would really like to signal their users early about this 13:48:43 so they don't have a ton of new software written against newton that is guarunteed to break 13:48:51 and piss everyone off 13:49:21 if you're basing this on the assumption that we drop nova-net in P, i think that has to be sorted out first, 13:49:22 but go on 13:49:37 well, we're going to drop something sometime 13:49:44 move back 2 releases 13:50:03 how do sites manage to premtively help their users no use deprecated apis 13:50:07 * alex_xu reminders 10 mins left 13:50:10 to help them move forward 13:50:20 right, thats my worry 13:50:42 let's be honest, deleting stuff is hard, it's always hard 13:50:45 and if their app is already written using apis from kilo, it's already too late 13:50:51 mriedem: sure 13:51:07 but the longer that exists the worse the problem gets 13:51:10 so dropping the big red switch will break them - they'd obviously have to give some lead time on that 13:51:23 sure, which is part of making it an ops switch 13:51:24 i.e. in 6 months this cloud is going to turn off these apis, so rev your code 13:51:38 disable_deprecated_apis=True 13:51:59 they could even set that for only 1 set of compute endpoints 13:52:09 so there is a legacy endpoint, and a clean endpoint 13:52:30 and people could try their code against the clean endpoint, and see if it works 13:52:35 i was thinking, what if we deprecate some other api in ocata? if disable_deprecated_apis is a global, then the deprecation in ocata has 0 lead time 13:52:47 mriedem: yes 13:52:58 I was just going to ask that sdague : so it would be possible to run two different apis: go the default one blow up with a message that says if you insist, reconfigured to use endpoint X ? 13:53:02 but making the deprecation thing a list is also gross 13:53:14 mriedem: right, and leads to worse interop 13:53:22 s/reconfigured/reconfigure/ 13:53:30 cdent: yeh, API is an n-way service 13:53:41 that seems like a very sane way to go 13:53:53 as long as the associated messaging was clear 13:53:55 you could definitely have multiple of them, talking to the same backend, some with it on and some with it off 13:54:25 heh, compat mode for the deprecated apis 13:54:32 which have compat mode to v2.0 13:54:38 a smelly onion 13:54:45 i like the multiple endpoint idea though 13:54:46 as a backdoor 13:55:05 won't we have to close that backdoor eventually, too? 13:55:22 edleafe: it's called deleteing the actual code 13:55:24 presumably the messaging would need to say "the backdoor wil live for N days" 13:55:43 yeah ,the backdoor is broken when the deprecated apis are gone 13:55:47 or just don't work anymore 13:55:49 yep 13:55:55 * alex_xu reminders 5 mins left 13:56:03 sdague: so before we move forward with something like this, i think it needs advertising on the dev and ops lists 13:56:16 mriedem: ok, so how do we want to handle the spec then? 13:56:34 do an email around this to ops / dev asking for feedback ? 13:56:38 i think propose what you want for the red switch with the backdoor 13:56:55 and then yes bring it up in the lists for feedback 13:57:15 because we're providing a way for ops to do something, but we should make sure it's something they'll want or use 13:57:17 or if we're missing something 13:57:18 ok, and we move forward on the current spec without it for now 13:57:23 so it can progress 13:57:34 then this comes in as ... another spec? 13:57:36 yeah or that, the kill switch could be a separate spec 13:57:53 we're all on board with the deprecation spec w/o the kill switch i think 13:57:53 right, I mostly want to make sure we move forward on the proxy deprecation in some form 13:57:57 so if you want to move that forward, yes 13:58:12 ok, sounds good, I'll redo it based on that feedback (and the other bits above) 13:58:22 specs are cheap and plentiful! 13:58:23 * will propose to ops about the kill switch 13:58:40 * will (at some point) also propose some other extensions to deprecate 13:58:45 cool, i think i will cut the meeting in next minutes 13:58:46 what's the link to the spec(s) being discussed? 13:58:46 as a 3rd spec 13:59:04 cdent: https://review.openstack.org/#/c/312209/ is the proxy deprecation spec 13:59:10 thanks sdague 13:59:17 if you have input on bdm v1 in the dev list please respond 13:59:23 but i think it falls into the same bit rot category 13:59:25 we don't test it 13:59:30 and it crufts up the bdm code all over nova 13:59:43 ok, let's move back to the openstack-nova, i will cut the meeting 13:59:48 thanks 13:59:49 thanks all! 13:59:52 yep, I think I'm good here, thanks all 13:59:53 #endmeeting