/srv/irclogs.ubuntu.com/2014/07/18/#juju-dev.txt

thumperoh?00:00
voidspacewe need to use a new session every time we execute a query against a collection00:00
thumpervoidspace: and put them where?00:00
voidspaceso they shouldn't be long lived00:00
voidspacewe should fetch them when we need them00:00
thumperfair call00:00
voidspacebut we shouldn't create a new session just to use the name00:00
thumpercorrect00:00
voidspaceso I'm just using the name00:00
thumpermake package constants00:00
voidspacethe pattern just seemed a bit odd00:00
thumperplease use a named constant not just a naked string00:01
voidspaceok, I'll have to go back and change the ones I've done already00:01
thumperhopefully that would be pretty mechanical00:01
voidspacesure00:02
wallyworldvoidspace: +1 to constants00:04
voidspaceyep, doing it00:04
wallyworldyou also need to sleep00:05
voidspacenot quite mechanical, the const names will clash with the obvious name for the column collection - so I'll have to append a Col suffix to those00:07
voidspacewallyworld: soon enough00:07
wallyworldyou have 1 more day to work on this, right?00:08
thumpervoidspace: or "Collection"00:08
wallyworldlol00:08
voidspacewallyworld: yep00:08
voidspacewallyworld: just getting this to compile will be an achievement00:09
wallyworldvoidspace: make it Cxn to piss off thumper00:09
* thumper slaps wallyworld with a wet fish00:09
voidspacethumper: Col works for Column and Collection - and they're both00:09
voidspaceColumnection00:09
thumpervoidspace: but it isn't both is it?00:09
voidspaceit is00:09
voidspaceit's a collection representing a column00:09
thumperit is either the name of the collection, or the collection itself00:09
wallyworldvoidspace: non relational dbs don't have columns :-)00:10
* thumper has no time to bikeshed names00:10
thumpervoidspace: call them "a", "b", "c" and so on00:10
voidspacehah, it's a collection not a column00:10
* thumper leaves00:10
voidspacecorrect00:10
voidspacethis is why you need to study maths to be a programmer00:10
thumpervoidspace: and religion00:10
voidspaceif you haven't done algebra how else would you know that variables should have single letter names00:10
voidspaceno-one should study religion00:11
voidspaceeither live it or ignore it00:11
* wallyworld afk for a bit00:13
=== Ursinha-afk is now known as Ursinha
voidspacewallyworld: made a dent in it01:02
voidspacewallyworld: into machines.go switching to the new style collection access01:02
voidspacewallyworld: https://github.com/voidspace/juju/compare/copy-sessions01:02
voidspacewallyworld: hoping for compilation tomorrow01:02
voidspaceg'night all01:02
axwwallyworld: https://github.com/juju/juju/pull/33101:41
wallyworldaxw: you free now?02:07
axwwallyworld: just a sec, making tea02:08
wallyworldok, no hurry02:08
thumperwell, that's blown it03:57
davecheney?03:58
thumperat the museum thinking I could work in the cafe while the kids played03:58
thumperbut I need to be in the discovery world with them03:58
thumpercurrently propped in the corner with laptop on my lap03:58
thumpernot entirely comfortable03:58
davecheneythumper: i can't stand it any longer04:25
davecheneyi'm going for afternoon coffee04:25
davecheneydo you want to do HR stuff today ?04:25
menn0review pls: https://github.com/juju/juju/pull/333/files04:33
=== vladk|offline is now known as vladk
axwwallyworld: part 2: https://github.com/juju/juju/pull/33604:49
axwI'll do azure in a followup04:49
wallyworldaxw: looking after i finish the current review04:49
axwthanks04:50
axwwallyworld: FYI, here's the followup too: https://github.com/juju/juju/pull/33705:08
axwincludes the commit from 33605:08
wallyworldrightio05:08
wallyworldaxw: i'd love to get rid of the remaining old connection guff from juju/testing/conn.go i think it is05:08
wallyworldthe bit that does all the side effecty state open stuff05:09
wallyworldi think the only thing we really want to keep from there is PutCharm05:10
axwwallyworld: which bits can go? MongoInfo/APIInfo? I'm pretty sure things still use them...05:10
axwJujuConnSuite is everywhere05:11
wallyworldaxw: the newState() stuff05:11
axwah, ok05:11
axwas in collapse State/BackingState05:12
wallyworldyeah05:12
axwI can take a look at that after I fix up EnsureNotBootstrapped if you like05:12
wallyworldand we also do need to fix JujuConnSuite and ConnSuite (there's 2 of them)05:12
wallyworldsure, it was just a heads up - one of us will get there first05:12
axwokey dokey05:13
wallyworldwill be great to clean all this shit up05:13
axwindeed05:13
axwI was nearly tempted to remove the use of JujuConnSuite in the provisioner code, but didn't want to get too sidetracked05:14
wallyworldyeah, separate piece of work :-)05:29
=== vladk is now known as vladk|offline
axwfwereade: hey, are you about?06:18
fwereadeaxw, hey dude06:18
axwfwereade: thought you may want to skim https://github.com/juju/juju/pull/336 before I land it06:18
axwin case you have different ideas about how this should look06:19
fwereadeaxw, cheers, I'll take a super-quick look06:19
axwfwereade: description alone may be enough06:19
fwereadeaxw, description LGTM06:20
fwereadeaxw, I'd say that I'm not convinced that replacing the storage-based implementations is ideal06:20
fwereadeaxw, I would prefer to see us move in a direction in which environs have an explicit SetStateServerInstances method06:21
fwereadeaxw, (which can be backed by storage or tagging or whatever)06:21
axwfwereade: which would add a tag to an instance?06:21
fwereadeaxw, but post-bootsrtap, I think it's really up to the HA code to determine who's *really* meant to be a state server, and to keep the env updated with that knowledge06:21
axwI see06:22
fwereadeaxw, yeah -- and remove that tag from non-state-servers, I think06:22
fwereadeaxw, I mean, yeah, the storage-based implementation isn't great, I'm not *attached* to it06:23
axwfwereade: given that we can't do that with azure, I don't think we can get away from tying state-serveryness from provisioning any time soon06:23
rogpeppefwereade: does an Environ need to know about the state server instances at all?06:23
fwereadeaxw, but I feel like where we really fall short is in maintaining the important info at an env level, and the less-than-ideal implementation backing our attempts isn't my main focus06:23
* axw nods06:24
fwereaderogpeppe, yes, IMO, I am not willing to discard that functionality06:24
fwereaderogpeppe, I've heard plenty of arguments as to why it's kind of a hassle, and why we often don't need it, but IMO any time we force people to manage a juju environment via their provider dashboard we have *failed*06:25
rogpeppefwereade: i'm not suggesting that an a provider wouldn't be able to provide an implementation of the state-server-instanceid storage, but that it could be something independent of Environ06:25
rogpeppefwereade: then one could arbitrarily compose instance id storage and Environ06:26
rogpeppefwereade: just a thought. please ignore me :-)06:26
fwereaderogpeppe, I definitely think it's part of environ's responsibility -- but equally I am fine with the idea that we could/should be able to delegate that functionality elsewhere06:27
axwrogpeppe: I don't see how it could be independent, unless we require something like storage. it always has to be external to the environment, which means leaning on something provider-specific06:27
fwereadeaxw, or just a little remember-my-state-servers web service that we provide independently06:28
fwereadeaxw, it's not inextricably tied in *implementation* to any specific provider06:28
axwright, if we had a global thingy that would work06:28
fwereadeaxw, I just remain adamant that it's a responsibility of the environ interface, independent of where we actually storeit06:28
rogpeppeaxw: my thought is that there are many possible ways to do it (e.g. with some external web service). an instance-id storage service could be something that an Environ could be asked for, but wouldn't necessarily have to implement.06:28
axwfwereade: I agree with that06:28
axwrogpeppe: ah right, yes.06:29
axwwe could definitely delegate to some provider-independent thing06:29
rogpeppeaxw: rather than forcing all providers to know about all possible kinds of external instance-id storage services06:29
rogpeppefwereade: the reason i don't see it as a fundamental part of Environ is that the provider really couldn't care less about where instance-ids are stored. That's why I see it (potentially) as a service that the Environ *can* provide but not one that the Environ *must* provide.06:31
fwereaderogpeppe, I see it as part of the responsibility of the Environ instance to keep track of what happened when you called Bootstrap -- but indeed not necessarily as something that has to be provider-specific06:32
rogpeppefwereade: i would imagine that Bootstrap could take an instance-id storage service as an argument. That storage service might have been provided by the Environ itself, or externally.06:33
=== vladk|offline is now known as vladk
wallyworld__fwereade: the reason the storage based impl was replaced is due to the explicit direction given my mark s06:45
wallyworld__by06:45
wallyworld__that we should evolve towards removing cloud storage06:45
fwereadewallyworld__, hmm, I feel like there's a bit more nuance there06:46
fwereadewallyworld__, removing juju-level dependency on it is definitely important06:46
wallyworld__i agree we also want a SetStateServerInstances, but that is somewhat ortogonal to the current work and can come later06:46
fwereadewallyworld__, this feels like it goes further, and is close to mandating that we shouldn't use provider storage even if it exists06:47
wallyworld__fwereade: exactly, that was his direction06:47
wallyworld__he quited the recent swift config issues06:48
wallyworld__quoted06:48
wallyworld__as justification for why we need to eliminate it even if it exists06:48
fwereadewallyworld__, heh, ok then, I don't fully agree but it's not a hill I'm interested in dying on06:49
wallyworld__fwereade: i'm with you tbh06:50
wallyworld__but06:50
wallyworld__we have been told :-)06:50
fwereadewallyworld__, yep :)06:50
rogpeppeFWIW, the instance-id storage is the *only* place we *cannot* rely on state-server provided storage06:53
axwyup06:53
fwereaderogpeppe, understood, agreed06:53
rogpeppeISTR some general agreement that we could potentially move away from instance-id storage and store only instance addresses instead06:56
=== wallyworld__ is now known as wallyworld
rogpeppeor potentially just state server host-ports06:56
axwrogpeppe: what's the point of storing the addresses if they may be out of date?06:57
rogpeppeaxw: the environment itself keeps them up to date06:57
rogpeppeaxw: if the environment is moribund, there's not that much point in knowing its instance ids06:57
Egoist_Hi06:59
wallyworldnot sure. if we use instance tagging, we can just query the env's instance pool for the start server instances06:59
rogpeppeaxw: the "keeping them up to date" piece of the HA work is still to do, AFAIK. that was mainly because I wanted to make that change as part of it (otherwise there's an impedance mismatch between StateServerHostPorts and the instance id storage)07:00
Egoist_Why when I add new unit to service the other units can't get relation data, even if relation-set was executed?07:01
fwereadeEgoist_, expand please? relation-set is not flushed to the state server until the hook in which it was called completes successfully, but I'm not sure that's what you're seeing?07:02
=== wallyworld__ is now known as wallyworld
rogpeppewould anyone like to take a look over this charm store PR? it's the core of the new charm store, and i think it's quite neat actually :-] https://github.com/juju/charmstore/pull/1407:07
fwereadeaxw, rogpeppe: fwiw I think that the only impedance mismatch is in trying to use only a single piece of data for two purposes -- agents/clients need to know addresses to connect to, environs need to know instances to manipulate, it's about tuning the info to the context it'll be used in. IMO this implies we want 2 separate methods (and 2 separate watchers that'd probably still just share an impl), not that we should make environs concern it07:07
fwereadeself with addresses when it's fundamentally concerned with instances07:07
Egoist_fwereade, No, I mean that in peer relation, when I add new unit this new unit can get relation data about other unit, but other units who was in relation before adding new unit can't get relation data07:08
rogpeppefwereade: do we ever use the state server instance ids for anything other than turning into a state server address?07:08
Egoist_btw. what about charm, who is responsible about charms in charmstore?07:09
rogpeppeEgoist_: the top level ("promulgated") charms are reviewed and gated for quality and appropriacy by folks at Canonical.07:10
Egoist_rogpeppe: the top level ("promulgated") charms -> You mean charms that are more important for juju like juju-gui?07:12
rogpeppeEgoist_: i mean any charm that doesn't have "~" in the name07:12
rogpeppeEgoist_: (which is probably all the charms you've actually seen :-])07:12
fwereaderogpeppe, not sure we do, that doesn't mean that addresses are the correct expression of the info at the environ level07:12
axwfwereade, rogpeppe: we currently use StateServerInstances only to generate API addresses (and soon to determine whether the environment is bootstrapped)07:13
fwereadeEgoist_, at the point the old units try to get the data, what hooks have successfully run on the new unit?07:13
axwI don't think provider implementations should be thinking about API addresses, though. If we somehow pulled instance ID storage out of Environ then we could make it not-the-environ's-concern, but as it is I don't think Environ should know anything about API addresses07:14
fwereadeaxw, +107:14
Egoist_-relation-joined and -relation-changed07:14
Egoist_fwereade:07:15
rogpeppefwereade: i guess i'm trying to say that this concern is actually entirely independent of the environ. the only exception being, i guess, the fact that Environ.Bootstrap knows about it.07:15
rogpeppeaxw: +1 too07:15
fwereaderogpeppe, and that we want to know it to tell if the environ's bootstrapped, too, right?07:15
fwereaderogpeppe, "these are the instances" is a lot more direct and appropriate than "here are some addresses"07:15
fwereaderogpeppe, (and apart from anything else addresses are deeply problematic anyway, there's this infuriating pervasive assumption that the set of state server addresses is a single property of the environment)07:16
fwereaderogpeppe, (it's really not: different networks, different scopes -> (potentially) different set of state server addresses per agent)07:17
rogpeppefwereade: interesting.07:17
fwereaderogpeppe, that's one of the this-really-isn't-bulk things that has had me all grumped up for a while07:17
fwereaderogpeppe, it's not "what are the state server addresses for an environment"07:17
axw:q07:18
axwoops07:18
fwereaderogpeppe, it's "what addresses should X entity use to connect"07:18
fwereadeEgoist_, what's the error you see on the old units when you try to read the relation data you set in joined/changed?07:18
wallyworld__axw: lucky it wasn't your password :-)07:18
axw:)07:18
fwereadebrb07:19
rogpeppefwereade: yeah, it's a maze of tunnels and there are no universal addresses for anything.07:19
Egoist_fwereade: nothing error i guess, it's from charm code and it say that relation data is no exist -> In python language relation data is None07:23
Egoist_fwereade: btw, is there any tool to debug relation problem or something like that?07:23
fwereadeEgoist_, you can use `juju run` to execute arbitrary code in a hook context; and you can use `juju debug-hooks` to start a session that gives you a session that lets you run each hook07:28
fwereadeEgoist_, but, hmm, None is very weird07:28
fwereadeEgoist_, I'd expect at least private-address to be set07:29
Egoist_fwereade: yeah, and can't get any data set by relation set07:35
fwereadeEgoist_, so, just to be clear: there's a new unit that the old ones know about (they've run its joined hook) but for which they can't see any data?07:36
fwereadeEgoist_, (they've run *or are running*)07:36
Egoist_rogpeppe: yeah, I don't see charm with '~' in name. But with who I need to speak about bugs in charms/07:37
Egoist_?07:37
Egoist_fwereade: there's a new unit and this unit know about other ones, but old ones can't get any relation even about themself so i don't know is they don't know about this new unit07:40
Egoist_fwereade: thev've run07:41
Egoist_fwereade, no no sorry, they are running07:42
fwereadeEgoist_, hmm, that sounds like we can isolate it to just the old units anyway then?07:42
fwereadeEgoist_, what exactly are you running on those units, and in what hook, and where did you get the unit names from?07:43
fwereadeEgoist_, btw https://bugs.launchpad.net/charms ?07:43
TheMuemorning07:47
Egoist_fwereade: what exactly are you running on those units -> trying to deploy mongodb charm maintain by myself | and in what hook -> in -relation-changed | and where did you get the unit names from -> from relation-list07:49
fwereadeEgoist_, ok, I'm scratching my head here a little bit -- is it possible you could come up with an absolutely minimal charm that repros what you're seeing and report a bug against juju-core that references the charm?07:51
fwereadebbs07:51
Egoist_fwereade: yeah, i think i could do that07:53
fwereadeEgoist_, awesome, tyvm08:04
=== vladk is now known as vladk|offline
=== vladk|offline is now known as vladk
=== vladk is now known as vladk|offline
mattywrogpeppe, ping?09:00
rogpeppemattyw: hiya09:01
=== vladk|offline is now known as vladk
=== vladk is now known as vladk|offline
=== vladk|offline is now known as vladk
TheMueone trivial one for the OCR: https://github.com/juju/juju/pull/33809:36
TheMuevds: ping, you’re OCR today ;)10:00
voidspacehow do I push without running the pre-push hook?10:20
voidspaceI need to push a branch that doesn't compile10:21
TheMuevoidspace: eh, why that?10:22
voidspaceTheMue: because I've made a big change and it will be a while before it compiles and I don't want it only on my computer10:22
voidspaceI want to push my wip10:22
voidspaceI think there's a command line flag, can't find it though10:22
TheMuevoidspace: ah, to your personal repo?10:22
voidspaceTheMue: no, to master of course ;-)10:23
voidspaceTheMue: yeah, to my repo - but the pre push check runs for that too10:23
TheMuevoidspace: eh, the question mark has been by accident ;)10:23
voidspacehehe10:23
TheMuevoidspace: hmm, isn’t the hook already running before commiting? not before pushing?10:24
voidspaceTheMue: no, it's pre-push10:24
voidspaceTheMue: at least if you follow the instructions in CONTRIBUTING10:25
voidspacethe command line flag is --no-verify10:25
TheMuevoidspace: ouch, I only have a pre-commit *blush*10:25
voidspacepre-commit is even stricter!10:26
* TheMue has to take a deeper look into his git hooks10:26
TheMueso, added it too10:30
TheMueI’m running most of it manually from inside vim, so no problems so far10:31
voidspacecool10:31
TheMuevoidspace: could you please take a look at https://github.com/juju/juju/pull/338? it’s a very trivial one.10:32
voidspacelooking10:32
TheMuevoidspace: thx10:32
voidspaceTheMue: the hash change is markdown syntax?10:32
voidspaceI'm not familiar with markdown10:32
voidspaceTheMue: have you run it through a processor to check the output?10:33
TheMuevoidspace: yep, the === and — only work for h1 and h2, #, ##, ###, ### etc can even go further10:33
voidspaceok10:33
TheMuevoidspace: yep, and took a look on it in GH itself which renders it fine10:33
voidspaceI think the ==== and --- look better in plain text form though10:34
TheMuevoidspace: maybe, but it’s only habituation. we want to render all docs later from md in GH direkt to HTML on j.u.c10:35
voidspacewell, I think they look more like headings - so not just habituation10:35
TheMueok10:36
voidspaceIf we need the alternative format then fine10:36
TheMuein other md docs nick and i use # because very often we need deeper nestings than h210:36
voidspaceat least we're not using latex10:37
TheMuevoidspace: hey, I wrote my golang book in latex, so please don’t complain :D10:38
voidspacehah10:38
TheMuevoidspace: btw, my IPv6 info collection so far is at https://docs.google.com/a/canonical.com/document/d/1wfdGL_vyemT2-ncAB7KIySkKI9HbT8efKeC3Sd8ID0I/edit#10:39
voidspacecool10:39
TheMuevoidspace: very raw, no real concept, only a collection of links and snippets10:40
voidspaceTheMue: I won't get a chance to look at it today - I'm off next week and need to get this branch as close to done as possible10:40
voidspaceeven getting it to compile will be a challenge :-/10:40
voidspaceI'll bookmark it for later10:40
TheMuevoidspace: ok, nopro10:40
voidspaceI'll be back with you guys on networking on my return10:40
TheMuevoidspace: a quick vacation? dimiter is diving on malta these days10:41
voidspacenice10:42
voidspaceI'd love to go diving10:42
TheMuenever done that10:42
voidspaceme neither10:42
TheMueI would like to do the opposite, flying and parachuting10:43
voidspaceI did a parachute jump last year :-)10:43
TheMueonce done a tandem jump out of 3000m, nice10:43
TheMuecool10:43
voidspaceTheMue: you've done a tandem jump?10:43
voidspacethat's what I did10:43
voidspacegreat fun10:43
TheMueyeah, during free fall I’ve almost forgot to breathe. and then the silence, when the parachute opened and you’ve haning there in about 1000m10:44
voidspaceyep, exhilarating and amazing10:45
TheMuehanging10:45
TheMuevoidspace: the right words10:46
voidspaceTheMue: LGTM on your PR by the way10:52
TheMuevoidspace: thx10:52
vladkdimitern10:54
TheMuevladk: dimiterm is on vacation already10:54
vdsTheMue, pong, just got back to a decent internet connection10:55
TheMuevladk: you’re here? have been in the hangout but nobody there10:55
vladkTheMue: yes, I was late10:55
TheMuevds: hehe, it’s ok, voidspace already reviewd it10:55
TheMuevladk: i’ve got nothing special to tell, working on ipv6 for lxc and documentation10:56
vladkI'm, too. I am working on moving cloudinit stuff to networker.10:57
vladkTheMue: ^10:57
TheMuevladk: ah, ok. does the networker also modify /etc/network/interfaces?11:04
TheMuevladk: and this inside containers?11:04
TheMuevladk: it could be interesting for routing IPv6 sub-subnets in a container (net yet absolutely shure about it, but found an interesting blog entry)11:05
wwitzel3I've put off restarting for a couple weeks, guess I should probably listen to the nag window, brb11:46
vladkTheMue: networker requires the presence of /etc/network/interfaces, but it modifies it only for MAAS, and it creates config files for separate interfaces in interfaces.d/ directory. And this should work for all providers except manual11:56
vladkTheMue: what is the blog about IPv6?11:57
katcogood morning all12:01
mgzmornin'12:02
voidspacekatco: o/12:02
voidspacemgz: thanks for leaving dominion with reception by the way - I got it fine12:02
voidspacemgz: sorry I missed you for the Boston expedition12:02
voidspaceI hope it was fun12:02
voidspaceI had a very quiet Saturday morning12:02
mgzvoidspace: no probs, hope you have a good night on friday12:03
voidspacemgz: yeah, pretty epic12:03
voidspacegot in at 5am12:03
voidspacefwereade: ping12:03
fwereadevoidspace, pong12:03
voidspacefwereade: I'm part way through what's turning into quite an invasive change12:04
voidspacefwereade: and I think you at least ought to be aware of it - and ideally give a thumbs up to it12:04
voidspacefwereade: the basic gist is that we need to be copying sessions in order to use mgo socket pooling12:04
voidspacefwereade: which means we need to *not* be storing collections (which have a reference to the global session) on state.State12:05
voidspacefwereade: so I've pulled them out, providing methods to get the collection (using a new session) whenever it's needed12:05
fwereadevoidspace, hmm, ok -- is it just a matter of making them funcs that return suitable collections with new sessions? perfect12:05
fwereadevoidspace, +112:05
voidspacefwereade: it's *largely* a mechanical change - with a few places that need careful thought12:05
voidspacefwereade: work so far https://github.com/voidspace/juju/compare/copy-sessions12:06
voidspacefwereade: yeah, it's *mostly* that12:06
voidspacefwereade: the compiler won't tell me how many places I have to change - just that there are too many...12:06
fwereadevoidspace, sounds like a nice commit on its own12:06
TheMuevladk: http://blog.toxa.de/archives/60612:06
voidspacefwereade: it needs some support work - for example, when we change the password we need to re-open the state because the existing session has the wrong credentials12:07
voidspacefwereade: the goal is to eliminate i/o timeout errors which we are pretty certain come from using the one global session12:07
voidspacefwereade: my lunch date just arrived12:07
voidspacebad timing12:07
voidspacebiab12:07
voidspacewell, about an hour or so - sorry12:08
wallyworldmgz: katco: standup?12:33
katcowallyworld: sure, let me grab another cup of coffee. long night -.-12:33
wallyworldsure :-)12:33
fwereadebbmuchl12:40
fwereadein new zealand :/12:40
perrito666late morning everyone12:52
wwitzel3hey perrito66612:56
=== gsamfira1 is now known as gsamfira
perrito666natefinch:13:31
wallyworldkatco: forgot to ask - did you get access to canonicaladmin?13:31
natefinchperrito666: can we move our meeting later?  I have to call my insurance company about why they didn't cover my wife's $500 ultrasound13:33
perrito666sure we can13:33
katcowallyworld: i emailed sarah and she just said to use my login from my new-hire email(s)13:39
katcowallyworld: and i haven't gone back and checked those yet13:39
wallyworldok, np. just wanted to make sure you were ok13:39
katcowallyworld: ty i will let you know if i have any issues13:40
wallyworldok13:40
katcowallyworld: cheers! :)13:40
katcomgz: lmk if you have any questions regarding that PR13:41
natefinchwallyworld: do you know why we have the upstart script redirect jujud's output to a file, rather than just having loggo write to a file?13:41
mgzkatco: sure thing13:42
wallyworldnatefinch: my guess is because bu default, loogo writes to stdout and so it's simpler just to have upstart capture that stdout data and redirect from there13:42
wallyworldbut we could look at changing that13:42
wallyworldi don't imagine it would be too hard, but it would be extra code13:43
wallyworldcause we'd need to register a different writer with loggo in each process13:43
natefinchyeah, but it's code and not text in a string that gets written to a configuration file :)13:43
wallyworldsure, understood. i'm just guessing the reason :-)13:44
natefinch:)13:44
natefinchwallyworld: do we expect multiple jujud processes running on the same machine?13:44
wallyworldyes13:44
wallyworldmachine agent, unit agent13:44
natefinchahh13:45
natefinchstill, one log file each wouldn't be a terrible idea13:45
wallyworldi think they get one log file each now anyway13:45
wallyworldmachine-x, unit-y etc13:45
natefinchahh ok, yeah13:45
wallyworldnatefinch: i updated all the deps and other stuff for the licensing based on the new gojson repos. but then i noticed the readmes in those repos still referenced binary132 and i didn't have the will power to do it all again13:46
natefinchwallyworld: I can fix the readme files... sorry, guess I forgot about those.13:47
wallyworldnatefinch: np. you will need to update dependencies.tsv in both 1.20 and master13:47
wallyworldthanks for sorting it out though13:48
natefinchwelcome13:50
katcowwitzel3: btw ran across this and thought you'd be interested: http://jamescooke.info/git-to-squash-or-not-to-squash.html13:53
katcowwitzel3: it's an interesting question; not sure where i fall yet. i kind of like squash conceptually13:53
wwitzel3katco: read that one a while back. if there was a way to persist the reflog and share it for each branch / the entire repo .. well that would be perfect :)13:58
wwitzel3katco: but it is only a local copy (afaik), so for me, doesn't quite solve the problem of keeping tools like git bisect useful when large feature branches introduce subtle bugs.13:59
katcowwitzel3: i'm not yet familiar enough with git to comment on that. i haven't used bisect at all.14:00
katcowwitzel3: sounds like you're a few steps ahead of me in your thinking14:01
perrito666wwitzel3: your dog is so nice14:17
* perrito666 loves dogs14:17
wwitzel3perrito666: which dog? one of them isn't mine14:19
perrito666wwitzel3: a dog just paraded behind you while we where having the stand up14:19
perrito666like a big sheppard14:19
perrito666but pixelated :p14:19
wwitzel3perrito666: yeah, that is a german sheppard, her name is Daisy, watching her for a friend.14:21
sinzuinatefinch, or maybe katco , can you help triage bug 1343318 . I relates to logging which has changed and will change soon14:36
_mup_Bug #1343318: Node syslog full of rsyslog warnings <logging> <juju-core:New> <https://launchpad.net/bugs/1343318>14:36
sinzuinatefinch, katco : Do we intend to fix this for 1.21.0, or later14:36
katcosinzui: i have never triaged before; and i don't think i can comment on when things will be fixed yet, but i'm looking at the log none-the-less14:38
katcosinzui: is there a way to tell what version he was running? i recently fixed a bug where rsyslog could not read from a machine-x.log14:40
sinzuikatco, understood.These are my rules, though they don't list that we can choose medium when we think we think we need to discuss it in relation to other issues in afew months: https://docs.google.com/a/canonical.com/drawings/d/1vPqrgXDduzwV_N01ORF6jdnprwykf1ofiIaEAmIwOuA/edit14:40
katcosinzui: (version of juju)14:40
katcosinzui: thanks for that :)14:41
sinzuikatco, The user is Canonical IS, so I believe 1.18.1, but they are also migrating some thing to 1.20.1 They will not run devel juju14:41
ericsnowsinzui: yeah, thanks :)14:41
sinzuikatco, The easy question to ask is if this work it thematically related to what we are doing, are we will to commit to fixing this in the 1.21.x series, if so, I would mark the bug high and assign it to next-stable milestone. If not, I would mark the bug as Medium because I think we will want this bug closed in the next 6 months14:43
katcosinzui: gotcha. i really have to defer to a lead. i'm just not on-boarded enough to make a call. however, it's possible that this is a symptom of a regression that has already been fixed.14:44
katcosinzui: https://bugs.launchpad.net/juju-core/+bug/133971514:44
_mup_Bug #1339715: Juju 1.21-alpha1 local provider does not create all-machines.log <local-provider> <logging> <rsyslog> <juju-core:Fix Committed by cox-katherine-e> <https://launchpad.net/bugs/1339715>14:44
sinzuikatco, exactly why I asked you :)14:45
katcosinzui: aha! ;)14:45
katcosinzui: so just to make sure the loop is closed; do you mind if i defer to a lead?14:49
sinzuikatco, not at all14:50
sinzuihazmat, do you want to include this bug in your "usability" mandate . bug 1343569 points out that you cannot dump the config of running service to backup or reuse it to deploy another service the same way14:54
_mup_Bug #1343569: Juju should have an easy way to dump then reuse service config <charms> <config> <improvement> <usability> <juju-core:New> <https://launchpad.net/bugs/1343569>14:54
mrammanybody around to help SABDFL debug stuff?15:14
mrammhe is having issues with lxc containers15:15
mgznot sure what I could usefully suggest15:17
=== sebas538_ is now known as sebas5384
mrammwell, we have lots of load on a machine and would like somebody to look at it to see if they can find anything15:19
mrammand container starts are failing, and we should get logs15:19
mgzokay15:20
mrammdo you have access to the garage MAAS?15:22
mgzugh, probably in theory, but I haven't checked in ages15:22
mgzwill just search emails quickly15:23
mgzmramm: nope, I'm not in the right group15:25
mgzI can file an rt to fix that15:26
mgzbut that's not very immediate15:26
mgzmramm: are there no americans around?15:29
mgznate at least has done maasy things quite recently15:29
=== Ursinha is now known as Ursinha-afk
katcomgz: sorry to be a pain, but i want to catch you before your EOD. do you think you will be able to review that PR today?15:46
mgzkatco: sure, sorry, just in other things15:47
katcomgz: oh no worries... as long as it's in before EOD i'm happy15:47
katcomgz: i just want to land it by my EOD15:47
mgzthe diff on github is now annoying to read...15:49
katcomgz: =/ could/should i have done it differently?15:49
mgznah, just fallout from having had several rounds of review15:50
=== Ursinha-afk is now known as Ursinha
katcoah ok... yeah it was difficult to understand the commenting system, this having been my first multi-push review15:51
katcoi understand review board will be better at this15:51
mgzkatco: done16:01
katcomgz: ty sir16:01
katcomgz: regarding the break on 80? what is the style in the project? string literal (`foo`) with line breaks? \n embedded in the string?16:08
mgzkatco: yeah, I'd just try to throw in a \n after the first sentence or something, and trim the second one a bit16:16
katcomgz: (friday humor) i just did "M-u 8016:18
mgzkatco: let me guess, that transforms your editor into a giant robot?16:19
katcomgz: LOL16:19
katcoM-u is just a way to tell emacs to do something X number of times16:19
katcoso i say M-u 80 and then hit the right button16:20
bodie_hmmm, go emacs?  how do you like it?16:20
katcobodie_: how does one like air? water?16:21
katcobodie_: hehe no i love emacs. i am typing this from emacs (erc)16:21
bodie_I guess it depends how problematic it is ;)16:21
bodie_I like the air here much better than the air in LA16:21
katcohaha16:22
bodie_I enjoy emacs for clojure but I'm not sure it would feel right for Go, but some people do swear by it16:22
katcobodie_: i poke fun at my love of emacs often. but i use it for everything. i find writing go in it is wonderful16:22
bodie_again... best OS with a reasonably tolerable text editor :P16:23
katcobodie_: lol yup16:23
katcoit was funny, at the sprint axw was reviewing some of my code16:23
katcoand he's a vim user16:23
katcoso i hopped into evil-mode16:23
bodie_nice16:23
katcoand now i can say axw used emacs ;)16:23
bodie_emaxw16:23
katcorofl16:24
=== vladk is now known as vladk|offline
katcobut yeah, google's go-mode ties into a lot of great tools16:24
bodie_oo, there's a google-sponsored package? I might have to check that out16:25
katcoyeah it's in elpa and everything16:25
katcoi think it's distributed with go, but the elpa is more up to date16:25
katcohttp://dominik.honnef.co/posts/2013/03/writing_go_in_emacs/16:25
katcoolder, but will give you some idea16:25
katcoand on top of that, magit is wonderful for git16:26
bodie_true, magit is quite nifty from what I've used of it16:26
katcoi don't have to remember all the flags etc16:27
katcoand as i'm building muscle memory, it is _so_ fast16:27
bodie_I've been using a nice vim plugin set that has code completion, goto-definition, hideable fn and symbol table, and hideable dir tree browser16:27
bodie_it's actually almost too heavy16:27
bodie_but, really nice16:27
katcobodie_: yeah i have all that up right now too... ecb16:27
bodie_:D16:27
katcoit is heavy if i know where i'm at in the code16:28
katcobut since i'm new, that's almost never, and it's great for holding my hand16:28
katcoalso, i run tests from emacs and then C-` to jump to errors16:28
katcoi will go on and on if you let me ;)16:28
bodie_oooo16:28
katcoflymake highlights errors while i'm typing16:29
bodie_afai'm concerned, this is the productive opposite of an editor war :P16:29
=== Ursinha is now known as Ursinha-afk
katcorofl16:30
katcoi can add imports with C-c Ca, prune them with C-c C-r16:30
katco*C-c C-a16:30
katcobut by FAR the best is the hook-in with oracle16:31
katcopoints out callers, callees, etc... all clickable16:31
jcastroError details:16:31
jcastroinvalid Joyent provider config: control-dir: expected string, got nothing16:31
jcastrodid something get added to the joyent provider?16:31
bodie_katco, now you're talking16:32
bodie_I definitely have to give this a spin16:32
katcophew... i was at risk of losing my emacs license. too few converts.16:33
bodie_unfortunately, my piano skills are a little rusty :P16:33
katcohaha16:33
katcoanother thing to check out if you're into productivity tools: org-mode16:35
bodie_I have heard the ranting and raving about org-mode16:35
katcomy life is in org-mode16:35
bodie_but haven't taken the time to poke around16:35
bodie_lol16:35
bodie_I'm trying to write something a bit like a team enabled org-mode-as-a-service on the side right now16:36
bodie_would be neat to write a lisp client to interface between that and "real" org-mode16:36
katcohttp://blog.kate.cox2.name/2014/01/reflecting-on-2013.html check out the "To-Do System..." header16:36
katcobodie_: yeah i wish there was an interface into org-mode for leankit16:37
katcothere's one for trello16:37
bodie_no way, too cool16:37
katcoand i've written some very basic hooks into launchpad just to grab some info16:37
katcoso like i can put the point on a bug id, and then i do M-x kt/browse-launchpad-bug16:37
katcoseems trivial but i use it _so_ much16:38
=== Ursinha-afk is now known as Ursinha
katconeed to get some food bbiab16:39
bodie_o/16:39
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
voidspacesigning off for a few hours. Back on in around 4 hours.18:04
voidspaceg'night everyone18:04
katcotc voidspace18:04
voidspaceI'm not in next week. Don't have too much fun without me...18:05
voidspaceo/18:05
TheMueo/18:09
TheMuebodie_: you’re using vim? I’m an old vimthusiast18:10
TheMuebodie_: for go I’m using the standard of the go team plus an own little and helpful plugin18:11
TheMuebodie_: also tagbar is nice for navigation inside a file18:12
=== vladk|offline is now known as vladk
katcohmm.. i'm trying to write a unit test to check if kvm-ok is on the path, but i would rather not have the test fail if the dev running the test doesn't have kvm-ok... any ideas?18:17
katcoperhaps creating a dummy kvm-ok on a dummy path?18:18
perrito666katco: you can set the path to whatever c.Mkdir() returns and adda kvm-ok there18:19
natefinchyeah, that's what I'd do.18:20
katcoperrito666: perfect, ty guys18:20
katcoi kinda wish there was a better way to mock this18:20
natefinchI presume the code is the thing checking for kvm-ok, and you want to make sure it does the right thing?18:20
TheMuehehe, mocking, always a nice topic18:21
katcoyeah, we're adding the ability to check a given path if it can't find it in the user's path18:21
natefinchright18:21
natefinchI think the way mentioned is a good way to do it.  It physically sets the environment to either correct or incorrect.   An alternate way would be to mock out os.Stat, but that's a little more implementation dependent18:22
katcocool ty natefinch18:23
perrito666also you can set path to your temp dir, fail, add file, success and is a rather flow explanatory test18:24
katcoperrito666: yeah i'm planning on doing just that18:24
* perrito666 remembers one of his testing mentors "tests should tell a story"18:25
katcoperrito666: that's really interesting; i would listen if you wanted to expound18:25
natefinchI like tests that only test one thing.  So, one to test the good case, one to test the bad case.   But sometimes setup is a big pain, so you end up testing multiple things along the way.18:26
katconatefinch: i try to find the "middle way" for that reason18:26
katconatefinch: an architect i respected once said, "if you ever find yourself thinking in absolutes, that should be a red flag"18:27
natefinchkatco: yep... never ever use absolutes.18:27
ericsnownatefinch: you can create a new suite for that and write a SetUpTest() that is common to those tests18:28
perrito666katco: well, you ideally should know how many exits your code has and therefore should tell the story of how data -> box->info flows from shorter to longer path18:28
katconatefinch: that joke is _always_ funny18:28
natefinch:)18:28
natefinchyep18:28
natefinchericsnow: I kinda hate suite-based tests, actually.  It seems to encourage really elaborate test setups, rather than refactoring your code to be more testable18:28
perrito666katco: that should be read with a fake old chinese wise man voice18:29
natefinch"hey look, I've spent two weeks writing code so that I can start up mongo and a juju server with just three lines of code!"18:29
katcoperrito666: ah, so that touches on something i am familiar with: the tests being a good way for devs to examine your api18:29
katcoperrito666: rofl18:29
katcoperrito666: the argentinian accent is just as effective :)18:29
bodie_TheMue, I agree about tagbar :)18:30
katcobodie_: heresy! come to emacs!18:30
* natefinch just installed acme so he could take part in the editor wars.....18:30
katcohaha18:31
katconatefinch: i will be interested in how you find it18:31
katconatefinch: personally i don't like how it's mouse driven18:31
natefinchkatco: I'm coming from Visual Studio and Sublime text, so I'm pretty mouse-centric anyway.  I have come to love the command line...  but I like the ability to just look at a word and perform an action on it, like go to definition or whatever18:33
natefinchbut I literally just started acme for the first time, so we'll see18:33
perrito666natefinch: well be around you when you use your mouse sounds a lot like being near a cs player18:34
bodie_natefinch, lol18:34
katconatefinch: yeah i understand; the two are not mutually exclusive fyi; i do M-. to go to defs on word, among other keystrokes18:34
katcoperrito666: haha18:34
bodie_I may be a CLI fighter but I'm not Acme crazy18:34
TheMuekatco: emacs = eight megabytes and continuously swapping18:34
TheMuekatco: oh, no, today it’s 8 GB, for Atom18:35
katcoTheMue: haha18:35
* katco wonders if that's now a compliment these days18:35
katcoah darn18:35
bodie_natefinch, I love sublime too, but I discovered that not having to leave the keyboard reduces friction just that little extra bit... meaning I can be just a little bit lazier ;)18:35
bodie_lol TheMue18:35
katcoTheMue: actually that came up in the sprint... i went to look and see how much memory emacs was consuming expecting 500MB or so... 29 MB18:36
TheMueI left Sublime, somehow I came back to vim. love the speed and that it’s availble on GUI and in terminal18:36
natefinchI've heard a lot of good things about vim-go, but I don't know that I can deal with vim's keyboard navigation stuff18:36
katcoTheMue: it's taking up ~230MB right now, but i have considerably more running18:36
katconatefinch: emacs can help you there! ;)18:37
TheMuekatco: today the old ones are all small, even with all their plugins18:37
bodie_natefinch, yeah, it's a little bit of a learning curve for sure, especially for the first week or so18:37
* katco taps fingertips together18:37
bodie_once you're used to it it's very friendly (same with emacs imo) but getting there is weird and annoying18:37
katcoobligatory http://ergoemacs.org/emacs/i/emacs_learning_curves.png18:38
TheMuein early times smalltalk had no chance because of the resources they need. when today running pharo you love about the needed resources18:38
* TheMue will stay with vim18:38
bodie_precisely18:39
bodie_(katco)18:39
perrito666if you really want to be part of a good editor war, you need to code your own editor, clearly18:39
bodie_well...18:39
TheMueperrito666: good idea18:39
katcoperrito666: seriously speaking, i consider the point of emacs to customize it specifically to you until it is an extension of you18:39
bodie_emacs is basically just a lisp interpreter, right?18:39
TheMueperrito666: on your own os with your own language18:40
katcobodie_: i actually have scripts i run from the command line utilizing emacs as a host18:40
bodie_bodim on bodhi linux running bodiescript?18:40
katcobodie_: check this out: http://elnode.org/18:40
katcosometimes i use that for stubbing web apis18:40
bodie_oh, M-s-nap18:41
katcolol18:41
bodie_... that was a stretch18:41
TheMueoh, and today everything has to run in the browser. so even the local editor has to be a server and files are edited by https://localhost:12345/home/themue/code/..18:41
katcobodie_: i enjoyed it18:42
bodie_TheMue, you must be thinking of LightTable IDE... :P18:42
katcololl18:42
TheMuebodie_: noooooooo /o\18:42
bodie_I really wanted that to be cool :S18:42
* TheMue ’s first real hard editor has been ISPF on TSO (and his cousin SPF/2 on OS/2), very strange, but powerful once you get it 18:46
bodie_I was fantasizing the other day about how a keyboardless shell / code editor might be possible18:46
katcoi started out on vim, but have since forgotten all of it18:46
bodie_to me vim is like a very productive text editor whereas emacs is more like a semantic tree editor18:47
bodie_and go is not very ... tree-y18:47
bodie_but it is somewhat verbose (relative to more tree-y things like lisps)18:47
perrito666bodie_: I have never been into a level of productivity where that degree of speed is useful, I usually spend more time thinking that writing18:48
TheMuebodie_: never thought about it, but yes18:48
katcoi'm not sure i understand that. what is the relation b/t editor and how close to sexps the language is?18:49
TheMueAtom will be the next emacs, only js instead of lisp. and node.js as backend *shivver*18:51
bodie_it seems to me that in a sexpy language your syntax is closer to a semantic tree while in a more imperative style language your syntax is more about editing the state machine.... or something18:51
katcobodie_: ah ok. i am still not able to make the connection on how the editor impacts that, perhaps b/c i haven't used vim in so long18:53
bodie_well to me it feels like vim is more about manipulating letters / lines / words while emacs is more about manipulating sexps18:54
bodie_maybe I'm just used to paredit18:55
katcohm. again, perhaps it's b/c i haven't used vim in so long, but emacs seems to work just fine editing things at the document level (letters, lines, words, etc.)18:56
katcoit does assign meaning to syntax based on what mode you're in, so you can jump around the document based on functions, etc.18:56
katcobut i don't think that precludes operating at a purely document level18:56
bodie_I'm probably just more comfy with vim's toolbelt :)18:58
katcoi do get the feeling that vim is better for that kind of thing18:58
katcovim golf18:58
bodie_heh18:58
katcobut we have evil-mode! ;)18:58
* bodie_ dramatically keels over clutching his head18:59
katcohaha18:59
katcoquick! M-x revive-developer19:00
natefinchhonestly, the worst thing about emacs users is how they always have to write out all their hotkeys (and call them chords to make them sound more exotic)19:02
natefinch:D19:02
TheMue*ROFL*19:03
perrito666natefinch: nah, chords are easy, you can play a piano with only 10 fingers, its not like emacs19:03
* perrito666 hides19:03
katcohold on i accidently did the wrong chord and it's reformatting my hard drive19:03
katcodammit emacs!19:03
bodie_if you just map c, s, and m to C maj, F maj, G 7....19:03
TheMuekatco: as long as you don’t reformat EC219:04
bodie_lol perrito66619:04
katcoTheMue: nah, that's bound to C-S...19:04
bodie_or was it M-C-S?19:05
TheMuelast time I used emacs I got a knot into my fingers and had been in the hospital for three weeks19:05
katcoM-x describe-key to the rescue!19:05
katcolol19:05
bodie_actually19:05
bodie_I find emacs easier on my hands19:05
bodie_because I *never* have to leave home row19:05
bodie_position*19:05
natefinchevidently acme runs its own virtualized operating system. Take that, emacs!19:07
katcorofl19:07
katcoeditor wars are too fun to take seriously19:07
bodie_clearly, emacs is superior in that respect, since its primary operating system is the brain of the user19:07
* katco refrains from making a comment about the OS needing an upgrade19:08
bodie_I'm afraid there is no known remedial action for removing such a virus19:08
katcoi knew when i found that tetris had come bundled with emacs that something was amiss19:10
katcobut it was too late for me19:10
natefinchrogpeppe: you around?19:18
natefinchgood god ubuntu software center is slow19:21
jcastroapt-get dude!19:21
natefinchbut if I install stuff from a deb, I have no clue what apt thinks it's called19:21
katcook this is stupid. what's a cross platform command i can place in an executable script? very few assumptions can be made about what resides on the system19:22
natefinchneed more context19:22
katcoi'm still working on this stupid test. if i create an empty file and make it executable, i get a "fork/exec (file...) exec format error"19:23
katcoif i fill it in with something, it works19:23
natefinchkatco: I think we have a util for that...19:24
katconatefinch: i honestly can't tell if you're joking19:24
natefinchkatco: not joking :)19:24
katcohaha ok. please elucidate19:25
natefinchkatco: cross platform is actually pretty tricky... we usually use "exit 0" as the script contents19:25
katcooh jees... why didn't i think of that19:25
katcoi blame 3 hours of sleep and my baby19:26
natefinch#!/bin/bash --norc19:26
natefinchexit 019:26
katcothat won't work on windows will it?19:26
natefinchnot cross platform, obv19:26
natefinchcorrect19:26
katcotrying to be mindful of your windows work :)19:26
natefinchecho works :)19:27
katcohmmm... it doesn't like that either19:30
natefinchmight not be possible to be cross platform... that's ok, we can always refactor it so we create an OS-specific script19:31
natefinchjcastro: how do I list installed stuff with apt-get? I installed a deb I downloaded through the ubuntu software center, but now it's not show it as installed19:37
natefinchjcastro: (and I don't know what the heck apt-get thinks it's called)19:37
jcastronatefinch, in this case install synaptic, then look in the "local" section19:37
jcastroand it will show you all the horrible things from around the web you've installed19:37
katconatefinch: apt-cache search <regex>19:38
natefinchthat's ok, I was able to guess :)  But that'll be useful later19:38
natefinchhahah... it's not that ubuntu software center couldn't find the software, it was just so slow and didn't show any progress, I thought it couldn't find it, but I went back to the window a few minutes later, and it was there19:39
rick_h__sinzui: really awesome email :)19:44
* rick_h__ tosses three cheers to sinzui abentley abel and company19:44
sinzuithank you rick_h__19:54
=== Ursinha is now known as Ursinha-afk
TheMuesinzui: +120:17
=== Ursinha-afk is now known as Ursinha
=== vladk is now known as vladk|offline
natefinchsinzui: thank you for that.  There had been grumbling that Juju was unstable, but I didn't know where it was coming from.  Nice to hear someone who uses and tests juju thinks it's pretty stable20:29
natefinchman our logging infrastructure is overly complicated20:40
perrito666sinzui: +1 that kind of feedback is very refreshing21:03
katcowhere is this very awesome email?21:04
ericsnowkatco: canonical-juju21:05
ericsnowkatco: "Some facts about Juju CI and Juju 1.20.x"21:06
katcooh that's right... i still don't think i'm on that list21:07
katcoi guess alexis didn't get around to that yesterday21:07
ericsnowkatco: I'll forward it to you21:07
katcoericsnow: oh thank you!21:08
katcofor now it's past my EOD and i desperately need sleep. have a good weekend all21:08
voidspacewallyworld: ping23:53
voidspacehmmm... unless it's now saturday in your world23:54
voidspaceI guess technically it is in mine now23:54
voidspacewallyworld: anyway, I'll email you tomorrow...23:54

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