15:00:25 <jimbaker> #startmeeting craton
15:00:25 <openstack> Meeting started Mon Jan 30 15:00:25 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:27 <openstack> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote.
15:00:30 <openstack> The meeting name has been set to 'craton'
15:00:48 <sigmavirus> o/
15:00:50 <jimbaker> #chair sigmavirus sulo jimbaker
15:00:50 <openstack> Current chairs: jimbaker sigmavirus sulo
15:00:51 <thomasem> o/
15:00:55 <jimbaker> #link https://etherpad.openstack.org/p/craton-meetings
15:01:08 <jimbaker> #topic Roll Call
15:01:12 <jimbaker> o/
15:01:28 <thomasem> o/
15:02:41 <jimbaker> sigmavirus, as usual please be today's chair
15:02:59 <sigmavirus> sure
15:03:20 <sigmavirus> #topic Action Items from the Last Meeting
15:03:25 <sigmavirus> #link http://eavesdrop.openstack.org/meetings/craton/2017/craton.2017-01-19-17.03.html
15:03:31 <sigmavirus> #info there were no action items
15:03:48 <sigmavirus> oh wait
15:03:50 <sigmavirus> that's two weeks ago
15:03:52 <sigmavirus> hold please
15:04:06 <jimbaker> http://eavesdrop.openstack.org/meetings/craton/2017/craton.2017-01-23-15.00.html
15:04:11 <sigmavirus> #link http://eavesdrop.openstack.org/meetings/craton/2017/craton.2017-01-23-15.00.html
15:04:32 <sigmavirus> #info We don't have an agenda for this week
15:04:48 <jimbaker> so standing agenda please
15:04:59 <sigmavirus> #info It looks as though jimbaker completed his action item
15:05:15 <sigmavirus> #topic Stand-up
15:05:37 <sigmavirus> #info I'll go round-robin and collect each person's stand-up finishing with myself. Please let us know when you're done with your stand-up items
15:05:50 <sigmavirus> #topic Stand-Up :: sulo
15:06:06 <sulo> so my functional tests are up for review
15:06:25 <sulo> i am currently working on networks, network-devices and network-interfaces cli commands
15:06:46 <sulo> will prolly look/work at misc stuff for demo this week
15:06:54 <sulo> done
15:07:06 <sigmavirus> #topic Stand-Up :: jimbaker
15:08:15 <jimbaker> i got some initial code working for python client and CLI support of setting/getting variables. we just discussed over in #craton and  <resource>-get/set-vars is probably the ergonomics for this for the CLI
15:08:36 <jimbaker> example: cat baz.json | craton host-set-vars 8 x=47 y=99
15:09:00 <jimbaker> (sets from baz.json, then adds additional settings x=47, y=99; works well)
15:09:11 <jimbaker> will push into WIP this morning
15:09:14 <jimbaker> and finalize
15:09:14 * sigmavirus holds tongu
15:09:42 <jimbaker> will be interested in hearing more from sigmavirus, but later
15:09:43 <jimbaker> ;)
15:10:16 <jimbaker> so this is in prep for this week's round of demos. that's going to be my main focus, along with onboarding thomasem
15:10:20 <jimbaker> done
15:10:46 <sigmavirus> #topic Stand-Up :: thomasem
15:11:04 <thomasem> first day, so getting up-to-speed
15:11:40 <thomasem> probably going to be pinging folks, most likely jimbaker regarding dev env setup. I've got craton pulled down and tests are passing and such (first time, too, nice to see it work with a basic python env :)
15:12:06 <sigmavirus> thomasem: so you're saying "Thank god we don't use Jython"? :P
15:12:14 <thomasem> Going to also be looking at reviews, already glanced over the one sulo sent me last week, so some questions may be coming out of that.
15:12:39 <thomasem> Well, I used to work on other projects, like Nova, Neutron, etc. and those tests never passed locally the first time. Always had to do some magic to get them all working correctly.
15:12:40 <jimbaker> sigmavirus, not today...
15:13:11 <sigmavirus> thomasem: I'm just teasing jimbaker
15:13:11 <thomasem> Anyway, small amount of distraction from a previous project tomorrow morning, but other than that just getting my feet wet.
15:13:27 <jimbaker> sigmavirus, :)
15:13:45 <thomasem> done
15:13:52 <sigmavirus> #topic Stand-Up :: rainya
15:14:15 * sigmavirus noticed rainya join the meeting :P
15:14:43 <rainya> sigmavirus, my textual client just signed in :( sorry! not really here
15:15:28 <sigmavirus> Okay :)
15:15:31 <sigmavirus> No need to apologize
15:15:36 <sigmavirus> #topic Stand-Up :: git-harry
15:17:18 <git-harry> Apart from the usual work keeping up with reviews, I need to finish of a spec I've started with some suggestions on how the variables API could be improved.
15:17:47 <jimbaker> git-harry, that would be most welcome work
15:18:08 <git-harry> It's about 90% there so should be done today or tomorrow. Also noticed a bug in the unit testing that I want to look into.
15:18:14 <git-harry> done
15:18:26 <sigmavirus> I don't see Syed_ or jovon, so I'll skip them
15:18:52 <sigmavirus> Did I miss anyone else?
15:19:14 <sigmavirus> (I'll take silence as a no)
15:19:19 <sigmavirus> #topic Stand-Up :: sigmavirus
15:19:40 <sigmavirus> Wrapping up the pagination work - the response bodies have all been modified to include the hypermedia API links
15:19:48 <sigmavirus> The links that we include are first, prev, self, and next
15:20:06 <sigmavirus> Working on fixing up that testing, adding more testing, etc.
15:20:27 <sigmavirus> Depending on the order with which they merge, I'll either be updating sulo's patches, or rebasing and updating mine =P
15:20:49 <sigmavirus> Hoping to get to some client reviews today too
15:21:03 <sigmavirus> #topic Priority Reviews
15:21:05 <jimbaker> cool
15:21:30 <sulo> https://review.openstack.org/#/c/408784/
15:21:40 <sulo> https://review.openstack.org/#/c/422564/
15:21:49 <sigmavirus> #link https://review.openstack.org/#/c/408784/
15:21:56 <sigmavirus> #link https://review.openstack.org/#/c/422564/
15:22:05 <jimbaker> sulo, thanks, looks like those reviews got fixed
15:22:05 <sulo> https://review.openstack.org/#/c/426250/ << jim needs to fix the host delete api first for that to work
15:22:18 <sigmavirus> #link https://review.openstack.org/#/c/426250/
15:22:55 <jimbaker> sulo, i pushed up some changes on that, works fine except for some problems with a region test (which i hope is addressed in the other reviews)
15:23:06 <sulo> yeah they should all work, i am not sure how the coverage looks
15:23:10 <jimbaker> maybe missing dependency? but the region test was borken
15:23:12 <sulo> prolly not great, but its a start
15:23:13 <jimbaker> broken
15:23:18 <jimbaker> although borken is also good
15:23:37 <sulo> yeah i had bad code pushed for the regions tests
15:23:40 <jimbaker> sulo, anyway, we will revisit and get through
15:23:41 <sulo> fixed that today
15:23:44 <jimbaker> cool
15:24:19 <sigmavirus> Any other priorities?
15:24:55 <sulo> well
15:25:09 <sulo> not priority but i'd apprecitate folks start looking at
15:25:13 <sulo> #link https://review.openstack.org/#/c/421337/
15:25:26 <sulo> it will open paths for next week
15:25:30 <jimbaker> sulo, yep, owe you that detail
15:25:50 <jimbaker> and it's likely something we will have thomasem working on as well
15:26:02 <jimbaker> given interest in containers
15:26:18 <thomasem> +1
15:27:14 <thomasem> Definitely on my agenda. :) I did glance over it yesterday, but would like to get more up-to-speed before taking up a bunch of y'alls time asking questions I could have answered myself.
15:27:22 <thomasem> s/yesterday/last week
15:27:29 <sigmavirus> Shall we move on?
15:27:53 <sigmavirus> (Silence in this case is acceptance)
15:28:05 <sigmavirus> #topic Open Discussion
15:28:26 <jimbaker> sigmavirus, indeed it is. i will add that to the standing agenda :)
15:28:54 <jimbaker> so we have demos tomorrow and thursday
15:29:12 <jimbaker> demo #1 will be in our usual vidyo room, at our usual vidyo time
15:29:56 <jimbaker> so 10a MT to be precise (note we do not use UTC here, because we want to move dev meetings to accommodate changes in DST)
15:30:20 <thomasem> So, is there any guides on getting a basic dev env set up? Also, I think I might have a schedule conflict with some of the meetings this week. I will be rearranging my recurring appointments to fit the Craton schedule better.
15:31:12 <thomasem> I will be comparing calendars this morning and will let y'all know in #craton about what things I can and cannot attend. By next week, for sure, I will have my schedule re-arranged properly.
15:31:20 <sulo> thomasem: http://craton.readthedocs.io/en/latest/dev/install.html
15:31:21 <jimbaker> thomasem, ok, hopefully we can work these out. demo #2 is 9a MT on thurs, followed by our usual text #craton meeting at 10a MT
15:31:45 <thomasem> XD Thanks, sulo!
15:32:00 <jimbaker> always good when we doc stuff! :)
15:32:12 <thomasem> It really is.
15:32:35 <thomasem> Perfect. This should get me going!
15:32:57 <jimbaker> sigmavirus, you were holding your tongue earlier about i believe the CLI ergonomics
15:32:59 <sulo> thomasem: actually, not sure the doc covers https://github.com/openstack/craton/blob/master/Dockerfile#L14 in dev setup
15:33:09 <sulo> but thats prolly much easier than doing all the installs etc
15:33:26 <jimbaker> so one example $ cat baz.json | craton host-set-vars 9 x=47 y=99; craton host-get-vars --format=json 9 ;
15:33:27 <thomasem> Ahhh, well I believe in myself. I'll see how far I get and ask questions if I get stuck.,
15:33:45 <sigmavirus> jimbaker: yeah, so the reality is that cat'ing a json file and providing params on the cli at the same time looks absolutely awful
15:33:50 <jimbaker> sulo, yeah that's an essential piece to know
15:34:03 <jimbaker> plus all the docker commands to attach a bash shell; or get logs; etc
15:34:05 <thomasem> Danke shön, sulo
15:34:09 <sigmavirus> that means you're looking at stdin and the cli for things and which ones win if x and y are in both?
15:34:39 <sigmavirus> if baz.json has x=48, y=20 and you set them on the CLI, which gets priority? It's best not to try to guess at this point and to disallow using both
15:34:43 <jimbaker> thomasem: docker logs -f craton-api; docker exec -it craton-api mysql -ucraton -pcraton craton; docker exec -it craton-api bash # for a bash shell, etc
15:34:53 <thomasem> Right
15:35:01 <thomasem> Thanks
15:35:07 <sigmavirus> also, stdin is actually a disaster to try to handle consistently between py2 and py3 as well
15:35:20 <thomasem> Oh?
15:35:21 <jimbaker> sigmavirus, my assumption is that the args passed to the CLI do, vs stdin
15:35:28 <jimbaker> and i implemented that assumption :)
15:35:34 <jimbaker> and documented that assumption
15:35:40 <sigmavirus> jimbaker: you're going to confuse 50% of our users one way or the other
15:36:12 <jimbaker> CLIs are notorious for this. but if we offer two ways of doing stuff, there are two choices
15:36:20 <jimbaker> 1. allow both, and have an override
15:36:32 <jimbaker> 2. raise an error and say 'choose one, oh user'
15:36:36 <sigmavirus> jimbaker: there's three ways of doing it now, stdin, cli args, and both
15:36:44 <sigmavirus> 1. still works, but it's two commands instead of one
15:36:54 <sigmavirus> and that makes explicit what won't be explicit to users unless they carefully read the docs
15:37:07 <jimbaker> sigmavirus, that feels very unlike CLI to me
15:37:08 <thomasem> Is there a use-case for each of these different ways? Is there a way that covers each of the use-cases? Giving multiple ways of doing things tends to cause maintenance and UX problems.
15:37:11 <sigmavirus> hosts-set-vars < baz.json ; host-set-vars x=48 y=99
15:37:22 <jimbaker> CLIs generally take a variety of options
15:37:39 <sigmavirus> thomasem: right, hence why I want to restrict it from 3 to 2 ways
15:37:43 <thomasem> Gotcha
15:37:53 <jimbaker> ok, sigmavirus sounds like you want one command after all
15:37:55 <sigmavirus> where the 3rd way has implicit order and precedence that is made explicit
15:38:10 <sigmavirus> jimbaker: right, I want a command that will *either* take stdin, or cli args, but not both
15:38:27 <jimbaker> so you want my #2 option - 	2. raise an error and say 'choose one, oh user'
15:38:35 <sigmavirus> yes
15:38:41 <jimbaker> perfectly fine
15:39:53 <thomasem> I'd be interested in seeing the use-cases for each method.
15:40:08 * thomasem doesn't know enough about what it actually does yet to have an opinion
15:40:14 <jimbaker> thomasem, so stdin works better with tooling like jq
15:40:24 <jimbaker> where you keep in a json pipeline
15:40:29 <thomasem> right
15:40:52 <thomasem> I'm more referring to a user has a goal to accomplish, and they have this tool that does it. Which are they more likely to go for?
15:41:43 <jimbaker> thomasem, yeah, so the thinking i would have is that there is a very casual use from the CLI - i'm making changes, trying stuff out
15:42:25 <jimbaker> then one elaborates with a little pipelining. and then this is further developed as packaged tooling, using the python client
15:42:52 <thomasem> Goootcha
15:43:24 <thomasem> Okay, so, yeah. I'm personally fine with both ways. Admittedly, a lot of tools (look at... idk, httpie, for example) stdin and args are both acceptable and both are handy at different times.
15:43:29 <thomasem> So, it's worth the maintenance cost.
15:43:50 <jimbaker> so if someone says - but that takes multiple steps, doesn't cache, etc, if from CLI... well we are not going to work on making the CLI performant like that
15:44:08 <thomasem> Gotcha
15:44:09 <sigmavirus> thomasem: stdin is specifically used for data you don't want httpie to structure though
15:44:20 <sigmavirus> (I kind of help Jakob support that tool)
15:44:27 <thomasem> Haha, nice
15:44:29 <sigmavirus> structure/modify
15:44:44 <thomasem> That's a good point and how I've used it several times.
15:44:48 <jimbaker> so i think the point here is that sigmavirus has been down this path before...
15:44:58 <jimbaker> and really wants to avoid some pains
15:45:01 <thomasem> Gotcha
15:45:09 <sigmavirus> I've taken far too many paths
15:45:12 <sigmavirus> My feet are weary
15:45:31 <jimbaker> when all we wanted is just an easy to use CLI, and a sign pointing to the python client for heavy usage :)
15:46:24 <jimbaker> so +1 on this, much as we did in not combining with <resource>-show
15:46:34 <jimbaker> even though it's the same underlying code
15:48:08 <thomasem> Cool. Thanks for the explanation.
15:48:52 <jimbaker> instead let's do the colorization, command completion support, and all the other bells and whistles ;) ok, maybe not. at least not for this week
15:49:03 <thomasem> Haha
15:49:27 <jimbaker> anything else?
15:50:04 <sigmavirus> jimbaker: uh, cli shell completion is a gnarly topic in openstack with downstream redistributors
15:50:23 <sigmavirus> also they aren't easily shippable in Python anyway because some tools restrict who can write what files to where
15:50:37 <sigmavirus> so that's stuff I think might be better left until someone actually desperately asks for it =P
15:50:49 <jimbaker> which they won't. good
15:51:03 <sigmavirus> They may well ask for it
15:51:18 <sigmavirus> But we'll have no good way of shipping it to them besides them grabbing it out of an sdist or the repo
15:51:41 <sigmavirus> I know of many ways to really annoy downstream redistributors ;)
15:51:53 <jimbaker> sigmavirus, i can only imagine
15:52:25 <sigmavirus> I've nothing else for the meeting
15:52:43 <jimbaker> cool, i think we are done
15:52:50 <thomasem> Cheers!
15:53:32 <sigmavirus> #endmeeting