/srv/irclogs.ubuntu.com/2014/05/08/#juju-dev.txt

=== vladk is now known as vladk|offline
hazmat`no caps letters in services names.00:12
* hazmat` wonders why00:12
rick_h_url-able?00:12
hazmat`rick_h_, urls can include caps letters. lwn.net/Articles/587373/#Comments00:14
rick_h_hazmat`: sure, but it's generally nice to make Comments and comments not do different things00:15
hazmat`humbug ;-)00:15
wallyworld_axw: hiya, when you have a minute, can we have a hangout?00:59
axwwallyworld_: heya, sure just a moment01:00
wallyworld_ok, i'll set one up for when you are ready01:01
wallyworld_https://plus.google.com/hangouts/_/7acpj2ql7v7hcjv3aea5s03kog01:01
axwwallyworld_: ready... it says "the party is over", did you close it?01:02
wallyworld_no01:03
wallyworld_hmm, let me try again01:03
wallyworld_i sent an invite01:03
axwwallyworld_: I think I lost you01:07
axwnope01:07
* thumper digs out the ice pack01:26
rick_h_thumper: stop hitting yourself01:28
thumperI was even wearing my head gear01:29
thumpermenn0: are you reusing branches?01:40
menn0i was just writing to you about that :)01:40
menn0i'm using the same branch because it's a continuation of the same work01:40
menn0not the right approach?01:41
menn0(or could I have used lbox propose --new-bug?)01:41
menn0thumper: ?01:43
thumper--new-bug is something different01:43
thumperI tend to use new branches, based of the old ones, for continuation of work01:43
thumperthis way, branches linked to bugs, merge proposals are simpler, and lbox doesn't get confused01:44
thumperthe code review there now shows it as already approved01:44
menn0yeah i saw that :(01:44
thumpermore a function of our tools and workflow01:44
menn0so to recover... delete the review and try again from a new branch01:44
menn0?01:44
thumpernah, don't worry for this one01:44
thumperjust try to remember for the next01:45
menn0ok01:45
thumperand we should write that in the developer documentation :-)01:45
menn0writing that down now ...01:46
menn0lunch time ...01:47
thumperwallyworld_: are you still wanting to catch up weekly?01:53
wallyworld_sure, why not01:53
thumperok, I'll just go make some lunch01:54
axwwallyworld_: seems this is P1 -- https://bugs.launchpad.net/juju-core/+bug/131686901:58
_mup_Bug #1316869: juju sync-tools destroys the environment when given an invalid source <juju-core:New> <https://launchpad.net/bugs/1316869>01:58
axwwallyworld_: do you want me to look at this, or keep looking at the LXC thing?01:58
wallyworld_axw: i thought at first glance that env one was a non issue?01:58
wallyworld_but maybe they want to keep the newly created env01:58
axwwallyworld_: no I don't think so. after looking at the log more closely, it shouldn't be destroying01:59
wallyworld_in that case fix that one first01:59
wallyworld_we'll need to get a release done with that, both 1.18 and 1.19 i expect01:59
wallyworld_axw: before you start looking at the fast lxc stuff again, can you please ping me?02:32
axwwallyworld_: will do02:42
wallyworld_ta, we need to tweak the implementation02:43
=== hatch__ is now known as hatch
thumperanyone interested in reading over my developer doc on writing tests? https://codereview.appspot.com/96110043/03:46
jcw4thumper: this document looks very useful... thanks03:56
thumpernp03:57
menn0thumper: review just submitted. very useful!04:40
thumpermenn0: ta04:49
fwereadethumper, morning/evening05:20
thumperfwereade: just being called away.. bbs05:20
fwereadethumper, ok :)05:20
thumperfwereade: back05:30
thumperkitchen/cooking emergency05:30
fwereadethumper, no worries05:30
fwereadethumper, thanks for the test docs, just writing some comments05:30
thumperfwereade: did you want a quick hangout?05:30
thumperfwereade: I'm just adding a section on checkers, and will refer to the other checkers package05:31
fwereadethumper, cool; and yes I do, in say 5-10 mins?05:31
thumpersure05:32
jam1fwereade: morning, I'd like to run something by you that I discovered while doing the type introspection.05:55
fwereadejam1, just in with thumper at the moment, will let you know when I'm out05:56
jam1fwereade: yeah, no prob05:56
axwif anyone has 1.18 locally, can you please try running BootstrapSuite.TestTest in cmd/juju?06:01
jam1axw: you know you can always switch to 1.18, right?06:04
axwjam1: I possibly don't06:05
axw:)06:05
jam1axw: you want the tip of the 1.18 branch?06:05
axwjam1: sorry, maybe I misunderstood. I know I can clone lp:juju-core/1.1806:06
axwis there a way to switch to 1.18 within the same repo?06:06
axwI guess just switch... it's just a branch isn't it06:06
jam1axw: I'm not sure how your files on disk are layed out, but if you are using a lightweight checkout or colocated branches, you can.06:06
jam1axw: but also the 1.18 branch is merged into trunk06:06
jam1so you can "bzr update -r juju-1.18.2"06:06
axwjam1: cool, thanks06:07
jam1axw: you probably need to run "godeps -u dependencies.tsv" because of differences06:07
axwjam1: I was actually interested in someone reproducing an error I was getting on the 1.18 branch, but this is useful info anyway06:07
axwI think I've tracked down the error in the mean tim06:07
axwtime*06:07
jam1axw: hmm.. tags are missing, I'll get them put in, just a sec06:07
jam1looks like people have been backporting and not keeping trunk up to date with 1.18, I'll spend some cycles to bring them in sync again.06:20
fwereadejam1, https://plus.google.com/hangouts/_/gux2ehqneizflyei3np3mfnyzya?hl=en06:21
jam1fwereade: so if I *just* do my one line change to unwrap interfaces, there is an error, because it builds up methods using the reflect method Index, and the concrete type's method indexes don't match the interfaces interfaces (for obvious reasons). but I think with the other changes, it will build up that method mapping later so it won't be a problem06:42
jam1investigation still neede06:43
axwcritical bug fix up for review, if someone has a moment: https://codereview.appspot.com/9214004306:47
wallyworldaxw: i'd look but i'm off to soccer. i'll look when i get back if not reviewd by then. bigger than i thought it would be07:04
axwwallyworld: yeah, unfortunately touches lots of little bits07:05
axwthanks07:05
axwwallyworld: I will take a look at the lxc stuff now07:05
wallyworldaxw: ok. i talked to tim today and he mentioned that you don't *need* the btrfs stuff. a straight file copy of the template will do. i think the current code may do that if clone is enabled but btrfs is not used but i haven't had a chance to check. so we may be able to (for now) leave out the btrfs stuff07:08
axwwallyworld: ok. I will test out the bare minimum, and make any changes required for that. then we can see what else is needed07:09
wallyworldyep ok. thanks very much. i think the main thing missing is with add-machine. in which case, i think not using btrfs is the right way to go07:09
* wallyworld -> soccer now07:10
jam1fwereade: confirmed. with the rest of my patch there isn't a failing test that we end up "exposing" more than we intended...07:10
jam1so I guess that means I'm allowed to do whatever I want, right?07:10
fwereadejam1, oops, missed you: yes, sgtm07:44
jam1fwereade: your embedding of an interface into a concrete type did work as expected (reflect.Value(value.Interface()) doesn't give you the fully underlying type)07:45
fwereadejam1, cool, the universe works how my brain thought it did, this is reassuring ;)07:45
fwereadeaxw, commnted on https://codereview.appspot.com/92140043/07:48
axwta07:49
fgzoo, ferry is moving08:04
jam1fgz: ferry gz ? that's new08:05
fgzor france gz... in like 5 hours08:06
jam1fgz: premature naming, if you ask me... :)08:06
=== fgz_ is now known as fgz
jam1fwereade: we have CodeNotImplemented for when you try to call an API that doesn't exist (Client.Foo is not available)08:19
jam1fwereade: should I reuse that code  for when Client(2) doesn't exist at all?08:19
jam1I guess today everything returns "params.ErrBadId"08:21
fgzjam1: what happens currently if you try to...08:21
jam1fgz: ^^08:21
jam1fgz: only because each implementation does it directly08:21
fgzI guess you can just accept both that and a new more apt code if desired08:21
jam1it isn't part of the RPC spec, whereas CodeNotImplemented is used08:21
jam1fgz: well on the APIServer itself it has a mapping that ErrBadId ==> params.CodeNotFound08:22
fwereadejam1, I don't think I have a coherent position there. I can't see a real distinction between BadId and NotImplemented in practice, but I would prefer not to wantonly change behaviour as we progress08:24
jam1fgz: so today you probably actually get CodeNotFound if you pass an unknown version, and you get CodeNotImplemented if you pass a valid version but to a Method that doesn't exist08:24
jam1fwereade: digging deeper shows it to be CodeNotFound08:24
fwereadejam1, however I think the latter is weaker than the former because AFAIK nobody is depending on BadId08:24
jam1fwereade: I believe client side we translate both into NotFound, checking08:25
fwereadejam1, NotFound does not strike me as coherent, but I suppose that doesn't help08:25
jam1fwereade: well, we didn't find the Facade you asked for :)08:25
jam1fwereade: I'm not sure about top level missing the entire facade either08:26
fwereadejam1, yeah, but the broader the domain of NotFound the less meaningful it is08:26
jam1fwereade: you get CallNotImplementedError if the Facade isn't there08:26
fwereadejam1, time was you could depend on NotFound meaning that some entity referenced by your request -- implicitly or explicitly -- was missing08:26
jam1same as if the Method is not there08:26
jam1fwereade: right08:27
jam1CodeNotFound ==> data in the DB isn't there08:27
fwereadejam1, if we can make some baby steps back in that direction I would be happy08:27
jam1CodeNotImplemented => API isn't there08:27
fwereadejam1, +108:27
jam1fwereade: should we just continue to enforce CodeNotImplemented for missing Id, or should we have an CodeAPIVersionNotImplemented08:27
jam1I think I prefer just using CodeNotImplemented08:28
jam1with enough context you have a chance to figure it out08:28
fwereadejam1, I think not -- "not implemented in this version" does not imply "implemented elsewhere"08:28
fwereadejam1, well, it kinda *does*, but that doesn't map onto reality08:28
fwereadejam1, stick with CodeNotImplemented08:28
* fwereade bbs08:29
jam1fwereade: sgtm. Unfortunately the actual error we get across the pipe isn't typed, just a message string and a Code08:29
jam1but I can live with that.08:29
jam1and for Compat purposes, ErrBadId => CodeNotImplemented08:29
jam1we've never needed to deal with it before08:29
jam1but we can put a compatibility shim in the client side for mapping {Message: ErrBadId, Code: CodeNotFound} => CodeNotImplemented if we need to (I think)08:30
fgzsounds reasonable to me08:31
fwereadejam1, +108:42
jam1fwereade: so... can we break the API and start returning CodeNotImplemented for all ErrBadId 's ?08:46
jam1Nothing (today) should be sending anything but "" for Id08:46
jam1as all currently exposed APIs return ErrBadId in that case08:46
jam1I'm reasonably ok with saying that until now passing Id != "" was undefined behavior, so we get to define it.08:47
axwwallyworld: I have created a new branch that picks out just the fast-lxc-clone bit from yours, but I've done it a little differently. I've created a new provisioner API, ContainerManagerConfig, which returns a map[string]string that configures the container manager08:47
=== vladk|offline is now known as vladk
axwwallyworld: also I called it use-lxc-clone (maybe change to lxc-use-clone), otherwise people will just see "fast" and stop thinking08:48
jam1But it is true that when we update clients with versioning they're going to sometimes get ErrBadId, CodeNotFound (old server) and sometimes CodeNotImplementedError, CodeNotImplemented, but I think that is ok08:48
axwwallyworld: seems to be working in MAAS, but I need to do a bit more work to handle upgrades08:48
fwereadejam1, sorry, I keep not seeing notifications, that's the trouble with trying to write, 80% of my tie is spent staring into the middle distance09:14
jam1fwereade: np09:14
jam1I do have another Q for you as well.09:14
fwereadejam1, I think we just have to put up with the variation for now, and just be consistent as we progress09:14
jam1If you have a function that returns an interface you end up with a reflect.Type that describes just that interface.09:14
jam1I'm trying to figure out if I can come up with an object09:15
jam1such that reflect.TypeOf will return that same Type09:15
jam1fwereade: what I mean is, we *could* continue to return ErrBadId09:15
jam1fwereade: since that is maintaining the existing API09:16
jam1but I think that is actually a bad API and nobody depends on it, so we can sanely change it out for returning CallNotImplementedError09:16
jam1and teach the client code to accept either one09:16
jam1but have the server code start returning the better values09:16
fwereadejam1, +1 to that, but I'm still furrowing my brow re the reflect stuff09:16
jam1fwereade: did what I say make sense and you don't know how to do it?09:17
jam1The way the existing code got the reflect.Type was doing:09:17
jam1reflect.TypeOf((*InterfaceMethods)(nil)).Elem()09:17
fwereadejam1, I *think* so, yes09:17
jam1I was hoping I could get rid of all the reflect.TypeOf calls and put them in one place09:17
jam1but var interfaceValue InterfaceMethods = &SimpleMethods{}; reflect.TypeOf(interfaceValue) == SimpleMethonds09:18
fwereadejam1, yeah, I'm not sure how to do that09:18
jam1fwereade: fwiw I never figured it out either09:19
jam1I was originally trying to do something like it for "interface{}"09:19
jam1but my attempts there just led me to get "nil"09:19
jam1fwereade: https://codereview.appspot.com/98090043 when you get the chance09:40
natefinchjam1, fwereade: what's the current story about gcc-go?  are we planning to use that for all our builds, or just for power, since it's required there?  I wasn't sure where that discussion landed..09:43
jam1natefinch: for trusty we went with golang-go where we can and gcc-go where we can't09:43
fwereadenatefinch, while the performance differential is as significant as it is, best toolchain for the platform09:43
jam1I'm not sure where the status quo ends up09:43
jam1certainly distro is pushing for gcc-go everywhere09:43
fwereadenatefinch, ideally I'd have a single toolchain across the board, but I'm not interested in making things suckier than they have to be as a point of principle09:44
natefinchfwereade: I hear you.  In an ideal world, gcc-go would be good enough for everyone, but yeah... it's not.09:44
wallyworld_axw: that's great, thanks. for the demos, I don't think we need to worry about upgrades as such09:57
axwwallyworld_: yeah I've just added some code to ignore API-not-implemented errors09:58
axwjust about to push09:58
wallyworld_ok, i'll take a look and let the maas folks know09:58
perrito666good morning everyone09:59
axwhey perrito66610:01
axwwallyworld_: https://codereview.appspot.com/9614004410:03
wallyworld_great thanks, looking10:03
natefinchvoidspace, menn0: meeting?10:07
perrito666wwitzel3: ping10:08
wallyworld_axw: so you tested with add-machine of a kvm container and then deploy to lxc inside that?10:08
wwitzel3perrito666: pong10:09
perrito666I privmsgd you10:10
axwwallyworld_: I created a vmaas, and add-machine'd in one of the machines10:10
wallyworld_cool10:10
axwwallyworld_: the top-level machines are on kvm, but not using the kvm provisioner10:11
wallyworld_yep10:11
wallyworld_i'll have a comment or two about adding a doc comment to exported methods, but if it works it's good enough for the maas folks to try from source10:11
voidspacegah10:22
voidspacecoming10:22
wwitzel3jam1: "Be careful that you use different queue file names for the second action, else you will mess up your system."10:29
wwitzel3jam1: I was not doing that ^10:29
jam1natefinch: so are you intending to continue attending the UTC 10 meeting next week ? Or are you going to split off ?10:34
wwitzel3perrito666: join the moonstone hangout re: replicaset stuff10:35
natefinchjam1: is that the daily?  I was going to split off the daily one.10:35
jamyes10:35
natefinchI wonder if for cross pollination, it would work to send one person each day to another team's standup.10:37
natefinchso like monday, someone from my team would go to the onyx standup, tuesday, someone else would go to the sapphire standup, etc10:39
wwitzel3what is a good way to generate some logging on a pre-existing mysql node? ..10:42
perrito666wwitzel3: oops sorry missed the message, going10:42
jam1wwitzel3: you want Juju logging, or mysql loggign?10:48
jam1because you can "restart jujud-unit-2" or whatever the agent name is10:48
wwitzel3jam1: I want to test this rsyslog change before putting it in to the code, so I want to trigger some unit mysql logging.10:49
jam1wwitzel3: right, I think if you just bounce the running agent, you'll get "I restarted" logging10:49
jam1wwitzel3: or you can do "juju set" to change some conf item10:50
wwitzel3jam1: thanks10:50
jam1hi alexlist`, really sorry to hear about what happened. I hope you're doing well.10:54
wwitzel3jam1: that worked, thanks, and it seems to be reliably logging to all the state machines now.10:55
jam1wwitzel3: yay10:55
jam1rsyslog is *magic* :)10:55
wwitzel3"..else you will mess up your system"10:55
voidspacewwitzel3: did you do a "standard" maas install - or us virtual maas? (or both?)11:01
=== perrito6` is now known as perrito666
wallyworld_jam1: natefinch: both you guys have in progress bugs against 1.18.3. are you able to get them completed so that we can merge the fix for the critical P1 issue when done and get a 1.18.3 release out?11:06
jam1wallyworld_: I think mine is the bug you actually fixed11:07
jam1https://bugs.launchpad.net/juju-core/+bug/130653711:07
_mup_Bug #1306537: LXC local provider fails to provision precise instances from a trusty host <deploy> <local-provider> <lxc> <juju-core:Fix Released by wallyworld> <juju-core 1.18:In Progress by jameinel> <juju-quickstart:Fix Released by frankban> <juju-quickstart (Ubuntu):New> <juju-quickstart (Ubuntu Trusty):New> <https://launchpad.net/bugs/1306537>11:07
wwitzel3voidspace: I just used a standard trusty image and choose the maas option, for my provider11:07
jam1has your branch associated with it11:07
jam1"bootstrap supported series"11:08
jam1wallyworld_: is it just that you intended to backport to 1.18 but didn't get it?11:08
wallyworld_ah could be11:08
jam1wallyworld_: I'll reassign it to you11:08
wallyworld_sure thanks. i should have looked close than just the miletone page11:08
natefinchwallyworld_: mine was released in 1.19.1, possibly just needs backporting11:09
wallyworld_ok11:09
wallyworld_i'll backport tomorrow11:09
wwitzel3voidspace: also my latest push to 008-ha-rsyslog has node logging to all state machines working11:15
voidspacewwitzel3: cool, thanks11:18
wwitzel3https://codereview.appspot.com/100270043/ .. his is for the nodes logging to any state servers that exist when the node is created.11:19
wwitzel3tested in non-HA as well11:19
wwitzel3now I'm going to look at refactoring the watcher for rsyslog for re-writing the config file when state servers are added/removed.11:20
voidspacegreat11:21
wwitzel3jam1: I have your notes from yesterday about using an API call to get the environ config bits needed, instead of using it directly11:21
jam1wwitzel3: do you need more detail about it?11:24
wwitzel3jam1: don't think so, though I'm just starting to dig in11:26
jam1wwitzel3: sounds good11:26
voidspacewwitzel3: so you specify a queue filename per state server11:28
wallyworld_wwitzel3: do you have an eta on your vmaas setup notes?11:28
voidspacewwitzel3: interesting11:28
wwitzel3voidspace: yeah, you have to, else you will mess up your system.11:28
voidspacewwitzel3: ah, that was the discussion earlier11:28
voidspacelovely...11:29
wwitzel3wallyworld_: I will flesh them out today11:29
wallyworld_\o/ thanks. but of course don't put them ahead of real work :-)11:30
wwitzel3wallyworld_: I've been meaning to do it, I've just got a pile of notes tossed in to a doc now, so I'll turn them in to something real11:32
wallyworld_great, looking forward to it11:32
hazmat`axw, where was that destroy env logic in sync tools.. it was source diving for it through the sync code yesterday... and it was really non obvious where it was.11:38
hazmat`s/it/i was source11:39
jam1axw, hazmat`: environFromName11:54
jam1has a cleanup func it returns11:54
jam1which is supposed to only delete it if the env can't be looked up, but there was a bug WRT EnvName being an empty string11:54
jam1so one function couldn't find it, but the next function could11:55
fwereadewwitzel3, voidspace: reviewed https://codereview.appspot.com/100270043/11:57
fwereadejam1, you have a bunch of LGTMs11:58
jam1fwereade: did you see rog's comment on that CL ?12:03
voidspacewwitzel3: do you have a link to the docs warning about the ActionQueueFileName stuff?12:05
fwereadejam1, sorry, which?12:07
jam1fwereade: on https://code.launchpad.net/~jameinel/juju-core/reflect-only-facades/+merge/21876412:13
jam1comment: https://code.launchpad.net/~jameinel/juju-core/reflect-only-facades/+merge/218764/comments/52142212:14
jam1I did reply that I intend to do runtime introspection, instead of static introspection12:14
jam1fwereade: also, that specific branch can't land just yet because we *do* static introspection of srvRoot in the state/apiserver code to make sure types are registered with no Discarded Methods.12:15
jam1so I was going to push forward on getting a registry so that we can do the lookups12:16
jam1fwereade: also, should I push forward on making "Facade" a  name that gets used in code and errors strings, etc. Right now the RPC package thinks in terms of: "unknown object type %q" when you ask for something that isn't accessible.12:17
voidspacewhat's the cause of "WARNING failed to find 1.19.2 tools, will attempt to use 1.19.1"?12:21
voidspaceI had this during the sprint, but I can't remember how I solved it12:21
jam1voidspace: "bzr bootstrap --upload-tools" as 1.19.2 isn't actually released yet IIRC12:21
voidspacejam1: it's simpler than that12:22
voidspacejam1: I didn't bootstrap with --upload-tools12:22
voidspacejam1: thanks :-)12:22
voidspaceand I need to - the whole point of this exercise is to test something in the dev version...12:23
=== vladk is now known as vladk|offline
* voidspace lunches12:41
=== vladk|offline is now known as vladk
=== vladk is now known as vladk|offline
=== vladk|offline is now known as vladk
=== vladk is now known as vladk|offline
=== rvba` is now known as rvba
axwfwereade: not sure I grok your comment; I have added lxc-use-clone to the immutable config attributes list14:00
axwfwereade: if/when we want to make it dynamic, I will take it out and add code to react to changes14:00
axwbut for now it's set-at-bootstrap and that's it14:00
fwereadeaxw, then I must just be an idiot and have misread where it was14:00
fwereadeaxw, sorry14:00
axwfwereade: nps14:01
axwfwereade: also, I totally agree regarding inversion of EnvCommandBase14:02
jam1fwereade: so any thoughts on runtime self-description vs static self-description? I still feel that having the name separate from the version is better for us, though arguably the final type we are going to be returning is going to have the type in its name.14:02
jam1sorry, have the version in its name14:02
jam1(ClientAPIv2 or somesuch)14:02
=== Ursinha is now known as Ursinha-afk
natefinchjam1: separate seems like it's almost universally better than combined.  Combining things is trivial, splitting them is usually more difficult.14:05
=== alexlist` is now known as alexlist
fwereadejam1, yeah, I just saw that comment in mail -- I do not consider munging the version number into the method name to be "reasonable", and I'm pretty sure we can do all the API description generation dynamically just fine14:07
jamnatefinch: isn't that what regex is for :)14:14
natefinchjam: now you're just yanking my chain :)14:15
jamnatefinch: well, I prefer the split form, and since 3 out of 4 devs polled agree, I'll push forward with it14:19
fwereadejam, dammit, I borked my voip and forgot about it -- can you make the cross-team while I rush to figure out how to fix it up again?14:34
stokachuaxw: wallyworld_ any of you guys around now?14:35
fwereadeor natefinch, since jam's not meant to be working now14:35
natefinchfwereade: I can do that14:35
natefinchfwereade: can you give me a link?14:35
jamnatefi14:41
jamnatefinch: it is the canonical Conference call14:41
jamsince there are like 30 people14:41
natefinchjam: fwereade gave me the info14:41
natefinchjam: it was still in "waiting for the leader" mode, so we figured it wasn't happening14:42
natefinchsometimes I really wish we were better about being more specific with our wording.14:51
natefinchfwereade: I have a task: Agent conf needs to store all addresses (hostports), not just private addresses.     I presume this means API hostports?14:52
wwitzel3heh, the only thing the rsyslog worker grabs from the EnvironConfig is the SyslogPort14:52
fwereadenatefinch, yeah -- it's to prevent the suicide-in-manual-environments problem14:52
wwitzel3oh and the CAcert14:52
fwereadenatefinch, although, if state hostports are kept there too, fix them as well14:53
natefinchfwereade: fair enough, will do14:53
fwereadenatefinch, otherwise we *will* get complaints about suiciding manual HA environments14:53
=== Ursinha-afk is now known as Ursinha
wwitzel3jam: so were you saying that in the actual SetUp of the rsyslog worker, it shouldn't use WatchForEnvironConfigChanges? Or just in Handle, it should no longer use EnvironConfig()? Or both?14:54
jamwwitzel3: both14:54
bacjcastro: your issue with deployed bundles not being placed correctly has now been fixed an deployed.  enjoy.14:54
jamIt should have an API for Watching the actual RSyslog changes (which might be backed by the EnvironConfig watcher)14:54
jcastroyou mean placed as in the boxes?14:54
jambut the Agent side should have a proper "this is what I care about" API14:55
wwitzel3jam: I see, got it. Thank you.14:55
jamwwitzel3: as an example you can look at WatchAPIVersion on the Upgrader interface14:57
jamthe API is WatchAPIVersion(), but the internal watcher is actually WatchForEnvironConfigChanges.14:57
jamthat gives us the ability to say "we're generating too many notifications when API hasn't actually changed" and fix it in the future14:58
jamrather than breaking the contract14:58
wwitzel3jam: yep, looking at it now. Then we can later tune it14:58
wwitzel3right14:58
fwereadewwitzel3, and in general *only* state servers should get to see environ config14:58
fwereadewwitzel3, it's (usually) got cloud account keys in it14:58
wwitzel3fwereade: seems sane :)14:58
jamwwitzel3: fwereade: right. Also in the case of rsyslog you actually care about 2 things, because you want the config for the ports, etc, but you also want the list of addresses.14:59
fwereadewwitzel3, we can't rationally stop the state servers from seeing them, but we shouldn't let anyone else ;)14:59
jamAnd I *think* we could sanely hide that with 2 watchers inside the APIServer and merge any notification events to 1 watcher in the client14:59
fwereadejam, sounds sane to me14:59
wwitzel3jam: sounds good15:00
wwitzel3fwereade, jam: thanks15:00
jamfwereade: fwiw we explicitly blank them for any agent that doesn't have JobManageEnviron, but it is still too much a "giant back of unrelated data" when we want the API to be around just what we actually want for rsyslog15:00
fwereadejam, yeah, but the blanking sucks imo15:01
jamfwereade: I agree, just that it isn't an *actual* security hole ATM15:01
fwereadejam, and it forces secrets to be strings, and it doesn't stop people from hacking up not-quite-working Environ objects, and, eww15:01
fwereadejam, true15:02
* fwereade needs to visit shops, bbiab15:02
perrito666is there anything in place to update mongo machines entry for machine 0 if machine-0 ip changes?15:03
natefinchperrito666: I believe so, yes.  I would have to go back through it, but I think that's the peer grouper's responsibility15:05
jcw4_are there feature toggles/flags in juju-core?15:07
natefinchjcw4_: not really15:07
perrito666natefinch: mm peergrouper is the one making my life hard, apparently it sets my replicaset to old ip values instead of the new ones, I believe it is getting wrong info from machines bc the machine-0 entry has old address data, so I wanted to update that so peergrouper stops messing with me15:07
natefinchjcw4_: what specifically are you thinking of?15:08
jcw4_natefinch: tx.  Just trying to think of the best way to combine regular small commits with introducing a whole new feature (i.e. actions)15:08
natefinchjcw4_: the easiest way to do it is to simply not expose the CLI command until it's ready.  That's our usual practice.  "in but not on"15:09
jcw4_natefinch: bodie_ and I have made a number of changes but we're not anywhere close to a full feature.15:09
jcw4_natefinch: yeah, maybe we'll just have to do an MR with what we have soon... no cli, but state server changes15:10
jamjcw4_: generally that is ok, as long as a compatible client won't corrupt things15:13
jamjcw4_: there is stuff like environ config which can be used for feature flags15:13
jcw4_jam: interesting.15:13
jambut there isn't something like "go  build -WITH_SUPPORT_FOR_FOO"15:13
jcw4_jam: rick_h_ gave bodie_ and I a bit of a demo of their process, which includes feature flags.15:14
jamjcw4_: It sort of depends how invasive the changes are, if you are in your own collections it should be fine, if you have to change existing docs then we have to be careful with how we'll end up doing an upgrade from previous stable to new code.15:14
jcw4_yeah, we have one collection (actions) that's new, but we're also adding actionids to units... possibly an issue15:15
jamjcw4_: sure, but they aren't quite as concerned about multiple client versions making requests. or at least they are but at a different level (FF vs IE vs Safari, etc)15:15
jcw4_jam: good point15:15
jamjcw4_: the main problem there is that we need an upgrade path15:15
jamso if you start with a 1.18 environment, we need a way to get to the new code with action ids15:16
jamnatefinch: is currently tasked with sorting out db schema migrations15:16
jamduring upgrade15:16
jambecause we have most clients behind the API15:16
jamexcept the API servers themselves15:16
jamand HA complicates a migration procedure a bit15:16
jcw4_jam: backward compatibilty and upgrade path seem a little tricky.  Are there any tests or scenarios that are commonly used to test upgrades?15:16
jamjcw4_: CI does upgrade testing, bootstraps with 1.18 and then does an upgrade to dev tip15:17
jcw4_jam: I see, and that is just when a change gets landed right?15:17
jamjcw4_: it isn't something we do well internally yet.15:17
jcw4_no CI before landing in trunk?15:17
jcw4_(a bit obvious I guess)15:17
jamjcw4_: we run the unit test suite before landing trunk (go test), but the CI suite is run async on lots of platforms and clouds15:17
jcw4_jam: I see.15:18
jamjcw4_: so we won't do an official release unless CI says everything is green15:18
jambut we might break upgrade/etc for a short while.15:18
jamjcw4_: for a schema change, ideally we'd have the code written such that it can handle either schema15:19
jamand then once we know all the agents are upgraded to know how to handle either schema15:19
jamwe can update the DB to the new schema15:19
jamI *think* the current migration is to actually take the system offline, upgrade the agents, see that they are upgraded, then stop the db, copy the data to a safe backup, and then rewrite in place.15:20
jambut natefinch and wallyworld's teams are the ones task with actually doing that work15:20
jcw4_jam: so forgiving if collections or keys are missing and not changing by removing stuff? Interesting about migration path15:20
jamjcw4_: it is a common way to leap-frog update your API servers and DB backend, though we might not need to go through quite as much effort15:21
jamoften you would do "upgrade => Servers have compat, upgrade => actually roll out schema changes" but that doesn't quite work with how juju upgrades itself.15:21
jcw4_hmmm15:22
jcw4_does it make sense to add actionIds to Unit to represent pending actions that the Unit must execute?  Or should Unit 'look up' actions that are assigned to it.15:24
jcw4_I am a little cautious about adding a collection of ids to the Unit.  At some point the delegation of Actions won't be explicit to a certain Unit15:25
jcw4_probably need more context... sorry.15:25
jamjcw4_: I think I have enough context15:26
jamjcw4_: in general we've gone with smaller docs15:26
jambecause our Watch level of granularity is a whole doc15:26
jamwhich means that things that watch the lifecycle of a Unit15:26
jamwould also get woken up15:26
jamwhen you add an action to be performed15:26
jcw4_I see15:26
jcw4_does that mean maybe not adding the actionid to the unit?15:27
jamjcw4_: so you would have a unit-actions collection indexed by unit-id15:27
jamjcw4_: and *that* doc would have the list of action-ids15:27
jcw4_jam: good. makes sense ok15:27
jcw4_then watchers would only respond if they care about unit-actions15:28
jamjcw4_: exactly15:28
jcw4_cool15:28
jamit isn't that different from a many-to-many table in SQL design15:28
jamjust that one side is still 1-to-many15:28
jcw4_yeah, makes sense15:28
jcw4_(no problem in CS that can't be solved by one more level of indirection)15:28
jcw4_:)15:29
* perrito666 managed to make a machine terminate itself....15:31
wwitzel3I'm managing to make juju terminate itself .. less desirable.15:32
perrito666wwitzel3: ouch15:33
perrito666I just updated by hand the machine-0 addresses and restarted jujud-machine-0 and it decided to terminate itself :)15:33
wwitzel3perrito666: it is ok, I know why, and it is my fault15:34
jamwwitzel3: this is on MaaS?15:34
jamwwitzel3: I believe MaaS uses the IP address as the handle for an instance15:34
jamrather than say the Amazon's InstanceId15:35
jamsince they don't have a separate handle15:35
jamthe MaaS provider sees "some random machine that I don't know about running in this environment" and stops it15:35
jamwwitzel3: there is a bug about "safe mode by default"15:35
wwitzel3jam: ahh ok15:35
jamwhich is about not killing machines we don't recognized15:35
jamrecognize15:35
jamI believe you can "juju set-env safe-mode=true"15:35
jamand we've talked about making that the default (it is needed during restore)15:36
jamwwitzel3: I also seem to remember that MaaS was talking about abstracting nodes to Ids that aren't their IP address15:36
jamwwitzel3: and I would be ~ happy if the Provisioner that decides to kill machines could notice that it is running on the machine it is wanting to kill15:37
natefinchIsn't there a bug about running precise lxc containers on trusty?  juju deploy wordpress on my local machine is bringing up a precise container that fails while running the install hook for wordpress15:37
jamnatefinch: bug #1306537 ?15:37
perrito666wwitzel3: your fault? you mean my issue or yours?15:38
wwitzel3perrito666: I meant mine, but you can blame me for yours as well :)15:38
jamwwitzel3: you can even name the patch "refuse-seppuku" :)15:39
wwitzel3jam: hah :)15:39
jamwwitzel3: we've had some spectacular bugs around that area, so a bit of extra caution would be just fine15:39
natefinchjam: that bug says fix released, though15:40
jamnatefinch: not released in 1.1815:41
jam"fails while running the install hook" isn't that failure15:41
jamnatefinch: that failure was "failing to start at all"15:41
jamnatefinch: if it was failing for mysql, I would say it is the "mysql charm wants 80% of all your RAM for shared memory" which breaks fairly often.15:42
jamI haven't seen specific problems with the wordpress charm15:42
fwereadejcw4_, fwiw, I might be inclined to go one further -- one document per action per unit. that's not absolutely mandated, but it's certainly easier to enqueue/dequeue by adding/removing whole documents15:45
jamjcw4: fwereade I was thinking about that, but it seemed to be a bit hard to lookup if there are any docs you need, since mongo 2.4 doesn't do multi column indexes ...15:46
jam?15:46
jamjcw4: fwereade I was thinking about that, but it seemed to be a bit hard to lookup if there are any docs you need, since mongo 2.4 doesn't do multi column indexes ...15:46
jam19:4615:46
jam?15:46
fwereadejcw4, and also: our watcher granularity is only per-document (so I'm definitely -1 on adding action ids to the unit doc); and that causes me to tend towards having one per, because it leads to smaller docs and therefore better watch granularity15:47
jcw4fwereade: yeah, you had mentioned that before, but the application here was forgotten.15:47
jcw4I like the separate action-unit doc better anyway15:47
fwereadejcw4, depends exactly how we store them, I think -- what's the concern? in particular, if completed actions move out of the actions collection and into an actionresults collection, it's just get-all-docs-with-particular-unit-key15:48
fwereadejcw4, *however*, given the way watching currently works, it is potentially useful to encode the unit key in the action's _id field15:49
fwereadejcw4, it's not necessarily ideal, from many standpoints15:49
jcw4fwereade: hmm my concern was lookups but encoding it in the id might address that?15:50
fwereadejcw4, but it does mean we can watch changes to that collection and deliver notifications to the right units *without* db hits15:50
jamfwereade: don't you need 1 doc to actually reference them, so the Unit agent can watch for that changing so it knows to go fire off the actions?=15:50
jam(that might  be exactly what you are describing, though :)15:51
jcw4fwereade: so no unit-actions doc... watcher watches the actions doc... when a new action appears the watcher greps the unit id from the action id and notifies the unit?15:51
fwereadejam, I think it can just as easily be a collection watch -- that might not be absolutely best for performance, but it's probably not bad -- the relation scope watches use that mechanism, and you've hit those pretty hard with the explode charm in scale testing15:52
jcw4jam: part of the problem is my fuzzy understanding of watchers and how the units would respond15:52
fwereadejcw4, jam: watcher watches the actions collection, and skips events on docs with the wrong prefix15:52
fwereadejcw4, jam: yeah, once I've done the arch overview doc an explanation of how the watchers currently work is called for I think15:53
jcw4fwereade: I see.  does that mean units each have their own watcher running?  makes sense now that I think about it15:53
natefinchis it not possible to remove a broken service?  juju  destroy-service wordpress puts the unit in the dying state, but it stays in dying forever.15:54
jamjcw4: right each Unit asks for a Watcher to be run in the API server15:54
jcw4bingo15:54
fwereadejcw4, well, it *does* suck a bit in some cases -- N service watchers for N units of that service -- but having a single watcher for a single unit's events is ok I think15:54
jamnatefinch: IIRC you have to "juju destroy-machine —force" to teardown the machine that has the bad unit on it15:54
jcw4(excuse my johnny come lately eureka moments)15:55
fwereadenatefinch, is the unit broken?15:55
fwereadenatefinch, ie running but not actually functioning properly?15:55
natefinchfwereade: install hook failed15:55
fwereadenatefinch, you can juju debug-hooks, and juju resolved, to your heart's content15:55
fwereadenatefinch, but, yeah, destroy-machine --force is the quickest way to clear it up15:56
jamfwereade: ah yes, the infamous "resolved until it breaks on every possible hook and then finally decides to dy"15:56
fwereadenatefinch, the issue with resolved is that you'll have to resolve a few times, probably, because the subsequent hooks will likely themselves fail15:56
jamdie15:56
fwereadenatefinch, yeah, what jam said15:56
natefinchfwereade: I suppose I should probably try to figure out why it died before killing it anyway15:57
jamfwereade: not that unlike our current "ensure-availability" until it actually decides the machine is dead15:57
fwereadenatefinch, jam, there is *no* good reason not to insta-die when waiting on a failed install hook15:57
jamfwereade: same thing for "insta die" when we never got to started for an agent, right?15:57
jamfwereade: though the machine should probably still be considered dirty15:57
jamsince it might have installed something15:58
fwereadejam, yeah, I has a pretty serious grumpy about that -- I thought that "don't make HA depend on the presence package" had been clear, but I guess it got lost in the cracks somewhere15:58
fwereadejam, the machine's marked dirty immediately the unit is assigned, but if you catch the unit before the machine's deployer does it should get cleaned up without trying to install at all15:58
jamfwereade: well, we don't really have another way to actually recover from something being dead15:58
jamfwereade: sure15:59
jamthough once you've started the install hook it should stay dirty15:59
fwereadejam, yeah, we do mark dirty too early15:59
fwereadejam, you mean we don't have a better way to detect deadness?16:00
fwereadejam, my contention was always that we need a much better way to detect deadness ;)16:00
voidspacewwitzel3: did you find some action you could perform on a unit that would reliably cause logging on the state server?16:02
voidspacewwitzel3: deploying wordpress, mysql and exposing wordpress doesn't seem to have done it for me16:02
voidspacethat's in HA, going to try with a single state server16:04
perrito666wow :| I made it16:08
jcw4OT: golint seems to think that Id should always be ID.... thoughts?16:08
fwereadevoidspace, juju set-env logging-config="<root>=DEBUG" will give you all the logging you could possibly desire16:11
fwereadevoidspace, and much, much more16:11
voidspacefwereade: hah, thanks16:14
voidspacefwereade: now sshuttle is flaking out on me - so wrestling with that16:14
jcw4golint also seems to think that Url should be URL16:19
jcw41) do we care about golint, and 2) do we want to ignore this naming convention (capitalize ID and URL)16:20
fwereadejcw4, I don't care much about those *particular* golint complaints, at least16:23
fwereadejcw4, I'm not willing to go so far as to say I don;t care about golint, though ;)16:23
jcw4fwereade: yeah, it finds other things that seem valuable (missing docs, malformed docs, incorrect error messages, etc.)16:24
fwereadejcw4, indeed16:26
natefinchjcw4: yeah, I agree with fwereade, those particular ones I wouldn't worry about. Personally, I prefer Url to URL, because it's easier to read, and it's such a common acronym that it's not likely to be confused for anything else.16:36
jcw4natefinch: agreed.  It appears that golint has no intention of providing flags to suppress warnings so I'll just learn to ignore those ones :)16:36
wwitzel3voidspace: restarting worked, login to the unit machine and do a restart juju-unit-name16:37
voidspacewwitzel3: cool, thanks16:37
natefinchjcw4: yeah.... might be worth writing a wrapper for it to suppress what you want to ignore16:38
jcw4natefinch: interesting... maybe16:39
voidspacerebooting16:39
natefinchjcw4: I'll probably whip something up at some point... golint is only valuable if you can separate the signal from the noise16:39
* fwereade will probably be back later, got some things to finish off, but done for now16:40
natefinchfwereade: quick question?16:40
natefinchfwereade: are debug-hooks supposed to run normally on local?  because it doesn't appear to be doing the right thing16:40
fwereadenatefinch, grar -- they probably should, yeah17:11
natefinchfwereade: I get a prompt like this: root@nate-local-machine-2:~#17:12
natefinchfwereade: after doing juju debug-hooks wordpress/0 install17:12
dimiternnatefinch, fwereade, i'd appreciate a review on the following goamz branch: https://codereview.appspot.com/9903004417:32
* dimitern goes to lunch17:32
fwereadenatefinch, ah -- that's not *necessarily* not working17:57
fwereadenatefinch, you'd need to resolved --retry before it'd trigger again17:57
natefinchfwereade: I figured it out.... talked with Marco about it.  Just me not understanding the docs17:57
fwereadenatefinch, that's likely an indication of a doc problem more than a you problem though17:58
fwereadenatefinch, if you have suggestions for clarification they would be much appreciated17:58
natefinchfwereade: I will suggest some changes.  I also will suggest some changes to juju help resolve and juju help debug-hooks, since both have only a single line of help in them :/17:59
=== bodie_ is now known as Guest66499
dimiternhey natefinch18:37
dimiternnatefinch, regarding the short urls - i followed the same pattern as for the rest of goamz, i think the reason is AWS API urls are really really long (>200 chars)18:38
natefinchdimitern: Personally, I'd rather see a 200 character line that gets wrapped than a shortened URL, but since the rest of goamz does it that way, I guess I'll have to live with it.18:41
dimiternnatefinch, thanks18:41
natefinchdimitern: btw, are you still in the US, or was that just a really really late lunch?18:41
dimiternnatefinch, still in austin, departing tomorrow afternoon18:42
natefinchdimitern: ahh, cool18:42
dimiternnatefinch, have you seen gustavo today?18:42
natefinchdimitern: nope18:44
dimitern10x18:44
voidspacerelocating19:01
stokachuwallyworld_: axw you guys around yet?19:11
stokachualso could someone increase the priority of bug https://bugs.launchpad.net/juju-core/+bug/130743419:13
stokachuits happening more and more as we continue testing19:13
stokachulandscape team is hitting it as well19:13
natefinchstokachu: your comment on the bug says it happens when deploying 4 charms.... is this just 1 unit of each?19:15
stokachunatefinch: yea 1 unit of each19:15
natefinchstokachu: ouch19:15
stokachunatefinch: thats been the smallest workload19:16
stokachubut all with 1 unit of each19:16
natefinchstokachu: did you have to restart the server to get it to work, or did it eventually sort itself out?19:17
stokachunatefinch: destroy the units and restart the state server19:17
stokachuso we destroyed 2 units, and then re-deployed after state server is up19:18
natefinchstokachu: ok19:18
natefinchsinzui: ^^  https://bugs.launchpad.net/juju-core/+bug/1307434    seems like this bug can occur with even small numbers of units.  We may need to address this for 1.20.  What do you think?19:21
sinzuithank you natefinch I targeted it to next stable. I am going to empty 1.20 this week with Ian's help19:27
natefinchsinzui: cool19:27
natefinchstokachu: ^^  I changed the priority to High, too.19:28
stokachunatefinch: thanks man19:31
stokachudo you guys know when wallyworld_ or axw come online?19:31
natefinchstokachu: they're in australia, and it's still the middle of the night there, so probably in like 3+ hours19:34
stokachunatefinch: ok cool thanks19:35
wallyworld_stokachu: hi, how can i help?20:51
stokachuwallyworld_: hey there, im having trouble getting new tools packaged with your changes to test20:52
wallyworld_ok. so you are using bootstrap --upload-tools?20:52
stokachusinzui pointed me towards a script to package the tools20:52
wallyworld_you shouldn't need that20:52
wallyworld_if you have go installed, you just need bootstrap --upload-tools20:53
stokachuwallyworld_: how does it know to use the tools from your branch?20:53
wallyworld_it should look at the GOPATH env variable from memory20:53
wallyworld_but you will need al the deps checked out also20:54
wallyworld_if you like, i can build you some tools20:54
stokachuwallyworld_: i guess im confused on how i need to setup my gopath20:54
stokachuwallyworld_: sure if youve got the time20:54
wallyworld_stokachu: ok, i have to pop and take my son to school. i'll be back in 25 mins or so20:56
wallyworld_i i can either help you get stuff set up or build tools and give you a tarball, whatever is easiest for you20:56
stokachuwallyworld_: cool ill be around20:56
stokachuwallyworld_: thanks man20:56
wallyworld_np, we'll get this working for sure real soon now :-)20:57
stokachuhaha awesome, ive got a lot of "eyes" on this20:57
natefinchstokachu: gopath is just whatever directory you want to use to store your go code20:57
stokachunatefinch: so if ive got the godeps checked out in my $GOPATH do i just cd into wallyworlds branch to do the bootstrap --upload-tools?20:58
stokachuor does it matter what directory im in20:58
natefinchstokachu: 2 things - you'll need to install juju first.  To do that, go to $GOPATH/src/launchpad.net/juju-core  (make sure it's pointing at the correct branch) and do go install ./...   that'll build the juju binaries and copy them to $GOPATH/bin20:59
stokachuok21:00
natefinchstokachu: make sure that $GOPATH/bin is in your path, and then you can do juju bootstrap --upload-tools, and it'll use the jujud that is next to the juju binary as the thing to upload21:00
menn0Morning21:00
stokachuahhh21:00
stokachunatefinch: now it makes sense21:00
natefinchstokachu: make sure which juju returns the one in your gopath, though... if you have juju installed from elsewhere, it'll be running that version instead of the one in your gopath21:01
sinzuistokachu, if you need a tarball then21:01
sinzuimake-release-tarball.bash -1 lp:~wallyworld/juju-core/fast-lxc-everywhere21:01
stokachusinzui: ah nice21:02
sinzuistokachu, I then make a package with21:04
sinzuimake-package-with-tarball.bash testing juju-core_*.tar.gz 'Curtis C. Hovey <curtis.hovey@canonical.com>'21:04
stokachuok running go get -u launchpad.net/juju-core/... to pull the latest down21:04
sinzuistokachu, The package will be UNRELEASED, but excellent for testing21:04
stokachusinzui: awesome writing this stuff down21:05
sinzuistokachu, I think it is in the README.md21:05
sinzuiif not I borked it when I split the scripts form testing21:05
natefinchI gotta run.  good luck!21:05
stokachusinzui: i didnt see that in the README in the toplevel dir21:07
stokachuis it in another directory?21:07
sinzuistokachu, http://bazaar.launchpad.net/~juju-qa/juju-release-tools/trunk/view/head:/README.md21:07
stokachuah21:07
sinzuistokachu, did I point your to lp:juju-release-tools ? I created that last week from the older scripts21:08
sinzuistokachu, Those are the actual scripts we test and run. I hope that one day the publish script will work for any private cloud21:09
thumperwaigani, menn0: I'm in and out this morning taking Jessie to the dentist21:09
menn0thumper: no problems. I've got plenty to work on.21:09
waiganithumper: dido21:11
thumperwaigani: as in the singer?21:11
waiganilol, typo21:11
waiganifwereade: can I book in a time to talk about test isolation?21:17
wallyworld_stokachu: i'm back now, ping me when you have an update. i'm keen to know when it works :-)21:20
dimiternniemeyer, hey21:24
niemeyerdimitern: Heya21:24
dimiternniemeyer, can you take a look at this please: https://codereview.appspot.com/99030044/21:25
stokachuwallyworld_: so i think i got the gopath setup for the upload tools21:28
stokachuwallyworld_: testing now21:28
wallyworld_great :-)21:28
stokachuwallyworld_: im not confident my go expertise its correct ill let you know im about 15 minutes21:29
wallyworld_ok, once we are happy, we should be able to get you a new 1.19.2 release by monday for ODS21:29
wallyworld_then it will just work out of the box21:29
niemeyerdimitern: Checking it out21:30
stokachuwallyworld_: that would be sweet, i think we'd want it for 1.18 as well if thats possible21:35
stokachuat least management will push for it21:35
wallyworld_sure, we can do that21:36
stokachuthats awesome21:36
wallyworld_we're here to help :-)21:36
stokachurunning my cloud installer now so shouldnt be to much longer21:36
wallyworld_i'm hopeful......21:36
dimiternniemeyer, thanks!21:41
stokachuwallyworld_: so i tried to do the go get -v juju.. but only jujud is going in $GOPATH/bin21:48
wallyworld_go install ./... should be what you need to create the binaries21:49
wallyworld_run from the juju-core directory21:49
stokachuok running that now21:50
wallyworld_or just go install launchpad.net/juju-core/... from outside21:50
stokachuhttp://paste.ubuntu.com/7418425/21:51
stokachumy $GOPATH is set to /home/ubuntu/src21:52
wallyworld_lhmmm21:54
wallyworld_ah21:55
stokachuwallyworld_: fater i run go get -v launchpad.net/juju-core/... do i just rsync your branch over?21:55
stokachuafter*21:55
wallyworld_GOPATH needs to be /home/ubuntu21:55
stokachuah21:55
wallyworld_under GOPATH tere will be src pg and bin directories21:56
wallyworld_pkg21:56
stokachuah ok21:56
stokachureset gopath and re-getting juju-core21:56
wallyworld_and under src will be various launchpad.net amd github.com dirs will all the source for the dependencies21:56
stokachuive written a go plugin against juju-core before you'd think i know this by now21:56
wallyworld_easy to get mixed up21:57
dimiternniemeyer, do you think it's good to land?22:04
niemeyerdimitern: Sorry, I got a call meanwhile22:04
niemeyerdimitern: No, but it's close22:04
dimiternniemeyer, ah, ok22:04
stokachuwallyworld_: ok go tthe binaries now22:05
wallyworld_great22:05
stokachuwallyworld_: do i rsync over your branch into juju-core and re-run go get?22:05
niemeyerdimitern: Done22:05
stokachuin src/launchpad.net/juju-core22:05
dimiternniemeyer, thank you!22:05
wallyworld_you can just bzr pull from launchpad22:05
stokachuok22:05
wallyworld_bzr pull lp:~axwalk/juju-core/lp1315216-lxc-use-clone22:06
wallyworld_stokachu: ^^^^^22:06
wallyworld_do the above in the juju-core dir22:06
wallyworld_actually22:06
wallyworld_bzr merge22:06
stokachuso not lp:~wallyworld/juju-core/fast-lxc-everywhere?22:06
wallyworld_stokachu: no - i sent another email, do you see it?22:07
wallyworld_did22:07
stokachuah nah didnt see that22:07
wallyworld_ok, np. just use the branch above22:07
wallyworld_lp:~axwalk/juju-core/lp1315216-lxc-use-clone22:07
wallyworld_bzr merge lp:~axwalk/juju-core/lp1315216-lxc-use-clone22:07
stokachuok done, do i re-run go get now?22:08
stokachuor go install ./...22:08
wallyworld_no, just install22:08
stokachuok22:08
wallyworld_go get grabs the source code but we have that already22:08
stokachugotcha22:08
stokachuso i did the go install ./... , then tried juju status and it says "WARNING unknown config field "use-lxc-clone"22:11
stokachuran juju bootstrap --upload-tools with same error sorry22:11
wallyworld_that's the wrong config - see the email22:12
wallyworld_it should be " lxc-use-clone"22:12
stokachudoh22:12
wallyworld_:-)22:12
wallyworld_typo :-)22:12
wallyworld_the number of times i've done stuff like that i've lost count of22:13
stokachuwallyworld_: so lxc-use-clone is unknown config field as well22:13
stokachuwallyworld_: haha yea been a long day22:13
wallyworld_so, i think that may be a bad warning - i think that may be a bug22:14
wallyworld_i think the setting is actually ok22:14
stokachuso maybe after bootstrap then the config field is known22:14
wallyworld_yes, what you can do after bootstrap is...22:14
wallyworld_juju get-env lxc-use-clone22:14
wallyworld_that should print true22:14
stokachuah ok22:14
wallyworld_if that warning is indeed a bug, we'll fix it as part of this so it doesn't create confusion22:15
stokachuok cool, its currently bootstrapping22:15
wallyworld_just to check, you ran juju "bootstrap --upload-tools"22:16
stokachuwallyworld_: yea22:16
wallyworld_then i assume you will great a kvm machine and then use juju add-machine to register it with juju22:17
wallyworld_and then use a --to placement directive to deploy a charm22:17
stokachuyea22:17
wallyworld_ok22:17
wallyworld_i have to pop out again to drop the dog to the vet - she is being desexed, i'll be back real soon22:18
stokachuso basically when i deploy to lxc ill see if the template is created right?22:18
thumperwallyworld_: o/22:18
wallyworld_yes22:18
stokachuok cool22:18
wallyworld_check the /var/lib/lxc dir22:18
wallyworld_and also deploys to subsequent containers should be quick22:19
wallyworld_hi thumper22:19
stokachusweet, have fun at the vet22:19
stokachuill let you know how it goes22:19
wallyworld_gotta run, back soon22:19
wallyworld_ok22:19
=== cory_fu is now known as cory_fu|away
stokachuso deploying with latest code is running on juju 1.19.2 and after deploying mysql to lxc:1 it is still in pending, but no lxc has been installed on machine 1 yet22:48
stokachuthis is KVM -> nested lxcs22:48
stokachunot sure if this is a problem with just 1.19 codebase and nested lxc's within a kvm machine22:49
stokachuok made it run with 1.18.1.1 and juju get-env lxc-use-clone is reporting True22:57
wallyworld_stokachu: so you merged the branch into a checkout of 1.18?23:01
stokachuwallyworld_: i merged that branch after doing a go get -v23:01
wallyworld_what did you go get? the 1.18 series trunk?23:02
stokachugo get -v launchpad.net/juju-core/... which shouldve pulled 1.19.223:03
stokachuwhich juju is pointing to $HOME/bin/juju so that seems correct23:03
wallyworld_ok, but you said above you are running 1.18.1.1?23:04
stokachuyea sorry that was on a previous juju env, just re-bootstrapped and its 1.19.223:04
wallyworld_ok23:04
stokachuget-env lxc-use-clone is returning true23:04
stokachuonce machine 1 comes up ill try to deploy a lxc container23:05
stokachuhttp://paste.ubuntu.com/7418668/23:06
stokachuthats where im at now23:06
stokachuwallyworld_: doesnt look like lxc is getting installed on kvm machine 123:06
wallyworld_stokachu: the first one takes a long time23:07
wallyworld_since it has to download the ubuntu image23:07
wallyworld_but once that is done, the second one should be fast23:07
wallyworld_you could ssh into the kvm instance and check out the /var/lib/lxc directory23:07
wallyworld_or run sudo lxc-ls --fancy23:08
stokachuwallyworld_: weird thing is the kvm instance doesn't have lxc installed23:08
wallyworld_ah23:08
wallyworld_then that's a problem23:08
wallyworld_you need to ensure the kvm instance has all required dependencies install23:09
stokachuso in 1.18.1 lxc was installed (maybe by default?)23:09
wallyworld_i think that's the case23:09
wallyworld_perhaps23:09
wallyworld_let me check something23:09
stokachuoh one sec23:09
stokachuwallyworld_: https://github.com/Ubuntu-Solutions-Engineering/cloud-installer/blob/master/cloudinstall/gui.py#L229-L24523:09
stokachuso thats where we re-configure the lxcbr0 to bridge host-only23:10
stokachui thought we installed lxc there but we dont23:10
wallyworld_ok23:10
wallyworld_so if you are sure lxc is not installed, you'll need to do that. you'll also want to destroy the machine you added (juju destroy-machine)23:11
wallyworld_then re-add it once lxc is installed23:12
stokachuwallyworld_: ah im hitting that other bug with juju blindly copying over apt-http-proxy23:12
wallyworld_i recall something bout that but m not familiar with the detail23:12
stokachuyea ive got squid-deb-proxy running on host and when i add a kvm machine it attempts to query the proxy at http://localhost:800023:13
stokachuwhich doesn't exist in the kvm23:13
stokachui think thats the issue with lxc not being installed23:13
stokachulemme work around that one sec23:14
wallyworld_ok23:14
wallyworld_thumper: i thought we had a fix for the above apt-hhtp_proxy bug already?23:14
* thumper looks up23:14
thumperwat>23:14
wallyworld_ignore or something?23:14
wallyworld_see the last few lines of backscroll23:15
stokachuso i just set apt-http-proxy to the host IP23:15
stokachurather than localhost23:15
wallyworld_ok. i did seem to recall we allowed a config to let juju ignore it but could be wrong23:16
thumperI'm not aware of any copying over apt-http-proxy23:16
stokachuhttps://bugs.launchpad.net/juju-core/+bug/130920723:17
_mup_Bug #1309207: juju should not blindly create an apt proxy config file in deployed nodes <apt-http-proxy> <cloud-installer> <local-provider> <juju-core:Triaged> <https://launchpad.net/bugs/1309207>23:17
stokachuso ive just done the workaround fo rnow23:17
stokachuwallyworld_: ok lxc installed after deploy to lxc:123:19
stokachuso lets see how fast this goes after the first one23:19
wallyworld_ok23:19
stokachutemplate file is there23:19
stokachustill downloading the initial cloudimg23:23
wallyworld_yeah, could take a few minutes23:23
stokachuwallyworld_: ok awesome, this is way faster23:31
wallyworld_great :-)23:31
stokachuthe downloading took awhile but could just be th enetwork here at the sprint23:31
stokachubut once that was done the only real wait is from the package installation from the charms23:32
wallyworld_yes, would be a shared bandwidth23:32
stokachuthe machines are up and running almost instantly23:32
stokachumachines == lxc containers23:32
wallyworld_good news, so you happy then23:32
stokachuwallyworld_: yea man this is amazing23:32
wallyworld_we'll release a 1.19.2 over the weekend and back port to 1.1823:32
wallyworld_so you'll be set up well for ODS next week23:33
stokachuawesome i really appreciate your help with this23:33
wallyworld_np, anytime. been a combined effort. ask if you need anything else23:33
stokachuwallyworld_: will do, thanks again!23:33
wallyworld_welcome23:33
wallyworld_stokachu: what would your preference be? a 1.19 release or a 1.18 release with the lxc clone support?23:40
wallyworld_i'm thinking 1.18 would be safer23:41
wallyworld_but i'm not sure what we're looking to demo for ODS23:41
wallyworld_thumper: so we having a juju-core standup now?23:47
stokachuwallyworld_: 1.18 for us definitely23:48
wallyworld_stokachu: ok, we'll backport the fix to 1.18 and do a 1.18.3 release for next week23:49
stokachuwallyworld_: for our stuff it would be 1.18 for demos23:49
waiganithumper: I can't see any docs on identity or resources in drive?23:49
stokachuthats what we've developed against anyway23:49
wallyworld_yep, 1.18 it is23:49
waiganimenn0: do you have the link to thumper's charm?23:55
menn0waigani: the github ones?23:56
waiganimenn0: yep23:56
waiganiI thought I might give writing a charm a go23:56
menn0that's what I'm doing right now too23:56
waiganimenn0: how is it going?23:56
menn0here they are: lp:~thumper/+junk/github-watcher23:56
menn0lp:~thumper/+junk/github-readme23:57
menn0the readme one is a demo consumer of github-watcher23:57
waiganimenn0: cheers, are you following a tut?23:57
waiganimenn0: ah I was looking on his github account for them23:57
menn0Mainly the Charm Authors section at https://juju.ubuntu.com/docs/23:58
menn0but also looking at other charms and various blog posts for further guidance23:58
waiganimenn0: any good finds?23:58
menn0thumper's charm is hacky and incomplete (I'm sure he'd agree!) and not a good place to start if you want to see how a charm works23:59
waiganimenn0: I think I'll follow this: https://juju.ubuntu.com/docs/authors-charm-writing.html23:59

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