16:06:22 <ttx> #startmeeting storyboard
16:06:24 <openstack> Meeting started Thu Jan 16 16:06:22 2014 UTC and is due to finish in 60 minutes.  The chair is ttx. Information about MeetBot at http://wiki.debian.org/MeetBot.
16:06:25 <openstack> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote.
16:06:27 <openstack> The meeting name has been set to 'storyboard'
16:06:43 <ttx> #link https://wiki.openstack.org/wiki/StoryBoard
16:06:53 <ttx> Agenda is pretty empty, feel free to add to it
16:07:02 <ttx> #topic Storyboard sprint
16:07:22 <ttx> Details have been published at:
16:07:24 <ttx> #link https://wiki.openstack.org/wiki/StoryBoard/Brussels_Sprint
16:07:48 <ttx> Russian folks: how are the visas coming along ?
16:08:04 <ruhe> still in progress, but things seem to be ok there
16:08:15 <ttx> Please add your arrival/departure times on the "Attendees" section of that wikipage
16:08:23 <ruhe> ttx: ok
16:08:26 <ttx> will help plan any extra-curricular activities
16:08:51 <ttx> krotscheck: there will be coffee.
16:08:58 <krotscheck> ttx: Thank goodness.
16:09:05 <gothicmindfood> ttx - I spoke with Cody a little bit about whipping up a super basic agenda for both days.
16:09:16 <gothicmindfood> I have that on my to-dos for today
16:09:17 <ttx> krotscheck: nespresso crap, but at least it's espressos
16:09:44 <ttx> gothicmindfood: sounds good
16:10:05 <gothicmindfood> I'll probably just start with "here are, realistically, the hours we can work, and the basic themes we need to cover in those hours"
16:10:07 <ttx> gothicmindfood: do the workgroups I put in the wiki make sense ?
16:10:41 <gothicmindfood> ttx: I think so, but I also believe we're just in one room, right?
16:10:49 <ttx> gothicmindfood: we can start with a basic intro to the root of the project and introduce everyone and then fly
16:10:56 <ruhe> ttx: i've added myself to the CI/CD group. i hope it's ok because i'm working on Puppet scripts for installation of Storyboard
16:11:20 <ttx> gothicmindfood: it's more a way to organize within the room than /separate/ workgroups
16:11:42 <gothicmindfood> ttx: understood
16:11:58 <ttx> also to try to predict who is interested by what
16:12:24 <krotscheck> It's not like we can't reshuffle when we're there. Chances are some teams will have less to do than others.
16:12:25 <gothicmindfood> ttx: I think some things will lead into others (a basic product plan/model, for example, needs input from everyone, and will lead to Code and Infra work prioritizations for the sprint)
16:12:54 <ttx> gothicmindfood: agreed. It's more general themes and the people who we expect to drive each
16:13:08 <gothicmindfood> ok cool - definitely understood. :)
16:13:22 <ttx> any question on that sprint ? Everyone booked hotels already ?
16:13:36 <ruhe> russian folks booked hotels
16:14:29 <gothicmindfood> I believe everyone in HP is booked, but I'm not 100% on mordred
16:14:29 <ttx> ok then, no question, let's move on
16:14:46 <mordred> what did I do?
16:14:51 <ttx> gothicmindfood: he is having problems finding a decent Starwood option, I guess
16:15:02 <mordred> oh - no, I'm booked
16:15:08 <gothicmindfood> oh godo!
16:15:10 <mordred> I'm not staying where you are - but whatevs
16:15:11 <gothicmindfood> good!
16:15:20 <gothicmindfood> mordred - you aren't at the 4 points?
16:15:29 <mordred> nope
16:15:44 <ttx> The 4 points is.. not so great. been there last year
16:15:49 <krotscheck> gothicmindfood: He's probably at the luxury collection downtown ;)
16:16:11 <ttx> brussels has a decent selection of nice "boutique" hotels that are not more expensive :)
16:16:35 <ttx> anyway, moving on
16:16:50 <ttx> #topic storyboard-webclient current state
16:17:03 <ttx> This was added by me, trying to catch up on you all
16:17:07 <ttx> since you run so fast
16:17:22 <krotscheck> Righto, so the webclient build went into infra yesterday
16:17:26 <ttx> could anyone explain where we currently are, and how to test that state (if possible) ?
16:17:31 <ttx> krotscheck: ok
16:17:40 <krotscheck> And after a minor hiccup (some of the test results weren't being uploaded) that all seems to be working now.
16:17:51 * ttx is already missing ./manager.py runserver
16:17:56 <ttx> manage*
16:17:58 <krotscheck> The build takes a bit, because infra's making us recompile node from scratch every time.
16:18:28 <krotscheck> Next steps:
16:18:47 <krotscheck> 1- Get the storyboard API spun up so we can do real integration/functional tests.
16:18:55 <krotscheck> (rather than mocking it)
16:19:14 <krotscheck> 2- Get the whole shebang onto a server. ruhe's currently working on that.
16:19:29 <ttx> so the webclient is currently diplaying mocked data ? How feature-y is it compared to the Django poc ?
16:19:47 <krotscheck> ttx: Well, the copy that's up there matches the UI.
16:19:51 <ttx> (I should test that but all those new words (grunt) scare me
16:19:55 <ttx> )
16:20:04 <krotscheck> I'm currently working on mocking all the data bits, ETA sometime... todayish?
16:20:45 <ttx> krotscheck: is there some "how to test" instructions that end up mostly usable on a Linux distro (ubuntu/debian) ?
16:20:54 <krotscheck> (note: Mocks in angular intercept at the request level, so once we have an API we can rip that out and it _should_ work magically)
16:21:17 <krotscheck> ttx:... like "how do you run it?"
16:21:18 <ttx> (one never knows, I might have some time to play tomorrow)
16:21:26 <ttx> krotscheck: yes, run from code
16:21:27 <mordred> ttx: the grunt stuff is actually quite nice
16:21:35 <mordred> once you step through it the first time and get past the fear
16:21:46 <ttx> mordred: i don't doubt it. I'm just being realistic on my ability to free up time this week
16:21:50 <mordred> in fact, it makes it all feel very much like normal dev instead of scary web things
16:21:58 <krotscheck> ttx: There's some instructions in the readme, I can elabroate on those.
16:22:01 <mordred> ttx: like, with unittests and stuff
16:22:37 <ttx> krotscheck: taht would be nice, but if I'm the only one behind I could also take the high road
16:22:38 <mordred> ttx: I was able to run grunt things on basically the first try by following the instructions - and I enjoyed the experience
16:22:53 <ttx> mordred: ok, I'll try that
16:22:55 <krotscheck> ttx: Take a look at bin/bootstrap.sh
16:23:05 <krotscheck> That's a script that'll install everything into a locally configured path
16:23:18 <krotscheck> You can adjust that script to do sudo thing
16:23:20 <krotscheck> *things
16:23:22 <ttx> krotscheck: don't lose time on me. If mordred could run JS things, so could I.
16:23:40 <ttx> (previous sentence not true for C++)
16:23:43 <mordred> ttx: they've even got pep8 like things and stuff!
16:24:06 <ttx> mordred: who could have expected that
16:24:15 <mordred> I know, right?
16:24:24 <ttx> I mean, everyone knows Python is the only language with decent... wait
16:24:32 <mordred> hahahahahaha
16:25:18 <ttx> krotscheck: is the UI a completely new thing ? Or based on the Bootstrap POC ?
16:26:04 <ttx> krotscheck: FWIW my preference for semantic-UI is based on the cleaner aspect of the syntax, and the fact that it doesn't look like the 1000s of sites using bootstrap.
16:26:08 <krotscheck> Right, so next step is "Let's get a server"
16:26:08 <krotscheck> (Might be a good new agenda item)
16:26:21 <ttx> so it's a bit of a hipster thing
16:26:34 <ttx> cody-somerville has much stronger and reasonable reasons
16:26:36 <krotscheck> ttx: It's almost a verbatim copy fo the PoC
16:26:41 <krotscheck> There are some kittens
16:26:56 <gothicmindfood> krotscheck: no unicorns?!?
16:27:17 <krotscheck> ttx: I did want to take the time to see how semantic UI stacks up by doing a full replacement.
16:27:40 <ttx> I'm ok to defer decision to the people who will end up writing the most code. My preference being purely aesthetic
16:27:43 <krotscheck> ttx: I also don't like the "Everyone's using the same UI" thing, but thankfully all the colors/variables are injectable.
16:28:19 <krotscheck> ttx: Though that is true for all the layout frameworks out there.
16:28:25 <ttx> krotscheck: did you look up semantic-ui yet ? any reason for not loving it ?
16:28:28 <mordred> ttx: also, fwiw, have spoken with david-lyle recently and horizon is also interested in moving a bit more in a direction similar to this stuff from krotscheck - so we may actually wind up staying somewhat in alignment
16:28:36 * krotscheck is personally not a big fan of how much padding they use.
16:28:37 <ttx> krotscheck: the fact that it's not bootstrap, so not so much used ?
16:29:01 <krotscheck> ttx: I have two not-very-good-reasons for preferring bootstrap.
16:29:06 <krotscheck> First: I know it.
16:29:24 <ttx> krotscheck: anyway, I think that's a great topic to finally sort out at the sprint
16:29:29 <krotscheck> Second: Semantic UI's markup actually makes assumptions about how you want your UI to look on different browser sizes, instead of giving you direct control.
16:29:36 <ttx> and then have everyone aligned
16:29:43 <krotscheck> ttx: I agree.
16:29:56 <krotscheck> ttx: And that gives me a deadline.
16:30:18 <ttx> yeah, I think things are aligning well, timing-wise
16:31:11 <ttx> #topic "Let's get a server"
16:31:21 <ttx> krotscheck: I'll let you introduce topic
16:31:31 <krotscheck> Having said that: Both bootstrap and semantic live in the world of "We don't want to bother with doing too much UI work". If we're going to get super custom on the UI we might want skeleton
16:31:38 <krotscheck> Ok
16:31:50 <krotscheck> So, the basic pieces of the project are this:
16:32:09 <krotscheck> 1- A Javascript webclient that can be served statically and will (once we get our first gate) live in a tarball on tarballs.o.o
16:32:11 <ttx> gothicmindfood: could you draft your sprint agenda on the wiki ? And include "final discussion/decision on bootstrap vs. semantic-ui" in there ?
16:33:01 <krotscheck> 2- A wsgi enabled set of API's hosted by apache
16:33:06 <krotscheck> (via mod_wsgi)
16:33:09 <krotscheck> 3- A database.
16:33:15 <gothicmindfood> ttx: certainly!
16:33:16 <mordred> I agree with those
16:33:34 <krotscheck> The caveat on 2 is that right now there's still django, but there won't be for long.
16:34:04 <NikitaKonovalov> krotscheck, there is a change by ruhe removing it afaik
16:34:20 <NikitaKonovalov> let me find a link
16:34:21 <krotscheck> THere's an additional assumption that we're going to put this on storyboard-dev.o.o and storyboard.o.o
16:34:25 <ruhe> i moved it to WIP until we get something working with new REST API
16:34:48 <ruhe> i guess all these bits (webclient, mod_wsgi and DB) are covered with https://review.openstack.org/#/c/65017
16:34:55 <krotscheck> Now ruhe's done a bunch of work to get the server/pecan stuff set up.
16:35:09 <ttx> mordred: about urls: did we say stories vs. storyboard ?
16:35:14 <krotscheck> (plus all the other holy-shit-productive things he's done)
16:35:28 <mordred> I think we said stories - with cnames for bugs, blueprints and issues :)
16:35:32 <ruhe> i discuss with fungi and he said that it's not a problem to spin up a server
16:35:47 <ruhe> err, * i discussed this with *
16:35:49 <ttx> mordred: that said, the storyboard name is both a codename and a function. And it looks better
16:36:07 <mordred> I'm fine with any of it
16:36:44 <fungi> yes, i can try to apply the puppet change in a dev environment to spin up a server
16:37:22 <ruhe> fungi: i'll setup a repo on github which will be installable by these scripts
16:37:41 <ruhe> because some required bits are still on review
16:37:56 <krotscheck> Ok, in the meantime, ttx - can you look at the patch on webclient and get it through? That'll generate a real live tarball for them to work with.
16:38:13 <ttx> krotscheck: link
16:38:31 <krotscheck> ttx: https://review.openstack.org/#/c/66911/
16:38:42 * ttx thinks krotscheck should have +2, at the very least on the webclient part
16:38:46 <mordred> ++
16:38:49 * mordred will get that done
16:39:05 <krotscheck> Woo, I feel all official and stuff
16:39:09 <ttx> I mean, we are way past my Django skills here
16:39:40 <krotscheck> ttx: Well, hopefully looking at that patch will show you how easy and awesome and wonderful functional testing in javascript is :)
16:39:57 <mordred> krotscheck: you are now in storyboard-core - I'm not going to bother splitting it in to two core teams right now
16:40:05 <ttx> mordred: you can second+2/aprv https://review.openstack.org/#/c/66911/
16:42:06 <krotscheck> Any other comments on getting a server?
16:42:15 <krotscheck> mordred: Thanks
16:42:27 <krotscheck> I'll keep my dirty fingers off the python
16:43:47 <mordred> krotscheck: nope. we'll get that and a db spun up
16:44:10 <mordred> we'll use a trove db for the database, which is already how ruhe has organized the puppet
16:44:22 <mordred> do we need storyboard-dev/
16:44:24 <mordred> ?
16:44:41 <mordred> I believe the intent was that we'd just run pure CD, no?
16:44:52 <mordred> (kinda like we do with zuul and nodepool and friends)
16:45:52 <krotscheck> Open discussion?
16:46:17 <ruhe> the only problem we might hit with pure CD is a broken DB schema. it'll require manual reset of DB and migration
16:46:36 <mordred> shouldn't we hit that in gating tests though?
16:46:52 <mordred> krotscheck: auth discussion/
16:46:54 <mordred> ?
16:46:59 <ruhe> we should, but things happen :)
16:47:14 <krotscheck> mordred: Good point
16:47:33 * krotscheck thinks he's laggy
16:48:44 <krotscheck> Hrm. Not that laggy
16:48:51 <krotscheck> So re: Auth
16:48:52 <krotscheck> https://etherpad.openstack.org/p/M6G4iKRZZX
16:50:18 <ttx> oops sorry
16:50:23 <ttx> #topic Open Discussion
16:50:41 <ruhe> krotscheck: sorry, haven't yet a chance to go through your doc; neither i have any experience in this area
16:50:51 <krotscheck> Given that at some point we'll need auth via SSH/Login/OpenID, mordred and ruhe proposed that we make our auth system pluggable
16:51:51 <NikitaKonovalov> does that mean there should be a plugin mechanizm on a rest side?
16:51:53 <ttx> why SSH/Login ?
16:51:55 <krotscheck> Since all we really need the plugability for is figuring out who we are, I proposed that we separate the ideas of "authentication" (who are you) and "authorization" (what can you do)
16:52:04 <krotscheck> ttx: SSH Pub Key
16:52:11 <krotscheck> Login for... beats me, actually
16:52:16 <mordred> I'm not 100% sold that we'll need ssh - I think if we have oauth for api access that should be fine
16:52:21 <ttx> right, was just trying to understand the use case
16:52:36 <krotscheck> Ok, so use case: CLI client. OAuth will work?
16:52:39 <mordred> I was mainly bringing up that I know of a deployment that's going to want to hook up user accoutns to ldap
16:52:49 <ttx> oauth sounds enough for auth.*ing between apps
16:52:59 <krotscheck> mordred: Righto, well, as long as we make authentication pluggable, they can build their own adapter.
16:53:03 <mordred> yah. launchpadlib uses oauth
16:53:18 <ttx> I'm fine with it as long as the indirection is not costing us too much
16:53:27 <ttx> i suspect it doesn't
16:53:27 <mordred> I think the only thing _we_ need to care about is openid for web and oauth for api
16:53:31 <krotscheck> NikitaKonovalov: Plugin mechanisms sound complicated....
16:54:08 <krotscheck> At the end of the whole auth process, each user (CLI or LDAP or Web) Will have an OAuth2 token with which they authorize.
16:54:33 <mordred> any idea, with an external openid source, how we disable users?
16:55:00 <mordred> (from their oauth stuff)
16:55:00 <krotscheck> mordred: managing users should be internal to storyboard, no?
16:55:22 * mordred headsmacks
16:55:25 <mordred> thanks
16:55:26 <krotscheck> In the end we still have to keep track of user records anyway, so adding an admin blacklist flag...
16:56:08 <ttx> ok, anything else ?
16:56:11 <krotscheck> There are some implementation detail questions we can talk about - how long does the token expire, do we allow refreshes, etc...
16:56:16 <krotscheck> but that's details.
16:56:33 <ttx> oh. Any vegetarian/vegan in the sprint group ?
16:56:44 <ttx> because you know... Brussels.
16:57:01 <krotscheck> ttx: Might want to ask about celiacs, too. Because, you know, Brussles :)
16:57:07 <krotscheck> (not me)
16:57:15 <ttx> same category as Paris in veggie-friendliness
16:58:02 <ttx> ok.
16:58:15 <ttx> last minute thoughts ?
16:58:26 <ttx> Oh. i'll miss next week meeting
16:58:40 <ttx> I shall be snowboarding somewhere if evrything goes according to plan
16:59:17 <ttx> alrighty
16:59:17 <ttx> #endmeeting