20:00:07 <robcresswell> #startmeeting horizon
20:00:09 <openstack> Meeting started Wed Jul  6 20:00:07 2016 UTC and is due to finish in 60 minutes.  The chair is robcresswell. Information about MeetBot at http://wiki.debian.org/MeetBot.
20:00:10 <openstack> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote.
20:00:12 <openstack> The meeting name has been set to 'horizon'
20:00:29 <bpokorny> o/
20:00:33 <robcresswell> Hello! Anyone around for Horizon meeting?
20:00:39 <asettle> o/
20:01:36 <robcresswell> Quiet day!
20:01:38 <tsufiev> ha, where is everybody?
20:01:50 <ankur-gupta-f> \o/
20:01:53 <robcresswell> A lot of people take this week off in 'murica
20:02:07 <robcresswell> Celebrate american-brexit
20:02:13 <bpokorny> Haha
20:02:22 <asettle> I love that that is now a term
20:02:22 <hurgleburgler> ha
20:02:25 <ankur-gupta-f> In Texas we are looking forward to Texit
20:02:58 <robcresswell> lol
20:03:02 <hurgleburgler> being a native New Mexican, we also look forward to Texit
20:03:09 <robcresswell> Sorry, slow typing over dinner today
20:03:21 <robcresswell> #topic Agenda
20:03:46 <robcresswell> #link https://wiki.openstack.org/wiki/Meetings/Horizon#Agenda_for_2016-07-06_2000_UTC
20:03:57 <robcresswell> There's a few things on here, so lets get started
20:04:06 <robcresswell> #topic Glance V2 Update
20:04:11 <robcresswell> bpokorny: o/
20:04:15 <robcresswell> Care to elaborate?
20:04:34 <bpokorny> We've run into an issue with the Glance v2 patch..
20:05:14 <tsufiev> glance folks don't want to set show_multiple_locations = true, because it would break rackspace public cloud
20:05:25 <bpokorny> Without getting into too many specifics, specifying a location for a glance image has been removed.
20:05:30 <tsufiev> which tells me enough about so called 'openstack diversity' :D
20:05:39 <bpokorny> :)
20:05:52 <bpokorny> I went to the glance meeting last week to ask about it.
20:06:11 <bpokorny> They said nova is running into the same issue when using v2.
20:06:19 <piet> o/
20:06:41 <tsufiev> bpokorny, so what we need here is glexit :)
20:07:00 <bpokorny> So they're aware of the problem, and Brian R and mfedosin are going to discuss on the ML.
20:07:01 <robcresswell> Whats the reason it breaks rackspace?
20:07:18 <bpokorny> tsufiev :)
20:07:51 <bpokorny> I haven't heard of the rackspace issue before.
20:08:04 <tsufiev> robcresswell, that's waht mfedosin told me about that security issue with show_multiple_locations
20:08:20 <bpokorny> What I've heard is that there are security concerns with it.  ^
20:09:05 <robcresswell> I assume the concern is letting a user specify an arbritrary place to download something from (and boot it)
20:09:13 <robcresswell> ?
20:09:27 <bpokorny> Yeah, I think that's correct.
20:09:28 <tsufiev> afair, yes
20:09:41 <TravT_> well, if glance won't support it, then neither can we. maybe it isn't a problem we should concern ourselves with and just move to the direct upload via CORS (timur's patch)
20:10:18 <robcresswell> Right... I'd rather we just dont worry about it, and when ops complain, I'll happily refer them to glance to shout at instead...
20:10:31 <robcresswell> Isn't this similar/ the same as the issue we discussed before?
20:10:45 <bpokorny> Glance currently allows it for v1, which we do in Horizon.
20:10:50 <tsufiev> TravT, have you seen dstanek reply on the ML about CORS & security implications?
20:10:54 <TravT_> well Glance is also deprecating v1
20:11:04 <TravT_> tsufiev i read it the other day
20:11:07 <tsufiev> in 2 words, he thinks we're fine to go on with keystone tokens in js
20:11:08 <tsufiev> okay
20:11:09 <TravT_> was there another response?
20:11:13 <tsufiev> nope
20:11:14 <bpokorny> If Horizon doesn't support it for v2, should we remove it for v1 also?
20:11:41 <robcresswell> Isnt V1 supposed to be gone this cycle?
20:11:50 <bpokorny> Or put logic in to not allow it just if v2 is being used?
20:11:51 <TravT_> my vote is to move forward with the new angular cors upload.
20:12:16 <tsufiev> TravT_, I think we can support both CORS and the legacy upload for Angular
20:12:21 <robcresswell> bpokorny: I would say the latter. If the API won't support something, Horizon shouldn't go miles out of its way to maintain logic to work around it
20:12:30 <robcresswell> So just disable it in V2
20:12:39 <TravT_> +1
20:12:56 <bpokorny> robcresswell: TravT_: Sounds good to me.
20:12:58 <TravT_> if there is big enough demand, then people can lobby to get it into glance as robcresswell said
20:13:15 <tsufiev> or switch to glance v3, hehe
20:13:26 <robcresswell> yup, absolutely agree TravT_
20:14:02 <robcresswell> tsufiev: What was said about CORS?
20:14:25 <robcresswell> I have a feeling I read this, about security issues preventing it, but wanted to be sure
20:14:36 <tsufiev> robcresswell, david stanek said there is no catastrophe with passing ks tokens to js
20:15:09 <TravT_> tsufiev: i spend about 3 hours doing follow up reading about it online after that thread.
20:15:18 <tsufiev> on the other hand, he also said that he would be happy to see some security folks feedback
20:15:34 <TravT_> tried to see if i could break the django csrf token (it already goes to client side), but ran out of time.
20:15:55 <tsufiev> TravT_, maybe you just didn't try hard enough ;)
20:16:03 <TravT_> that's pretty much a given.
20:16:09 <TravT_> :)
20:16:24 <robcresswell> Ah, so thats a green light to go ahead for the most part then
20:16:36 <tsufiev> yay!
20:17:00 <tsufiev> TravT_, please see my latest comment in Angular Create Image patch
20:17:06 <TravT_> ok
20:17:10 <tsufiev> or we can discuss it here briefly
20:17:18 <TravT_> lemme read real quick
20:17:20 <tsufiev> k
20:17:34 <TravT_> for others: https://review.openstack.org/#/c/317456/
20:17:51 <robcresswell> #info Decided not to work around missing Glance support for show_multiple_locations = true and thus image location
20:18:07 <robcresswell> Not sure if thats entirely accurate, just wanted it logged with keywords.
20:18:19 <TravT_> feel like we could #success - an actual decision was made
20:18:27 <TravT_> :D
20:18:30 <robcresswell> So that when someone tantrums I can find the meeting :)
20:19:17 <robcresswell> Ready to move on?
20:19:43 * TravT_ still reading tufiev's comments on patch
20:20:05 <robcresswell> Ah wait, I missed that while I was typing the info.
20:21:05 <robcresswell> tsufiev: Might create some confusion, repurposing a setting no?
20:21:20 <TravT_> tsufiev, that is interesting... but it is a setting the could slip through the covers.
20:21:29 <tsufiev> robcresswell, yes, that may be a concern...
20:22:08 <tsufiev> I'm trying to do as the common sense suggests here
20:22:29 <robcresswell> May be safer to deprecate the old one and just use something like IMAGE_UPLOAD = 'CORS' || 'LEGACY' || False
20:22:51 <tsufiev> I like it, robcresswell!
20:23:14 <TravT_> yeah, i was thinking the same thing.
20:23:25 <tsufiev> but how it the new setting should behave if HORIZON_IMAGES_ALLOW_UPLOAD = False?
20:23:25 <robcresswell> That way the old one can just throw a warning referring to the new one. Makes it a little bloated for a cycle perhaps, but easier for operators to manage
20:23:35 <tsufiev> should the upload be forbidden completely in that case
20:23:51 <tsufiev> that definitely needs some thinking
20:24:28 <robcresswell> Yes
20:24:41 <tsufiev> anyways feel free to leave your opinions in the above patch, I'm sure that we'll figure out something reasonable
20:25:00 <robcresswell> Thats the current expected behaviour. I would think most people won't pay too close attention to the Python to JS shift, so if Image Upload suddenly appears (in JS) they would be surprised
20:25:04 <TravT_> would it need to actually be a list of supported upload types?
20:25:09 <robcresswell> so I would stick with False just hiding it
20:25:35 <robcresswell> Is there really a case where you have CORS available and configured and dont want to use it/
20:25:38 <robcresswell> ?*
20:25:44 <robcresswell> I wouldnt imagine so.
20:25:52 <TravT_> no, i'm just thinking that if glance comes up with some new way
20:26:05 <TravT_> we don't have to invent another settings alltogether to also support it
20:26:13 <tsufiev> I can hardly imagine it as well, but we don't have a way to query if CORS is enabled in Glance, robcresswell
20:26:42 <robcresswell> tsufiev: No, but the operator setting that variable in Horizon would :)
20:27:03 <robcresswell> I meant if you supplied a list and let the user choose, that seems unneccessary
20:27:47 <robcresswell> I guess it may be an issue if they decide to add other options that might coexist
20:28:01 <tsufiev> yes, no need to expose the choice to user, it should be a deployer's decision
20:28:06 <robcresswell> Yeah
20:28:23 <TravT_> tsufiev, do we really need both the django and ng patches?
20:28:55 <robcresswell> I think a variable that takes a string should be fine; if falsy, we just disable. Deprecate the previous setting at the same time, but maintain its behaviour for a cycle.
20:28:55 <tsufiev> I'd prefer to hear what others think, TravT_
20:29:14 <tsufiev> but I would like to have Django version as well, because it's easier to backport
20:29:21 <TravT_> okay, i see
20:29:26 <robcresswell> If the patch is ready, I think we should accept it, and stop accepting patch on in during O
20:29:31 <TravT_> was just wondering if the ng could be used on django panel for now
20:29:33 <robcresswell> on it*
20:29:34 <TravT_> ng create
20:29:58 <tsufiev> I recall mrunge was interested some time ago in Django version of that patch
20:30:13 <mrunge> huh?
20:30:24 <TravT_> uh-oh, now you woke the poor guy up
20:30:31 <mrunge> :P
20:30:33 <tsufiev> mrunge, the context is: Create Image CORS file upload
20:30:39 <tsufiev> do you need it ;)?
20:30:48 <mrunge> doesn't ring any bell
20:30:59 <tsufiev> lol )
20:31:04 <mrunge> but yes, great!
20:31:06 <mrunge> go for it
20:31:32 <robcresswell> TravT_: Any other concerns, or does the current path sound reasonable? As resident Glance-expert.
20:31:38 <tsufiev> I realized one thing recently: if something doesn't work for a substantial time, people just forget about it
20:31:50 <robcresswell> Swift
20:31:52 <robcresswell> for example
20:31:54 <tsufiev> must have some explanation in psycology, I suppose )
20:31:59 <robcresswell> (The panel, not the project)
20:32:11 <TravT_> robcresswell, the glance team has been trying hard to deprecate v1 for a long time.
20:32:18 <TravT_> i think we support v1 with the legacy code
20:32:51 <TravT_> but for new code and v2 / we don't need to be the banner carriers demanding the same features
20:33:02 <robcresswell> It sounds like we should've shifted to v2 last cycle ideally
20:33:04 <TravT_> i'd like to see us start reducing code paths
20:33:18 <TravT_> there wasn't a big push to go to v2
20:33:23 <TravT_> because nova hadn't stopped using it
20:33:32 <robcresswell> Does NG Images support both? Or just V2?
20:33:44 <TravT_> ng images goes through all the same API layers
20:33:53 <TravT_> there is some property translation here and there
20:33:58 <TravT_> it will need to be looked over
20:34:01 <tsufiev> robcresswell, the funny thing is that right now Horizon uses both v1 and v2 :)
20:34:11 <TravT_> yes, that is true
20:34:56 <robcresswell> Either way, we need to finalise V2 support without a bunch of hacks to workaround missing APIs.
20:35:02 <tsufiev> our goal with that v2 patch is to stop relying on v1 being accessible
20:35:03 <TravT_> maybe all the angular work should be moved to v2 only and the code paths it uses should be v2.
20:35:20 <robcresswell> TravT_: That's what I was wondering
20:35:35 <tsufiev> TravT_, I thought that it was meant to be done transparently
20:35:41 <robcresswell> I know people have mentioned having v1 endpoints just so Horizon doesnt fall over.
20:35:52 <tsufiev> I mean, the choice between v1/v2 happening on API layer even before REST API layer
20:36:07 <TravT_> so, the angular work as all generally tried to rely on the api layers in python
20:36:24 <tsufiev> so Angular code wouldn't even know which Glance version it's dealing with
20:36:35 <TravT_> it was supposedly one of the advantages to using horizon instead of moving to richard's angboard
20:36:59 <TravT_> tsufiev: problem is that this isn't always entirely true.
20:37:05 <TravT_> will need to go back through it.
20:37:28 <TravT_> in the rest layers, there is some conversion that happens
20:37:34 <TravT_> because in v1 glance
20:37:47 <TravT_> all fields just go straight on the base object
20:37:55 <TravT_> ^ nix that last statement
20:38:03 <TravT_> in *v2* glance
20:38:19 <TravT_> in v1 , they separated out "core image properties" from custom properties
20:38:35 <tsufiev> yep, complete isolation is difficult :/
20:39:06 <TravT_> https://github.com/openstack/horizon/blob/master/openstack_dashboard/api/rest/glance.py#L286
20:39:22 <TravT_> anyway, we've tried to deal with in on angular side
20:39:36 <TravT_> but we will need to actually test it out
20:40:00 <TravT_> i think there might be a problem area or two
20:41:49 <tsufiev> okay, so I'll update both Django and NG Create Image patches to use a saner new setting and deprecate the old setting
20:41:55 <TravT_> sounds good
20:42:44 <robcresswell> Indeed. We're aiming to swap to angular with Images this cycle, but will have to carry the python for another cycle or two, depending on how long we wish to carry deprecated panels
20:43:42 <robcresswell> Anyway, lets move on :)
20:43:53 <robcresswell> #topic UI Guidelines Spec
20:43:58 <asettle> o/
20:44:05 <robcresswell> #link https://review.openstack.org/#/c/337202/
20:44:28 <piet> o/
20:44:33 <robcresswell> asettle: Want to talk about it?
20:44:38 <asettle> Cheers robcresswell
20:45:00 <asettle> Hey guys, pretty much the subject says it all. Rob mentioned last meeting that we required some volunteers to help out creating this.
20:45:16 <asettle> I have a spec up in the docs-specs repo that should give a fairly basic overview of what we're planning.
20:45:29 <asettle> There's always room for improvement and always keen for people to step forward with new (better) ideas.
20:46:00 <asettle> Please take the time to take a look, especially considering horizon is the official dashboard
20:46:18 <asettle> We'll be working on it to hopefully get something out half decent by Newton, so if you don't speak now, forever hold your peace :P
20:46:34 <asettle> Any questions, feel free to direct them my way, to Piet or even to robcresswell
20:46:42 <robcresswell> We've been reaching out to PTLs of projects with horizon plugins too
20:47:01 <asettle> We've had a few responses, and reviews. Which is great :) we're aiming to have inclusion from every project that has a GUI
20:47:17 <asettle> Or at least, we're opening up the opportunity to everyone for input
20:47:22 <piet> We also need to reach outside of Horizon
20:47:25 * tsufiev still trying to get some feedback about standard NG wizard workflow in Horizon and murano-dashboard :)
20:47:28 <robcresswell> Basically, I want people from Horizon to remain involved, even if its just a 2 minute glance at it every now and then. No desire for other projects to dictate to us how to write a UI, so we have plenty of opportunity to get involved here.
20:47:46 <asettle> Piet - the list of PTL's I emailed included Ironic etc. It was fairly extensive.
20:47:59 <ankur-gupta-f> There were long discussions about it. What is the summary of the effort? Intent?
20:48:01 <piet> asettle Kk
20:48:14 <robcresswell> ankur-gupta-f: All in the spec :)
20:48:18 <asettle> ^^ as above
20:48:23 <piet> tsufiev How different is Murano that the rest of HOrizon?
20:48:34 <asettle> But as a TL;DR - create patterns and library, intent? to create consistency between projects
20:48:38 <robcresswell> But basically; make guidelines to help people write a consistent UI.
20:48:45 <asettle> Which is something piet is really striving for which is excellent :)
20:48:54 <ankur-gupta-f> Thanks :)
20:49:04 <tsufiev> it's about those mockups, piet - mostly about first uploading some stuff to the server, then continuing to fill the forms
20:49:04 <asettle> No worries :)
20:49:09 <robcresswell> Reduces load on reviewers and IRC. Helps plugin ecosystem. End product is a consistent UI. Everyone wins.
20:49:20 <TravT_> The subjects suggested in the spec make sense to me.
20:49:25 <asettle> *thumbs up*
20:49:30 <robcresswell> Thanks TravT_
20:49:38 <asettle> TravT_: great :) cheers. Appreciate it
20:49:50 <asettle> That's pretty much all from me. Anything I missed piet?
20:50:14 <piet> And operators have been complaining about inconsistency across projects
20:50:22 <piet> Newp
20:50:29 <piet> Just get in there and review.
20:50:32 <asettle> Yeah good point.
20:50:34 <TravT_> so, would we be targeting removing anything from horizon docs?
20:51:01 <robcresswell> Potentially, if it clashes.
20:51:09 <robcresswell> We'd definitely need to reference this doc in the contributing guides
20:51:11 <asettle> TravT_: not just yet. I think that's something we should focus on afterwards. At the moment we're working on identify patterns, figuring out where the gaps are, and tehn coming up with a collaborative piece you can all use.
20:51:46 <robcresswell> Sounds good
20:52:08 <piet> It would be good to get feedback on the focus of the doc.  Is it a patterns library?  High level principles?
20:52:19 <asettle> +1
20:52:32 <TravT_> yeah, are these like mockups?
20:52:54 <TravT_> and will they point to reference implementation?
20:53:07 <robcresswell> More like an extension of http://docs.openstack.org/contributor-guide/ui-text-guidelines.html in my mind
20:53:22 <asettle> That's how I understand it too, piet ?
20:53:42 <robcresswell> So, things like, use an "Info" alert if we don't know the final outcome of an action, a "Success" alert if we do, etc.
20:53:44 <piet> asettle which part?
20:53:52 <piet> Extension of the UI Text
20:54:08 <piet> With personas thrown in there
20:54:09 <asettle> Yes
20:54:20 <robcresswell> Just general rules that people may not realise, or have thought about, or reviewers might miss, but overall detract from it being a professional product.
20:54:41 <asettle> A point of reference, if you will.
20:54:52 <piet> In some ways, stuff that devs don't really want to think about...like the location of a cancel button
20:55:25 <piet> The some higher level principles like "Design to scale"
20:55:28 * kzaitsev_mb lurking in case I can answer anything murano-dashboard %)
20:55:41 <piet> Or "minimum number of steps in workflows"
20:55:46 <tsufiev> speaking of scale...
20:55:49 <asettle> kzaitsev_mb: if you wanna check out the spec too, feel free to go ahead :) all reviews are appreciated
20:56:10 <robcresswell> Lets move on, because I need to mention the last item
20:56:22 <piet> kzaitsev_mb How much does Murano UI deviate from vanilla horizon
20:56:22 <robcresswell> But please read the spec, leave brief comments etc.
20:56:26 <asettle> Thanks robcresswell :) appreciate the plug
20:56:34 <robcresswell> #topic Cancellation of 800UTC meeting
20:56:37 <piet> Thanks robcresswell
20:56:44 <robcresswell> #link http://lists.openstack.org/pipermail/openstack-dev/2016-July/098854.html
20:57:32 <robcresswell> So I sent out an email and mentioned it in meetings, and nobody seems to have replied. The patch merged earlier, so the 800UTC meeting is officially no more.
20:57:40 <tsufiev> \o/
20:57:46 <kzaitsev_mb> piet: not much, it's basically a horizon dashboard, that reuses most of the concepts. It's mostly pythonic now, but we're looking into rethinking it as a js/angular based thingy
20:57:46 <tsufiev> more things to do in the morning
20:58:25 <robcresswell> If we have more demand for it, I'm more than happy to hold the meeting, but no desire to waste peoples time by dragging them into an empty meeting room each week.
20:58:43 <robcresswell> Just want to be clear that its not intended to be exclusive or anything :)
20:58:44 <TravT_> robcresswell as a non-attendee of the now cancelled meeting, i offer no dissent.
20:58:50 <robcresswell> TravT_: haha
20:58:54 <tsufiev> since we've exhausted the agenda, I'd like to advertise an RFE bug in Neutron: https://bugs.launchpad.net/neutron/+bug/1599488
20:58:54 <openstack> Launchpad bug 1599488 in neutron "[RFE] Enhance Quota API calls to return resource usage per tenant" [Wishlist,New] - Assigned to Sergey Belous (sbelous)
20:58:54 <piet> kzaitsev_mb Best answer is "wouldn't know because there's no UI spec to follow!!" ;^)
20:58:59 <robcresswell> #info 800UTC meeting cancelled
20:59:06 <robcresswell> #topic Open Discussion for 60 seconds
20:59:15 <tsufiev> if you know some magic way to make Neutron folks implement it faster, please do it
20:59:25 <tsufiev> it should help us with Neutron quota usages
20:59:44 <tsufiev> because now they are terrible in Horiozn
20:59:53 <TravT_> robcresswell: is next weeks IRC cancelled due to mid-cycle?
20:59:55 * rdopiera looks for his cattle prod
21:00:07 <robcresswell> TravT_: Thanks for hte reminder!
21:00:21 <robcresswell> Yes, next weeks meeting will be cancelled due to midcycle. I'll send a reminder on the mailer.
21:00:28 <robcresswell> We're at time.
21:00:31 <robcresswell> Thanks everyone!
21:00:31 <TravT_> thanks
21:00:34 <ducttape_> #brexit
21:00:37 <TravT_> see some of you next week
21:00:40 <tsufiev> see you on the midcycle!
21:00:43 <robcresswell> #endmeeting