17:02:25 #startmeeting craton 17:02:26 Meeting started Thu Feb 9 17:02:25 2017 UTC and is due to finish in 60 minutes. The chair is jimbaker. Information about MeetBot at http://wiki.debian.org/MeetBot. 17:02:26 sure, i dont mind 17:02:27 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 17:02:29 The meeting name has been set to 'craton' 17:02:49 #chair sigmavirus sulo jimbaker 17:02:50 Current chairs: jimbaker sigmavirus sulo 17:02:55 #link https://etherpad.openstack.org/p/craton-meetings 17:03:00 #topic Roll Call 17:03:15 o/ 17:03:19 o/ 17:03:20 o/ 17:03:32 * sigmavirus can't chair this today 17:03:40 sigmavirus, np, i will chair 17:03:47 and hopefully keep short 17:03:52 hi 17:03:55 hi 17:04:22 hello 17:05:04 so at some point we agreed that we are not supposed to have this meeting if we didn't have an agenda in advance... 17:05:26 but given lots of stuff happening... i believe we should disregard and have a short meeting regardless :) 17:06:02 everyone ok with that? 17:06:15 yep 17:06:36 indeed 17:06:50 awesome. let's just move to our standing agenda, and fit in what we need to communicate 17:06:51 yep 17:07:08 #topic Action Items from Last Meeting 17:08:06 http://eavesdrop.openstack.org/meetings/craton/2017/craton.2017-02-06-15.00.log.html 17:09:00 bunch of action items. so i haven't taken care of doing the dusty's req doc as launchpad 17:09:02 bug 17:09:17 I have not gotten around to the BP yet this week. I took the bulk resources endpoint bug, but that's lowered in priority right now. 17:09:50 Had some good discussion around the latter, though, and will continue once we get some more critical things done. 17:10:22 thomasem, agreed. we will want to figure out deployment specifics, and if you want to continue to drive point on that, that would be great 17:10:55 You bet 17:11:09 re dusty's doc, we got some very useful triaging in our discussion with toan and antonym 17:11:42 which to recap for others here (such as tojuvone) 17:12:15 we are trying to figure out for rackspace if we can immediately use craton for some rackspace support needs 17:12:47 separately i discussed with farid getting these into launchpad so we can track 17:13:46 i believe as your project lead :) that the most important thing we can do is see craton get adopted for real usage. it will get us in front of real problems, which this project is all about solving 17:13:58 *so earlier is better here* 17:14:46 so that's my action item and thomasem's 17:14:57 sigmavirus is out this point, but we can discuss that later 17:15:31 sulo, it was mentioned as info, but it could be considered an implicit action item as well given priority 17:15:32 * sigmavirus is here 17:15:33 just also in another meeting 17:15:33 Yeah. We have some discussions that need be had with another contender for these use-cases. 17:15:34 and can't focus on chairing this one :) 17:15:58 sigmavirus, no worries. do you want to report on your action item at this time? 17:16:38 sulo, also please give us feedback on Parent/Child Relationship work is the highest priority work for this week (was marked as #info) 17:16:39 Just constantly spinning between projects. Everytime I come back to craton I'm working on testing things 17:16:46 (Things I have in flight) 17:17:21 sigmavirus, and that's your action item right, testing the CLI - hopefully will reduce some of that spin as well 17:18:41 cool 17:19:30 ok, let me report on the last high priority item, that might have been marked as #action; more work on the getters/setters in the client/CLI, mostly by clean up; and addition of delete support 17:20:02 i will push that up momentarily. did find that our DELETE on variables doesn't actually do anything, so i have a patch for that as well 17:20:21 Sounds good 17:20:41 for me, i have been looking into https://bugs.launchpad.net/craton/+bug/1662842 17:20:43 Launchpad bug 1662842 in craton "Allow search by labels" [Critical,New] 17:20:49 i like the curious symmetry of "addition of delete" :) 17:21:06 and have some patches in the review, need to write functional test for update calls of projects and users and that patch will be good to go 17:21:12 Syed__, that's cool, but we are currently focused on action items 17:21:37 Sounds good, i guess once bugs are raised and referenced properly, helps a lot in picking those up 17:22:38 Syed__, right, that was part of my conversation with farid is everyone doing a better job there. which seems to have improved. and more importantly, making it easier to use the bug info to get at useful reporting 17:23:48 so we will work on that, and that's very much related to the "requirements as a bug/feature" (or better, bugs) action item i started off with 17:24:08 yeap and that would be great once we have that in place 17:24:12 +1 17:24:44 awesome. i think that's it for action items, which all seem to be in flight at this point 17:25:12 #topic Stand-up 17:25:32 #topic Stand-up - Syed 17:26:13 (let it be noted that the meetbot seems currently unresponsive. but it's in the log) 17:26:21 Sounds good 17:26:32 Syed__, anything you want to add to your earlier comments? 17:27:00 No i guess thats all i am doing. Will be looking into picking some CLI bug apart from other things i am doing 17:27:09 Syed__, that would be great 17:27:33 #topic Stand-up - git-harry 17:28:43 fwiw, git-harry, i'm still thinking about my response to your spec on variables in https://review.openstack.org/#/c/428190/ 17:28:55 and i see you have some changes now for review 17:29:09 I've got some patches in review for tidying up the variables a bit. Currently I'm going through the review queue. If there's high priority stuff that needs picking up, point me in the direction of it and I'll take a look. 17:29:25 jimbaker: that stuff is just clean up to make any future changes easier 17:29:44 done 17:30:12 git-harry, got it. dupe removal is good. i do have concerns about some of the API changes you proposed, namely around PUT 17:30:16 for variables 17:30:33 we can discuss further 17:30:41 okay 17:30:50 #topic Stand-up - jovon 17:31:44 we will circle back to jovon 17:31:50 #topic Stand-up - thomasem 17:31:52 currently working on documenting users, projects, and devices. 17:32:03 jovon, +1 17:32:13 Need reviews: 17:32:14 https://review.openstack.org/427777 17:32:14 https://review.openstack.org/428996 17:32:22 Been keeping those tidy 17:32:40 Currently working on wiring up Cloud resource in between Project and Region 17:32:49 Going through the review queue as well 17:32:57 thomasem, awesome, sounds like you're keeping busy! 17:33:13 I try! 17:33:39 i expect any number of conflicts here, but we will get the changes in 17:33:42 Other than that, had a lot of meetings distracting me this week, but that won't continue much. 17:34:35 Need to write up a bug for the issue git-harry found this morning with an API change that went in, so putting that on my list right now. 17:34:45 done 17:34:55 question. are we planning to create a separate definition for devices? as it is currently nested within net devices? 17:35:03 thomasem, thanks for reminding us of that part of standup protocol 17:35:25 You bet! 17:35:37 jovon, consider it like an abstract class 17:35:51 understood 17:35:55 it should not be directly instantiated 17:36:00 just curious 17:36:12 not certain if sqlalchemy would prevent, but our apis certainly do not support 17:36:55 jovon, no worries. but let's move to open discussion if more. everyone, please remember your open discussion topics! 17:37:16 #topic Stand-up tojuvone 17:37:27 ok.. 17:37:35 I want to make "planned host maintenance" using Craton 17:37:49 Adding namespace, something like: http://${CRATON_IP}:8080/v1/hosts/{id}/host_details 17:37:56 I want to add this url link to Nova 17:38:09 Now in Craton namespace host_details is added by "admin" 17:38:17 but in Nova side also owner of server/VM will see the same link 17:38:26 I guess we can handle the policy somehow in Craton to make this possible? 17:38:44 I want to update my Nova spec with different url to link to Craton than it currently state there: https://review.openstack.org/428070/ 17:38:47 tojuvone, so we should have the level of support necessary for this in rbac 17:38:58 but rbac + namespaces is not something we have considered just yet 17:39:25 having said that: i think namespaces are exactly the way one would want to organize some set of variables for rbac 17:40:13 we have considered separately that the prefix of a variable is something we would directly control with rbac, and is mentioned briefly in the rbac bp that is posted 17:40:49 (this follows similar practice in tooling like zookeeper or consul) 17:41:02 tojuvone: your nova service permissions are different from craton .. unless you are using all within the same keystone domain/context 17:41:13 so that is the extended answer to yes 17:41:29 sulo, and that's a great question, what that cross service permission model means 17:41:47 tojuvone: i am not sure why you are worried about policy right now .. i think what should matter here is how does nova know to create the link 17:41:56 tojuvone: the answer is possibly, it doesnt 17:42:07 We need to set it there 17:42:18 when making http://${CRATON_IP}:8080/v1/hosts/{id}/host_details 17:42:23 so unless this url is something you are manually looking to set in nova .. i dont see how this will work 17:42:34 tojuvone: what is id ? 17:42:49 id here is craton id .. nova doesnot know that 17:42:56 sulo, so we see some similar sort of bidirectionality required in webhooks 17:43:07 "id" I guess we have in Craton host the "id" 17:43:15 jimbaker: how do you mean ? 17:43:25 but can i ask we move this to the open discussion? 17:43:30 tojuvone: yes, but how does nova know that id ? 17:43:41 tojuvone: are you going to manually push the url for each host ? 17:43:43 please remember this topic, we can get back to it 17:44:01 sulo, since you are here 17:44:04 yes, need to push it to Nova 17:44:12 #topic Stand-up sulo 17:44:16 jimbaker: iirc nova does not have any webhooks, neither do we 17:44:38 sulo, no, but it's in the same idea. what can we learn? 17:44:41 : 17:44:43 :) 17:44:49 I am just chasing a sqlalchemy bug thats causign search by labels to fail 17:45:04 its on pagination function 17:45:19 but looks like something weird on sqla 17:45:29 sulo, ok, is this something we can ignore for now 17:45:42 not unelss we want search by labels to work 17:45:44 by avoiding that join? 17:45:52 join ? 17:46:06 to the labels table 17:46:17 but back up 17:46:29 the relevant question is search by labels 17:46:33 not sure i follow, why woud that matter ? 17:46:37 so sure, that needs to work :) 17:47:22 although, it is freaking out on labels join .. we do join on variables too .. which seems to work 17:47:37 well, its not exactly join its freakign out on 17:47:39 sulo, earlier we were discussing unnecessary joins and how that was impacting pagination. specifically variable details when such details were not requested (not even implemented!) 17:47:45 its the part where pagination is adding limit 17:48:08 jimbaker: thats different ? .. we are eager loading 17:48:15 we can chagne that to select load 17:48:20 but that wont fix this problem 17:48:22 sulo, and eager loading can be great. but not here 17:49:07 let's back up. i wanted to find out earlier about parent/child and supporting cabinet to container views 17:49:28 since this is the highest priority task we have right now, other than variable support down to the CLI 17:49:52 parent_id is a easy fix, ill push a review soon 17:50:02 i need this pagination work to get done for that 17:50:10 sulo, ok, just want to make sure we are addressing 17:50:13 since it piggybacks on the links support added by ian 17:50:19 ah, ok 17:50:28 and not so separable 17:50:33 as coded now 17:50:36 yeah its tied to this code 17:50:46 my change is based on this work 17:51:01 everything works .. except the seach by labels test is failing 17:51:01 got it. i was hearing pagination, and thinking, that's not in any of our immediate reqs 17:51:13 even though we know it's super important for the future 17:51:47 anyway need to figure out why this is happening 17:51:59 as it seems there might be other conditions this can cause pain with 17:52:03 yes. let's spend some more time on this 17:52:24 but we may need to separate out the link code and defer pagination if too much 17:52:29 just want to give us that out 17:52:45 yeah so the search function i had added while back 17:52:54 and without the pagination bit it works 17:52:59 got it 17:53:02 its a much have feature righ tnow 17:53:09 example: seach for all compute nodes 17:53:12 or api nodes etc 17:53:19 by labels 17:53:20 in terms of vars 17:53:36 more than one service on a host 17:54:05 identified by host labels 17:54:21 right, which is more efficient with labels than going into json 17:54:54 #info clearly we have gone to open discussion... 17:55:45 sulo, let me state something provocative/time saving: i do wonder if we will end up not caring about labels after all 17:56:17 how so ? 17:56:25 what would happen if we just removed labels? 17:56:45 we wont have a nice way to tag hosts ? vars are not well suited for this ? 17:56:46 Yes... what WOULD happen if we just removed labels? 17:56:50 could we do the same sort of queries, by using variables? 17:56:58 maybe 17:57:02 it might be ugly 17:57:20 sulo, especially given namespaces, which we will be implementing 17:57:20 example: host1 needs 3 labels "compute", "api", "scheduler" 17:57:30 even with namespace 17:57:50 so let's say we have the labels namespace 17:57:59 labels (namespace) will have which k:v pair 17:58:05 labels/compute=true 17:58:47 basically we get everything we need 17:59:11 yeah, i dunno how that seach will look like 17:59:22 yes, right now our variables search is expensive, because it's not indexed. but it should be cheap with the right json indexing 17:59:50 in this case, it might be still be fine, since we only care about the presence of keys, not even the values 18:00:32 It would be weird to have labels/compute=false 18:00:35 and treat it as a compute. 18:00:39 yeah 18:00:50 i mean we can make it work if desired 18:01:03 thomasem, but that's why we have the labels namespace 18:01:22 i should point out that the usual representation of a set is a dict... 18:01:31 yeah i dunno 18:01:38 what happens when someone does compute=false 18:01:48 it wil mean we have to query on k and filter on value 18:02:01 cpython may have an alternative implementation; but that's how it's done in java for example: key=true 18:02:09 implicitly 18:02:24 sulo, so we constrain with the namespace 18:02:36 we can use convention for now 18:02:42 like ? 18:03:24 but one thing tojuvone and i discussed is that if we had a "maintenance/" namespace, we could constrain the allowed transitions 18:03:25 so what do we gain from doing k:v labels, vs doing labels the way it is now ? 18:03:34 i think if we gain more .. then its a no brainer 18:03:41 so one can just set keys to arbitrary values 18:03:55 sulo, so we get k:v labels for free 18:04:09 and we implement less db code, and complex queries 18:04:13 i get that .. but whats the use case for that 18:04:14 which are currently breaking 18:04:30 also, labels don't work on anything but devices 18:04:45 right 18:04:56 then its the equivalent of getting rid of labels 18:04:58 Actually might extend /maintenance to more generic /host_details 18:05:02 k:v is just vars 18:05:15 yes! 18:05:17 we can still keep the endpoint etc .. 18:05:30 not saying i am convinced this is good yet 18:05:32 sulo, because it knows about the labels/ namespace 18:05:40 yeah 18:05:56 i am mostly worried about perf hit when there is large data seach on vars 18:06:02 but if we dont think that will be a probl 18:06:06 then its fine 18:06:19 sulo, i think it's less of a problem than a multitable join 18:06:32 I need to go, but be back in as hour or so 18:06:40 jimbaker: you will have that join regardless .. because varxmixin 18:06:44 tojuvone, thanks for your participation 18:06:50 jimbaker: currently we can get rid of vars in labels seach 18:06:53 thats a differnt issue 18:07:06 sulo, there are joins regardless :) 18:07:11 just fewer joins 18:07:14 in a complex query 18:07:15 heh sure 18:07:33 so consider labels + variables in the search query. with pagination. uh-oh 18:08:15 * thomasem needs to go investigate the labels implementation 18:08:29 jimbaker: yeah, i think we should experiement for sure 18:08:30 thomasem, it is simple, and a delight to read 18:08:42 but it's too simple imho 18:08:43 this is somethign we've talked about for a while anyway 18:08:51 maybe its time to just try it out 18:08:55 sulo, yeah, we kept on simplifying variables 18:09:01 sorry, simplifying *labels* 18:09:09 ultimate simplification: remove them 18:09:36 well anyway, in terms of priority work to get done 18:09:40 we needs labels right now 18:09:58 but again if we can just use convention now 18:10:04 labels/compute=true 18:10:18 then figure out how to make that cleaner later... 18:10:45 then we can get this done now 18:11:05 thats a much bigger change right now ? 18:11:18 that needs change on all layers including api maybe 18:11:21 but vars work now 18:11:23 will have to look 18:11:33 labels works too 18:11:40 just not enough 18:11:50 anyway... good discussion 18:11:58 well its pretty bad if we are getting rid of label because somethig else is breaking it 18:12:06 lets figure out why paginaiton is breaking it 18:12:12 rather than getting rid of it 18:12:17 sulo, so i would first relax the requirement on sqlalchemy 18:12:24 and use 1.1.5 18:12:29 as we earlier discussed 18:12:37 on this channel 18:12:51 thomasem mentioned that he saw a similar bug 18:13:28 i suggest we wrap up our meeting. we are well over 18:13:40 discussion can continue of course 18:13:51 seeing no objections.... 18:13:52 That bug might have been fixed, btw. I wanted to throw out an idea of where to look, but I haven't gone and dug in very deep on it. 18:13:58 #endmeeting