13:00:03 #startmeeting nova api 13:00:04 Meeting started Wed Mar 15 13:00:03 2017 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:05 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 13:00:08 The meeting name has been set to 'nova_api' 13:00:10 who is here today? 13:00:20 o/ 13:00:30 o/ 13:01:08 I guess johnthetubaguy still in lunch 13:01:18 o/ 13:01:25 ok :) 13:01:32 #topic priorities 13:01:37 #link https://etherpad.openstack.org/p/pike-nova-priorities-tracking 13:02:27 beside policy, just want to mention, this API spec looks like very close https://review.openstack.org/265282 13:03:07 alex_xu: cool, will need to revisit that one 13:03:23 oops, i should hit that one 13:03:29 sdague: yea, just for you and johnthetubaguy :) 13:04:07 there was another, just trying to find it 13:04:11 for the policy, maybe we should adverties the doc one in the nova weekly meeting, that is simple and can be merge quick 13:04:34 #link https://review.openstack.org/#/c/440580/ 13:04:49 alex_xu: a good idea, been trying to bug folks directly too 13:05:21 this one also very close, #link https://review.openstack.org/#/c/415315/ 13:05:34 ah, yea, i forget to revisit that one 13:05:39 johnthetubaguy: you had +2 then some trivial updates 13:06:17 so we want to have a limit dict for the response of hints? 13:06:35 I guess no, that isn't match the request 13:07:04 gmann: thanks 13:07:09 gmann: i put it in the therpad 13:07:27 alex_xu: what limit do you mean? 13:08:05 I think we have a limit on the size of the tag, and limit on the number of tags anyways, so that should just carry over here 13:08:08 johnthetubaguy: the scheduler hints schema have 'addtionalProperties': True 13:08:22 oh right 13:08:31 that means user can put anything into the hints, and that store in the db, and can be get from the response 13:08:39 we left that as an extension point, mostly until we have traits sorted I guess 13:08:42 another open metadata api 13:08:57 yeah, it kinda is open 13:09:19 do we limit the number of scheduler hits you can set? 13:09:25 good news, the hints can't update 13:09:26 * mriedem sneaks in late 13:09:34 alex_xu: yeah 13:09:49 I think no, just limit by the length of request body 13:10:24 hmm, probably should fix that up 13:10:44 tags has a limit of 50 13:10:52 then I will drop in the question whether we need microversion :) i hate that question 13:11:20 I think we can pretend its a security fix, but I am willing to have that shot down 13:11:53 what is the question/issue? 13:12:11 bigger question, do we want to fix up the scheduler hint limit before we allow the adding of the GET api? 13:12:25 mriedem: scheduler hit spec, link is above 13:12:32 right, but summarize? 13:13:08 you can set an unlimited number of hints today 13:13:10 this is the one that's proposing to return scheduler hints from the original instance build request right? 13:13:14 then we start returning them too 13:13:18 yeah 13:13:31 so the GET response could have a million hints in it 13:13:48 mriedem: the hints in the request is open for any key-value, and then can get from the API response from that spec 13:14:01 what is the size on the key/value? 13:14:10 johnthetubaguy: is there a reason why it's in the server document instead of dedicated sub resource? 13:14:20 sdague: they're following the flavors spec 13:14:23 flavors in server response 13:14:27 no limit as i know 13:14:30 I get the idea of why we'd roll flavor up here, because everyone has flavors 13:15:00 but scheduler hints seem really specific, and only some percentage of applications is going to be using them 13:15:12 alex_xu: what table stores scheduler hints anyway? request_specs? 13:15:24 we kinda agreed to it at the PTG, on the basis of what goes in, should usually come out somehow 13:15:43 "somehow" could be a subresource, 13:15:46 is i think sean's point 13:15:49 right 13:15:56 and doesn't clutter up the main, already large, response 13:16:01 oh, I missed what you meant there, that does make sense 13:16:16 I think the important difference between flavor and scheduler hints 13:16:22 *everyone* has a flavor 13:16:30 sdague: yeah, that makes good sense 13:16:36 *only some instances* have hints set 13:16:43 I don't think its needed in /servers/detail either 13:16:49 right 13:17:20 * johnthetubaguy wishes he didn't always forget about the sub resource as an option 13:17:27 johnthetubaguy: the use case for this is? 13:17:27 mriedem: yea, i guess in request spec 13:17:35 * alex_xu always forget those detail 13:17:55 sdague: rebuilding an instance using the same hints as before 13:17:59 sdague: I think it was launching another VM that is similar 13:17:59 was what i remember from the ptg 13:18:09 *not rebuilding, duplicating 13:18:21 or working out what state your instance groups are in, I guess 13:18:38 well, server groups 13:19:13 hmm, 13:19:19 the request_spec is not scoped to an instance, 13:19:30 oh wait yes it is 13:19:43 where is this sitting the db models? 13:19:54 so we get the request_spec by instance_uuid from the api db, 13:20:03 deserialize the blob, 13:20:12 pull out the scheduler hints, and return those in the response 13:20:21 so yeah there is no key/value size limit on the hints in the db 13:20:30 can we query the member of server-group by /server-groups api? 13:20:57 mriedem: yeah, I think thats all correct 13:20:59 we have some known in-tree hints in the json schema validation, 13:21:03 but additionalProperties=True 13:21:06 so it's totally open ended 13:21:11 yea 13:21:14 +1 13:21:15 i could build a server with a million-char key/value 13:21:26 +1 for that being the current state, not +1 for keeping it like that 13:21:34 right, i'm just getting caught up, 13:21:44 seems we should limit the size of the key/value in the request schema, 13:21:49 mriedem: thats probably a security related bug, all bit not a major one 13:21:57 and as for the total number of hints per request, we could use quota like we do for metadata 13:22:03 mriedem: +1 I was suggesting we follow tags with a static 50 limit 13:22:16 +1 for a hard-code number 13:22:27 metadata I think is a quota based limit, which feels like overkill as a starting point 13:22:31 i was thinking metadata, which is i think 255 13:22:39 mriedem: well, if this is just a GET, what is the limit concern? 13:22:49 mriedem: Oh, you mean the string lenght? 13:22:58 johnthetubaguy: yeah 13:23:09 do we leave the string length on the key/values unbounded? 13:23:11 mriedem: I was thinking the number of strings, but both need fixing I gues 13:23:21 mriedem: it already is right? 13:23:37 mriedem: I thought the DB limited that, but maybe I miss-remembered that 13:23:51 this is stored in the request_specs table in a json blob, 13:23:53 so, I'm still trying to figure out where this is stored. Is this just jammed into user_data? 13:24:00 in a Text field, so there is a limit in the db, but it's rather large 13:24:01 oh right 13:24:07 sdague: request_specs, 13:24:08 nova_api db 13:24:18 https://github.com/openstack/nova/blob/master/nova/db/sqlalchemy/api_models.py#L171 13:24:19 ah 13:24:31 oh, api_models.py 13:24:39 the RequestSpec object serializes/deserializes from the json blob 13:24:54 when are request specs deleted? 13:25:08 i wouldn't be surprised if they aren't, but would need to check 13:25:41 i guess there will be 500 when over the Text field limit 13:26:00 alex_xu: yup 13:26:09 bauzas: are request_specs ever deleted? 13:26:22 they are in the api db so when we delete an instance we're in the wrong db to clean those up 13:27:14 I think my biggest concern to exposing this is that it locks us into lifecycle management constraints on that 13:27:26 because it's in a different table 13:27:52 in the flavor case, it's all super easy, because it's in the same tabl 13:28:00 well, not really, 13:28:05 flavors are in instance_extra 13:28:08 but same db :) 13:28:17 from what i can tell, we never delete request_specs records 13:28:31 mriedem: ok, well in a table linked to the instance pretty strongly 13:28:52 so i can fill up your api db with just bogus server build requests with a million hints 13:28:55 mriedem: right, I'm sure we're going to have to solve that 13:29:22 i suppose i should open a bug 13:29:36 yeah, bug time for sure 13:29:47 but if limiting to 50 is not too much ? does anyone use 50 hints all together ? 13:30:09 mriedem: quota does usually limit these attacks though 13:30:26 gmann: does it matter? its about the next instance that gets created really 13:30:45 if we break that person, its a good fix 13:31:03 honestly, I'm less concerned on the limit here 13:31:50 sdague: what is your main concern? 13:31:55 johnthetubaguy: we don't have quotas on hints do we? 13:32:01 honestly, I just wonder about exposing this 13:32:06 mriedem: I mean on build instance 13:32:13 I do get that "it would be nice" 13:32:26 sdague: if expose it just for server-group...then we have /server-groups API 13:32:32 but, I also think that anyone that's actively using scheduler hints, isn't doing them in an add hoc way 13:32:41 they are doing them with a system to coordinate them 13:33:03 johnthetubaguy: i'm saying, single server create request, with a scheduler hints dict with a million keys in it 13:33:09 we don't have quota limits on hints 13:33:11 mriedem: I couldn't find where the that DB entry is deleted either 13:33:12 why people want that use case implement new sch hint as "same_scheduler_hint" like same_host 13:33:15 like we do for metadata or injected files 13:33:16 and so using nova as redundant key retreival for this seems... odd 13:33:19 mriedem: sorry, yep +1 that 13:33:43 gmann: right, but if they launched that server from their program, they know what hints those were 13:34:03 the only real case is when Bob manually does an ``openstack server create .... hints`` 13:34:13 outside of a programatic environment 13:34:16 humm 13:34:20 then Jane wants to duplicate that 13:34:37 which, seems like a nice thing to do, but doesn't seem urgent 13:35:06 i don't want to make assumptions on the usefulness or use case for this, 13:35:07 especially if we want to spend brain power around quotas / policy 13:35:10 if nova implement that sch hint so that Jane can use that sch hint and nova internally does magic at very starting 13:35:17 sdague: thats basically what I was thinking too, nice to have, acceptable, but not urgent 13:35:18 if we want to know if this is a silly idea, we should ask the ops list 13:35:40 mriedem: well, it's a trade off. How many hours are we going to spend on this one. 13:35:52 we have that feedback at the PTG already, saying it was useful for the folks in the room 13:36:05 not sure it was urgent as such 13:36:15 it seems relatively straight-forward if we agree on where it lives in the REST API (subresource or not), 13:36:33 i think the quota limit and deleting request specs are separate issues that need to be dealt with anyway 13:36:34 as bugs 13:36:36 johnthetubaguy: do we have ideas about who those folks were, and vs. policy or other things 13:36:52 i think it was a team working with gibi 13:37:02 so probably related to ericsson and telcos 13:37:06 sdague: I thought it was chris f as well? 13:37:32 so do we want to take a couple of actions and move on? 13:37:41 1. ask the ops list about usefulness of this? 13:37:48 2. report bugs for the limits/delete issue? 13:38:08 and make the bugs a prerequisite for the api change? 13:38:13 if we do the api chngae 13:38:14 *change 13:38:29 I want a more comprehensive use case 13:38:35 I just left -1 feedback for that 13:38:37 yup, agreement on 2 seemed important 13:38:43 the current use case is just "I want to get this out of nova" 13:38:50 sdague: better use case makes good sense 13:38:51 That's not a use case 13:38:53 +1 for #2 should be fixed 13:39:10 sdague: did you add about the sub resource thing as well? 13:39:34 #action mriedem to open bugs for lack of limits on scheduler hints and a bug about how we never delete request_specs 13:39:36 yea, it really save to blowup the DB 13:39:43 I did not, because I think that until there is a more detailed use case I'm -1 regardless 13:39:44 sdague: when migrating an instances, wouldn't the hints be necessary to ensure that it lands on a host that meets the original requirements? 13:39:59 s/instances/instance 13:40:03 edleafe: I think that's a different issue 13:40:12 sdague: fair enough 13:40:19 migrating an instance should keep the hints, the user shouldn't have to respecify them 13:40:22 edleafe: we already pull the hints when migrating 13:40:23 and limit on sch hint as version bump right or we can discuss on bug anyways 13:40:24 from the request spec 13:40:32 edleafe: that already all fixed I believe, ask bauzas for details 13:40:34 sdague: that's how it already works i think, yeah 13:40:36 mriedem: ah, ok 13:40:38 i guess we can move on, as we said, this isn't urgent one, otherwise, we will spend whole hour on that :) 13:40:44 ++ 13:40:44 mriedem: I thought this was tied to that problem 13:41:01 edleafe: it might be, and the proposers are a couple of releases back 13:41:11 hence, please provide more detailed use case 13:41:38 sdague: got it 13:42:03 johnthetubaguy: anything more for policy? otherwise we done for the priorites 13:42:15 other than be smiling at mriedem about the spec? 13:42:24 i've got it in a tab :) 13:42:47 https://review.openstack.org/#/c/433010 right? 13:42:49 mriedem: cool, I hope your screen looks better than mine, but I suspect not 13:42:50 mriedem: it's worth to adverties on the nova weekly meeting for getting more feedback for the policy spec 13:42:59 mriedem: thats the one 13:43:11 alex_xu: ok can you update the weekly nova meeting agenda and post highlights for the api subteam? 13:43:30 when we have the weekly meeting, there is usually not many people around that were also at the api meeting, depending on time of day when we have the nova meeting 13:43:46 mriedem: yea, I will update the agenda, but i can't attend the meeting this week, it is in the super early time for me 13:43:51 i'm only attending this one because i'm working from home now :) 13:43:55 alex_xu: I think the follow on specs need your feedback 13:44:02 johnthetubaguy: got it 13:44:07 alex_xu: right - just need the agenda update with highlights, i'll repeat them 13:44:10 mriedem: welcome to the club, btw 13:44:13 mriedem: thanks 13:44:25 johnthetubaguy: i can feel my health deteriorating already :) 13:44:31 mriedem: :) 13:44:33 * cdent expects mriedem's usually stellar hygiene to begin a slow gentle decay 13:44:50 leg atrophy and whatnot 13:44:58 sigh, yet more crypto-jinxing 13:45:08 we talk about extension removing, so I did some experiment on removing the stevedore https://review.openstack.org/445864 13:45:38 #link https://review.openstack.org/445864 13:45:53 another single one 13:45:56 #link https://review.openstack.org/445361 13:45:57 alex_xu: any way to avoid api-paste.ini changes? 13:46:26 alex_xu: I should read your change better! 13:46:27 johnthetubaguy: it should be easy to do by just changing the class inline 13:46:38 yeah, he fixed it already, I was just being dumb 13:47:02 johnthetubaguy: i guess so, i just get circle import problem, but i want to make it works before the meeting, so i just hack the code quickly 13:47:18 ah, thats no fun 13:47:56 it copies the placement api pattern to list the routes explicitly https://review.openstack.org/#/c/445864/2/nova/api/openstack/compute/router.py@110 13:48:44 right, the explicit routes is very nice 13:48:52 when i saw that i was thinking router as in neutron router 13:48:54 it makes it so much easier to understand what is going on 13:49:22 +1 13:49:38 alex_xu: looking good, +1 all what they just said 13:49:55 there is still a lot to unwind to really clean this up, but I think this a very good push 13:50:00 and before that, we should think about removing the extension point in the server controller https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/servers.py#L155 13:50:27 probably similar way as what i do in the patch 13:50:41 yeah, those ones would be good to kill 13:51:16 is it something we want to do in Pike? 13:51:33 alex_xu: ++ 13:51:34 alex_xu: that will go away by merging the extension class in server.py's create() right 13:51:46 alex_xu: I think this would be a great debt reduction 13:51:51 as long as policy is still higher in priority, it beats and API features I have seen so far 13:51:59 so +1 for pike 13:52:15 closely followed by work on the API concept guide I guess 13:52:41 gmann: not sure, based on if merge didn't generate too much works 13:53:20 ok, i can do more futher work, and try to get more detail out, and I need a spec before freeze 13:53:49 maybe specless bp is fine for this 13:53:52 spec ? 13:53:52 alex_xu: one thing to make sure to keep an eye on is that this doesn't break project_id in the url by changing up the router 13:53:58 best to evolve the idea in gerrit I guess 13:54:15 sdague: yea, i just break the project_id in the afternoon :) 13:54:21 +1 for specless bp 13:54:47 ok, i will work more poc code, until people feel it is good, then request the bp approve 13:55:34 #topic open 13:55:39 so 5 mins left... 13:55:57 please bring up anything for the last 5 mins 13:55:59 lots of talk about the forum, are there any API things we want to raise at the forum? 13:56:18 #link https://etherpad.openstack.org/p/BOS-Nova-brainstorming 13:56:28 so, fyi, I started writing up the microversion architecture document, which is taking the old blog post and readapting it for more permanent archival https://review.openstack.org/#/c/444892/ 13:56:31 #link https://wiki.openstack.org/wiki/Forum/Boston2017 13:56:55 including input from things heard at the PTG which are common questions that I think we have answers with 13:56:58 answers for 13:57:05 are most of developers going to the summit? 13:57:15 alex_xu: my gut tells me no 13:57:40 i doubt it, 13:57:50 i actually wanted to start getting a list of who is going, or trying to get approval to go 13:58:10 #action mriedem to start an etherpad to get an idea of who is going to the summit/forum 13:58:17 I am trying to be there, but not yet confirmed 13:58:17 ok, i also didn't hear anything about summit travel strategy from my manager also 13:58:29 I was thinking what do we want feedback on from operators and users 13:58:46 johnthetubaguy: there is a thread about something like that in the ops ML, 13:58:47 the ironic raise min version discussion is the only thing that came to mind really 13:58:56 and basically there wasn't a lot of feedback, or requests for sessions, 13:59:11 so the forum organizers are a bit surprised and nervous from what i gather, 13:59:22 yeah, there is a dev thread on that too, I think 13:59:23 and a lot of operators won't be there because the summit is so close after the ops meetup 13:59:40 so i suspect a fair amount of thumb twiddling 13:59:43 ... 13:59:59 it is the time close the meeting 14:00:03 one last thing, 14:00:05 #endmeeting