/srv/irclogs.ubuntu.com/2016/03/18/#juju-dev.txt

menn0wallyworld: tyvm for the review. You're right about the logging/error handling. I'll improve it.00:03
wallyworldmenn0: bp, i got distracted and didn't let you know i had done ir, sorry00:03
wallyworld*np00:03
menn0wallyworld: np, I was busy with the next thing anyway00:04
axwwallyworld: are you working on any of those bugs? just don't want to double up01:19
wallyworldaxw: i had good intentions but haven't started yet01:20
wallyworldare they legit issues?01:20
axwwallyworld: nps. yes, I think so.01:20
wallyworldok01:20
axwwallyworld: actually, create-model would not work on master for manual either01:28
axwwallyworld: but meh, I can fix it on admin-controller-model with one line change01:28
wallyworldaxw: that was the point i tried to make and they were not wanting to ack that01:28
wallyworldok that would be good01:28
anastasiamacaxw: there is also a bug for create-model on azure bug 155876901:32
mupBug #1558769: unable to create-model in azure <juju-core:New> <https://launchpad.net/bugs/1558769>01:32
anastasiamacaxw: is it related and will b fixed by the one line change above? :D01:33
axwanastasiamac: I saw, thank you. I think wallyworld already fixed it, but I'll double check01:33
anastasiamac\o/01:33
axwanastasiamac: nah, the manual one is specific to manual01:33
anastasiamacaxw: thnx :D01:33
axwwallyworld: sorry, actually, the problem is worse on admin-controller-model. you can't even bootstrap, because we try to create a hosted model automatically01:43
wallyworldaxw: understood. but root cause comes form master01:44
wallyworldthe test would have seem it if they had existed01:44
wallyworldseen01:44
axwwallyworld: you can't create-model on master, you can't even bootstrap on this branch. yes, we would have caught it earlier if we tested create-model in all substrates01:44
wallyworldaxw: indeed. but i want to snure the bug is correctly targetted - i am tired of pushback to fix issues in feature branches which blocks work where the root cause comes from master01:46
mwhudsonoh yeah i found https://tracker.debian.org/pkg/golang-golang-x-tools yesterday i think01:47
mwhudsonwhoops01:48
axwwallyworld: just a few more small things on the PR02:38
wallyworldok02:38
wallyworldaxw: the maas agent-name thing is because we grab the controller model and end up calling PrepareForCreateEnvironment() which doesn't like the agent name being there02:39
wallyworldi need to rework it a bit02:39
axwwallyworld: okey dokey02:39
axwwallyworld: I thought we didn't copy across attrs if they were restricted?02:40
axwor ... non restricted02:40
wallyworldaxw: that could be - but it seems we do now02:41
wallyworldlikely a bug from me supporting new create model02:41
axwwallyworld: possibly also in the code I added to agent/agentbootstrap02:44
wallyworldyeah, it won't taje much to fix i don't think02:44
wallyworldaxw: http://reviews.vapour.ws/r/4222/03:13
axwwallyworld: looking03:14
axwwallyworld: I'm looking at the other bug btw03:14
wallyworldta03:14
axwwallyworld: I think your change means the credentials won't be copied across03:15
axwwallyworld: and things from --config03:15
wallyworldisn't the stuff in --config in HostedModelConfig arg?03:16
axwI don't think so, but I'll check03:16
wallyworldi may need to do credentials though03:16
axwwallyworld: nope, it's not03:16
wallyworlddamn, what is in that arg?03:16
axwwallyworld: model name, uuid03:17
axwwallyworld: it's set in cmd/juju/commands/bootstrap.go03:17
wallyworldhmmm, ok. may need to add the --config to that arg then maybe03:17
axwwallyworld: and credentials...03:17
wallyworldyup03:17
axwwallyworld: problem is how to separate credentials from things like maas-agent-name03:18
wallyworldon bootstrap we don't need to worry right?03:18
wallyworldand it's taken care of in create model that is used by create-model command03:19
wallyworldmaas-aganr-name is add in PrepareForCreateEnvironment. on bootstrap, it won't be there in passed in config, or will error if it is. in create-model we create a skeleton config03:20
axwwallyworld: how are you going to get the credential attrs?03:20
wallyworldneed to look into that03:21
axwwallyworld: rhetorical question. the answer is (currently) to call EnvironProvider.BootstrapConfig03:21
axwwallyworld: that adds the credential attrs to the config given a cloud.Credential03:22
wallyworldok03:22
axwwallyworld: ... but it also adds maas-agent-name03:22
wallyworldah damn ok03:22
axwwallyworld: I think what we could is this: call RestrictedConfig, make sure we include those, and delete anything that's not passed in via --config03:23
wallyworldexcept for credentials maybe03:23
axwwallyworld: I was thinking they're restricted... but yeah, they're not03:24
axwle sigh03:24
wallyworldsigh indeed, i found out the same thing03:24
wallyworldaxw: it's all good. all i need to do is include --config in the hosted model config arg. (c ModelConfigCreator) NewModelConfig does the right thing with credentials03:36
axwwallyworld: ah, I see03:38
axwwallyworld: uhm, although, it's kinda wrong :/03:39
axwwallyworld: those credential attributes are not supposed to map 1:103:39
wallyworldthey sort of do atm in common usage03:40
wallyworldbut they don't have to that's true03:40
axwwallyworld: they do atm, but it's an abstraction breakage, and means we're buggered if we change something03:40
wallyworldyep03:40
axwwallyworld: I think we may need something on EnvironProvider to identify which things to carry across03:41
wallyworldwas a quick win, we need to fix the tech deby03:41
wallyworldsolves the common case for admins creating new models03:41
axwwallyworld: or we update PrepareForCreateEnvironment to take a Credential too03:41
wallyworldthat might be better03:41
axwwallyworld: or ... maybe separate BootstrapConfig even further to convert Credential to attrs03:42
wallyworldor that03:42
axwwallyworld: main problem is that some cloud.Credentials only make sense at the client (e.g. ones that refer to files)03:43
wallyworldindeed03:43
axwtho we should convert them03:43
wallyworldwe need to think it through03:43
axwwallyworld: https://bugs.launchpad.net/juju-core/+bug/1558803/comments/103:44
mupBug #1558803: Manual deploy on ppc64el wants wrong package and agents <ci> <manual-provider> <ppc64el> <regression> <juju-core:Incomplete> <juju-core admin-controller-model:Triaged> <https://launchpad.net/bugs/1558803>03:44
wallyworldthe file values are parsed server side, need to do that client side03:44
wallyworlddid you find an issue?03:45
axwwallyworld: a pretty minor one - see comment03:45
axwwallyworld: I've regargeted and lowered importance03:50
wallyworldaxw: sorry, got pinged still to look03:50
wallyworldaxw: it's not even relevant to admin controller branch is it03:51
axwwallyworld: no, I've removed that03:51
wallyworldah cool03:51
axwwallyworld: and set the medium, and removed regression tag03:51
* wallyworld hits refresh03:51
menn0axw or wallyworld: http://reviews.vapour.ws/r/4223/ please03:52
wallyworldmenn0: i can look in a bit, just wip atm03:52
menn0wallyworld: thanks03:53
axwin that case, I'll go get lunch03:53
jamwallyworld: quick ping. Do you remember how to tell a test what tools to use? It looks like EC2 tests were relying on side-effects from some other test to set up tools03:54
wallyworldjam: that has recently changed, we were relying on cloud (provider storage) which is gone. rthere are helpers to uplod tools to state03:58
wallyworldi can look up the methods03:58
jamwallyworld: so with my recent change to fix SetUp stuff, provider/ec2 is not finding tools. It looks like the FakeVersionNumber is 1.99.0 but it only sees 2.0-beta3 tools in the faked out location.03:59
jamlooks like something is faking out tools before we fake out the version number03:59
jamtrying to sort out where that may be03:59
wallyworldjam: i'll take a look, i am not deeply familiar as i didn't see the final code04:00
jamenvirons/jujutest/livetests.go SetUpTest looks like it is doing the right thing (calls FakeVersionNumber before it calls UploadFakeTools)04:00
jamwallyworld: k, I have the feeling this is old semi-rotten code04:00
wallyworldaxw: pushed new changes to that maas fix04:00
jamah, maybe its me04:00
jamI moved one of the PatchValue calls04:00
wallyworldah04:01
jambecause it was happening before SetUp04:01
wallyworldjoy04:01
jamwhich is unsafe, because we haven't called IsolationSuite.SetUp yet04:01
wallyworlda lot of the tests rely on patching version04:01
mupBug #1558901 opened: TestAddLocalCharmSuccess read has been closed <ci> <go1.5> <go1.6> <intermittent-failure> <juju-core:Triaged> <https://launchpad.net/bugs/1558901>04:01
jamso we haven't told it what test we're about to run. I think I can just patch for the lifetime of the Suite and we'll be ok04:01
wallyworldi think that souuds ok04:02
jamnope... :(04:02
jamwallyworld: we had a lot of tests that were doing "SetUpSuite() { base.SetUpTest() }"04:03
jamthose were interesting.04:03
wallyworldwot?04:03
wallyworldwow04:03
wallyworldi hope i didn't write any04:03
jamwallyworld: FakeXDGHomeDir was one of them04:04
jamapparently broken since 2014 according to blame.04:04
wallyworldhuh. thats actually old code renamed04:04
jamwallyworld: yeah, a bunch of our base infrastructure was actually wrong.04:04
wallyworldat yeast it will be right now :-)04:04
jamwallyworld: BaseSuite.SetUpSuite() was calling PatchValue(utils.OutsideAccess)04:05
wallyworldlol yeast. i can' type04:05
jamwhich would be reset on the first test that ran04:05
jamexcept we leaked it somewhere early04:05
jamso it was always false04:05
wallyworldoh dear04:05
anastasiamacwallyworld: axw: before I can bootstrap master tip on my openstck, I need to add-cloud and i guess add-credential04:05
jamso it was Correct, but for the wrong reasons.04:05
jamanyway, provider/ec2 is the last bastion of failing tests, so I'm close.04:05
anastasiamacwhere do I put auth-url? in my-cloud.yaml or my-credential.yaml?04:06
wallyworldanastasiamac: that's a credential attribute04:06
anastasiamack04:06
wallyworldanastasiamac: if you have a novarc and master, it will auto detect04:06
jamwallyworld: auth-url isn't that what URL to hit which is a cloud attribute?04:06
jam(souds like a per-region attribute)04:06
wallyworldjam: we have endpoint url which i think is different but i haven't look specifically at openstack for a bit so could be misremembering04:07
wallyworldjam: but i think you may be right04:08
anastasiamacwallyworld: I have novarc but do I need to have it somehwere in a special place?04:08
wallyworld~/.novarc04:09
anastasiamac:D04:09
anastasiamacso in this case, I do not need to add-credentials?04:09
cheryljCan I get a review?  https://github.com/juju/juju/pull/478304:10
cherylj(this is for the restore failure on master)04:10
wallyworldjam: yes, i looked at the code and confirmed you are right04:11
wallyworldcherylj: looking04:11
cheryljthanks, wallyworld.  I had to shuffle things around to be able to mock out stuff for testing04:12
cheryljturns out that there really aren't tests for restore :(04:12
jamwallyworld: ... provider/ec2/ LocalLiveTests embeds LiveTests but doesn't call LiveTests.SetUpTest()04:15
wallyworldwin04:15
axwanastasiamac: if you have ~/.novarc, or if you just source your novarc in your shell, you can do "juju bootstrap <controller> openstack"04:16
wallyworldcherylj: only ci tests it seems04:16
cheryljyeah04:16
axwwallyworld: eating lunch, will look again soon04:16
wallyworldnp, thanks04:17
jamcherylj: why is there a "fakeEnviron" in live code?04:17
cheryljjam: for mocking out the environ in the test.  We only set it in tests04:18
axwwallyworld: actually I can review that while eating :)04:18
axwLGTM04:18
anastasiamacaxw: i have both ~/.novarc and sourced it in the shell, but when I "juju bootstrap <my controller> openstack" I get "ERROR missing auth-url not valid04:18
anastasiamac"04:18
axwanastasiamac: that would suggest you're missing OS_AUTH_URL from the file04:19
axwanastasiamac: where did you get the novarc file from?04:19
jamcherylj: have you done manual testing of an environment that really hasn't ever existed?04:19
anastasiamacaxw: it would... but I don't04:19
anastasiamacit's in the file04:19
anastasiamacthat was supplied04:20
axwoh, that's odd04:20
axwanastasiamac: does it have "export OS_AUTH_URL" in it per chance?04:20
axwanastasiamac: wallyworld fixed a bug yesterday to do with that04:20
axw:q04:20
axwoops04:20
anastasiamacaxw: yes, everything in the file has an export... and m running from master tip as of 1hr ago :D04:21
wallyworldcherylj: i've made a request to alter things slightly to better set up for testing04:22
axwanastasiamac: ok then, I dunno. sounds like a bug04:22
wallyworldaxw: anastasiamac: it's a bug that's been there for a while04:23
axwanastasiamac: try moving the file away from ~/.novarc and sourcing it, and see if that makes a difference04:23
wallyworldDetectRegions() only calls CredentialsFromEnv()04:23
jamcherylj: reviewed.04:23
wallyworldnot the new DetectCredentials() code04:23
axwwallyworld: anastasiamac said she sourced it as well tho04:23
wallyworlddon't believe it :-)04:24
wallyworldsince that should have worked04:24
anastasiamacwallyworld: right....04:24
wallyworldunless there's a 3rd problem04:24
wallyworldi think openstack has been used with beta2 which is where sourcing the novarc would have been required04:25
anastasiamacwallyworld: m so calling u for that!04:25
axwjam: any idea why SetInstanceStatus is so slow? it's all local, so should be super fast :(04:35
jamaxw: I don't know specifically, but IIRC the spec wanted to rate limit charms calling it04:35
jamgiven how accurate it is to 1.0s04:35
jamI think its just a time.Sleep somewhere.04:36
axwjam: ok, I'll dig. we should probably use the ratelimit package with a token bucket04:37
jamwell, it could be that, too. I just get the feeling it is explicitly limiting itself, which interacts poorly with fast downloads and a set number of events04:38
jamwallyworld: and now the test suite "passes" but a test is taking 60s, investigation looks like it is accessing my EC2 credentials and launching a real instance...04:54
jam(ec2.localLiveSuite) not so local04:55
wallyworldjam: localLive tests, from memory, are run both local and live04:55
wallyworldthat distinction goes waaaaaay back04:55
wallyworldi wish we dropped live tests, we don't need them now04:56
wallyworldi guess they were added for juju 0.1 before we had CI04:56
cheryljwallyworld: Can you take another look?  http://reviews.vapour.ws/r/4224/05:06
cheryljwallyworld: Also, I think that the backup / restore commands should be controller commands, not model commands05:07
cheryljbut that's outside the scope of this PR05:07
wallyworldcherylj: looking05:09
wallyworldcherylj: thanks for that fix. ideally we'd not have the func as an arg to NewRestoreCommand. There'd be a NewRestoreCommandForTest() in export_text. see detectcredentials.go in juju/cmd/juju/cloud and also the NewDetectCredentialsCommandForTest in export_test.go05:13
cheryljwallyworld: ok, I see.  Give me a few and I'll update it05:15
cheryljwallyworld: okay, maybe 3rd time's the charm05:22
wallyworld:-)05:22
wallyworldlooking05:22
wallyworldcherylj: very small issue, lgtm05:26
cheryljha, sorry it's taking so long.  I'm so very tired05:26
jamwallyworld: hm, looks like it isn't talking to EC2, just that we have a 60s timeout waiting for a security group that is being used to be released05:29
jammaybe a setup was supposed to be changing that timeout05:30
jam(just ran in offline mode and had the same result)05:30
wallyworldcould be05:30
wallyworldwe have so many tests with clocks to fix05:30
wallyworldcherylj: indeed, you should not be at work05:30
cheryljand with that...  bedtime05:31
wallyworldsee ya05:31
wallyworldaxw: also, i did end up needing to remove all the CompatSalt stuff yesterday, as bootstrap still relied on it and it needed to be killed05:32
axwwallyworld: cool05:32
axwwallyworld: does it need re-reviewing?05:32
wallyworldaxw: nah, was 99% cut05:32
wallyworldi tested live05:32
axwwallyworld: sounds good05:33
wallyworldi tested i could log into mongo console from machine 0 as well as a deployment05:33
wallyworldaxw: awesome, the interactive add credential branch doesn't appear to compile on go 1.205:54
axwwallyworld: ? :/05:55
wallyworldcompiles and runs locally05:55
wallyworldhttp://juju-ci.vapour.ws:8080/job/github-merge-juju/6912/console05:55
wallyworldi'll have to get go 1.2 to repro05:55
wallyworldunless i'm being dumb05:56
axwwallyworld: nothing obvious to me05:57
wallyworldsigh05:57
jamwallyworld: k. there is definitely a problem with 60s to destroy, but it exists in Master as well, so my code is better than previous05:59
wallyworldjam: i've found and fixed a few bad tests lately too. our code has many :-(06:00
mupBug #1558924 opened: provider/ec2 localLiveSuite.TestGlobalPorts localLiveSuite.TestStartStop takes 60s <tech-debt> <testing> <juju-core:Triaged> <https://launchpad.net/bugs/1558924>06:08
wallyworldaxw: am merging master into admin-controller-model... soooo many conflicts \o/07:25
wallyworldwill have to finish after soccer07:25
axwwallyworld: thank you07:25
axwwallyworld: my current status is refactoring modelcmd/juju code in between bouts of sneezing07:26
axwneed to refactor so I can pass in alternative credentials07:26
wallyworldok07:26
wallyworldi still need to install go 1.2 and resolve that other issue also07:27
anastasiamacaxw: is this ur juju allergies making u sneeze? :P08:07
axwanastasiamac: naw, got a sleep-deprivation induced cold I think08:08
anastasiamacaxw: :( sounds awful08:10
voidspacefrobware: ping09:22
frobwarevoidspace: pong09:22
frobwarevoidspace: I pushed your branch09:22
voidspacefrobware: yeah, I see it09:22
voidspacefrobware: no CI run yet though09:23
frobwarevoidspace: as upstream/drop-maas-1.8-support-from-juju209:23
frobwarevoidspace: nope...09:23
voidspacefrobware: I'm writing up a high-level sketch of the maas 2 work09:23
frobwarevoidspace: but then again our multi-nic branch only only started running this morning09:23
frobwarevoidspace: thanks! \o/09:24
voidspacefrobware: the gomaasapi test server needs not far short of a full rewrite, so that's not a small chunk of work09:24
voidspace:-/09:24
voidspacefrobware: I think a new one, with some shared code, will be cleaner than a single implementation or an interface based approach09:24
frobwarevoidspace: given the time remaining is that at all feasible? Or even desirable?09:26
voidspacefrobware: I think it's the only reasonable approach09:28
voidspacefrobware: the TestServer has about thirty attributes, most of which won't be used for 2.009:28
voidspacefrobware: so a monster with 60 fields and branches in every method will be impossible to work on09:29
voidspacefrobware: that's what I think09:29
voidspacefrobware: a lot of the code can be shared (all the endpoint stuff)09:29
voidspacefrobware: but maybe there's a middle ground somewhere09:29
perrito666wallyworld: https://github.com/juju/juju/pull/4761 but for some reason rb didnt pick it, perhaps the conflict?09:30
frobwarevoidspace: realistically I think we should consider that middle ground, otherwise the potential of adding new bugs is a concern09:30
voidspacefrobware: I don't think hugely branching code is less likely to introduce bugs09:31
voidspacethat's my worry09:31
voidspaceanyway09:32
TheMuemorning09:32
voidspaceTheMue: o/09:32
fwereadevoidspace, frobware, dimitern, dooferlad: would one of you please check the AddressAllocation test changes in jujud/agent, in http://reviews.vapour.ws/r/4110/diff/5/?page=2 ?09:42
fwereadeashipika, by the way, I am deeply suspicious of what github thinks about that branch -- I am planning to just apply the correct diff to MADE-model-workers in a new branch -- will that inconvenience you horribly?09:43
ashipikafwereade: nah, not really.. just give me the new branch and i'll rebase :)09:44
fwereadeashipika, cool, just a heads up :)09:45
ashipikafwereade: thanks!09:45
ashipikafwereade: when do you expect this to land?09:45
fwereadeashipika, I have a ship it, so hopefully today09:46
ashipikafwereade: \o/09:46
fwereadeashipika, although that's just onto MADE-model-workers, which needs to be updated with latest trunk and then make CI happy09:47
dimiternfwereade, looking09:48
voidspacefrobware: stdup?10:03
frobwarevoidspace: oops, sidetracked. omw10:03
fwereadedimitern, for reference: I dropped the skipped tests, and added one test that enables the feature flag and checks there's an address-cleaner worker running alongside all the usual ones10:10
fwereadedimitern, I called it address-cleaner because that seemed to be its main job, let me know if I misunderstood anything10:10
dimiternfwereade, that sounds good to me10:33
fwereadedimitern, ok, cool, will be submitting it as RB4225 in a few seconds then :)10:34
dimiternfwereade, go for it :)10:37
dimiternfrobware, voidspace, there's the fix for those panics: http://reviews.vapour.ws/r/4226/10:37
frobwaredimitern: will stash the lxd changes and try your PR now10:58
dimiternfrobware, cheers10:58
frobwaredimitern: do you know why in the container the device are not ifup'd?11:00
frobwaredimitern: I now have 3 nics, but without an ifup they have no addrs11:01
dimiternfrobware, hmm no idea - it works like that for lxc11:01
dimiternfrobware, maybe something is blocking the networking job to finish bringing them up? ntpdate lock contention?11:01
frobwaredimitern: will take a look after trying your changes11:02
dimiternfrobware, ok11:02
dimiternfrobware, btw I've realized we're lagging behind 2 major feature branch merges into master11:03
frobwaredimitern: I think we need to decide whether it makes sense to create one singular network profile, or one profile per container11:03
frobwaredimitern: this is an entropy judgement call11:04
dimiternfrobware, one per container seems to be the simplest option, considering the hwaddr needs to match11:04
frobwaredimitern: in my mind we should get the multi-nic branch back to the state of maas-spaces2, CI-wise.11:04
dimiternfrobware, I'm looking into how bad the conflicts are11:04
frobwaredimitern: then look at merging master11:05
dimiternfrobware, that's a good point11:06
dimiternfrobware, but if we lag too much behind it will only get harder11:06
frobwaredimitern: I know. but equally adding the unknown is ...11:07
frobwaredimitern: I think there's benefit in giving the OS folks a known state today11:07
frobwaredimitern: yes, the hwaddr forces that decision.11:08
dimiternfrobware, I wouldn't rush to do a merge today exactly for that matter11:09
dimiternhttp://paste.ubuntu.com/15413949/11:09
frobwaredimitern: so entropy level at lines 1..3624. :)11:11
dimiternfrobware, that's BS though as I did reset --hard FETCH_HEAD before, redoing it properly now11:12
dimiternfrobware, it's entirely not that bad: http://paste.ubuntu.com/15413972/11:15
frobwaredimitern: well, that's a lot better11:17
dimiternfrobware, it even builds, running make check now and a live test with the bundle11:17
frobwaredimitern: I think we need to decide how to spend the rest of the day; polish the branch and give it to OS folks, or merge and polish11:17
dimiternfrobware, I think those two are not necessarily mutually exclusive11:20
dimiternfrobware, OS folks can test the maas-spaces-multi-nic-containers + my proposed fix and the workaround bouncing the MA of machine-011:21
frobwaredimitern: ah, you still need to bounce the MA11:21
dimiternfrobware, yeah11:21
dimiternfrobware, if you're deploying containers on machine 011:22
frobwaredimitern: right11:22
frobwaredimitern: we can merge master; we can also give the OS folks a specific commit for testing. that would allow us to move on. thoughts?11:23
dimiternfrobware, we can give them a binary tarball to try, while we sync up with master (and assuming that does not cause a regression for multi-nic stuff)11:23
frobwaredimitern: thedac seemed happy with checkout a commit id last time; it's also easier if we want them to move to a different commit11:24
dimiternfrobware, fair enough11:24
dimiternfrobware, but otherwise I think that sounds like the plan for today?11:24
frobwaredimitern: great11:25
frobwaredimitern: ah... one other thing...11:25
frobwaredimitern: if we can first resolve the missing mac addr that would allow lxd end-to-end11:25
dimiternfrobware, right!11:26
frobwaredimitern: can you look at that next?11:26
dimiternfrobware, I'll look into that when I'm back ~1h11:26
frobwaredimitern: thanks!11:26
fwereadeashipika, MADE-model-workers is up to date with the model-agent-integration work11:26
dimiternand I'll leave the live test and make check going in the mean time11:26
frobwaredimitern: I have to say this is why I don't want to merge master: http://reports.vapour.ws/releases/377611:27
frobwaredimitern: multi-nic came from the tip of maas-spaces2 and that had only 2 failures11:27
frobwaredimitern: we should really get back to that state first11:27
dimiternfrobware, well, we touched a lot of places in the multi-nic branch11:29
dimiternfrobware, voidspace, btw a review on http://reviews.vapour.ws/r/4226/ will be appreciated :)11:30
* dimitern is out for ~1h11:30
ashipikafwereade: that's a feature branch i presume?11:30
frobwaredimitern: no issues with what we've changed; just for our own sanity bringing new stuff may make it harder to differentiate root cause analysis11:32
fwereadeashipika, yeah11:34
frobwaredimitern: getting closer with lxd: http://pastebin.ubuntu.com/15414021/11:36
frobwaredimitern: cannot login using juju ssh but can ordinarily. error fetching address for machine "0/lxd/0": private no address11:38
frobwarevoidspace: CI run 3777 is the drop-1.8 support.11:41
voidspacefrobware: ah, cool12:01
voidspacefrobware: lots blocked and a couple of build-binary failures12:02
voidspacefrobware: I'm looking at the failures12:02
voidspacefrobware: problems with lxc-start in the build binary12:04
frobwarevoidspace: log? link?12:04
voidspacefrobware: http://data.vapour.ws/juju-ci/products/version-3777/build-binary-wily-amd64/build-884/consoleText12:05
voidspacefrobware: same problem on build-binary-wily-arm6412:05
voidspacedoesn't *look* like a problem with the code12:05
voidspacethe logs are "terse" though12:05
frobwarevoidspace: check status of master too12:06
voidspacelooking12:06
voidspacefrobware: they succeeded on master12:06
voidspacefrobware: my guess is that other tests will be gated on the binary build being successful12:07
voidspacemgz: ping12:07
frobwarevoidspace: so it may depend on when you branched or did your checkout12:07
voidspacefrobware: was that a problem on master before?12:08
frobwarevoidspace: you would have to take a look back through the previous builds12:08
voidspacefrobware: failing to build the binary seems likely (to me) to be an infrastructure problem12:11
frobwarevoidspace: maybe mgz knows more12:13
tvansteenburghhey guys, i have a fresh xenial with a fresh juju 1.25.3. `ps -aef |grep juju` returns nothing. how do i get juju running, or figure out why it won't start?12:22
tvansteenburghnever mind, got it going again with the juju-clean plugin, sorry for the noise12:35
mupBug #1559062 opened: ensure-availability not safe from adding 7+ nodes, can't remove stale ones <juju-core:New> <https://launchpad.net/bugs/1559062>12:47
dimiternfrobware, voidspace, back again12:53
voidspacedimitern: welcome12:54
voidspacefrobware: that test run was useles, all the interesting tests were blocked by the build binary failure12:54
voidspacefrobware: waiting for comment on that from mgz12:54
frobwareyep12:54
dimiternvoidspace, frobware, so I after merging master into multi-nic, make check passes, and the live test with the bundle still works12:54
frobwaredimitern: if it was blessed I'm more inclined to say go with it. but it's not.12:56
dimiternfrobware, I'll propose it, but we don't have to merge right away..12:57
beisnerhi all - ? re: availability zones.  if we have maas machines set in different zones, should that zone be observable to juju via JUJU_AVAILABILITY_ZONE?13:05
frobwaredimitern: do you time to HO/sync? Can show you lxd stuff, some question re: mac addr and 'inet manual'13:07
dimiternfrobware, sure, just give me 10m13:08
frobwareok13:08
frobwaredimitern: let's make it 30 past the hour. I'll grab a very quick lunch.13:09
dimiternfrobware, sgtm13:09
perrito666pseudo morning all13:10
dimiternodd .. I couldn't open google calender for a long time..13:32
frobwaredimitern: sounds like a productivity win13:32
dimitern:D13:32
dimiternfrobware, I'm in today's standup HO13:33
frobwareomw13:33
mupBug #1559099 opened: JUJU_AVAILABILITY_ZONE not set in MAAS <juju-core:New> <https://launchpad.net/bugs/1559099>13:47
perrito666cherylj: are you around?13:51
cheryljperrito666: yeah, what's up?13:51
perrito666cherylj: silly question, actually two, 1) is master blocked on the restore bug and 2) where is the release note doc? I need to add a few bits13:52
cheryljperrito666: 1 - Yes, but I committed the fix last night.  Don't think that there's been a run on master since then.  Let me think about unblocking...13:53
cheryljperrito666: 2 - https://docs.google.com/document/d/1ID-r22-UIjl00UY_URXQo_vJNdRPqmSNv7vP8HI_E5U/edit13:53
perrito666cherylj: tx x 213:54
cheryljnp :)13:56
cheryljperrito666: did the keystone 3 support land?  (I think I saw that it did?)14:08
perrito666I didnt, lemme see if Ian land it14:08
perrito666ah yes, it got jfdone14:08
perrito666:p14:08
cheryljk, will update the blueprint14:09
perrito666ill update the release notes for all that landed these days14:09
cheryljperrito666: awesome!14:09
mupBug #1559131 opened: unable to add-credential for maas <conjure> <juju-core:New> <https://launchpad.net/bugs/1559131>14:18
katcoericsnow: natefinch: good morning... final day!14:22
katconatefinch: i see you got your PRs landed... grats! can you follow up with marcoceppi to see when they'll hit the deb?14:22
marcoceppikatco natefinch I'm planning on building those today in about 3 hours14:23
katcomarcoceppi: rock!14:23
natefinchawesome14:23
katcomarcoceppi: note that most of the commands will currently return errors b/c the charmstore endpoints don't actually do anything yet14:23
marcoceppikatco: yeah, I'm going to coordinate with uros14:24
marcoceppikatco: hopefully the store will be deployed today :\14:24
katcomarcoceppi: no, i mean even after uros deploys they still do nothing. the code hasn't been written14:24
marcoceppikatco: \o/ cool good to know I'll make sure when I announce that there is still backend code being worked on14:24
katcomarcoceppi: we are wrapping up some bug fixes in core, and then will be swinging onto implementing the charmstore stuff14:25
marcoceppikatco: is it just anything with --resources ?14:25
katcomarcoceppi: yeah i think that's a fair representation14:25
marcoceppikatco: awesome, thanks for the ehads up14:25
cheryljhey katco, I've updated the release table on the feature tracker page to address some of your feedback.  Can you take a look and let me know if it's a bit clearer now?  https://private-fileshare.canonical.com/~cherylj/juju-features-20.html14:25
katcomarcoceppi: anything here prepended by "charmer" https://github.com/CanonicalLtd/juju-specs/tree/master/resources/features14:25
katcocherylj: wow, i didn't even think to ask! ty that's great!14:26
katcocherylj: very clear14:26
mupBug #1559131 changed: unable to add-credential for maas <conjure> <juju-core:New> <https://launchpad.net/bugs/1559131>14:27
cheryljexcellent, thank you katco14:27
katcocherylj: no, really, ty14:27
perrito666are we actually writing markdown on a google doc?14:31
katcoperrito666: # katco's answer14:32
katcoperrito666: * Yes of course we are.14:32
katcoperrito666: * Why wouldn't we be?14:32
katcoperrito666: * It's md! Everyone knows markdown!14:32
katcoperrito666: * bullet point 414:33
perrito666its a google doc, it supports 20th century formatting, but besides that is less than ideal as a medium for md14:33
katcoperrito666: i know, i'm joking ;) i would think our release notes would be checked into our repo actually14:34
perrito666well apparently there is more people that knows md than git :p14:34
mupBug #1559131 opened: unable to add-credential for maas <conjure> <juju-core:New> <https://launchpad.net/bugs/1559131>14:36
TheMuemd is a _nice_ simple format14:43
natefinchperrito666: putting the release notes in git as MD would be amazing... PRs to add new sections, PRs for edits, you could actually see who added each piece etc14:43
TheMuenatefinch: +114:43
natefinchperrito666: I thnnk it's in docs for collaborative editing purposes and low barrier of entry14:43
natefinchperrito666: however, one would assume that people at a software company who use git all day would not be averse to using it a tiny bit more.14:43
natefinchalso... being able to preview your markdown to know it's doing what you expect would be nice.14:44
perrito666nothing says low barrier like a nice google doc full of markdown...14:44
natefinchlol14:44
katconatefinch: hey, don't think i even need to ask, but: you'll have your current card wrapped up today?14:45
TheMuegoogle doc containing html as plain text with a pre section of markdown14:45
natefinchkatco: should be, year.  It's touching more spots than I originally expected... there's a lot of layers of abstraction to add arguments to, but it's still pretty trivial14:46
natefinchs/year/yeah14:47
katconatefinch: cool... please also coordinate with marcoceppi to let him know eta for next build of charm deb14:47
katconatefinch: i'sok... i read it in a pirate voice as "yar!"14:48
natefinchkatco: haha14:48
katconatefinch: but seriously, work closely with marcoceppi on eta/progress, cool?14:50
natefinchkatco: yes14:50
* marcoceppi elmira hugs natefinch14:50
natefinchkatco: I think I misunderstood the card... I thought I was adding channels to juju charm list-resources14:51
natefinchkatco: there isn't a charm list-resources command AFAIK14:51
katconatefinch: gahhh you are correct and i am friday head14:52
natefinchkatco: oh good, I thought I was doing the wrong thing14:52
katconatefinch: the card is incorrect... i'll put a juju out in front14:52
natefinchkatco: sounds good14:52
katconatefinch: so the charm work you did already included channel support?14:52
natefinchkatco: yes, the UI team did the channel work there14:53
natefinchkatco: we just tacked resources on top of that14:53
katconatefinch: ok14:53
katcomarcoceppi: really i just like pinging you. false alarm, we are truly done with the charm command now.14:54
marcoceppikatco: I like feeling like I'm needed14:54
katco:)14:54
natefinchmarcoceppi: and I like hugs :)14:54
katcomarcoceppi: also i had to look up elmira... wow there's some neurons that hadn't fired in like 15 years14:55
marcoceppikatco: haha, yeah it's been a while but she def left an impression on me when I was younger14:55
natefinchmarcoceppi: aww, I misread it as elvira hug14:56
* katco spits out coffee14:56
marcoceppinatefinch: haha14:56
katcothat would be quite different14:56
natefinchindeed :)14:56
marcoceppielmyra* is apparently the spelling you should be searching with14:56
katcomarcoceppi: on a complete tangent: the shirts from the charmer's summit are great. material is very soft and design is awesome14:57
marcoceppikatco: thanks, we decided to them in house. we want people to actually like wearing them ;)14:57
katcohehe14:57
katcoif i could get a zip-up juju hoodie i would be so happy14:58
natefinchditto14:58
marcoceppiwhich means getting nice fabric14:58
katcoi think wwitzel3 made his own14:58
marcoceppithat's good to know, we'll keep that in mind for pasadena14:58
ericsnowkatco, natefinch: PTAL http://reviews.vapour.ws/r/4219/15:00
katcoericsnow: reviewing right now actually!15:00
ericsnow:)15:00
natefinchericsnow: looking15:00
ericsnowta15:00
katcoericsnow: natefinch: actually, since we're down to the wire here... just this once, can i ask that natefinch focus on getting his code written?15:01
katcoericsnow: natefinch: i'd like to be able to merge master in by EOD15:01
ericsnowkatco: np15:01
natefinchok15:02
katconatefinch: ta15:02
wwitzel3katco, marcoceppi: yeah, I took the hoodie to a alterations shop and they put a zipper on it for me15:16
wwitzel3cost me $11 + the zipper (amazon for $4 iirc)15:16
natefinchmy wife said she'd do that for me, but I haven't gotten around to actually asking her to do it15:16
wwitzel3mine sat in a closet unused until I put a zipper on it15:17
wwitzel3what kind of uncivilized person uses a pull over15:17
natefinchwwitzel3: lol, right?15:18
katcowell put wwitzel315:18
TheMuenatefinch: your wife can do any sewing job for you. always watching her posts, she's so good.15:18
natefinchTheMue: Thank you :)  She's pretty great, yeah :)15:19
TheMuenatefinch: absolutely15:20
fwereadekatco, do you know why resources/resourceadapters.WorkerFactory is creating a worker from a *State?15:36
fwereadekatco, (hi, by the way, sorry abrupt!)15:37
katcofwereade: let me take a peek. ericsnow might have a quicker answer15:37
katcofwereade: np at all lol, hi! :D15:37
ericsnowfwereade: I'll take a look :(15:37
ericsnowfwereade: gah, I'll fix that15:39
katcofwereade: well there ya go.15:39
fwereadekatco, ericsnow, before you get too deep into that, I hit this because I'm doing pretty drastic things to the machine agent, and I'm not entirely sure how I should go about integrating that functionality15:40
katcofwereade: ericsnow: is the problem that it's taking in a State pointer?15:41
katcofwereade: ericsnow: and not an interface?15:41
fwereadekatco, that's several problems15:41
fwereadekatco, an interface would be nicer15:41
fwereadekatco, the upsetting thing is that it's a worker that's not going via the api layer15:41
ericsnowfwereade: right, the API part is what I need to fix15:42
* ericsnow feels dumb for forgetting that mandate15:42
fwereadeericsnow, would you take a look at the MADE-model-workers branch please?15:42
ericsnowfwereade: will do now-ish15:43
fwereadeericsnow, in particular, cmd/jujud/agent.MachineAgent.startModelWorkers; and the  cmd/jujud/agent/model package15:43
ericsnowfwereade: and sorry for not getting you that review yesterday (model agent integration)15:44
ericsnowfwereade: I was actually just reading through it15:44
fwereadeericsnow, because I am reluctant to make the tests for those packages dependent upon what other packages might have been imported, and it feels like the approaches are at an impasse15:45
fwereadeericsnow, no worries, I am keen to hear your thoughts on it but you weren't blocking me15:45
ericsnowfwereade: k15:45
katcofwereade: is this the whole "imports have a side-effect" conversation?15:45
katcofwereade: via init15:46
fwereadekatco, yeah15:46
katcofwereade: to my knowledge we are not doing that, if that helps.15:46
fwereadekatco, well, then it's the "logic dependent upon mutable global state" one15:47
katcofwereade: ah, that we are currently doing :)15:47
katcofwereade: although i'd characterize it as "package level state"15:47
fwereadekatco, IMO that makes it marginally more tractable, but little less evil15:48
katcofwereade: but i don't understand how the registration pattern makes writing tests harder? or what that has to do with imports?15:49
ericsnowfwereade: oh, you better take a look at our feature branch https://github.com/juju/juju/blob/feature-resources/resource/resourceadapters/workers.go15:49
ericsnowfwereade: I've since merged that worker (in master) with the charmrevisionupdater worker15:49
ericsnowfwereade: (Ian's idea)15:50
fwereadekatco, well, I have this Manifolds() func, which returns a representation of the workers we need to run per-model in a controller; I would like to be able to test it, and have confidence that it will do the same thing whatever else may or may not have been called or imported15:50
ericsnowfwereade: the integration between the two takes place in the API server so no workers are involved15:50
ericsnowfwereade: and yeah, I really don't like the registries and would love to talk with you about what I think is the sensible atlernative15:51
fwereadeericsnow, well... that worker is sitting right there on master afaics? https://github.com/juju/juju/blob/master/resource/resourceadapters/workers.go15:51
katcofwereade: sorry for the 2 convos at once. but can't you? your tests have the global view of manifolds in the context of your tests. it should be testing that it does the right thing when you register workers15:52
ericsnowfwereade: right, we haven't merged that part of our feature branch back into master yet15:52
katcoericsnow: actually i am confused as well... the worker is present in the feature branch. you're saying we merged that, but haven't yet deleted it?15:53
fwereadeericsnow, katco: so, parenthetically, it is really not a good  thing that that code ever landed on a feature branch, let alone made it into master :(15:53
fwereadeericsnow, katco: but I am much more interested in talking about the tests15:53
ericsnowkatco: ??? https://github.com/juju/juju/blob/feature-resources/resource/resourceadapters/workers.go15:53
katcoericsnow: i am missing something. i'm looking at the same worker which takes in state15:54
fwereadekatco, if I need to pay attention to ensuring that the context of my tests matches the context at runtime, I will almost certainly screw it up at some point15:54
ericsnowkatco: there's no worker there; compare with master: https://github.com/juju/juju/blob/master/resource/resourceadapters/workers.go15:55
fwereadekatco, if I write my SUT such that all its dependencies are supplied explicitly, I can have much greater confidence that the tests will remain useful in the long term15:55
katcoericsnow: is this not instantiating a worker? https://github.com/juju/juju/blob/feature-resources/resource/resourceadapters/workers.go#L2115:55
katcofwereade: you don't have to make sure it aligns with the context of runtime, just that the path is tested15:56
ericsnowkatco: correct15:56
katcoericsnow: so, in our feature branch, we have a function that takes in state, and returns a worker looking at state?15:56
ericsnowkatco: it returns a "latest charm handler", not a worker15:57
katcofwereade: i.e. register a "foo" worker, does Manifolds() return it? PASS: we successfully know about registered workers15:57
fwereadekatco, ericsnow: how can you possibly write such a registration func without magical dependencies across all the components in play?15:58
katcofwereade: well wait, let's resolve the testing line of questioning15:59
fwereadekatco, ericsnow: I don't think you can usefully register a manifold without secret knowledge of the names of the workers defined in agent/model15:59
fwereadekatco, ok15:59
katcoericsnow: that is perhaps misleading then. it sits in a "workers" package15:59
ericsnowkatco: agreed16:00
ericsnowkatco: it's left over from when it was a worker16:00
cmarsfwereade, is it possible for a relation hook to fire before both services are installed? even if one of those services is a subordinate?16:00
fwereadekatco, ericsnow: (either way, the only things that should be using a *State should live in the apiserver)16:00
katcoericsnow: ahhh ok this makes sense16:00
ericsnowfwereade: agreed16:00
fwereadecmars, it should not be16:00
fwereadekatco, ok, back to the tests16:00
cmarsfwereade, thought so. might be an old juju, i'll find out16:00
cmarsthanks16:00
* katco listens16:00
fwereadekatco, I am not interested in testing a registration mechanism: I am interested in testing what workers will be started by a model agent16:01
fwereadekatco, the mutable global state makes that unknowable16:01
katcofwereade: ah, i see your plight now16:01
frobwaredimitern: meeting16:02
frobwarevoidspace: ^^16:02
katcofwereade: if we were aligned, this would be a test that would live somewhere in component/... because that's where the list of workers would get passed in16:02
katcofwereade: coding the list in the dependency engine is like hard-coding the state i think16:03
fwereadekatco, I am not sure that testing that behaviour in component/ is notably better that testing it under agent/model/16:04
fwereadekatco, a model agent has a number of responsibilities, and those responsibilities have non-trivial interactions16:05
katcofwereade: well, i think it's because in the manifold, you test that the registration works. then where the registration happens, you test that your list is complete16:06
fwereadekatco, restate please?16:07
katcofwereade: sure, let me try and think of a different way16:08
katcofwereade: so, starting from these axioms:16:08
ericsnowkatco, fwereade: I think that testing it where we are is correct; but we should be testing which manifolds will be run (not which workers)16:08
katcofwereade: 1. unit tests should test 1 thing at a time16:08
katcofwereade: 2. the combination of all unit tests trends towards correctness16:09
katcofwereade: if your goal is to test that the workers we expect to run, are16:10
fwereadekatco, (1) concur (2) strongly disagree, quantity of tests does not imply quality of tests16:10
katcofwereade: that's not the point of 2... another way is to say: the more correctly written unit tests you have, the greater confidence you have the system as a whole works16:10
katcofwereade: in other words it's not about the correctness of the test, it's about the combination of correct tests stating something about the system as a whole16:11
fwereadekatco, and now we tangle on "correctly written", I fear16:11
katcofwereade: no, i don't think so. it doesn't matter. for any value of correct.16:11
katcofwereade: if it correctly tests the 1 thing the test is supposed to test16:12
fwereadekatco, still unconvinced, I think some tests have negative value16:12
katcofwereade: agreed, in overhead. not in emergent correctness of the system16:13
fwereadekatco, on the contrary16:13
fwereadekatco, a little while ago I found tests for the machine agent that checked it called some api method on some facade16:13
fwereadekatco, which (1) it shouldn't have done in the first place16:13
voidspacefrobware: oops, sorry16:14
fwereadekatco, and (2) it actually didn't anyway, because someone had tweaked the test setup to make that call at the right time, so the test merely tested that the test setup had run16:14
katcofwereade: ok, so that's fails both clauses right? it did not correctly test the thing it was supposed to test, and it wasn't supposed to test it16:15
katcofwereade: strawman16:15
voidspacemgz: ping16:16
mgzvoidspace: yo16:16
voidspacemgz: the drop-maas-1.8 CI run failed on build binary, which meant everything failed16:17
katcofwereade: if your goal is to test that the workers we expect to run, are. first thing you should do is test that when workers are registered, the manifold knows about them16:17
katcofwereade: the second thing is that you register the right workers16:17
voidspacemgz: the logs are extremely terse - it just says that lxc-start failed16:17
mgzvoidspace: that's fixed16:17
voidspacemgz: so it was a problem with CI, not with the branch?16:17
mgzlxc update broke wily16:18
katcofwereade: through emergence, you have now tested that the workers we expect to run, are16:18
fwereadekatco, you seem to be arguing from a position that assumes that we should depend on mutable global state in the first place16:18
voidspacemgz: ah, damn16:18
mgzsinzui had to roll back the package16:18
mgzbut the testing is happening for realy16:18
katcofwereade: yes, i prepended all of this by saing "if we were aligned"16:18
voidspacemgz: so we'll get a run in due course16:18
voidspacemgz: thanks16:18
voidspacefrobware: ^^^16:19
fwereadekatco, ok, I did not think that "globals are bad mmmkay" was a controversial position16:19
katcofwereade: channeling mr. mackey there :)16:19
fwereadekatco, absolutely :)16:19
katcofwereade: but we could just pass the list in... doesn't have to be global16:20
fwereadekatco, right, and if we did, that would certainly be more testable and less upsetting16:21
frobwaredimitern: so with your patch, some fiddling with the lxd code and adding an 'ifup -a' as a new run command in cloud-init the lxd containers' interfaces are all up!16:21
ericsnowfwereade: note that in our feature branch that worker registry is gone16:21
katcofwereade: under the tests i have laid out, it would be no easier to test. but yes, less upsetting16:21
fwereadekatco, but we're still talking about a set of interdependent components16:22
frobwaredimitern: first container without `ifup -a', second with. http://pastebin.ubuntu.com/15415766/16:22
fwereadekatco, the agent/model package is about defining the dependencies and interactions between them16:23
fwereadekatco, and many parts of that are internal details16:23
fwereadekatco, the api caller might be called "api-caller", but if you depend on that from half a docebase away Bad Things will happen16:24
katcofwereade: and we arrive at the real point of contention: IoC vs. not16:24
dimiternfrobware, awesomesauce!16:24
katcoand as if to signal something, my cat just puked at my feet16:25
katcobrb16:25
ericsnowfwereade: ideally I'd like to eliminate all the global registries (and component/all) and accomplish the same thing in the correct places (under cmd/juju, cmd/jujud, etc.)16:25
frobwaredimitern: we should sync with stefan (and raise some bugs to track) for some of the timing issues and for the cases where the interfaces don't come up.16:25
fwereadekatco, I think I am in favour of IoC... do I seem not to be?16:25
fwereadebrb also, talk when you're back16:26
dimiternfrobware, yeah16:26
ericsnowfwereade: the challenge is refactoring code so that we pass the necessary "registries" around16:26
fwereadeericsnow, this is absolutely true16:29
=== natefinch is now known as natefinch-lunch
fwereadeericsnow, and I think it's more or less what I've been working towards with all the dependency.Engine work16:30
ericsnowfwereade: exactly16:30
ericsnowfwereade: that's what helped the concept click for me :)16:30
fwereadeericsnow, cool :D16:31
cmarskatco, is it possible to select a lxd profile when deploying, by using constraints=... ?16:37
katcocmars: i don't believe so. jam and tych0 have been doing the latest work on this though16:38
ericsnowcmars: not likely (unless jam or tych0 have added that)16:38
cmarskatco, ericsnow ok thanks16:38
tych0not that i know of :(16:39
cmarswould such a thing fit into constraints? dang it'd be useful to be able to do that -- adding bind mounts stuff, or making containers privileged16:40
cmarsi'd consider hacking away on this... i know y'all are busy16:40
fwereadecmars, that feels like a placement directive? can be passed through to the provider16:40
katcocmars: you can still kind of get this behavior by changing what image ubuntu-<series> points to16:41
dimiternfrobware,16:41
dimiternfrobware, sorry wrong window :)16:41
fwereadecmars: provider/ec2/environ.go:370 for an example16:41
cmarshaven't seen the placement stuff yet, yeah, that makes sense16:42
fwereadecmars, constraints want to be generic, placement is for provider-specific trapdoors16:42
fwereadecmars, generally accessed via --to16:43
fwereadekatco, so, IoC?16:43
cmarsfwereade, that'd put all the provisioned machines in the same profile.. which would work, but what I really want is to deploy one service into a privileged container while leaving the others unprivileged16:44
katcofwereade: oh, right... sorry16:44
fwereadecmars, deploy myservice --to lxd:profile=myfancyprofile?16:44
fwereadekatco, np16:44
cmarsoh, works on deploy as well as bootstrap. ok, nice!16:45
fwereadekatco, I *think* we're both in favour of ioc?16:45
katcofwereade: no you don't seem to be against IoC. but hard coding things does not seem to be IoC. maybe i've missed the point being that you pass around manifolds?16:45
fwereadekatco, the way I see it, a Manifolds func is explicitly responsible for accepting some sort of config that applies to the responsibility it holds, and returning some set of workers that will meet those responsibilities16:47
fwereadekatco, if the set of workers were independent, I would agree that a dynamic registry would probably be ok16:48
katcofwereade: so the crux of your argument is that there is a central spot to codify that dependency graph, and you can't test that if outsiders can register things16:49
fwereadekatco, basically, yes16:49
fwereadekatco, and it makes me sad that code changes many packages away could, e.g. induce a cycle and render the whole lot useless16:50
katcofwereade: tbh i would have to read through the code again to comment on that point16:52
fwereadekatco, I think it's a broadly applicable argument? I want local changes to cause local test failures, and the bigger/more-integrationy the test the more distance-risk I take on in exchange for greater certainty about macro behaviour16:54
fwereade...er, if that makes any sense at all outside my own head16:54
dimiternfrobware, I solved the case of the missing mac address16:54
frobwaregreat16:54
ericsnowfwereade: FWIW, I agree that "configuration" of the application, which is how I see this, is ideally all in one place16:55
ericsnowfwereade: which is what I think you are arguing for16:55
dimiternfrobware, it turned out much to my surprise that `x := y` is not the same as `x := make([]T, len(y)); copy(x,y)`16:55
fwereadekatco, at a high level, yess -- I think the problem I am solving with dependency.Engine is "nobody understands what workers are running at any given time"16:55
fwereadekatco, I have been working towards making that more explicit16:56
katcofwereade: yeah i agree with that16:57
fwereadekatco, so, from that perspective, you can see why I'm having trouble with components16:58
katcofwereade: oh yes, certainly! i think i'm arguing from some kind of ideal future state that doesn't actually exist yet16:59
katcofwereade: i don't feel the problem is intractable17:00
fwereadekatco, would you consider it a slur if I accused the component approach of being reminiscent of aspect-oriented programming?17:00
katcofwereade: but i acknowledge and respect that you are much closer to the problem than i am, so might have a more valid opinion :)17:00
katcofwereade: no not a slur... i don't understand the comparison though17:01
fwereadekatco, because it feels to me like it has similar strengths (clear separation of unrelated concerns) and weaknesses (pain when those concerns turn out to intersect in subtle ways)17:01
fwereadekatco, just a thought, may be nonsense, probably not a useful comparison if it doesn't immediately speak to you17:02
katcofwereade: mm... i think it's different in that we're trying to advocate codifying those interactions instead of letting them happen naturally17:02
katcofwereade: i.e. if i decorate a method with a bunch of attributes, i may not know how it will act, but if i write a function that says X interact with Y, i can write a test against that17:03
katcofwereade: i suppose i can write a test for how attributes are combined as well17:04
katcofwereade: hey, i love talking about this stuff (and it's important to continue doing so) but i have stuff i need to take care of for the release17:05
frobwaredimitern: so it was lost in the pointer copy from before? just impl/patch didn't actually fix it?17:05
fwereadekatco, likewise -- and I'm approaching EoD -- but I do need to figure out how to weld these two parts together if I want to merge MADE-model-workers17:05
katcofwereade: when do you need that merged?17:06
fwereadekatco, heh, now it's done, as soon as I can, but I know there's no shortage of competition17:06
dimiternfrobware, I'm not sure what was wrong with the patch, but using make + copy vs := worked17:07
katcofwereade: so you're aiming to get it in for 2.0?17:07
fwereadekatco, last I saw it was on the list17:07
voidspacefrobware: when will you have confirmation of the induction sprint dates?17:07
katcofwereade: well if it's just 1 test left, you could land the branch as is and fix the test before the ~8th17:08
frobwarevoidspace: alexis raised the req for april 18->22 - I haven't seen or heard anything to suggest that it will not be those dates17:08
voidspacefrobware: ok, cool - thanks17:09
fwereadekatco, well, it's more than that -- it's that it's a replacement of the per-model workers17:09
frobwarevoidspace: it's mine and dooferlad's birthday that week, so it's a rave!17:09
katcofwereade: oh, so functionality is blocked as well?17:10
fwereadekatco, and, well, there's this *State-dependent thing that's just turned up and is partly there because the magic registration mechanism let the implementer avoid seeing the WTF DO NOT DO THIS comment in startEnvWorkers17:10
fwereadekatco, yes, my branch will not currently run that worker17:10
frobwareericsnow, katco: would love some feedback on this if you have bandwidth: https://github.com/juju/juju/pull/4789/commits/417c8fd67b40eac734a815707104bfc3c8657af517:11
frobwareericsnow, katco: I haven't looked at the lxdclient before, but was trying to make multi-nic containers work with maas/spaces17:11
voidspacefrobware: hehe, cool17:11
fwereadekatco, and I would like it to, but adding package-level component registration to agent/model is very much at odds with the purpose of the package17:11
katcofwereade: ok, well then we need to discuss syncing up this weekend to meet monday's deadline17:12
ericsnowfwereade: don't forget that once feature-resources is merged back in, the whole model-worker-registry thing is gone17:12
katcofrobware: will try and tal in a bit17:12
fwereadeericsnow, so it's just charmrevisionupdater doing both jobs, and using the api and everything? that seems sane17:13
ericsnowfwereade: right17:13
frobwarekatco: appreciated17:13
fwereadeericsnow, ok, then that is great17:13
ericsnowfwereade: it was Ian's idea :)17:13
katcofwereade: unblocked?17:13
fwereadeericsnow, yeah, they're pretty much the same job17:13
voidspacefrobware: we could make it literally a rave... http://www.fabriclondon.com/club/listing/123817:13
fwereadekatco, not sure17:13
voidspacedimitern: http://www.fabriclondon.com/club/listing/123817:13
ericsnowfwereade: yep :)17:14
fwereadekatco, don't think I can merge without a functioning worker in the short term17:14
frobwarekatco: we may land that on maas-spaces-multi-nic-containers anyway to drive through any integration issues.17:14
ericsnowfwereade: it may be worth cherry-picking the particular merge commit from the feature-resources branch?17:14
katcofrobware: seems reasonable, but appreciate the heads-up. in that same light, heads up tych0 and jam ^^^17:15
dimiternvoidspace, that's a great idea actually17:15
voidspacedimitern: :-)17:15
fwereadeericsnow, it very probably would, I will have a look for that17:16
dimiternvoidspace, haven't been to a party like that in london, so count me in :)17:16
fwereadeericsnow, katco: so, yes, unblocked, thank you :).17:16
fwereadeericsnow, katco: but I think this is a near-miss and we'll have worse interactions before too long, so let's talk more about this right after the release madness17:17
ericsnowfwereade: I believe it is 8758089b35c3120b52b10da6d93514ac0d992f6f (PR #4539)17:17
katcofwereade: yes, totally agree!17:17
ericsnowfwereade: +117:18
katcofwereade: we will be doing a retro on the component oriented approach at our next sprint17:18
fwereadeericsnow, katco: cool17:18
katcofwereade: and i'm hoping we can get everyone to close their laptops and participate :)17:18
fwereadekatco, whole-team sprint? excellent, +117:18
katcofwereade: a juju core sprint17:18
=== natefinch-lunch is now known as natefinch
natefincharg... I really really really wish that channel was part of a charm.Url17:39
ericsnownatefinch: +117:39
natefinchso... uh... do we store the channel of a charm that a service is using?17:41
ericsnownatefinch: I doubt it17:42
natefinchericsnow: so, how do we know what channel to look in for updates?17:43
ericsnownatefinch: though I expect we should have it for the charmrevisionupdater worker17:43
ericsnownatefinch: yep17:43
natefinchericsnow: that's what I'm looking at right now17:43
natefinchericsnow: since LatestCharmInfo now requires a channel17:43
natefinchfwereade, rick_h__: either of you know if juju-core respects channels at all, and if so, how?  Seems like we need to remember the channel from which we deployed a service... but I don't see us actually storing that anywhere17:47
katconatefinch: ericsnow: i would have expected that to be part of the work of landing --channel into the deploy command17:49
ericsnowkatco: +117:49
natefinchkatco: there's no mention of channel in deploy.go: https://github.com/juju/juju/blob/master/cmd/juju/service/deploy.go17:49
katconatefinch: ericsnow: when we discussed yesterday, it sounded like the patch hadn't been landed yet17:50
natefinchkatco: I guess I'll just hardcode stable and we can fix it when that other stuff lands17:51
ericsnowkatco: correct, still not in master17:52
ericsnownatefinch: that's consistent17:52
rick_h__natefinch: no, it's on the list but it's not been done yet.17:54
rick_h__natefinch: agree with the assertion that we need to remember what channel the services is following17:54
frobwarevoidspace: latest drop-1.8 looks better.17:54
katcorick_h__: sounds like rogpeppe2 is doing it. can we expect his patch to store that somewhere and update the existing resources code to take advantage of it?17:54
voidspacefrobware: ah, cool17:55
rick_h__katco: I'd hope so yes. However, I've not seen the code/etc to be 100% on it.17:55
frobwarevoidspace: all have existing bugs registered against the failure and one was a timeout17:55
voidspacefrobware: there's a xenial uniit test failure based on ordering17:56
voidspacefrobware: I bet that's a dictionary iteration order change17:56
voidspaceah, existing bug17:57
voidspacefrobware: yeah, that's much better17:57
voidspacefrobware: when is the plan to land this?17:57
natefinchrick_h__: do you know why we didn't just add a channel field to the charm.Url struct?  it's hugely disruptive to the codebase to change basically everywhere we take a charm.Url to now take a charm.Url + channel18:01
rick_h__natefinch: I'm guessing because a charm can have more than one? e.g. a single charm revision can be development, then made stable, etc18:01
rick_h__natefinch: but I'm only guessing, I'm not in the implementation calls right now and EU folks would know better than I18:01
natefinchrick_h__: ok, no problem.  Just wondered if you were there for the discussion.18:02
katconatefinch: there should be a channel flag on upgrade-charm too, correct?18:03
rick_h__katco: natefinch yes, but only with --switch to be clear it's changing what it's tracking18:04
natefinch^ that18:04
katcok18:04
natefinchin general the channel shouldn't change, and therefore only needed at deploy time18:05
natefinch(and even then I presume we'll default to stable, so usually people won't ever need to think about channels)18:05
rick_h__natefinch: correct18:05
rick_h__natefinch: channels are a pro-use only tool, hidden from normal users18:06
mupBug #1559233 opened: juju run gets 'Permission denied (publickey)' in models other than the controller model <juju-core:New> <https://launchpad.net/bugs/1559233>18:06
frobwarevoidspace: whenever we can get a clean CI - death to long lived feature branches18:11
dimiternfrobware, here it is: https://github.com/dimitern/juju/tree/multi-nic-master-fixes18:15
frobwaredimitern: looking18:16
voidspacefrobware: cool18:16
frobwaredimitern: the bridge script tests fail in multi-nic-containers atm18:17
dimiternfrobware, really?18:19
frobwaredimitern: ok, going to push your branch as maas-spaces-multi-nic-containers-with-master. Viva la tab completion.18:19
frobwaredimitern: was a bit surprised too18:19
dimiternfrobware, great! thanks18:20
frobwaredimitern: ah, no. sorry it was: FAIL: container_userdata_test.go:120: UserDataSuite.TestNewCloudInitConfigWithNetworks18:20
dimiternfrobware, ah, yeah - that's fixed in the branch above18:20
frobwaredimitern: bleh. too much going on.18:20
dimitern:)18:21
frobwaredimitern: confirming tip of your branch is 65322f6d483ab0ea6e19fc466af9b60096f5174e18:23
dimiternfrobware, just a sec18:23
dimiternfrobware, I'm waiting for the final make check to pass first18:23
dimiternfrobware, and it did find one issue - I'll fix it and push an update18:24
dimiternmap ordering related, not in our code, but still - http://paste.ubuntu.com/15416689/18:24
natefinchanyone recognize this: provider/dummy/environs.go:316: "github.com/juju/testing".MgoServer.Reset() used as value18:26
frobwaredimitern: I've seen a bug for that18:27
frobwaredimitern: tip is now 0cd8eb5b02a9430e31430b65acff595e7dfe0f71?18:28
dimiternfrobware, and I have included, but perhaps the last cherry-pick reverted it? dunno18:28
frobware?18:29
dimiternfrobware, yep, I was just about to paste the commit18:29
frobwaredimitern: what did you revert?18:29
natefinchnvm, looks like a dependencies problem... because of course it is18:29
dimiternfrobware, I mean https://github.com/juju/juju/pull/4787 might have caused the test failure18:29
dimiternwhich I cherry-picked from master18:30
frobwareright18:30
frobwareok, pushing now.18:30
dimitern+1 go for it18:30
frobwaredimitern: see natefinch's comment about deps. didn't you see something there today?18:31
dimiternfrobware, https://github.com/juju/juju/pull/4759 fixed the map ordering issue in 2 out of 3 providers that have it - i.e. ec2 still have it after that PR, and my last commit fixed ec2 as well18:32
dimiternno, I was having issues with dependencies.tsv after I tried to foolishly rebase after I did merge master18:33
frobwaredimitern:  * [new branch]      maas-spaces-multi-nic-containers-with-master -> maas-spaces-multi-nic-containers-with-master18:34
natefinchI just had to update my dependencies.tsv to point to the head of juju/testing... not sure how I got the code change in core and not the deps change... might have been a simple merge problem18:34
dimiternmerging dependencies.tsv starts to get so painful it needs tooling around it18:36
dimiternand I'm not just talking about godeps -N18:36
dimiternfrobware, awesome!18:36
frobwaredimitern: calling it a week, my lxd patch/branch is out there if you want to take a look, perhaps merge into one of our branches. :)18:37
dimiternfrobware, I'll take care of it18:39
dimiternfrobware, :) enjoy the holiday18:39
frobwaredimitern: I'll sort out some stuff for Christian tomorrow morning, but I will be incognito thereafter. \o/18:39
dimiternok, beer o'clock18:41
mgzdimitern: hm, me too18:41
dimitern:) cheers mgz18:42
fwereadeericsnow, I'm confused about the various Connect methods around charmcmd, and what if anything should be using a *cmd.Context19:11
fwereadeericsnow, is that something that came after that commit?19:11
natefinchbrb rebooting19:12
ericsnowfwereade: in cmd/juju/charmcmd/store.go?19:14
fwereadeericsnow, yeah, and extending into resource/ I think?19:14
katcofwereade: that was cmars team trying to stop needing to launch a browser to sign in i think19:15
ericsnowfwereade: that19:15
cmarsericsnow, missed some of the scrollback there, just came back from a reboot. *cmd.Context was needed in a few places for terminal interaction, to log in on the command line19:17
ericsnowfwereade: ^^^19:17
katconatefinch: https://github.com/CanonicalLtd/juju-specs/blob/master/resources/features/charmer-query-charm-metadata.feature#L32-L4119:18
fwereadeericsnow, katco, cmars, thanks, I'll see what needs to go where :)19:20
katconatefinch: i think we missed this. list-resources is both on the charm command and the juju charm command19:20
natefinchkatco: damn19:20
natefinchkatco: I mean, of course that makes sense19:21
katconatefinch: finish up the juju side of things and we'll talk19:21
natefinchkatco: it's pretty easy to code up, at least19:21
natefinchkatco: kk19:21
katcomarcoceppi: i just can't stop pinging you19:22
katcomarcoceppi: we messed up. we actually do have 1 more thing to land into the charm command19:23
mgzto the tune of "I can't stop loving you"?19:23
natefinchprtty sure that's a song19:23
natefinchlol19:23
katcolol19:23
* natefinch hi-5's mgz19:23
katcoto the tune of the CSI theme?19:23
natefinchkatco: https://www.youtube.com/watch?v=mzE8cyu9Vf8&t=1m4s19:26
* perrito666 is overninetied by the video19:29
katcohttps://www.youtube.com/watch?v=QkM-r4ZdX1o&list=PL0Yz4dINw_VIJ0bkHJe3ZV5ktsFsYxL2K19:29
natefinchpea sized hail falling here19:31
natefinchkatco: good choice for coding brand new crap on the day of the deadline19:31
katconatefinch: you know it. rage against that machine baby19:32
mupBug #1559277 opened: cannot set initial hosted model constraints: i/o timeout <bootstrap> <ci> <juju-core:New> <juju-core admin-controller-model:Triaged> <https://launchpad.net/bugs/1559277>19:36
perrito666can I force the deletion of an old lxd controller?19:49
katcoperrito666: with lxc delete <id> --force19:49
perrito666katco: since you are in it, what was the new juju destroy --force?19:52
perrito666in it == answering my stupid questions19:52
katcoperrito666: oh thx for clarification :) uh i think destroy-controller although i don't see a --force19:53
perrito666I recall sinzui mentioning something else the other day19:54
sinzuiperrito666: juju kill-controller will call lxd if the controller wont shutdown19:56
perrito666tx19:56
perrito666I insist, destroy sounds much harder than kill19:56
perrito666dunno, destroy sounds like kill then burn the body19:58
perrito666ERROR cannot obtain bootstrap information: Get https://10.0.3.1:8443/1.0/profiles: x509: cannot validate certificate for 10.0.3.1 because it doesn't contain any IP SANs19:59
katconatefinch: where is the new location for the charm command patches?20:02
natefinchkatco: github.com/juju/charmstore-client20:02
perrito666sinzui: ever had that fun error ^^20:02
natefinchperrito666: I have that one one of mine20:02
perrito666natefinch: ?20:03
natefinchperrito666: I think it's the old lxd not playing well with new lxd20:03
perrito666natefinch: any clue on how to solve it?20:03
natefinchperrito666: I haven't had time to poke at it yet20:03
sinzuiperrito666: not woth 2,0. I have seen is with 1.18 and 1.20. I recall x509 errors were associated with clock skew.20:03
perrito666I clearly have the wrong lxd version20:05
perrito666which one should I have20:06
natefinchperrito666: well... you may have the right lxd version with an old lxd environment still running from the old lxd20:08
natefinchperrito666: I think that's the case for me20:08
perrito666natefinch: I cannot create a new  one so I think I have the wrong version20:08
perrito666ERROR invalid config: can't connect to the local LXD server: json: cannot unmarshal number into Go value of type string20:08
natefinchperrito666: ahh, yeah that is definitely the "you have the wrong lxd" error20:09
natefinchperrito666: I think that means you have the one from the ppa... remove the ppa and remove lxd then install the standard one20:09
perrito666hence my question, what is the right version :)20:09
natefinchapt-get install that is20:10
mupBug #1559280 opened: creating hosted model config: opening model: endpoint: expected string, got nothing <bootstrap> <ci> <juju-core:New> <juju-core admin-controller-model:Triaged> <https://launchpad.net/bugs/1559280>20:13
mupBug #1559285 opened: creating hosted model config: opening model: storage-endpoint: expected string, got nothing <bootstrap> <ci> <juju-core:New> <juju-core admin-controller-model:New> <https://launchpad.net/bugs/1559285>20:13
fwereadeericsnow, do you recall why charmcmd.CharmstoreClient became *charmstore.Client?20:16
ericsnowfwereade: not precisely but I expect it was due to use elsewhere -> put in a common place20:18
katconatefinch: ericsnow: fyi i'm working on the list-resources subcommand of charm20:24
ericsnowkatco: k20:24
natefinchkatco: cool20:24
natefinchkatco: too bad we can't just use the same implementation in both commands, since in theory they should be identical20:24
katconatefinch: i was thinking it would be ideal if we could somehow share the formatting20:25
katconatefinch: how did channel end up coming along for the ride in the charm command? looking at attach as the example20:29
natefinchkatco: channel is set on the csclient.Client20:29
katconatefinch: but how does it get passed to that through the command?20:30
katconatefinch: e.g. charm attach --channel unpublished foo20:30
katconatefinch: i think i see... when the csclient.Client gets instantiated it takes in a *cmd.Context20:31
natefinchkatco: attach doesn't use channels, publish does, though20:33
katconatefinch: ah ty20:33
mupBug #1559293 opened: show-controller fails <ci> <show-controller> <juju-core:Incomplete> <juju-core admin-controller-model:Triaged> <https://launchpad.net/bugs/1559293>20:34
marcoceppikatco: I can't release anyways, charm store is still not deployed20:46
katcomarcoceppi: kk we will keep you posted... coding remaining bit up right now, but then has to be reviewed, etc. we can still land on monday, yeah?20:47
perrito666marcoceppi: do you happen to know a charm that has status-history implemented?20:47
marcoceppiperrito666: isn't status-history a CLI command?20:47
perrito666I meant update-status20:47
marcoceppikatco: yeah, but I don't like the closenes20:47
marcoceppiperrito666: sure, a lot of layers have it, but none are like "traditional" charms20:48
katcomarcoceppi: me either20:48
* perrito666 is really having problems with this "dont drink coffee stuff"20:48
perrito666marcoceppi: dont care, I need to  check on the excessive verbosity issue and need a charm with it installed20:48
marcoceppiperrito666: sure, any of the big-data ones use it. let me get you one20:49
perrito666tx20:49
katcoericsnow: standup time21:02
mupBug #1559299 opened: cannot obtain provisioning script <bootstrap> <ci> <manual-provider> <juju-core:Incomplete> <juju-core admin-controller-model:Triaged> <https://launchpad.net/bugs/1559299>21:04
mupBug #1559305 opened: Process exited with: 1. Reason was:  () <bootstrap> <ci> <juju-core:Incomplete> <juju-core admin-controller-model:Triaged> <https://launchpad.net/bugs/1559305>21:04
mupBug #1559310 opened: bootstrap fails: "model is not bootstrapped" <bootstrap> <ci> <juju-core:New> <juju-core admin-controller-model:Triaged> <https://launchpad.net/bugs/1559310>21:04
mupBug #1559313 opened: admin-secret should never be written to the state <bootstrap> <ci> <juju-core:Incomplete> <juju-core admin-controller-model:Triaged> <https://launchpad.net/bugs/1559313>21:16
perrito666trivial review anyone? http://reviews.vapour.ws/r/4233/21:30
mupBug #1559329 opened: Relation information is duplicated in status tabular format <juju-core:New> <https://launchpad.net/bugs/1559329>22:19
mupBug #1559329 changed: Relation information is duplicated in status tabular format <juju-core:New> <https://launchpad.net/bugs/1559329>22:31
perrito666cmars: you are not here still, are you?22:34
perrito666ouch I fixed a duplicate bug22:41
perrito666cherylj: nice catch22:42
mupBug #1559329 opened: Relation information is duplicated in status tabular format <juju-core:New> <https://launchpad.net/bugs/1559329>22:43
perrito666there is some irony there, a bug about duplicate status is a duplicate22:43
perrito666heh22:43
cmarsperrito666, did i open a duplicate bug about duplicates?22:44
perrito666you did22:44
cmarsmaybe i should call it a week :\22:44
perrito666and I fixed it, so if you want to check the 3 line fix before leaving Ill fix it22:44
perrito666merge it*22:44
cmarsoh, awesome, got a link22:44
perrito666http://reviews.vapour.ws/r/4235/22:44
perrito666I was literally playing with vim syntax checkers with that file :p22:45
cmarsperrito666, looks good, but probably worth a test22:46
cmarsperrito666, for a followup?22:47
perrito666definitely, tests in status take a couple of hours to write22:48
perrito666status tests are like a coding speedbump22:49
mupBug #1559329 changed: Relation information is duplicated in status tabular format <juju-core:In Progress by hduran-8> <https://launchpad.net/bugs/1559329>22:49
katcocherylj: sinzui: either of you still around? easy-peasy question/comment23:54

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