15:00:26 #startmeeting craton 15:00:27 Meeting started Mon Feb 20 15:00:26 2017 UTC and is due to finish in 60 minutes. The chair is jimbaker. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:00:29 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 15:00:29 #chair sigmavirus sulo jimbaker thomasem 15:00:31 The meeting name has been set to 'craton' 15:00:32 Current chairs: jimbaker sigmavirus sulo thomasem 15:00:45 #link https://etherpad.openstack.org/p/craton-meetings 15:00:56 #topic Roll Call 15:00:59 o/ 15:01:32 o/ 15:02:29 hi 15:02:47 o/ 15:03:47 #topic Action Items from Last Meeting 15:03:55 #link http://eavesdrop.openstack.org/meetings/craton/2017/craton.2017-02-16-17.02.html 15:04:15 * thomasem thomasem to write BP regarding deployment as a starting point for iterating on a suggested deployment model 15:04:36 Didn't get to it given other priorities. Carrying forward. 15:04:43 #action ACTION: thomasem to write BP regarding deployment as a starting point for iterating on a suggested deployment model 15:04:49 #undo 15:04:50 Removing item from minutes: #action ACTION: thomasem to write BP regarding deployment as a starting point for iterating on a suggested deployment model 15:04:57 #action thomasem to write BP regarding deployment as a starting point for iterating on a suggested deployment model 15:05:00 There we go 15:05:08 * thomasem jimbaker to map Dusty's requirements to work or existing features of Craton, especially with respect to short-term deliverable (~2 weeks remaining) 15:05:46 thomasem, still working on this action item 15:05:58 #action jimbaker to map Dusty's requirements to work or existing features of Craton, especially with respect to short-term deliverable (~2 weeks remaining) 15:06:05 * thomasem thomasem to review Dusty and Bjorn's stories/use-cases and add notes on concerns or questions 15:06:37 I finished up going through Björn's this morning and added several questions/concerns 15:07:00 Will review Dusty's stuff as well and update tomorrow. 15:07:16 +1 15:07:17 #action thomasem to review Dusty stories and add notes on concerns or questions 15:07:26 * thomasem sigmavirus to finish up testing on cli 15:07:49 I don't think sigmavirus is here, so we need to carry this forward, probably. 15:08:05 agreed. we can get back to it if sigmavirus joins us 15:08:09 #action sigmavirus to finish up testing on cli 15:08:10 Sounds good 15:08:18 #topic Stand Up 15:08:24 #info each team member briefly describes what they are working on this week, and describes blockers (if there are any) 15:08:58 #topic Stand Up :: jimbaker 15:09:59 variables support in client/CLI; refactor alembic for foreign key constrain setup; reviews 15:10:01 DONE 15:10:34 #topic Stand Up :: thomasem 15:10:36 fwiw, there will be more than that 15:11:37 clouds resource (wiring it up through other resources, like how region was); two bugs related to projects resource links; use-cases/stories discussions for short-term deliverable; reviews 15:11:42 done 15:11:57 #topic Stand Up :: git-harry 15:12:43 adding /v1/devices endpoint for listing devices 15:12:48 done 15:13:59 #topic Stand Up :: farid 15:16:30 Gathered sample inventories to start loading into Craton, need to look into parsing/loading pieces. Client was buggy (seems to have been fixed? tb tested) 15:16:46 +1 15:16:48 excellent 15:16:56 o/ 15:17:01 farid, thanks. we will work through those bugs 15:17:12 good deal, will try to see what else I come across as well 15:17:14 done 15:17:21 woot 15:17:22 #topic This Week's Priorities 15:17:44 thomasem, i think farid just highlighted this week's priorities 15:18:00 Lol, is there an enumeration of the bugs? 15:18:02 get inventories into craton; find and fix bugs that prevent such usage 15:18:19 Gotcha 15:18:32 Is someone actively working on the client to fix the pagination bug(s)? 15:18:34 thomasem, those would be our critical and high bugs 15:18:43 git-harry, pagination hopefully is now fixed in client 15:18:54 but this is what sigmavirus worked on 15:19:17 i haven't pushed the envelope on pagination, but the simple case seems to work now 15:19:19 excellant 15:19:34 eg hosts = list(craton.hosts.list()) 15:19:47 to be honest, i find that sort of awkward 15:20:15 generator? 15:20:16 If that's a generator, why not exhaust it while printing? 15:20:25 yeah, it's now a generator 15:20:28 thomasem, all valid 15:20:54 it's more that it's craton.hosts.list(various-filter-thingies) 15:20:58 I guess because filtering and such. 15:21:07 which returns the generator 15:21:13 i think if it's called `list` 15:21:13 Yeah 15:21:18 it should return a LIST 15:21:34 Okay, what about craton.hosts.all()? :D 15:21:49 thomasem, could be a nice convenience iterator 15:22:17 Just seems to sort of defeat the purpose if we put it all in memory like that. Of course, unless we're really at scale, will be a non-issue. 15:22:46 Talking about drop in the well until we get to pretty high scales. 15:22:50 thomasem, i was going to add, a new convenience iterator for doing careful paginated DOS 15:22:55 ;) 15:23:03 Hahahaha 15:23:13 I suppose that would happen anyway with the list() if it's paginated. 15:23:18 maybe add a bug and we can look at it in a few weeks 15:23:22 Sure 15:23:29 yeah, i don't think it matters very much. but i don't think we need `all` 15:23:50 I was offering that up as an alternative since list() might confuse when it returns a generator. 15:23:52 what i would suggest is just have the `list` method return a `list` object 15:24:18 and we can bikeshed on what to call the other method 15:24:39 Yes. jimbaker, you want to add a bug about that? 15:24:46 thomasem, yeah, i will do that 15:24:47 Or shall I? 15:24:51 awesome thanks! 15:25:15 #action jimbaker add bug regarding list() method returning generator instead of list object in client library 15:25:27 +1 15:26:04 Alright, enumerating priorities: 15:26:26 1. Critical bugs 15:27:00 No way... I can't link to the "bugs" page? 15:27:17 nvm 15:27:18 Got it 15:27:19 we can start with https://bugs.launchpad.net/python-cratonclient 15:27:30 #link https://bugs.launchpad.net/python-cratonclient 15:27:31 and filter on it accrodingly 15:27:35 #link https://bugs.launchpad.net/craton 15:28:37 Should we make those project link bugs a higher priority since pagination is basically broken otherwise? 15:28:41 for projects 15:28:56 And how does that compare to, say, clouds 15:28:57 thomasem, +1 15:29:31 every resource collection should support pagination 15:29:50 Right, so we'd probably put fixing that above clouds, since that's not an existing resource in master yet... correct? 15:30:35 If they're both required, does it matter? 15:30:45 agreed with git-harry - they are of equal priority 15:30:50 It does if it means CLI bugs can be fixed sooner. 15:31:04 But, I get your point. 15:31:14 Questioning it as a matter of dependency for others, is all. 15:31:20 ok 15:31:21 Beyond that, I can do whatever order as long as they get fixed. 15:31:47 Anyway, I will focus on clouds, then, since I'm already under the hood on that anyway. 15:32:14 thomasem, agreed 15:32:44 Okay, so priorities are basically 15:32:46 from the CLI, it's the same abstract machinery to support. still need to robustly verify in our integration testing (no matter how formalized at this point) 15:33:24 1. python-cratonclient critical bugs now and those that come up throughout the week (As a result of us trying to get data imported into Craton deployment) 15:33:36 2. critical bugs on craton API itself 15:34:03 Pretty much all the critical things. We need to finish up that /devices spec so git-harry isn't blocked. 15:35:02 git-harry: even so, do you feel you have enough agreement on that spec to get started on that work? 15:35:04 agreed at /v1/devices collection support 15:35:34 thomasem: I've made a start already. I will adjust what I've done if the spec changes. 15:35:42 awesome, sounds good! 15:35:44 there seems to be some differences re how much the underlying modeling in the sqlalchemy should be exposed, but i assume minor 15:35:49 like device_type vs sub_type 15:35:51 I'll do another review of that by EoD. 15:36:28 fwiw, i think if we go with some name changes like this, we should push into the sqlalchemy model 15:36:58 that's what I've done 15:37:04 this is because at some point, we will want to support arbitrary sql usage of our model. and having two names for the same thing, this is not good 15:37:54 thomasem, this gets back into a conversation we might have had (tell me if i'm misremembring) 15:38:26 re sqlalchemy and object graphs; vs just sqlalchemy and doing interesting queries 15:38:58 We touched on it a bit, but I don't remember us going into great detail. 15:39:00 fortunately sqlalchemy supports both approaches 15:39:15 You're referring to my dislike of ORMs? :) 15:39:29 thomasem, no worries, i just bring it up because it's in bjorn's reqs, that's all 15:39:36 in terms of being able to do analytics 15:39:50 thomasem, re ORMs - i hope you will like in the end what we have done here :) 15:40:12 Lol, it's all good. It's always "it depends". I'm hesitant to truly say I dislike them as a blanket statement. 15:40:15 i'm hoping we have the following: cake + eat it too 15:40:41 If done well and conscientiously I'm sure it'll be fine. 15:41:02 Anyway, I'll avoid going down that rabbit hole. 15:41:17 fwiw, i usually look a the model from just the mysql client when i'm debugging things 15:41:31 Yeah, so... if we're expecting them to do analytics and such directly against the DB, hmmm.. 15:41:33 So we really want that? 15:41:39 s/So/Do/ 15:41:41 i think so 15:42:06 Why? Kind of looking behind the curtain a bit and limits the versioning control that an API provides. 15:42:12 and i don't think it's going to be a bad thing either, since we can always view things from a table perspective in SA 15:42:18 They're going to write things against a changing schema. 15:42:31 Mmmm, it is a bad thing when it comes to expectations of support. 15:42:34 thomasem, oh sure. unless we write this stuff too 15:43:05 Classic way to get yourself in that sort of bind is setting the expectation that it's okay to query against the DB and ignore the API. 15:43:25 What do you mean? We write it... for them? 15:43:34 Isn't that basically what the API is for? 15:43:50 yes, we can add it to our API :) 15:44:33 Sorry, I'm losing track a bit, is this something we need to add in the next two weeks. 15:44:47 git-harry, no, it is not 15:44:51 I don't know, actually. Again, the use-cases as they map to short-term requirements are vague at best. 15:44:54 it is relevant to a meeting i have in 15 min 15:44:56 Okay, good to know. 15:45:08 so i'm just putting out a position there 15:45:08 Yeah, I'll be at that 15:45:43 Okay. Well, I would really like to discuss this reporting stuff when it does become relevant, because I'm going to plant my feet about people talking directly to the DB rather than going through the API. 15:45:45 thomasem, i think the relevant contract is the SA model 15:46:04 but I thought that meeting was only to confirm immediate priorities 15:46:17 git-harry: I hope so 15:46:27 always good to be prepared 15:46:51 jimbaker: you can't version that as easily as you can an API... 15:47:09 The data model will become a nightmare if we have to keep around old representations of the data. 15:47:25 Because somebody wrote a report against it and they don't have time to change it. 15:47:26 thomasem, i believe that's the whole point of alembic and other migration work 15:47:42 I don't think that's what folks had in mind, exactly. 15:47:50 But, I'd be interested to hear your grounds for that reasoning. 15:48:04 but sure, if you cannot update your report, you are on shaky grounds 15:48:10 That WILL happen. 15:48:45 Is there anything else we need to cover off before the end of this meeting? Otherwise I'm going to take back 10. 15:48:45 And it's insane to expect everyone who wrote some reporting thing against our schema to update every time we need to change the schema. 15:49:03 git-harry: nope. I think we have our priorities, and they will become clearer. 15:49:07 #topic Open Discussion 15:49:17 then if we assume that reporting will be out of sync, we need to bring this into the API. some reports then become more supported than others 15:49:21 Okay, now jimbaker and I can nerd knife fight 15:49:31 thomasem, oh sure 15:49:48 jimbaker I think all reports ought to query the API, and that's it. 15:49:49 i do dislike opaque databases 15:50:03 Anything going behind the API is going to cause a maintenance problem. 15:50:17 Because we don't have as much flexibility and power in versioning the DB as we do in versioning the API. 15:50:40 Alembic and other migration tools are meant to go from version to version, not necessarily support multiple versions simultaneously. 15:50:50 Unless I'm misunderstanding something? 15:50:53 alembic does NOT support multiple versions 15:51:25 any thought that your ad hoc reporting could survive a versioning change, that's obviously wrong 15:51:26 Exactly. You're at a version, and that's it. So, if folks are writing reporting and tooling against our schema and we need to go to another version, we risk breaking their things, and that's going to put people up in arms and hamstring our progress. 15:51:51 okay, so, given that then, wouldn't it be better to not set the expectation that it's okay to use our DB directly? 15:52:42 It'd be better to set a clear expectation (and this is definitely once we actually have versioning implemented in the API, too) that our API is what one ought to use for querying for reporting and other tooling? 15:52:46 so two opinions then. i believe in making it feasible to do certain things, but understanding there is a risk involved 15:52:47 where did this direct db querying issue come from ? 15:52:57 farid, this is about ad hoc reporting 15:53:12 I believe in protecting the customer from themselves. 15:53:23 one option is: they have to build all of their representations of the inventory from what they can query from the api 15:53:35 and providing a clean UX to support their needs in a flexible, safe way. 15:54:14 Another consideration - allowing direct access to the DB opens you up to operational problems 15:54:24 the other is, there's an underlying clean relational database 15:54:27 We put quotas and rate limits and other things in place to protect Craton from malicious or mistaken users 15:54:50 jimbaker: was ad-hoc reporting in the UC document ? 15:54:55 farid, yes 15:55:13 which $? 15:55:16 sorry, #? :) 15:55:27 talking about 8? 15:55:42 UC2 15:55:51 and it's not initially required per bjorn 15:55:53 got it thanks 15:56:05 That UC looks to be satisfied by Craton API? 15:56:26 thomasem, depends on how much we bake into our API :) 15:56:50 Okay, if they need more, we need to allow more from our API, in my opinion. But, allowing direct access to the DB sends the wrong impression. 15:57:00 They may come to rely on it as it is. 15:57:31 Even if you tell customers "this is subject to change at any time," they'll ignore you and expect it to stay that way. 15:57:34 thomasem, i certainly know where you are coming from 15:57:57 anyway, time to wrap up this meeting 15:58:02 Yeppers 15:58:04 #endmeeting