/srv/irclogs.ubuntu.com/2015/03/26/#juju-dev.txt

ericsnowcherylj: I've gotta run; others should be able to help keep your merge train moving though :)00:01
cheryljthanks, ericsnow!00:02
=== kadams54 is now known as kadams54-away
axwcherylj: is the description at the top of LICENCE a requirement? (I'm going to be adding a new repo later on, so I will add LICENCE to it)01:04
axwcherylj: I'm referring to, e.g. "This package deals with Juju names."01:04
cheryljaxw: The answer I got when I asked was that it's a courtesy / convention and not a hard requirement01:05
axwcherylj: thanks01:05
cheryljnp! :)01:05
axwwallyworld: reviewed status-get01:27
wallyworldaxw: tyvm01:27
axwwallyworld: can you please add "hackers" to the replicaset repo?01:48
wallyworldsure01:48
wallyworlddone01:49
axwta01:49
axwcherylj: if you're still awake/working, would you mind casting your eyes over https://github.com/juju/replicaset briefly to check that I did it right?01:50
wallyworldaxw: licence file not quite right - see the recent commits to 1.22 or master i think01:58
wallyworldyou don't need the whole file - just a copyright statement and a reference to the licence01:59
axwwallyworld: which repo? I copied this from juju/txn01:59
wallyworldaxw: https://github.com/juju/juju/blob/1.22/LICENCE01:59
wallyworldaxw: also, status-get updated, ptal when free01:59
axwwallyworld: possibly different for that, because we don't have an exception to AGPL02:00
axwwallyworld: we do for LGPL though02:00
axwlooking02:01
wallyworldaxw: i oasted a link above to the licence file recently added to 1.22 for juju02:03
axwwallyworld: yes... that is AGPL02:05
axwwallyworld: the replicaset one will be LGPL+exception02:05
axwwallyworld: just responded, sorry I realised I should hit shipit... I'll just take another look over02:07
axwwallyworld: done02:09
axwthumper: is the charm repo really meant to be AGPL?02:10
thumperaxw: I'm not sure, but since it wasn't a change, I let it through02:10
thumperpersonally I would have thought lgpl02:11
axwah ok02:11
axwthumper: do you know what the deal is with including the full copyright text?02:11
axwI copied from juju/txn, which has the full text for LGPL. the AGPL ones are abridged02:11
thumperaxw: no, was looking at the bug02:14
ericsnowanastasiamac_: FYI, I found the following failure on vivid: #143639703:04
mupBug #1436397: map-order sensitive test in md/juju/storage needs to be fixed <map-order> <juju-core:Triaged> <https://launchpad.net/bugs/1436397>03:04
anastasiamac_ericsnow: i saw :(03:04
anastasiamac_ericsnow: will aim to fix today... later on... sometime :D03:04
ericsnowanastasiamac_: should be pretty easy to fix03:04
ericsnowanastasiamac_: sound good :)03:04
anastasiamac_ericsnow: yep :D03:04
anastasiamac_ericsnow: m surprised to c u here now... it's 1pm here in Brisbane... it must be somewhere in the middle of the night where u r :D03:06
ericsnowanastasiamac_: nah, it's about 9pm (happened to be following up on a few little things)03:06
anastasiamac_ericsnow: 9pm is an ok office hour? :D03:07
ericsnowanastasiamac_: well, for our team I tend to have to follow-up on stuff in the evening (but try to limit myself)03:07
anastasiamac_ericsnow: :)03:09
anastasiamac_ericsnow: map ordering is my 2nd best nemesis :D03:09
wwitzel3can anyone remind me of the process of connecting to mongod when running local provider?03:11
wwitzel3via the mongo client03:11
ericsnowaxw: thanks for the review03:18
ericsnowaxw: would you mind throwing a ship-it onto that review request; I'll get a patch up and merge it later (probably tomorrow)03:18
axwericsnow: yes, will do, thanks03:18
ericsnowaxw: much appreciated03:19
axwericsnow: no worries. I'm thinking about using the GCE provider to run a buildbot slave, hence why I was testing. I think this will lower the barrier to entry nicely03:21
ericsnowaxw: sweet03:22
ericsnowaxw: keep the feedback coming :)03:22
wallyworldaxw: here's the status-set if you have a chance at some point http://reviews.vapour.ws/r/1279/03:26
axwwallyworld: yup, just opened it03:26
ericsnowwallyworld: could you (or your delegate) follow up on #143443703:27
mupBug #1434437: juju restore failed with "error: cannot update machines: machine update failed: ssh command failed: " <backup-restore> <maas-provider> <juju-core:Invalid> <juju-core 1.22:Incomplete by ericsnowcurrently> <https://launchpad.net/bugs/1434437>03:27
ericsnowwallyworld: the reporter is about your TZ03:27
axwwallyworld: couple of questions on the review03:38
=== kadams54 is now known as kadams54-away
wallyworldaxw: thanks for review, issues fixed03:53
axwta, looking03:53
axwwallyworld: btw, what will go in the "data"?03:54
axwmodification time?03:54
* axw checks spec03:54
axwwallyworld: LGTM, added a comment as food for thought03:57
axw-_-03:58
* axw wishes wallyworld would get a refresh already03:58
axwwallyworld: LGTM, added a comment as food for thought03:59
wallyworldsure, np03:59
wallyworldty03:59
wallyworldaxw: updated time will be shown, but it's not implemented yet04:01
wallyworldwhat we currently have is what's displayed04:01
axwwallyworld: from my glance over the spec I didn't see anything other than status, message and update time in the output04:02
axwwallyworld: so my question is, should we really be splatting out a k/v map, or should we just extract the update time04:02
mupBug #1436655 was opened: gce provider should stop using deprecated zone europe-west1-a <gce-provider> <juju-core:Triaged> <https://launchpad.net/bugs/1436655>04:05
thumpercherylj (for you to look at in the morning) this is the fix for the issue we talked about this morning: http://reviews.vapour.ws/r/1280/04:09
thumperalso, any reviewer... http://reviews.vapour.ws/r/1280/04:10
axwwallyworld: should "juju cached-images" work with the local provider?04:52
axwwallyworld: cos it doesn't04:52
wallyworldaxw: yes04:53
wallyworldit did when i last tested it04:53
wallyworldas that's how it was developed04:53
wallyworldwhat's it doing (or not)?04:53
axwwallyworld: I see.04:53
axwjuju cached-images list04:53
axwno matching images found04:53
axwwallyworld: ^04:53
wallyworldhmmm04:53
axwdoesn't matter if I specify a filter or not04:54
wallyworldi reckon JES has stuffed it up04:54
wallyworldthere's an environ filter or something04:54
wallyworldjust a guess04:54
axwmk04:54
axwwallyworld: also, I set "allow-lxc-loop-mounts:true" in environments.yaml but "loop" still doesn't work on local :(04:55
wallyworldoh, what does the lxc.conf have in it?04:55
wallyworldi didn't test end-end cause at the time, it wasn't working, i just ensured the lxc.conf was correct04:56
axwwallyworld: where's that again?04:56
wallyworldlxc-broker.go maybe, i'll check04:57
axwI mean, where's lxc.conf04:57
axwwallyworld: hum, my container doesn't have an lxc.conf...04:58
wallyworldhmmm, /var/lib/lxc/containers/... i would have thought04:58
wallyworldthere's 2 files we generate i think04:59
axwok, I'll go digging04:59
wallyworldconfig and something else i can't recall04:59
wallyworldaxw: i think it's /var/lib/lxc/<container-name>/config05:04
dimiternwallyworld, axw, if you're not using lxc clone, the generated lxc.conf should be in /var/lib/juju/containers/<name>/, otherwise only the template lxc container has lxc.conf, the rest use the run-time config in /var/lib/lxc/<name>/config05:05
axwI see05:05
wallyworlddimitern: so i was half right :-)05:05
dimitern:)05:06
wallyworldor fully right for me as i don't use templates05:06
axwwallyworld: welp, the aa bits aren't making it into the config file... will keep digging05:06
wallyworldok, sorry it's not working05:06
dimiternaxw, I guess you are using lxc-clone: true then?05:07
axwdimitern: no05:07
axwdimitern: it's not in the template either, in any case05:07
dimiternaxw, ah, ok05:08
axwwallyworld: ah, I know what happened. loop is "dynamic", so there are no volumes passed to StartInstance05:12
axwwallyworld: I think we just need to enable it if the config attr is set05:12
wallyworldah yes05:12
tasdomashi07:48
tasdomasI have a few questions about windows support in juju-core, especially the uniter07:48
tasdomasin https://github.com/juju/juju/blob/master/worker/uniter/paths_test.go#L8307:49
tasdomaswill those tests work in windows?07:49
tasdomasare they supposed to?07:49
Muntanerhello guys09:09
Muntaneris there a way to get from CLI the ip address of a service?09:09
Muntaner I mean, I can do it with stat - but need to do greps and cuts to get just the IP09:09
Muntaner(I need it in a script)09:09
dimiternMuntaner, try something like: addr=`juju run --unit myunit/1 unit-get private-address`09:23
Muntanerdimitern, this just executes the unit-get command?09:25
Muntanerdimitern, just seen the man - yes, thanks :)09:25
dimiternMuntaner, yeah09:26
dimiternnp :)09:26
Muntanerdimitern, which name should I specify for the 0 machine?09:32
dimiternMuntaner, use --machine 009:32
dimiternMuntaner, but didn't you want the address of the unit?09:34
Muntanerdimitern, no, I need the floating IP of the "bootstraper" machine09:35
Muntanerdimitern, I strangely get a "unrecognized argoment: public-address" with the unit-get09:35
Muntanerunrecognized args*09:35
Muntanermaybe should I specify the location of the unit-get command?09:36
dimiternMuntaner, ah, ok - you can't get the floating IP like this (from the machine itself)09:37
dimiternMuntaner, because it's something the cloud provider knows, not the machine itself09:37
Muntanerdimitern, aw. Isn't there any other option?09:38
dimiternMuntaner, 3 options - 1) parsing the output of juju status like you do, 2) (if you just need the apiserver public address) juju api-endpoints outputs IP:port (e.g. 10.0.0.1:17070), which is easier to parse; 3) use the cloud command line client09:42
mupBug #1436766 was opened: juju run fails on manually provisioned instance <juju-core:New> <https://launchpad.net/bugs/1436766>09:54
rogpeppedimitern: i just noticed this: github.com/juju/juju/service includes github.com/juju/testing as a dependency, which is a big no-no09:54
rogpeppedimitern: i thought there were tests in place to make sure that the main juju binaries don't include tests (e.g. gopkg.in/check.v1) as a dependency09:55
rogpeppeericsnow, jam: ^09:56
dimiternrogpeppe, where's that?09:58
rogpeppedimitern: where's what?09:58
dimiternrogpeppe, the import - which branch, file?09:59
rogpeppedimitern: package github.com/juju/juju/service, file fake.go09:59
dimiternrogpeppe, hmm that's a good catch!09:59
dimiternrogpeppe, it should've been in a service/testing subpackage10:00
rogpeppedimitern: yes10:00
mattywrogpeppe, dimitern I can do that now if you're busy10:00
rogpeppedimitern: and i think there should be some test that would catch that - it's not an uncommon mistake10:00
mattywrogpeppe, dimitern I'm still trying to to work out how I'm going to arrange my day10:00
mattywrogpeppe, dimitern this would be a nice distraction10:01
dimiternrogpeppe, mattyw, sorry my standup is just starting10:01
rogpeppedimitern: np10:01
rogpeppedimitern: perhaps you could mention it10:01
dimiternrogpeppe, will do10:01
dimiternactually it's the weekly team meeting now10:01
rogpeppedimitern: there's also github.com/juju/juju/service/systemd10:08
rogpeppedimitern: testing.go in there10:08
dimiternvoidspace, dooferlad, TheMue, I've joined our standup10:19
mattywwallyworld, I like the pep talks - thanks. enjoy your wine10:19
voidspacedimitern: we've all stayed in the last one10:19
voidspacedimitern: we're joining you though...10:19
wallyworldmattyw: hey matty, no worries, sorry i didn't mention metric first up10:19
mattywwallyworld, no problem :) I can't remember what everyone else has worked on - so I'm surprised you did as well as you did :)10:20
wallyworldmattyw: yeah, i'm sure i left off at least one or two other items :-)10:20
wallyworldfwereade: hey, you around?10:53
fwereadewallyworld, heyhey11:00
wallyworldfwereade: i ended up landing the status-get and set stuff after review by andrew, but am more than happy to rework anything if needed11:01
wallyworldi also have the new branch mostly complete, except for more tests etc11:01
wallyworldwould be great if you could take a look11:02
wallyworldhttps://github.com/juju/juju/compare/juju:master...wallyworld:unit-agent-state?expand=111:02
wallyworldi had to expand an interface or two11:02
wallyworldto allow the setting of an attribute in uniter state from a hook context11:02
wallyworldworker uniter tests all pass11:02
wallyworldgot to add a few more potentially, and also look to see if cmd/juju/status tests pass (which they won't)11:03
fwereadewallyworld, yeah,  I must say that OperationStateAccessor raises an eyebrow or two11:05
wallyworldfwereade: so, in a jujuc context where set status is called via the hook tool, i need to set a bool in uniter state11:06
wallyworldto record that the set status call happened11:07
fwereadewallyworld, right, but operation state used to be exclusively set by the executor, taking advice from the operations that actually executed11:07
fwereadewallyworld, now... anything that can see an operation can do wtf it likes to state11:07
wallyworldfwereade: operations controller by the uniter11:07
wallyworldfwereade: so i could restrict the method to only allow that specific bool to be set11:08
wallyworldunless you have another suggestion?11:08
wallyworldbear in mind this is more or less my first foray into the uniter code, so may be missing a few key tings11:09
fwereadesure, I'm thinking about it11:11
wallyworldi can hear the cogs turning :-)11:12
fwereadewallyworld, sorry, I'm being dense, I can't follow the chain that causes a different state to be written or not11:12
fwereade_wallyworld, dammit, what was the last think you saw me say?11:30
=== beisner- is now known as beisner
wallyworld<fwereade> wallyworld, but passing operationExecutor into the runner factory feels wrong11:30
wallyworldfwereade: what was the last thing you saw me say?11:30
dimiternericsnow, natefinch, please have a look at this when you can http://reviews.vapour.ws/r/1282/ - fixes bug 143619111:31
wallyworld[21:15:02] <wallyworld> but till now, uniter state has been controlled by the executor which is running the hooks11:31
wallyworld[21:15:26] <wallyworld> yes, it did feel wrong, hence i tried to use an interface that restricted the exposure11:31
wallyworld[21:15:37] <wallyworld> i didn't immediately see another way to do it11:31
wallyworld[21:16:19] <wallyworld> fwereade: so11:31
wallyworld[21:16:35] <wallyworld> OperationsStateAccessor *ony* exposes the CharmSetStatus() method11:31
wallyworld[21:16:38] <wallyworld> only11:31
mupBug #1436191: gce: bootstrap instance has no network rule for API <firewall> <gce-provider> <juju-core:In Progress by dimitern> <juju-core 1.23:In Progress by dimitern> <https://launchpad.net/bugs/1436191>11:31
wallyworld[21:17:08] <wallyworld> hence even though we pass in the executor, the code running in the jujuc context can only do that one thing11:31
wallyworld[21:17:29] <wallyworld> i kept telling myself that was "acceptable"11:31
wallyworld[21:17:59] --> rvba` (~rvba@culvain.gromper.net) has joined #juju-dev11:31
wallyworld[21:18:10] <wallyworld> that CharmSetStatus() method only sets that one bool in uniter state11:31
wallyworld[21:18:30] <wallyworld> so the code in a jujuc context can't do any harm as such11:31
fwereade_wallyworld, essay in http://paste.ubuntu.com/10683319/11:32
wallyworldlooking11:32
fwereade_wallyworld, but I think I was only just figuring out the real issue11:32
fwereade_wallyworld, namely that status-set-related state changes should only happen in hooks11:32
fwereade_wallyworld, and hence should be exclusively the responsibility of the runHook op -- by putting it on the context *anything* that sets status will trigger it11:33
wallyworldfwereade_:  a hook tool can be called outside a a hook11:33
fwereade_wallyworld, actions, juju-run, whatever11:33
wallyworldah right juju-run, yes11:33
fwereade_wallyworld, (and, hmm, debug-hooks -- how does that affect the story?)11:33
fwereade_wallyworld, but anyway I *think* that runHook.Execute is the only thing that needs to know whether status-set was called11:34
fwereade_wallyworld, and that's always got access to a context11:35
wallyworldfwereade_: i was thinking, perhaps wrongly, that we'd only want to set the workload status in commit()11:35
wallyworldcause i was thinking it was like a db op - there could be a rollback11:35
wallyworldso we run execute, and if all went well, we commit11:36
wallyworldand that's when we need to set the workload status to unknown if status-set was not called11:36
wallyworldor to terminated if stop was called11:36
wallyworldfwereade_: and i also thought hook tools were serialised with hooks11:37
fwereade_wallyworld, heh, now I think of it it's entirely non-obvious, but the prepare/execute/commit separation is almost entirely about ensuring sanity of, and in the face of, local state11:37
fwereade_wallyworld, pretty much all your remote communicatiooin is expected to happpen inside execute11:37
wallyworldoh ok11:38
fwereade_wallyworld, eg the context.flush stuff11:38
wallyworldas you can tell, my uniter foo is low11:38
fwereade_wallyworld, no worries, just add angry comments as you encounter non-obvious things11:39
fwereade_wallyworld, I have way too *much* history with it so I have very poor judgement re what's oobvious11:39
wallyworldfwereade_: so looking at Execute(state State), all i need to do is set the bool and it will all be done11:39
fwereade_wallyworld, yeah, I think so11:39
wallyworld\o/11:40
wallyworldthat makes it easy11:40
fwereade_\o/ likewise :)11:40
wallyworldand it's great to know now that prepare/execute/commit is about state11:40
fwereade_wallyworld, heh11:40
wallyworldmaybe i should have picked that up11:40
fwereade_wallyworld, first I extracted operation.State and .StateFile from the uniter on their own11:41
fwereade_wallyworld, and then I gradually moved everything over so that the executor was the only thing with responsibility for writing state11:41
wallyworldthe new design seems nice for sure11:41
fwereade_wallyworld, but it was a slow and piecemeal process and by the time it became *true* that the state-writing was entirely the responsibility of the executor it was "obvious" enough (because I'd been working towards it for weeks) that I didn't think to write it down explicitly11:42
wallyworldnp :-)11:42
wallyworldfwereade_: so, if i move the setting of the state bool to Execute(), this branch won't require much extra work apart from fixing the cmd/juju status tests; the other tests under worker/uniter should all be fine11:42
fwereade_wallyworld, I think so, yeah11:43
wallyworldgreat, will do that tomorrow11:43
fwereade_wallyworld, cool11:43
wallyworldand have it out to early adopters next week11:43
fwereade_wallyworld, sweet11:43
wallyworldfwereade_: also, i plan only introducing a juju status flag called --v211:43
wallyworldwhich will exclude the legacy stuff11:43
wallyworldwill be much cleaner11:44
wallyworldand also tabular by default i thin11:44
wallyworldk11:44
fwereade_wallyworld, presumably intended to replace juju status in cli2.0?11:45
wallyworldyup11:45
wallyworldi'll tell early adopters to run juju status --v211:45
fwereade_wallyworld, wondering whether a flag is really the right way to switch out the implementation11:45
wallyworldi guess i could use a feature flag11:46
wallyworldthat sounds better11:46
fwereade_wallyworld, although, well, equally it's really just a new --format11:46
fwereade_wallyworld, can I kick you over to thumper to think through how we can do it with minimal disruption to our users *and to ourselves ;p*11:46
wallyworldwell, not really, it's about excluding ingo11:47
wallyworldinfo11:47
wallyworldfeature flag i think is consistent with our current approach11:47
wallyworldscripts stay the same11:47
fwereade_wallyworld, well, how's that different to what --format tabular does? they're both about filtering info to be most useful to out users11:47
wallyworldfwereade_: yes, but we want to include the new workload stuff, and exclude the legacy agent-state stuff11:48
fwereade_wallyworld, isn't it the same source info in every case? it's just that we present it differently11:48
wallyworldall in a nice way, and i'm pretty sure the current tabular output will need to change11:48
wallyworldsame source, but different inclusions/exclusions as to what's printed11:49
fwereade_wallyworld, indeed -- and isn't that what --format does already? given tabular11:49
wallyworldmaybe i'm thinking of the yaml output too much, but that's really bad with this new stuff11:49
wallyworldyes, but in tabular, you still need to choose what to include11:50
wallyworldagent-state (legacy) vs worload state vs agent state (new)11:50
fwereade_wallyworld, the yaml output is a car crash regardless, I fear -- but it contains ALL THE DATA and is easily machine-readable so it'll always have its uses, it's just a really bad default11:51
wallyworldamen to that11:51
wallyworldbut i'd love to still exclude the legacy stuff for Juju 2.011:52
wallyworldhence the notion of a feature flag to get 2.0 output today11:52
wallyworldfor all formats - tabuar, yaml, json11:52
wallyworldso people don't rely on deprecated fields11:52
wallyworldthat will disappear in 2.011:53
fwereade_wallyworld, agreed, but something about feature-flagging it makes me twitchy11:53
wallyworldso the alternative is a --v2 flag to status11:53
wallyworldmy first suggestion11:53
wallyworldremember - we're talking early adopters here11:54
wallyworldthey can deal with it, whether ff or --v211:54
fwereade_wallyworld, right, but we'll also want to make it available to normal people in advance of releasing cli2.011:54
wallyworldfwereade_: what, you saying early adopters aren't "normal"? :-P11:55
fwereade_wallyworld, the solution now is I agree not very important *except* that we'll likely keep using the same one in future, because inertia11:55
fwereade_wallyworld, ;p11:55
wallyworldfwereade_: so, if i were i user, i would i think prefer a feature flag- keeps the CLI syntax the same11:55
fwereade_wallyworld, anyway in the interest of completeness the other alternative is a separate "status2" command, vs a feature flag11:56
wallyworldyuk, not a status2 please11:56
fwereade_wallyworld, the trouble with feature flags is that we can't change them live, so we lock out everyone with a pre-existing environment11:56
wallyworldthey can be changed live - anyway, in this case, it's purely client side11:57
wallyworldwe will still ship ALL THE DATA to the CLI11:57
wallyworldit's just how it's presented that will change11:57
fwereade_wallyworld, heh, they were meant to be immutable per environment exactly so we didn't have the option to abuse them like this11:58
wallyworldmaybe i'm wrong with the change bit11:58
wallyworldi thought you could11:58
wallyworldbut, first time for everything :-P11:58
wallyworldi think you are right11:58
wallyworldbut if they are ENV variable, then we can change for client11:59
wallyworldin this case, server side won't use this feature flag11:59
wallyworldi think we can do it that way, maybe not11:59
wallyworldi though the client would check the env var first11:59
fwereade_wallyworld, probably it does, yeah12:00
wallyworldhence the user could toggle12:00
wallyworldi'll check anyway, and this will be done after i land the current work12:00
jamdimitern: commented on http://reviews.vapour.ws/r/1282/12:01
fwereade_wallyworld, yeah, I'm not convinced by anything either of us have said here really :)12:01
dimiternjam, thanks, just reading it12:02
fwereade_wallyworld, would you talk it through with thumper, who has had cli2.0 more directly on his mind?12:02
wallyworldsure, will do12:02
fwereade_wallyworld, I bet he knows what we should do ;)12:02
wallyworld:-)12:02
dimiternjam, the underlying problem is not easy to fix as it involves changes in several places12:02
* TheMue steps out for a moment, bbiab12:03
dimiternjam, hence I decided to fix GCE and defer the rest to a separate bug fix12:03
wallyworldfwereade_: thanks for input on implementation, i'll adjust the approach and look forward to getting this work comitted12:03
dimiternjam, but the proposed GCE fix will still work after the "proper fix" lands12:03
fwereade_wallyworld, cheers :)12:04
jamdimitern: so are we missing the opportunity to do a correct fix?12:04
jamdimitern: put another way, if it works will people ever be bothered to do the right thing.12:05
dimiternjam, I don't think we're missing anything, it's just a gradual improvement12:05
jamdimitern: so I added another review, I'm curious about isStateServer12:10
dimiternjam, cool, just replied btw12:10
jamand then another thought, do we have to worry about cleaning up at all? Given the original post that destroy-environment was failing12:10
jamor was that just "couldn't contact state"12:10
dimiternjam, no, that's another issue - GCE not finding the machines it's tagging as juju-<uuid>-machine-X12:11
dimiternjam, but it's not always not finding them, it seems like a race or improper query12:12
* dimitern steps out for a while12:22
mupBug #1408459 changed: pingerSuite tests consistenly fail on trusty+386 and vivid+amd64 <ci> <i386> <intermittent-failure> <juju-core:Fix Released by ericsnowcurrently> <juju-core 1.23:Fix Released by ericsnowcurrently> <https://launchpad.net/bugs/1408459>13:18
voidspacecleaning my keyboard13:30
voidspacemanaged to reboot by mistake...13:30
wallyworldfwereade_: can you point me to the uniter code that invokes Run(ctx) on the hook tool commands13:33
fwereade_wallyworld, runner/jujuc/server.go I think?13:34
wallyworldfwereade_: ok, so that invokes cmd.Main() which ultimately gets to Run(ctx) I guess13:35
fwereade_wallyworld, yeah13:35
wallyworldfwereade_: i'm figuring out at what point it's sensible to update local state13:36
wallyworldas we're not in a hook and so Execute(state) isn't in play13:36
fwereade_wallyworld, sorry, ECONTEXT13:37
fwereade_wallyworld, local state distinct from the did-set-status flag?13:37
wallyworldfwereade_: so from conversation before, did-set-status flag is persisted in uniter local state13:37
wallyworldwhen executing hooks, state is persisted at the end of a hook in Commit()13:38
wallyworldbut here a hook tool is being run13:38
wallyworldnot a hook13:38
fwereade_wallyworld, isn't there a SetStatusy method on Context? which can then just store the flag, and then runHook.Execute can pull that out of the context (because it cares) and all the other runnery ops can just not bother?13:39
fwereade_wallyworld, a hook tool is always going to be invoked inside a runner, isn't it?13:39
wallyworldfwereade_: so we have uniter.runner.Runner13:40
wallyworldand that interface has a Context13:41
wallyworldwhich embeds a jujuc.Context13:41
wallyworldbut i can't see access to State anywhere in any of that13:41
wallyworldthere's RunHook() and RunAction()13:43
wallyworldbut the RunCommands() seems to execute a script13:43
wallyworldrather than a hook tool command13:43
fwereade_wallyworld, runner/factory.go:263 relevant?13:43
fwereade_wallyworld, may be confusion there? hooks and actions are just scripts13:43
fwereade_wallyworld, hook tools are the things we set up for thoose scripts to use, be they hooks or actions or just arbitrary ash or powershell or whatever13:44
wallyworldright, but i want to access the hook tool execution at the point where the uniter is in play13:44
wallyworldie the server side of the script call back into the uniter13:44
fwereade_wallyworld, let me try to restate your problem13:45
fwereade_wallyworld, you're in some implementation of jujuc.Context, specifically runner.HookContext, and you're in the middle of setting status13:46
fwereade_wallyworld, you have an api conn, so setting it on the state server is easy13:46
fwereade_wallyworld, but you want to be sure that the uniter itself knows it's happened13:46
wallyworldfwereade_: it's a jujuc.Context, not sure if that's a HookContext13:47
fwereade_wallyworld, HookContext is (at the moment) the one useful concrete implementation of jujuc.Context13:47
wallyworldyes, uniter needs to know it happened, so that s=at the end of the start hook, it can do something13:47
wallyworldi see, ok, i clearly forgot that HookContext was a jujuc.Context13:48
wallyworldbut yes, of course it is13:48
fwereade_wallyworld, ok, so HookContext is not just a jujuc.Context13:48
mupBug #1423372 changed: juju-br0 is not configured correctly on maas machines without ethX interfaces <cloud-installer> <jujud> <maas-provider> <network> <juju-core:Fix Released> <https://launchpad.net/bugs/1423372>13:48
wallyworldi added that OperationsStateAccessor to it13:48
fwereade_wallyworld, it's also a runner.Context13:48
fwereade_wallyworld, and it's via runner.Context that the ops should be able to get in and find out whether the flag is set13:49
fwereade_wallyworld, those two should be better separated, I freely admit13:49
fwereade_wallyworld, none of that code is *good*, it's just better than it was in some respects ;)13:49
sinzuidimitern, can you ask someone to read the pastebin links to the logs in this bug https://bugs.launchpad.net/juju-core/+bug/1435644 > I cannot triage it. I think juju is looking for image-streams *after* the instance is brought up.13:50
mupBug #1435644: private cloud:( environment is openstack )index file has no data for cloud <juju-core:New> <https://launchpad.net/bugs/1435644>13:50
=== kadams54 is now known as kadams54-away
wallyworldfwereade_:  understood13:50
wallyworldfwereade_: so i'm still at the point where the runner Context has a SetUnitStatus() API, fine, but i need to be at a layer above that to update the uniter state13:51
fwereade_wallyworld, but does that generally make sense? the HookContext isn't in the business of assuming it's being run by a uniter or anything like that13:51
fwereade_wallyworld, it *is* in the business of knowing when status-set has been called13:51
fwereade_wallyworld, because in *some* contexts its clients want to know about that13:52
wallyworldfwereade_: so how does HookContext know if status-set has been called when it doesn't seem to have access to uniter State13:52
fwereade_wallyworld,  but it's a matter of recording a flag on SetStatus, and exposing it via a new runner.Context method that lets the op find out whether it happpened or not after the fact13:52
fwereade_wallyworld, whether or not anyone invoked whatever the SetStatus method on jujuc.Context13:52
wallyworldbut how is that flag persisted into local uniter State?13:52
=== kadams54-away is now known as kadams54
fwereade_wallyworld, the runHook operation runs the runner, asks for the context, asks the context if status-set was called; and if so sets that field on the State it returns to the executor13:53
wallyworldi can easily set a flag on HookContext, but it needs to be persisted13:53
fwereade_wallyworld, but only sometimes, and that's not HookContext's responsibility13:54
wallyworldbut it's not a hook we are running but a hook tool13:54
fwereade_wallyworld, any time we execute user code we do it in a hook context, don't we?13:54
wallyworldso how does runHook come into it - runHook runs hooks right? not hook tools?13:54
fwereade_wallyworld, runHook runs hooks, but to do that it needs to set up the runner that runs them, which sets up a context that's responsible for providing the implementation of the tools for jujuc.Server13:55
fwereade_wallyworld, most of that is hidden away inside the runner.Factory13:55
wallyworldok, i'll dig some more. right now we have as a method on HookContext: func (ctx *HookContext) SetUnitStatus(status jujuc.StatusInfo) error {}13:56
wallyworldbut inside that method, there's no access to saving state13:56
wallyworldso it needs to be done at a layer above13:56
fwereade_wallyworld, we mean local uniter state, right?13:57
wallyworldyes13:57
fwereade_wallyworld, right, it's not HC's responsibility to set uniter state13:57
fwereade_wallyworld, it shouldn't have the faintest idea what a uniter is ;)13:57
wallyworldyes13:57
fwereade_wallyworld, but as you say the level up needs to do that13:57
fwereade_wallyworld, so I think you can just add a .didCallStatusSet field in HookContext13:58
wallyworldso i'm trying to find where i need to be in order to catch the bit that runs the SetUnitStatus() method and which has acess to local state13:58
fwereade_wallyworld, and a DidCallStatusSet() bool method to runner.Context13:58
wallyworldbut that field won't be persisted13:58
wallyworldand it needs to be13:58
fwereade_wallyworld, and then runHook.Execute can just ask for self.runner.Context().DidCallStatusSet, and it it's true, write it into the state it returns to the executor13:58
wallyworldthat won't work will it - it needs to be persisted between hooks13:59
wallyworldas i need to see if set status was called during either Install or Start hooks13:59
fwereade_wallyworld, what inside a hook behaves differently if status-set has been called or not?13:59
fwereade_wallyworld, ah right13:59
fwereade_wallyworld, isn't that even simpler?13:59
wallyworldmaybe?14:00
fwereade_wallyworld, if you only want to check in those hooks, you only need to call DidCallStatusSet() when you're figuring out the state change from running start/install14:00
fwereade_wallyworld, and runHook knows what hook it's running...14:00
wallyworldso14:00
wallyworldthe charm could call status-set inside Install hook14:01
wallyworldbut not STart hook14:01
wallyworldand i still need to know that14:01
wallyworldhence the did-it-call-stats-set flag needs to be persisted to local uniter state14:01
sinzuidimitern, natefinch : I am having trouble triaging bug 1436421. I could say it is medium, but maybe a engineer wants more information to know what is really happening14:01
mupBug #1436421: juju panics after upgrade from 1.18.4 to 1.20.11 <panic> <status> <juju-core:New> <https://launchpad.net/bugs/1436421>14:01
fwereade_wallyworld, really? isn't a charm that does that explicitly telling you that it knows about status but nothing happened in the start hook to cause it to change?14:02
fwereade_wallyworld, right, local unitrer state is controlled by what the op methods returnn14:02
wallyworldfwereade_: well, i think we need to cater for that use case, in the case where start hook is a noop14:02
wallyworldfwereade_: so, i still need to find where in the uniter code there's 1. access to local state to save flag, 2. access to hook tools that are run so that flag can be set14:04
wallyworldnot hooks via Execute() et al but hook tools14:04
wallyworldand then Install can run, for example, set the flag if needed, and Start can see that the flag was set14:05
wallyworldthe flag will be set in stats-set is invoked inside Install14:05
fwereade_wallyworld, so, I think that the runHook operation has everything you need...14:05
fwereade_wallyworld, it has access to the context that backed the hoook tools14:06
fwereade_wallyworld, and it's responsible for returning the new state to the executor14:06
wallyworldsure, but i still need to determine how to intercept hook tool execution to set flag14:06
fwereade_wallyworld, HookContext has a SetStatus method, right?14:07
wallyworldyes, but not acess to local state14:07
wallyworldso it can't set the flag from there14:07
fwereade_wallyworld, right, but it shouldn't -- it can set its own local field14:07
wallyworldbut that won't work14:07
wallyworldthe flag needs to be persisted between calls14:07
fwereade_wallyworld, but the operation can *read* that field, via some method on the runner.Context impl, and use it to set the state that gets persisted14:08
=== kadams54 is now known as kadams54-away
wallyworldoh, i think i see what you mean14:08
fwereade_wallyworld, cool14:09
wallyworldsorry, being really stupid tonight14:09
fwereade_wallyworld, no worries at all14:09
fwereade_wallyworld, but, uh, shouldn't you be in bed or something? ;p14:09
wallyworldyeah, but wanted to ensure i had this figured out14:10
fwereade_wallyworld, cool :)14:10
wallyworldi think i was confusing that the status-set needed to store state14:10
wallyworldwhen it didn't have to14:10
wallyworldas it would be caled from inside a hook14:10
fwereade_wallyworld, yeah, teasing out the layers there is kinda tricky14:10
wallyworldso the hook execution could set the state14:10
wallyworldsorry, i feel stupid now, it seems a lot more obvious than 10 mins ago14:11
fwereade_wallyworld, no worries at all14:11
wallyworldthanks for you eternal patience :-)14:11
fwereade_wallyworld, if there's anything I've said that you think could go into a useful comment in a judicious place please add one :)14:11
fwereade_wallyworld, a pleasure14:11
wallyworldi might just do that14:11
fwereade_ty14:12
wallyworldi'll be a uniter expert before the end of the week :-)14:12
fwereade_awesome, I need more of those ;p14:12
wallyworldindeed14:12
wallyworldbut now i need sleep, catch you later14:12
fwereade_wallyworld, sleep well :)14:12
=== kadams54-away is now known as kadams54
fwereade_can anyone think offhand why provider/dummy.state.apiServer.Stop() might be hanging?14:17
fwereade_just in one test, I suspect I'm being dense :-/14:18
fwereade_but we reset the dummy provider about a million times per test run so it usually works pretty well :/14:18
jw4fwereade_: the only 'obvious' possibility seems to be some sort of deadlock with the tomb mutex?14:25
jw4fwereade_: the nexus of Kill, Wait, and Err *might* have a potential conflict, but I don't see it yet14:26
jw4fwereade_: I just don't see it.  Is the hanging test reproducible?14:36
cheryljericsnow: Looks like there's one more repo that needed that copyright update, and strikov made the change.  Can you review / merge?  https://github.com/juju/utils/pull/12014:51
ericsnowcherylj: you bet14:52
ericsnowcherylj: do you know if all the changes have been applied in all three branches (1.22, 1.23, master)?14:53
cheryljericsnow: gah, I think I missed 1.23 for juju/juju14:54
cheryljI'll do that now14:54
ericsnowcherylj: I suppose that matters mostly just for the juju repo, but the revision in dependencies.tsv for the different repos on each of those juju/juju branches needs to have the updated LICENCE file, so it may require some trickery14:55
ericsnowcherylj: by trickery I mean that in some cases we may need to add a branch on the other repo at the revision from dependencies.tsv and update the LICENCE there (and then update dependencies.tsv)14:56
ericsnowcherylj: that is because we may have made changes in the other repo since then that should not be included (via imports) into the older juju branch14:57
ericsnowcherylj: however, I couldn't tell you where that is the case14:57
cheryljericsnow:  I think I follow, but I'm not 100% :)14:57
ericsnowcherylj: the most likely candidate is the utils repo14:58
ericsnowcherylj: when in doubt, restate :)14:58
ericsnowcherylj: either way, dependencies.tsv needs to be updated on each of the 3 juju/juju branches in question14:59
cheryljBut, updating it to the last commit for this license change may pull in changes we don't want?15:00
ericsnownatefinch: in case there is any ambiguity still, I *would* like a review on that patch if you can spare the time :)15:00
mupBug #1436421 changed: juju panics after upgrade from 1.18.4 to 1.20.11 <panic> <status> <juju-core 1.20:Won't Fix> <https://launchpad.net/bugs/1436421>15:00
mupBug #1436871 was opened: ppc64 gccgo fails to build cmd/juju <ci> <ppc64el> <regression> <juju-core:Triaged> <https://launchpad.net/bugs/1436871>15:01
ericsnowcherylj: that's exactly what I was trying to say with my long-winded blabbing :)15:01
ericsnowcherylj: FYI, that change to utils is merged now15:01
ericsnowcherylj: thanks for seeing this through15:01
cheryljericsnow: hehe.  Glad I understood.  Should I just check what's changed between what's in the dependencies.tsv file and this latest version?15:02
mupBug #1436655 changed: gce provider should stop using deprecated zone europe-west1-a <gce-provider> <juju-core:Won't Fix> <juju-core 1.23:Won't Fix> <https://launchpad.net/bugs/1436655>15:07
TheMuedamdidamdidam - my vmaas is bootstrapping *dance*15:10
mupBug #1436421 was opened: juju panics after upgrade from 1.18.4 to 1.20.11 <canonical-is> <panic> <status> <juju-core:Incomplete> <juju-core 1.20:Won't Fix> <https://launchpad.net/bugs/1436421>15:37
TheMuedooferlad: ping15:54
dooferladTheMue: hi15:54
TheMuedooferlad: heya, I need networking support ;)15:54
dooferladTheMue: sure. Hangout? IRC/15:55
TheMuedooferlad: can be done here. my development VM has a fixed IP here in the local net, the MAAS controller VM another one as well as a private net on eth1. the MAAS nodes are all in this private net.15:56
TheMuedooferlad: now I would like to reach the nodes from the development VM.15:56
TheMuedooferlad: is it possible by routing or do I have to add another eth with the private net to that VM too?15:57
dooferladTheMue: add another ethernet controller to the development VM and attach it to the private network15:57
dooferladTheMue: The alternatives are messy.15:58
cheryljjam: Regarding the juju AGPL license - should I modify the text to only state v3?   or is there someone I should check with regarding the "or later" statement?15:58
TheMuedooferlad: ok, already thought so, only needed confirmation15:58
dooferladTheMue: no problem. Hope it is easy and works.15:59
TheMuedooferlad: should be, I'll report15:59
TheMuedooferlad: less woth then open a physical machine and add another card (after buying it)16:00
TheMues/woth/work/16:00
TheMuethick fingers16:00
dooferladTheMue: Funny, I did the physical machines option because it seemed easy. I have so many bits of spare networking equipment!16:01
dooferladI also like playing with hardware.16:01
TheMuedooferlad: I once had too, but then I gave most stuff away16:01
TheMuedooferlad: I don't need much HW, a little mainframe in the cellar would be enough. lets say 128 cores, also 128 Gig of RAM, and maybe 4 to 8 TB of SSDs *cough* *cough*16:03
dooferladTheMue: my hardware doesn't quite stretch to that. I have plenty of storage, but not *all* SSD.16:04
TheMuedooferlad: I have to admit that my current laptop is more than enough for most tasks16:05
TheMuedooferlad: i7, 16 GB, 512 GB SSD, nothing special but a fine workhorse16:06
natefinchcherylj: we talked this over in a meeting this morning.  It needs to be v3 only, no  "or later"16:06
dooferladTheMue: I also only have 42 cores around the house, maybe half of those are hyperthreaded.16:06
cheryljthanks, natefinch.  I'll change it.16:06
natefinchcherylj: welcome, thanks for doing the work to get it in.16:06
dooferladTheMue: in actual running hardware that is.16:07
dooferladTheMue: When I had more ARM dev kit around the number of cores went way up. I am not counting phones and tablets, because that gets silly.16:08
TheMuedooferlad: yes, those 8 of the i7 are hyperthreaded too, 4 physical core16:08
dooferladTheMue: Oh, those 42 cores probably look more like 60 to hardware :-)16:08
TheMuedooferlad: would like the high amount of cores in one computer to let go or erlang applications scale out a bit16:08
dooferladTheMue: Ah, I rarely find anything CPU limited *and* able to scale past 8 cores.16:09
TheMuedooferlad: hehe yes, phones, thinking of Apache Mesos building one virtual computer out of all resources including phones and tablets, would be strange16:10
ericsnowjam: ping16:10
TheMuedooferlad: calculating large pis16:10
dooferladTheMue: Oh, how useful :p16:10
dooferladTheMue: http://en.wikipedia.org/wiki/Rainbow_table is a much better use of CPU time.16:11
TheMuedooferlad: yep, sounds good16:20
TheMuedooferlad: sorry for late answer, had to move my car, neighbor fells a tree16:21
dooferladTheMue: sounds like a good reason to move your car!16:21
TheMuedooferlad: indeed16:21
* ericsnow lols at $$irony$$ message in https://github.com/juju/juju/pull/194216:25
mupBug #1436421 changed: (1.20.11, 1.21) juju status panics when no .jenv is present <canonical-is> <panic> <status> <juju-core:Invalid> <juju-core 1.20:Won't Fix> <https://launchpad.net/bugs/1436421>16:43
mupBug #1436925 was opened: juju status complains "config has no UUID" when no .jenv is present <canonical-is> <regression> <status> <juju-core:Triaged> <juju-core 1.23:Triaged> <https://launchpad.net/bugs/1436925>16:43
mupBug #1436930 was opened: juju ssh --debug is not showing full ssh command used <juju-core:New> <https://launchpad.net/bugs/1436930>16:43
TheMuedooferlad: btw, the adding of the second network card worked. now there's the next hurdle16:49
dooferladTheMue: cool16:49
TheMuedooferlad: hmm, juju now complains it cannot reach the maas controller *hmpf* but I already have an idea16:50
dooferladTheMue: when you have a moment, could you help with creating some command tests. They are fine until I create an API client, at which point I get the error "no environment specified"16:51
dooferladTheMue: It seems like I need to create a test environment, but it isn't clear to me how.16:52
TheMuedooferlad: gnah, the API server has been initialized with the public eth0 address of the MAAS controller, not its private counterpart on eth116:52
dooferladTheMue: Oh, yea, that.16:52
TheMuedooferlad: sure, will help with the test16:53
dooferladTheMue: I think I re-installed the MAAS server, because the second time around it asked what IP address / interface it should have16:53
TheMuedooferlad: AFAIK sudo dpkg-reconfigure maas-region-controller is enough to specify that address. so I'll do it16:54
dooferladTheMue: it is16:54
dooferladTheMue: Probably easier than changing all the references to the MAAS URL in /etc/maas (there are 6)16:55
dooferladTheMue: If you sign up for an account on https://c9.io/ you can easily poke around my code. You don't need to pay.16:56
TheMueomw16:56
dooferladTheMue: let me know your username once you are signed up so I can share my workspace.16:58
TheMuedooferlad: in there16:58
dooferladTheMue: are you "themue"?16:59
TheMuedooferlad: exactly16:59
TheMuedooferlad: always trying to claim it16:59
dooferladTheMue: you should have an invite to https://ide.c9.io/dooferlad/homework2golang17:00
TheMuedooferlad: yes, I'm in now17:00
cheryljCan I get another review for the license work?  These are the changes for using only v3:   http://reviews.vapour.ws/r/1289/  http://reviews.vapour.ws/r/1287/17:07
cheryljAnd one for utils (1.22)  http://reviews.vapour.ws/r/1288/17:08
niedbalskiaxw_, ping17:19
jw4OCR PTAL : Fix for blocker bug 1436871 http://reviews.vapour.ws/r/1291/17:30
mupBug #1436871: ppc64 gccgo fails to build cmd/juju <ci> <ppc64el> <regression> <juju-core:Triaged> <https://launchpad.net/bugs/1436871>17:30
ericsnowcherylj: thanks for working through all those changes for the copyright!17:44
cheryljericsnow: np!17:44
cheryljericsnow: I'm not sure if I still need to review the dependencies based off of strikov's comment in the bug17:45
ericsnowcherylj: am I right that all the relevant repos have been updated (or have a pending PR)?17:45
cheryljericsnow: yes, I believe so17:45
cheryljOnce they are merged, I can look at updating the dependencies.tsv file if we need to17:46
ericsnowcherylj: yeah, we still need the dependencies.tsv updated for the 3 juju/juju branches17:46
cheryljok17:46
cheryljyeah, I'll do that once the merges complete17:46
cheryljericsnow: you were mostly concerned with utils and juju 1.22?17:47
ericsnowcherylj: the contents of that file determine which revision of the various dependencies get packaged into the juju source release package, including the LICENCE file17:47
ericsnowcherylj: the release package having the correct LICENCE files is what we're blocked on for 1.2217:48
cheryljok17:48
ericsnowcherylj: so you're help has been very...helpful :)17:48
mgzjw4: how did you repo bug 1436871?17:53
mupBug #1436871: ppc64 gccgo fails to build cmd/juju <ci> <ppc64el> <regression> <juju-core:Triaged> <https://launchpad.net/bugs/1436871>17:53
jw4mgz: go build -compiler gccgo ./...17:53
mgzI had an issue where it builds fine on my dev machine (from tarball used or master) and fails differently on stilson-0717:53
jw4mgz: I updated the bug with my version of gccgo17:53
jw4mgz: could be different version of gccgo.. it's clearly (to me) a gccgo bug17:54
mgzjw4: I have the same gccgo, and tried both in my tree, and in a new gopath with the tarball17:54
jw4mgz: weird - also I'm using go 1.3.3 although I'm not clear that makes any difference17:54
mgzjw4: I agree, but want to narrow down what exactly for handover and failed somewhat17:54
mgzjw4: it may I guess, my dev machine in go 1.2.117:56
mgzbut so is our build machine17:57
jw4mgz: interesting - is the build machine the ppc64 one?17:59
mgzcherylj: thanks for testing out all the new gating jobs for the subprojects with the license changes :)17:59
mgzjw4: yeah, but I'm being dumb or something and failing to get it to build at all there18:00
jw4mgz: hmmm - does my patch make any difference on the build machine?18:00
mgzjw4: probably not, it fails on github.com/juju/xml18:01
jw4mgz: urg18:01
jw4:)18:01
mgzbecause it can't import encoding... that's just a forked package from go itself, and doesn't blow up on my machine...18:02
cheryljmgz: it was a nice side effect :)18:03
mgzcherylj: did tim explain what was up with juju/testing landing? some version mismatch thing with a dep?18:05
cheryljmgz: the extent of the explanation I received was "that landing test is screwed"18:06
cheryljso, I can't be of much help :)18:06
mgzehehe, I'll poke him at some point :)18:06
wwitzel3if there a way to set a unit with no actual backing machine to started / active and bypass the presencer?18:13
wwitzel3I've tried SetStatus(Started) and SetAgentStatus(Active), but the unit itself will just revert back to down18:15
niedbalskiDoes there is any reason why 35d023f7 changed utils/ssh debugf statements to tracef? orselse, there is any way to display trace statements (such as --debug)?18:18
natefinchwwitzel3: I'm sort of surprised that doesn't work, since we've talked about proxy charms in the past.... but I don't know the details of how it's supposed to work.18:20
natefinchniedbalski: you can set logging-config in your environment config: juju environment set logging-config="<root>=DEBUG;juju.foo.bar=TRACE"18:22
cheryljericsnow: so in going through dependencies.tsv, I see the problematic repos are:  charm and names (loggo has some additional changes since the commit that's currently in dependencies.tsv, but they're all to a readme)18:25
niedbalskinatefinch, thanks18:25
cheryljericsnow: for 1.2218:25
mupBug #1436988 was opened: juju backup/restore is upstart-specific <backup-restore> <systemd> <vivid> <juju-core:In Progress by ericsnowcurrently> <juju-core 1.23:In Progress by ericsnowcurrently> <https://launchpad.net/bugs/1436988>18:25
ericsnowcherylj: that sounds right18:26
ericsnowcherylj: how much has changed for those two since 1.22?18:26
ericsnowcherylj: if it's not much (and 1.22 passes with an updated dependencies.tsv) then we might be okay18:27
wwitzel3natefinch: yeah, I was looking for something in the service or unit fields, thinking their might be bool I need to set to avoid the worker trying to ping the unit for status.18:28
ericsnowcherylj: otherwise we'll probably need a juju-1.22 branch on each and apply your LICENCE patch on those18:28
cheryljit's not nothing, but i haven't looked at the commits to see what they are.  I can try to run tests locally with those changes and see what happens18:28
ericsnowcherylj: yeah, see if 1.22 still works :)18:28
cheryljk18:28
natefinchericsnow, cherylj: yeah, I just realized, with our use of godeps, we're kind of screwing ourselves by not having separate branches for each release for the dependent branches, if we need to "go back in time" and fix something without applying any of the new changes.18:29
ericsnownatefinch: do you think we are okay to update the 1.22 deps if everything still passes?18:29
natefinchericsnow: I'd be very careful about looking at what changed... tests can't catch everything18:30
ericsnownatefinch: I figured you'd say that :)18:31
ericsnownatefinch: (and I agree)18:31
cheryljnatefinch, ericsnow:  There are a lot of changes for charm v4:  http://paste.ubuntu.com/10685349/18:35
ericsnowcherylj: then we're probably going to have to branch at the revision currently in dependecies.yaml and do that dance18:36
natefinchyep18:36
cheryljok, let me look at names too18:36
cheryljloggo should be fine.18:36
ericsnowcherylj: if there's *any* doubt we should do that same for names18:37
wwitzel3is there code that specifically handles proxy charms? I can't seem to grep it18:38
natefinchericsnow, cherylj:  I'm not actually sure how we can branch it and have it work correctly w/ go, godeps, etc18:38
cheryljericsnow: yes, we should branch names too.18:39
natefinchniemeyer: you around?18:40
alexisbnatefinch, niemeyer is on vacation this week18:41
natefinchdang18:41
niemeyerHey18:41
alexisbniemeyer, you are suppose to be on vacation :)18:41
niemeyernatefinch: What's up?18:41
niemeyeralexisb: I am! :-)18:42
natefinchniemeyer: we have to do some wacky branching for a repo that's using gopkg.in, and I'm not exactly sure the best way to do it. Thought you might have an idea.18:42
niemeyernatefinch: Ok, what's the case?18:43
natefinchniemeyer: we're using gopkg.in/juju/charm.v4 in 1.22  using godeps to pin the revision to something before HEAD... now we have to make a change to that code to update the LICENSE.  However, there are changes past where we're pinned in v4 that we don't really want to include in 1.2218:43
ericsnownatefinch: we did it with utils and it worked out fine18:44
natefinchniemeyer: there's already a charm.v5-unstable18:44
ericsnownatefinch: oh, gopkg.in...18:44
natefinchyes18:44
niemeyernatefinch: gopkg.in doesn't really bring anything out of the ordinary to that picture18:45
niemeyerYou need a revision that has the content you want, and the branch or tag needs to point to it18:45
natefinch...and go get w/godeps needs to be able to get that revision18:46
natefinchmy problem is, it;'s not like we can make a 1.22 branch for the repo... because gopkg.in would then serve that up to people asking for v1  and go get can't get that branch by itself.18:48
natefinchI am assuming that godeps can't set the code to a random commit that isn't on the branch you've downloaded with go get18:49
natefinchit sort of seems like our only options are:  make a v6 (or something) that uses gopkg.in (which is bad because it's not actually a later version than v5)....  or just make a new repo called github.com/juju/charm.v4.1.22 and have go get point to the head of that repo.  Which is ugly, but works.18:50
niemeyernatefinch: You mean pointing v4 to something other that v4, despite the fact you have a branch or tag explicitly named v4?18:50
natefinchniemeyer: right, so, we have code later in the v4 branch that we don't want to include in 1.22, but we need a change on top of what we're using in 1.22's pinned version of v418:51
niemeyernatefinch: You can have a tag v4.1 for example18:52
niemeyer(or a branch)18:53
niemeyerThis is well documented at http://gopkg.in, under "Version number"18:53
natefinchniemeyer: but won't gopkg.in serve up that branch if you ask for gopkg.in/juju/charm.v4?18:53
natefinchniemeyer: I assume we have other code that will ask for charm.v4 that wants the actual v4 branch18:54
niemeyernatefinch: v4.1 > v418:54
niemeyernatefinch: so the change is incompatible?18:55
mupBug #1427257 changed: Juju backup doesn't contain .juju files <backup-restore> <cts> <juju-core:Won't Fix> <https://launchpad.net/bugs/1427257>18:55
mupBug #1436930 changed: juju ssh --debug is not showing full ssh command used <juju-core:Invalid> <https://launchpad.net/bugs/1436930>18:55
niemeyernatefinch?18:59
natefinchniemeyer: it's not incompatible.  it's actually just in the license, so it doesn't affect the code at all.  I guess if we branch, add the new commit, and then merge over the later changes from v4, that should work, as long as the commit numbers stay the same in the new branch19:00
ericsnownatefinch: so v4.1 will effectively be an earlier revision than v4...19:00
natefinchit's a matter of making sure that existing code that targets v4 will still be able to use the same commit numbers to pin their code to the same functionality19:02
natefinchif gopkg.in delivers a different branch without those revisions, godeps will try to update to the revision and fail19:02
natefinchericsnow: v4.1 will be identical to v4 with one inserted revision in the "past" which thankfully will be in a file that no one else should be touching.19:03
ericsnownatefinch: so if we weren't using gopkg.in none of this would be a problem...19:04
niemeyernatefinch: So there's no reason for people to want the "old v4"..19:04
niemeyerAlso, git has no commit number, precisely because they are not stable19:05
niemeyerSo you can just branch off and tag19:05
natefinchericsnow: not really... because gopkg.in is the only thing letting us use branches at all19:05
niemeyerericsnow: If we had no juju, none of that would be a problem as well.. In fact, without computers we'd have no software problems whatsoever! Hmm..19:07
ericsnowniemeyer: :)19:07
cheryljericsnow, natefinch:  Should I make the changes to dependencies.tsv for the other repos?  or wait until names and charm have the new repo?19:13
jw4what... no one want's master unblocked? c'mon http://reviews.vapour.ws/r/1291/ :)19:13
jw4s/want's/wants/19:13
ericsnowcherylj: I say just wait until all the ducks are lined up19:13
cheryljericsnow: okay, I'm going to grab some lunch.  bbiab19:14
mgzjw4: oooo19:16
jw4mgz: :)19:16
mgzyou are still a master of getting things to break19:16
jw4uh oh19:17
mgzjw4: landit19:17
jw4mgz: gratzie19:17
mgzjw4: so, what's still a mystery to me is what changed19:20
jw4mgz: yeah, me too!19:20
jw4I can't figure out anything significant that changed19:20
mgzthose methods are all old, which makes me suspect something on the stilson machine got twiddled... which matches the env you have, but not the one I have19:20
jw4mgz: I know I'm completely up to date in 14.04 with latest packages  maybe something recent was installed that perturbed the force19:21
mgzwell, that's worth checking19:23
mgzI don't have a new go or gcc incomimg, but do have a bunch of other packages to update19:24
jw4mgz: only possibility I see so far is libc6 which was updated on my machine late Februrary19:30
jw4version 2.19-0ubuntu6.619:30
* jw4 makes lunch for kids19:31
mupBug #1437015 was opened: debug-log contains leader-election messages even when feature not enabled <landscape> <juju-core:New for fwereade> <https://launchpad.net/bugs/1437015>19:37
voidspaceg'night all19:50
mupBug #1436507 changed: sporadic test failure: FilterSuite.TestMeterStatusEvents <ci> <intermittent-failure> <juju-core:Invalid by cmars> <https://launchpad.net/bugs/1436507>20:07
mupBug #1437021 was opened: 1.23b2 some charms only listening on IPv6 <landscape> <juju-core:Triaged> <https://launchpad.net/bugs/1437021>20:07
ericsnowcmars: thanks for looking into that bug20:19
cheryljI'm getting "local error: bad record MAC" when I'm trying to merge changes on 1.22.  Any ideas what's causing it / how I can work around it?20:55
=== jog_ is now known as jog
jw4cherylj: I"m pretty sure that's an environmental issue - usually folks just retry21:04
wallyworldcherylj: that's a known bug with mongo 2.421:04
cheryljthanks, jw4.  I was getting concerned as I've already retried a few times :)21:04
cheryljI'll keep at it.21:04
wallyworldwon't be fixed in the 2.4 series AFAIK21:04
cheryljthanks, wallyworld21:05
mupBug #1383346 changed: Remove rsyslog configuration from agent/units  <cts-cloud-review> <logging> <rsyslog> <juju-core:Invalid> <https://launchpad.net/bugs/1383346>21:11
mupBug #1437038 was opened: 1.23b2 fails to get IP from MAAS for containers, falls back to lxcbr0 <juju-core:New> <https://launchpad.net/bugs/1437038>21:11
mupBug #1437040 was opened: unit test failure: TestNewDefaultServer.N40_github_com_juju_juju_cert_test.certSuite <ci> <juju-core:Triaged> <juju-core 1.22:Triaged> <juju-core 1.23:Triaged> <https://launchpad.net/bugs/1437040>21:11
cheryljericsnow:  what's the verdict about new names / charm branches for this licensing issue?  I haven't seen any further discussion21:22
ericsnowcherylj: natefinch and I chatted about it and determined we can just go with a 1.22 branch (like we've done for utils), even with charms21:23
cheryljericsnow: ok, cool.   Who's on the hook for creating that?  :)21:25
ericsnowcherylj: I'm not sure how we handle new branches on github21:26
ericsnowcmars: do you know? ^^^21:26
cmarswhat's the branch we want to create?21:27
cmarsericsnow, cherylj ^^21:27
ericsnowcmars: on the charms repo, 1.2221:28
cmarsoh21:28
ericsnowcmars: we needed on the names repo too (right, cherylj?)21:28
cmarsericsnow, cherylj, github.com/juju/charm, you mean?21:29
ericsnowcmars: we already have one on the utils repo21:29
cmarsericsnow, why are we branching dependent projects in lockstep with juju?21:29
cmarscherylj, ^^21:29
ericsnowcmars: we need changes at the revision on which 1.22 depends21:30
ericsnowcmars: and not get newer changes on the repos21:30
cmarsericsnow, run godeps from the juju 1.22 branch?21:30
ericsnowcmars: right, and we need a fix on top of that revision21:31
ericsnowcmars: (fix the LICENCE file)21:31
mupBug #1277086 changed: Add redirection of the logs to remote rsyslog server <cts> <cts-cloud-review> <feature> <juju-core:Invalid> <https://launchpad.net/bugs/1277086>21:32
mupBug #1393434 changed: juju resolved -r does not solve hook error after node failure <cts> <resolved> <juju-core:Invalid> <https://launchpad.net/bugs/1393434>21:32
cmarsericsnow, oh, ok. well, if its in another project, perhaps juju-1.22 is a better name for the branch, as it indicates the consumer of the branch. 1.22 is probably fine21:32
ericsnowcmars: I feel the same way, but natefinch suggested we repeat what we did for utils (just "1.22")21:33
cmarsericsnow, wfm, we'll all probably know what that means :)21:33
ericsnowcmars: k21:33
cmarsericsnow, cherylj ok, so hows about i make the branches on these two projects off the 1.22 revnos in that godeps, and then y'all can propose PRs into them?21:34
ericsnowcmars: I'm just not sure how to create a branch on github (with the bot and all)21:34
cmarsi think I can push into them. let's find out!21:34
ericsnowcmars: :)21:34
cheryljcmars: sounds good, let's give it a try :)21:34
cmarsericsnow, i'm not sure how things land in those projects. uiteam owns juju/charm, perhaps sinzui knows about how the bot lands things into names21:35
ericsnowmgz: ^^^ ?21:35
mgzjw4: yeah, I can do that21:36
mgzericsnow: ^21:36
mgzcmars should be able to as well21:36
ericsnowcmars: you got that? ^21:36
cmarsyep21:36
mgzthe bot handles branches just as-is21:36
mgzcreate on github, propose merge against that branch rather than master, bot will pick up, test, and land against the right thing21:37
ericsnowmgz: that's what I figured21:37
mgzjuju/charm isn't gated currently, because of the multi-team overlap and no okay on it, so that can just me merge-buttoned on the pr page21:38
mgzbut we probably do want to gate it as well21:38
cmarsericsnow, cherylj you can propose the change to juju/charm with a PR into the v4 branch. that import uses gopkg anyway, so a 1.22 branch won't work for that one21:41
cmarsericsnow, cherylj i'll push a 1.22 branch for names21:41
ericsnowcmars: a 1.22 branch should work fine for the charm repo21:42
ericsnowcmars: natefinch checked this earlier21:42
cmarsericsnow, ah, sneaky21:42
cmarsericsnow, yeah, i can see how that might work21:42
cmarsok21:43
cheryljhehe21:43
ericsnowcmars: yeah, so we'll do the same thing for both21:43
cmarscherylj, ericsnow ok, created your branches. propose PRs and I can push the button if landing bot can't do it21:49
cheryljcmars: ok, just a minute...21:49
cheryljwhile I'm in here, I see that charm also has the "v3 and later" verbiage.21:51
cheryljjam, should charm also be using AGPL v3 (and not later)?21:51
cmarscherylj, jam is probably well past eod21:54
* cmars looks at the charm history21:54
cheryljok, I suspect to be safe we should restrict it to v321:55
mgzokay, so I remember, the issue with juju/charm is it doesn't work with all tips, but has a complex dep tree21:55
mgzso, is one of the projects that really needs its own dependencies.tsv21:55
cmarscherylj, +1, that's always the best way to go. if we like v4 we can relicense to say "v3 or v4"21:55
cheryljcmars: ok, I'm going to make that change here as well, then21:56
cmarscherylj, awesome, thanks!21:56
mgzcmars: I hate that approach in general, but the argument was had and ze top dislikes "or later"21:56
cheryljcmars: okay, I have the PR: https://github.com/juju/charm/pull/10522:00
cheryljI'll work on names now too22:01
mupBug #1414364 changed: juju 1.21 and 1.22 have conflicting product json rules <metadata> <juju-core:Won't Fix> <juju-release-tools:Fix Released by sinzui> <https://launchpad.net/bugs/1414364>22:02
mupBug #1427879 changed: juju cannot deploy when distro-info-data gets a new series <deploy> <series> <juju-core:Fix Released by wallyworld> <juju-core 1.22:Fix Committed by wallyworld> <juju-core 1.23:Fix Released by wallyworld> <https://launchpad.net/bugs/1427879>22:02
cmarscherylj, i'm sorry, i can't land these22:03
cmarshttps://www.gnu.org/licenses/gpl-howto.html22:03
cmars"You should also include a copy of the license itself somewhere in the distribution of your program. All programs, whether they are released under the GPL or LGPL, should include the text version of the GPL. In GNU programs the license is usually in a file called COPYING."22:04
cmarscherylj, who wants these changes?22:05
cheryljcmars: https://bugs.launchpad.net/juju-core/+bug/143597422:05
mupBug #1435974: Copyright information is not available for some files <juju-core:In Progress by cherylj> <juju-core 1.22:In Progress by cherylj> <juju-core 1.23:In Progress by cherylj> <https://launchpad.net/bugs/1435974>22:05
cheryljcmars: I need to go eat dinner with my family, but I'll be back soon.  I'll do whatever is deemed appropriate for these licensing changes, but maybe there needs to be a conversation held to make sure everyone's on the same page22:06
cmarscherylj, i'm marking this won't fix22:07
cheryljcmars: okay, but there are a lot of changes already landed for it.22:08
cmarscherylj, then i'll wait for the response there22:08
cheryljok22:08
mupBug #1414364 was opened: juju 1.21 and 1.22 have conflicting product json rules <metadata> <juju-core:Won't Fix> <juju-release-tools:Fix Released by sinzui> <https://launchpad.net/bugs/1414364>22:08
mupBug #1427879 was opened: juju cannot deploy when distro-info-data gets a new series <deploy> <series> <juju-core:Fix Released by wallyworld> <juju-core 1.22:Fix Committed by wallyworld> <juju-core 1.23:Fix Released by wallyworld> <https://launchpad.net/bugs/1427879>22:08
wallyworldwaigani: hey there, have you seen bug 1436925 ? was raised recently against 1.23 beta1, might have been fixed already, but if not, is critical for 1.2322:13
mupBug #1436925: juju status complains "config has no UUID" when no .jenv is present <canonical-is> <regression> <status> <juju-core:Triaged> <juju-core 1.23:Triaged> <https://launchpad.net/bugs/1436925>22:13
waiganiwallyworld: no, I didn't see that. I'll look into it now.22:14
wallyworldty22:14
waiganiwallyworld: thanks for the head's up22:14
mupBug #1414364 changed: juju 1.21 and 1.22 have conflicting product json rules <metadata> <juju-core:Won't Fix> <juju-release-tools:Fix Released by sinzui> <https://launchpad.net/bugs/1414364>22:14
mupBug #1427879 changed: juju cannot deploy when distro-info-data gets a new series <deploy> <series> <juju-core:Fix Released by wallyworld> <juju-core 1.22:Fix Committed by wallyworld> <juju-core 1.23:Fix Released by wallyworld> <https://launchpad.net/bugs/1427879>22:14
ericsnowwallyworld: thanks for following up on that :)22:14
wallyworldsure22:15
axw_niedbalski: pong22:53
mupBug #1427257 was opened: Juju backup doesn't contain .juju files <backup-restore> <cts> <juju-core:In Progress> <https://launchpad.net/bugs/1427257>23:02
mupBug #1427257 changed: Juju backup doesn't contain .juju files <backup-restore> <cts> <juju-core:In Progress> <https://launchpad.net/bugs/1427257>23:08
SpizmarWould this be the appropriate place to ask questions on charm setup of cgi-bin scripts?  Not on the script, but on setting up cgi-bin in the charm?23:13
mupBug #1427257 was opened: Juju backup doesn't contain .juju files <backup-restore> <cts> <juju-core:In Progress> <https://launchpad.net/bugs/1427257>23:14
waiganiwallyworld: I think bug 1436925 is invalid, I've added a comment23:28
mupBug #1436925: juju status complains "config has no UUID" when no .jenv is present <canonical-is> <regression> <status> <juju-core:Triaged> <juju-core 1.23:In Progress by waigani> <https://launchpad.net/bugs/1436925>23:28
wallyworldwaigani: the issue is, 1.23 *must* be able to talk to envs without a jenv23:30
wallyworldfor backwards compatability23:30
wallyworldas noted in the bug - "Since 1.18.4 supports environments that lack jenvs,"23:30
wallyworld backwards-compatibility requires current jujus to support that.23:31
wallyworldso it does need to be fixed23:31
wallyworldthis bug was raised by our IS people and they have a broekn production system because of it23:32
waiganiwallyworld: okay. So we need to make a 1.23 client work without a .jenv file?23:33
wallyworldwaigani: yes, also see bug 143642123:34
mupBug #1436421: (1.20.11, 1.21) juju status panics when no .jenv is present <canonical-is> <panic> <status> <juju-core:Invalid> <juju-core 1.20:Won't Fix> <https://launchpad.net/bugs/1436421>23:34
waiganiYeah, I'm looking at that one23:34
wallyworldthe panic is gone but it still doesn't work23:34
wallyworldaccording to the bug if i read correctly23:34

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