/srv/irclogs.ubuntu.com/2014/09/22/#juju-gui.txt

rick_h_morning huwshimi 00:04
huwshimirick_h_: Hey!00:05
rick_h_have a good weekend huwshimi ?00:06
huwshimirick_h_: Yeah it was good, the weather is picking up now00:07
huwshimirick_h_: How was your single dad weekend? :)00:07
rick_h_nice, we've got fall in full swing here00:07
huwshimirick_h_: Is it getting cold yet?00:15
rick_h_yea, down into the 50s (10C) and heading down. Will be interesting. Normally this chilly around Halloween but a little bit to go still00:18
huwshimiouch00:20
=== uru_ is now known as urulama
fabricemorning06:37
=== fabrice is now known as fabrice|lunch
rick_h_morning wheeee11:11
rick_h_gah the email, the email!11:11
=== fabrice|lunch is now known as fabrice
rick_h_frankban: partying in the new place?12:06
frankbanrick_h_: no, not yet, still no internet connection there :-/12:06
frankbanrick_h_: hope they will be able to fix stuff this week12:07
rick_h_frankban: ouch /me crosses fingers for you12:08
frankbanrick_h_: thanks12:08
jcsackettmorning, jujugui--can i get some reviews on https://github.com/juju/juju-gui/pull/570 ?12:52
kadams54jcsackett: sure12:53
jcsackettthanks, kadams54.12:53
jcsackettkadams54: note, there are two lint errors, i've got a fix in place but won't push while you're reviewing.12:57
jcsackettrick_h_: am i still part of "all hands on" for MV release, or should i move back to the other thing? losing track of where my focus should be. :p12:57
rick_h_jcsackett: looking12:58
rick_h_jcsackett: if you want to start removing the FF while kadams54 picks up the card on the boolean fields in the inspector that'd be great12:58
jcsackettrick_h_: i would be delighted to start killing the feature flag. the other cards on the board don't block that?12:59
rick_h_jcsackett: no, basically we're going into it being available with the couple of bugs13:00
jcsackettrick_h_: dig.13:00
rick_h_jcsackett: there might be some small conflicts to resolve, but hopefully small13:00
rick_h_jcsackett: and we know we're releasing so worst case trunk has issues for 2 days13:00
* jcsackett nods13:00
jcsackettawesome.13:01
kadams54jcsackett: QA and review is finished. You're all clear to ship!13:02
jcsackettkadams54: awesome, thanks. :)13:02
kadams54guihelp: I have a comparison. The type on one side can be a string, boolean, or int. The type on the other is always a string. What's the safest way to coerce the first side into a string? Concat an empty string? Call 'toString()'? If statement based on value returned by typeof?13:55
frankbankadams54: I am not sure about the meaning of comparing a bool to a string13:56
kadams54false == 'false'13:56
kadams54Which is false13:56
kadams54What I want is: 'false' == 'false'13:56
kadams54Which will yield true13:56
frankbankadams54: for int vs string, one way is to zero fill the int while converting it to a string (and in this case "+ ''" does the job)13:57
fabricethere is also String()13:57
kadams54Yeah, there are a slew of ways I *could* do it, I'm just wondering which is the safest :-)13:58
hatchwhat r u trying to do?14:01
fabricekadams54: +'' is safe if it's number boolean or string14:06
hatchI prefer String() it's more explicit14:07
hatchwhen glacing through14:07
fabriceI agree14:07
hatchbuut I don't know what it's being used for yet :)14:07
kadams54hatch: take a look at https://github.com/juju/juju-gui/pull/57114:16
hatchkadams54: uhh why don't you do if (typeof config[key] === 'boolean') {  ... }14:18
kadams54hatch: you came in just after my initial question: "I have a comparison. The type on one side can be a string, boolean, or int. The type on the other is always a string. What's the safest way to coerce the first side into a string? Concat an empty string? Call 'toString()'? If statement based on value returned by typeof?"14:19
hatchok well yes then using String() is my preferred method 14:21
hatchbut I think in this case you should be checking the type and doing a proper comparison14:21
kadams54And comparing one string to another isn't a proper comparison?14:22
fabricekadams54: all methods would be safe for number Boolean or String , the issue comes with functions or other objects. String() is kind of explicit 14:23
hatchkadams54: it is, but why not test for a boolean then do the proper comparison for the data type14:26
kadams54Because it achieves the same result with more lines of code?14:27
hatchwell technically it's different14:27
hatchbut yes the end result is the same14:28
hatchI'd still prefer sticking with the proper type14:28
hatchmaybe that's my typed lang experience coming back14:28
hatchhah14:28
kadams54Here's what sways me…14:28
hatchtype cooersion is slow, string comparisons are slow14:29
kadams54The reference spec we're comparing against is a string and is always a string.14:29
kadams54So that makes me want to convert everything to the same data type being used in the ref.14:29
kadams54That is, the proper "type" here is actually String.14:30
hatchreally? juju sends us boolean values as strings?14:30
kadams54We're comparing two Objects of config values to determine which config settings have changed. One, the new values, stores booleans as booleans. The other, the old values, stores them as strings.14:31
kadams54I'm not sure where the old values are coming from… someplace else in the GUI? Juju? But they're stored as strings and that's what we're comparing against.14:32
hatchhmm something seems broken there14:32
kadams54So I'm inclined to convert the new values to String as well.14:32
hatchI'm pretty sure when we parse the data from juju true === true14:32
hatchkadams54: I'd look into why there is a type discrepency 14:34
hatch*caugh* this wouldn't happen with Dart *caugh*14:34
hatch;)14:34
rick_h_jujugui call in 10 please kanban14:51
hatchoh I love it when old tests fail but it works in the real app14:54
=== fabrice is now known as fabrice|kanban
rick_h_jujugui otp atm might be a minute or two late14:59
rick_h_boom, 12min call with 14 people15:13
rick_h_we rule! :P15:13
hatchand the internet claims standups are broken15:14
hatchclearly they aren't doing it properly15:14
=== fabrice|kanban is now known as fabrice
rick_h_lol15:15
hatchjcsackett: first step to removing the flag is to set it as the default and then start removing the conditionals15:15
rick_h_hatch: you still on for the blog post for MV? I've got a marketing meeting with sally tomorrow and want to make sure we'll still have 3 posts15:15
jcsacketthatch: what do you meant "set it as the default"? is that separate from just ensuring we always go down the MV path on a conditional (e.g. sanely remove it)15:16
hatchrick_h_: yup I haven't started on it yet but I'll have it ready to go for thurs15:17
rick_h_hatch: ok cool15:17
hatchjcsackett: in the index.html set the window.flags.mv as true15:17
hatchthen visit the gui without the mv flag in the url15:17
jcsacketthatch: ah.15:17
hatchthis way you can take steps towards removing the flag without having to do it whole hog15:17
hatchhuuuuge time/sanity saver15:17
=== fabrice is now known as fabrice|family
jcsacketthatch: ah. does that make it safe to land pieces at a time, then?15:21
hatchjcsackett: you bet15:22
jcsacketthatch: awesome.15:22
hatchbecause according to the user it's already the default15:22
hatchwe can (and have) shipped like that too15:22
jcsacketthatch: cool. well then, i think my one enormous card just became several smaller ones.15:22
hatch:)15:22
* rick_h_ heads to the doc, biab everyone15:33
* rick_h_ heads to the doc for real this time16:02
lazyPowerhatch: hope you're ready for more eyes on the ghost charm ;)  You were featured sir!16:05
hatchoh crap16:05
hatch:)16:05
lazyPower<316:05
hatchI guess I should probably push the new version then16:06
lazyPowerthe 12 people that watch the video will be alllllll about ghost.16:06
hatchI wish you could upload extra files into charms - think templates16:06
* lazyPower snickers16:06
hatchlol16:06
lazyPoweryou can16:06
lazyPowerhowever, thats a prime candidate for a subordinate relationship eh?16:06
lazyPowerjuju deploy ghost-templates16:07
lazyPowerjuju add-relation ghost ghost-templates16:07
lazyPowerjuju set ghost-template theme="rocco"16:07
hatchwell I don't really want to force people to make a charm just to deploy their template16:07
lazyPowerok, then make templates git deployable16:07
hatchbut then they have to upload it to a public repo16:07
hatchheh16:07
lazyPowerand the problem with that is?16:07
hatchsay you are a real brand using Ghost as your blog16:08
hatchyou don't want any joe running your template16:08
lazyPowerthen add deploy key support16:08
lazyPowerjuju set ghost deploy_key=(base 64 encoded ssh key)16:08
hatchis that encrypted?16:09
hatchfrom the cli16:09
hatchit would be 100x easier if you could upload a binary as a config option16:09
hatchkadams54: looks like my test failures after I fix a databinding bug will be fixed by your fix16:13
kadams54hatch: :-b16:13
hatchsomehow a config option is "                                   false"16:14
hatchlike wth16:14
kadams54lol16:14
hatchsomething is seriously broken16:14
hatchodly enough though it works outside of tests16:14
kadams54Maybe I should throw a trim() in there?16:14
hatchwell no we need to figure out why it's that16:14
kadams54I did some digging around and it looks like the values are stored as strings far more often then not16:15
hatchI don't just want to bandaid over the problem16:15
kadams54That is, the *only* place where they weren't being stored as strings, that I found, was in the chunk of code I was working in. Strings everywhere else.16:15
hatchI want to find what's setting it to these invalid values16:15
kadams54Fine. Don't review my PR ;-)16:16
hatcha checkbox toggle is boolean16:16
hatchplain and simple16:16
hatchsomehow it's  being set to "                           false"16:16
hatchso there is a real problem here somewhere16:16
kadams54It's not plain and simple though, right?16:16
kadams54Can't those config values also come from a yaml file?16:17
kadams54Ditto for JSON16:17
hatchtypeof checkbox.get('checked') === 'boolean'16:17
hatchalways16:17
kadams54false16:17
hatch??16:17
kadams54Well, OK, true enough for checkboxes16:18
hatchwhen is a checkbox not either true or false16:18
hatchexactly16:18
kadams54But checkboxes !== a boolean config setting16:18
kadams54The boolean config setting can also be set by a "true" string in a yaml file16:18
hatchif there is a boolean config setting which is not being represented as a checkbox then it's a broken charm16:19
hatchor it's not a boolean config16:19
hatchkadams54: for example16:22
hatchhttp://bazaar.launchpad.net/~juju-gui-charmers/charms/precise/juju-gui/trunk/view/head:/config.yaml#L5016:22
kadams54Sure, but when the yaml is parsed, is config['juju-gui-console-enabled']['default'] 'false' or false?16:24
hatchkadams54: in handlers.js there is a method called serviceInfo put a debugger in there in a real env with the gui deployed and see what it has16:27
kadams54It has a string.16:27
hatchwell there ya go16:28
hatch:)16:28
hatchkadams54: so we should convert all boolean values to their true boolean values for use in the gui16:31
kadams54Checking something else…16:31
hatchthen when we send it back we stringify it out anyways16:31
kadams54Whoops, gotta run for dr appt, back in an hour16:33
lazyPowerhatch: another option would be to encapsulate this as a juju action16:41
lazyPower(i know, an hour later i come up with another thought)16:41
hatchlazyPower: haha, how would a juju action work? You 'd have to run it every time you scaled16:41
hatchno?16:41
lazyPowercorrect16:42
hatchyeah I just think this is a bug16:42
hatchor a missing feature16:42
lazyPowerbut you're basically asking the end user to break auto-upgrade notifications16:42
lazyPower"fork the charm locally, plug in your theme, deploy"16:42
hatchheh right16:43
lazyPowerwhich is why a subordinate would be prime for this. If the subordinate is responsible for understanding where ghost is installed, and auto-deploy the theme you've defeated the scale issue.16:43
lazyPowerand you dont have to push it into a subordinate. You've just moved a large chunk of logic out of the parent charm into a supporting role.16:43
lazyPowerand fwiw, if you make the sub support binary package delivery, such a placing a tarball in files/  - who cares if the theme deployer gets an update. unless its breaking ghost, you're g2g after you've deployed it.  Set it and forget it (tm)16:44
hatchright but that's a horrible story considering that the user who is used to ghost just logs into their control panel and uploads the zip16:45
hatchrick_h_: ping me when you get back - I think that my issue will be resolved if we don't care about conflicts on boolean values16:46
hatchlazyPower: I'm probably going to file a feature request with juju to add binary config value support16:48
hatchtbh this could benefit a lot of different charms - expecially ones with complex values.....like the apache charm with a large virtual env config16:49
lazyPowerhatch: that exists today as base64 encoding. 16:50
lazyPowernot great, but fair enough that it would be easier to say "attach thing"16:51
lazyPowervalidation of those "things" is going to be hairy. 16:51
hatchbase64 encode a zip of a template....lol16:51
lazyPoweryou can do it16:51
hatchwhy does it need to be validated?16:51
hatchcouldn't we add another config type 'binary'?16:51
lazyPowerwell you just said a "large vhost file"16:52
lazyPowerwhich is text to begin with, do you want someone to upload a picture of their cat and have the apache charm barf because they uploaded the wrong MIME type of file?16:52
hatchwell I just picked an example 16:52
hatchthey could upload a .txt file16:52
* lazyPower pulls out the paint brush and gets ready to paint the bikeshed16:52
hatchif they uploaded a cat picture instead...well then too bad for them16:52
hatchthat would be the same as copy\pasting an invalid virtual env config16:53
hatchlazyPower: I'm creating a bug atm - so we can move the discussion there 16:54
hatchbetter to have any questions/comments documented16:55
lazyPowerhatch: unless it includes a screenshot with the caption "Schenanigans" - i reject your bug16:55
lazyPower<316:55
lazyPoweri had no idea the gui did that btw. that blew my mind16:55
lazyPoweri pinned a card on our canban to talk about that in today's standup16:55
lazyPower*kanban16:55
lazyPoweras nobody else knew why it was doing that either. I'm gonna blow some minds today16:56
hatchlol what?16:56
lazyPowerhttps://bugs.launchpad.net/juju-gui/+bug/137182116:56
mupBug #1371821: Juju GUI isn't displaying namespaced recommended charms as featured <display> <grouping> <juju-gui:Invalid> <https://launchpad.net/bugs/1371821>16:56
hatchohh heh yeah 16:56
hatchI wrote the sort for it so it's my fault16:56
lazyPowers/fault/feature16:57
hatchtbh I'm not entirely convinced for cases when there isn't a valid 'trusty' charm but there is a precise one16:57
hatchbut I didn't want to get too complicated as it should probably be sorted in charmworld16:57
hatchlazyPower: https://bugs.launchpad.net/juju-core/+bug/137256617:04
mupBug #1372566: Add a config field type 'binary' <juju-core:New> <https://launchpad.net/bugs/1372566>17:04
hatchit looks like work on sublime text 3 has started again http://www.sublimetext.com/317:35
hatchand in another year I bet another update will come out lol17:43
=== uru_ is now known as urulama
rick_h_hatch: pong17:55
hatchrick_h_: hey I want to propose dropping conflict resolution/notifications for boolean values. call in standup?17:56
rick_h_hatch: k17:56
hatchkadams54: I was able to get this to work regardless of the outcome of your branch - so yay 18:06
=== fabrice|family is now known as fabrice
hatchlunching18:37
=== abentley_ is now known as abentley
rick_h_lazyPower: the hive-mysql one didn't seem to ingest? The other two I see (from your email)18:48
lazyPowerrick_h_: they were pushed really recently, it might still be in the ingest-o-tron18:48
rick_h_lazyPower: it passed proof and such?18:48
lazyPowersi18:48
rick_h_lazyPower: ok18:48
lazyPowercharles@desktop:~/tmp/charms/bundles/hdp-hadoop-hive-mysql⟫ charm proof18:49
lazyPowercharles@desktop:~/tmp/charms/bundles/hdp-hadoop-hive-mysql⟫ 18:49
lazyPoweri called that out at the top that they are recent and might be waiting for ingestion. We should see the hive-msyql one show up in ~ another 10 minutes or so.18:49
rick_h_k18:49
rick_h_lazyPower: yea, was checking and saw the other two are there18:49
rick_h_want to make sure it gets in ok18:49
hatchboo19:28
rick_h_hoo19:28
hatchlazyPower: my bug was marked as low ;'(19:28
lazyPowerhatch: mine was markes as invalid :'(19:28
hatchlol well yours WAS invalid :P19:28
hatchI suppose mine IS low haha19:29
rick_h_ouch19:29
rick_h_hah, love dual'ing PRs19:46
hatchjujugui I need a review and qa on https://github.com/juju/juju-gui/pull/573 19:51
hatchrick_h_: haha you mean because mine and Makyo's landed at the same time?19:51
rick_h_hatch: yea, got two new emails right next to each other19:51
MakyoYep :D19:51
hatchgreat minds think alike.....eh Makyo? eh???19:51
MakyoOn that note, jujugui need reviews/QA on https://github.com/juju/juju-gui/pull/572 (real env)19:52
hatchtrade ya!19:52
MakyoSure thing19:52
hatchMakyo: u gona give me some qa notes? 19:53
MakyoHadn't hit enter yet, sorry19:54
hatchnoooo prob19:55
Makyohatch, I think your branch is okay, but it's not matching your QA instructions, so I'd like to verify.20:20
MakyoLike, I think it's good, I just think your QA instructions might be mixed up.20:20
hatchMakyo: oh ok20:20
hatchwhats up?20:21
Makyohatch, I changed debug to baz in the inspector.  After changing it to foo on the cli, the inspector should still show 'baz', right?  Because it's showing the changes that exist in the ECS?20:21
MakyoI just think foo and baz got mixed up in your instructions.20:21
hatchohh yes you are correct it should still show baz20:21
hatchI'll fix that in the docs20:22
MakyoGood.  YEah, I think this branch is good.20:22
hatchthanks20:22
hatchawesome good catch :)20:22
hatchjust about to spin up to qa yours20:22
hatchjujugui anyone know why the first lxc instance takes quite a while to boot but then subsequent ones are really fast? Is this something with lxc or my setup being busted?20:29
jrwren_hatch: first on a new system?20:29
jcsacketthatch: how long is "very long"? i've given up on juju w/ lxc on my machine thinking it was busted.20:29
hatchlike 15mins for the first instance20:30
hatchthen 1m for the second20:30
bachatch: first as in 'download the OS for use by lxc' or first after reboot?20:30
jrwren_hatch: it downloads the cloudimg from simplestreams, extracts it and builds the base lxc from which everything else is cloned.20:30
hatchI've created/torn down an env a few times today20:30
hatchso it's not caching the images?20:30
bachatch: it should be20:30
jrwren_hatch: oh, no. that should happen once per host system. So that isn't it.20:31
jrwren_/var/lib/lxc/juju-{precise,trusty}-template 20:31
hatchyeah those are there20:31
jrwren_lxc-clone: true ? lxc-clone-aufs: true ?20:31
hatchthere is a lxc-clone but no lxc-clone-aufs20:32
jrwren_hatch: I like the aufs option, which is false by default.20:33
rick_h_is that only on btrfs?20:33
jrwren_hatch: also, depending upon which version of juju you run, apt-get update/upgrade may or may not run on system image deploy20:33
hatchyeah it took 10mins to spin up this time....second machine will be about a minute20:33
jrwren_rick_h_: aufs is an alternative to btrfs20:33
rick_h_oic20:34
jrwren_hatch: no, that first machine taking 10 and second machien taking 1 doesn't add up to using these options.20:34
hatchjrwren_: ok thanks...I think20:34
hatchhaha20:34
hatchI was hoping this was normal20:34
hatchlol20:34
jrwren_I didn't think juju had a "normal"20:35
hatchhaha 20:35
jrwren_hatch: do you notice it is slow if you add machine instead of deploy a charm?20:37
hatchjrwren_: I'll have to check in a bit20:41
hatchthat machine was 1.5min20:43
hatchso weird20:43
hatchI wonder if there is some funkyness because I'm in a parallels vm20:44
hatchMakyo: what's this containers flag you speak of?20:45
hatchoh look at that20:45
hatchhmph20:45
hatchlol20:45
jrwren_i'm afk. have a good evening ya'll. Happy Equinox.20:46
hatchcyaaaa20:46
hatchok something is totally borked with my env20:56
hatchMakyo: review and qa done21:01
hatchjujugui anyone else available for a review? https://github.com/juju/juju-gui/pull/57321:02
rick_h_hatch: will do at some point, otp right now21:02
hatchok sounds good - I'm going to move on with it assuming it's ok :(21:02
hatch:)21:02
hatcher21:02
hatch:)21:02
rick_h_kadams bah not here21:02
hatchmaybe doc appt didn't go well21:03
hatch"sorry, you have semicolon pinky - you will need to change programming languages"21:03
hatchNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO21:03
hatchgoing to grab a coffee, back in ~1521:13
rick_h_hatch: off phone, but leaving for son/dinner so will try to get to code review later tonight21:28
* rick_h_ runs away21:28
hatchback21:32
hatchrick_h_: cool np enjoy21:33
=== urulama is now known as urulama-afk
huwshimiMorning23:00
rick_h_huwshimi: morning, can you make sure to check for any reviews of the storeferont stuff from ant/robin as part of the daily workflow?23:05
huwshimirick_h_: Hey, sure np23:06

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!