/srv/irclogs.ubuntu.com/2014/04/02/#juju-dev.txt

davecheneysigh, i guess I can't put off looking at simple streams bugs any longer00:04
davecheneywaigani: how you doing today?00:04
waiganihi davecheney, well after blowing up my vm, I'm now back on track.00:05
waiganiso just starting to look at the tests now00:05
waiganidavecheney: I noticed you start your branches with 106, 111 etc - what is that?00:06
waiganiis there a convention I should follow for branch names?00:06
davecheneywaigani: we all started doing that years ago00:07
davecheneyfor me it was because i couldn't remembver what I had comitted and what I hadn't00:07
davecheneyyou can do whatever makes sense00:07
davecheneywaigani: for me the branch name is entirely to remind me00:08
davecheneyso they tend to be long00:08
davecheneyand descriptie00:08
waiganiokay, including the bug no. makes sense00:09
waiganidavecheney: you might want to add installing mercurial to your tl;dr00:12
davecheneywaigani: everyone has permission to update those deps00:13
davecheneyI think when i wrote it code.google.com was blocked bythe firewall00:13
davecheneyso I had to copy those deps in by hand00:13
davecheneywaigani: everyone has permission to update that install doc00:13
waiganiokay, I'll add it in00:13
Valduarehows it going guys00:17
davecheneyValduare: good00:19
davecheneyand yourself00:19
Valduaredoing well00:19
Valduaredoing photoshoot this week at the wife’s dance studio - on irc in between :P00:20
Valduarelooks like few updates to my bug https://bugs.launchpad.net/juju-core/+bug/130026400:20
_mup_Bug #1300264: manual provisioning requires target hostname to be directly resolvable <manual-provider> <juju-core:Triaged by axwalk> <https://launchpad.net/bugs/1300264>00:20
davecheneyValduare: axw is will be in an hour or so00:21
Valduareok00:21
perrito666if anyone has a moment to spare https://codereview.appspot.com/8337004300:35
davecheneyperrito666: quick review, please fix the typos in the descriptoin00:38
davecheneyyou can use00:38
davecheneylbox propose -edit00:38
perrito666davecheney: thank you00:38
* perrito666 should not propose during night00:39
perrito666davecheney: thank you, reproposed, if any typo is still there it might be poor English grammar on my behalf00:43
davecheneyhttps://bugs.launchpad.net/juju-core/+bug/130108500:44
_mup_Bug #1301085: state/apiserver: login_test.go intermittent failure <juju-core:Triaged> <https://launchpad.net/bugs/1301085>00:44
davecheneythis one is concerning00:44
perrito666davecheney: thank you for the comments, will address them00:44
davecheneymwhudson: how are you doing today ?00:50
mwhudsondavecheney: i am mostly getting distracted00:51
davecheneyHURRY THE GUCK UP JUJU00:54
davecheneySHIT00:54
davecheneythese god damn tests take hours!00:54
jpdsdavecheney: Hi.00:55
davecheneyjpds: speaking of frustration00:57
jpdsdavecheney: Quite.00:57
davecheneysinzui: http://paste.ubuntu.com/7192347/01:03
davecheneyshit, results are the same as yesteday01:03
davecheneyi don't understand01:03
davecheney[LOG] 36.85478 DEBUG juju.environs.configstore Making /tmp/gocheck-1976235410884491574/0/home/ubuntu/.juju/environments01:04
davecheney... Panic: cannot share a state between two dummy environs; old "dummyenv"; new "dummyenv" (PC=0x3FFFB02F3E4F)01:04
davecheney:001:04
davecheneybrilliant :(01:04
stokachuhazmat: https://github.com/liris/websocket-client/issues/73 - im going to work with upstream to get python2/3 into one codebase so we can package a python3 version easily01:13
axwdavecheney: I think that means two tests are trying to Prepare a dummy env without calling dummy.Reset() first01:14
hazmatstokachu, awesome!01:14
axwdavecheney: are you just running make check, or what?01:14
stokachuhazmat: looks like i can ping andreas once thats done to have a python2 and python3 package01:16
stokachui didnt see it in debian01:16
axwthumper: oops, sorry, I gave you bad advice about using listener.Addr() yesterday apparently01:16
* thumper shrugs01:16
thumperit passed the test01:16
thumper:)01:16
thumperinterestingly when I logged it out01:16
thumperit was ipv6 as a value01:17
thumperhttp://[::]:123401:17
hazmatstokachu, tick tock on trusty, i'll merge in 2/3 support to jujuclient its a pretty tiny diff.. deployer might need a little more work01:17
stokachuok ill work on it this week, the maintainer is in japan though so time differences will be difficult01:18
davecheneyaxw: nope01:23
davecheneygo test01:23
axwdavecheney: in just the configstore directory?01:25
davecheneyaxw: nopt01:26
davecheneynope01:26
davecheneygo test launchpad.net/juju-core/...01:26
axwoh sorry that's from the log, not the test that's being run01:27
davecheneyaxw: i have no idea what you're talking about01:27
davecheneysorry01:27
davecheneyoh01:27
axwdavecheney: " [LOG] 36.85478 DEBUG juju.environs.configstore Making /tmp"01:27
davecheneyit's the package name01:27
davecheneyright01:27
thumperwallyworld_: https://launchpad.net/bugs/129958801:38
_mup_Bug #1299588: LXC permission denied issue with 1.17.7 <landscape> <micro-cluster> <juju-core (Ubuntu):Confirmed> <https://launchpad.net/bugs/1299588>01:38
thumperdavecheney: is there a test memory thing I can use for an io.ReaderSeeker?01:52
thumperdavecheney: like bytes.Buffer01:52
thumperor somthing01:52
thumperor do I need to write a file01:52
perrito666davecheney: thanks for your help, I rewrote a part of the script and looks definitely cleaner now :D01:54
* thumper writes a file...02:07
axwthumper: bytes.Reader?02:08
wallyworld_axw: thumper: you guys used an aws environment lately? the shared credentials i've been using appear to have been revoked02:33
thumperI've not used shard creds02:33
axwwallyworld_: I haven't, but I use my own account02:33
wallyworld_mmmm ok. i'll dig up som other creds02:34
wallyworld_after lunch. nom nom02:34
davecheneythumper: bytes.Reader ?02:45
thumpernm02:45
sinzuiwallyworld_, CI failed failed the first attempt of joyent02:45
sinzuiI am running it again02:45
waiganiso a test on ppc64el needs zip, but it is not installed by default.02:54
davecheneywaigani: add it to the Makefile02:55
davecheneyfor the install-deps section02:55
davecheneythis is a server image02:55
davecheneymost people test with the desktop image02:55
davecheneywhich has gnome fileroller02:55
davecheneyso I guess it has zip02:55
waiganidavecheney: okay, will do02:55
waiganihmm, it's already there02:57
wallyworld_sinzui: i'll look at the error03:05
sinzuiwallyworld_, I am just reporting a bug about the issue03:05
sinzuiwallyworld_, You can see the config for the env in cloud-city03:06
wallyworld_ok. i wonder why it worked for me03:06
wallyworld_i'll look at the bug03:06
wallyworld_what's cloud-city?03:06
wallyworld_sinzui: i see th error says quota exceeded - i had to hog smash wordpress and mysql onto the one machine cause the credentials i had only allow 2 machines03:08
wallyworld_sinzui: so if your test deploys wordpress an my sql, use the --to option for the second charm03:09
sinzuiwallyworld_, Our test wont like exceptions. It needs 3 machines.03:09
wallyworld_:-(03:09
sinzuiI will ask someone to give us proper resources03:09
wallyworld_won't work for joyent unless we get more quota03:09
wallyworld_ok03:09
sinzuiWe have a similar problem with azure. CI failed during the release because the release + revision testing + cloud health checks can exceed the cpu limit03:10
sinzuiwallyworld_, At least I don't need to report a bug03:11
wallyworld_sinzui: and at least it looks like stuff would have worked hopfully :-)03:12
sinzuiwallyworld_, yep.03:12
waiganihmm so if I install zip by hand it works. If I run make install, it doesn't get installed?03:15
axwwallyworld_ thumper: so, I can delete 1.16 compat stuff right?03:18
wallyworld_YES!03:18
axwwheee03:18
wallyworld_have fun, i'm jealous03:19
axw:)03:19
axwI'm just making changes in cmd/juju/ssh.go, figured I'll delete the compat stuff while I'm there03:19
wallyworld_yep03:20
sinzuiwallyworld_, I hacked the test to make an exception for the joyent provider. http://ec2-54-84-137-170.compute-1.amazonaws.com:8080/job/joyent-deploy-devel/6/console03:42
sinzui^ same error even though --to 1 was used for mysql03:42
sinzuiany other ideas?03:42
* wallyworld_ looks03:42
wallyworld_sinzui: is there another orphaned machine running in that account? use the joyent daskboard to check03:43
sinzuinothing in the dashboard03:44
wallyworld_that happened to me and once i shut down the extra machine it worked03:44
sinzuibut wallyworld_ I never even saw the juju machine show up03:44
wallyworld_sinzui: i can pm you the cred i used03:44
sinzuithere was a machine there earlier today. I deleted it03:44
thumperfuckity fuck fuck03:50
davecheneythumper: ?03:50
thumpertrying to write a test03:51
davecheney:)03:51
davecheneyno, wait03:51
thumperhowever the behaviour is full of async03:51
davecheney:(03:51
davecheneywow. such fuck03:51
thumpermultiple go rountines started03:51
thumperI kinda need to wait to know that the tailer has started listening for new lines before I have the test write a few more03:51
thumpernot sure how03:51
* thumper thinks...03:52
wallyworld_sinzui: there's a showstopper bug in 1.17.7 which i'm fixing :-(03:53
wallyworld_i just confirmed it03:53
wallyworld_so 1.18 will need to be held off till i fix it, which will be today03:54
sinzuiwallyworld_, I found the instance. The old UI doesn't show it. The beta does03:54
wallyworld_ah03:54
wallyworld_well that kinda sucks03:54
sinzuiwallyworld_, I need to get the docs completed. I wont release tomorrow03:55
wallyworld_yay, gives me time to fix03:55
sinzuithis run gets farther, but I wonder how far this will go with just 2G ram03:56
wallyworld_should be enough to bring up wordpress/mysql you'd hope03:58
sinzuiwallyworld_, PASS. I am going to sleep. I will find someone tomorrow to address 1 machine to test and release with03:58
wallyworld_\o/03:58
wallyworld_good night :-)03:58
thumperwallyworld_: what was the problem?03:59
wallyworld_thumper: i don't want to tell you04:00
wallyworld_it was my fault :-(04:00
wallyworld_permisison error ivoking new api from container provisioner04:00
wallyworld_works fine from env provisioner04:00
thumperah04:00
wallyworld_our logging/error reporting kinda sucks04:01
wallyworld_we need to get this errgo stuff integrated and used04:01
wallyworld_axw: we would expect destroy-env --force to remove the jenv file right?04:02
davecheneyjoin #go-nuts04:07
davecheneyoh hai!04:07
thumperwallyworld_: yes we would04:08
wallyworld_thumper: i'll have to see if i can reproduce later, but on trunk i did a --force and the jenv file stuck around04:08
=== vladk|offline is now known as vladk
axwwallyworld_: sorry, afk. the .jenv file should be removed if destroy-env succeeds04:21
axwwallyworld_: regardless of --force04:21
axwwallyworld_: but --force *should* always succeed04:21
wallyworld_np. yeah, it seems like it wasn't. i'll have to try and reproduce04:21
axwobviously that's an ideal though04:21
* axw goes back afk04:22
thumperOH FFS04:23
* thumper looks for someone to stab04:23
thumper..04:23
thumperoops04:25
* thumper sighs04:25
thumperran 'go test' instead of 'go test -gocheck.f ...'04:25
thumperoh well, all tests passed04:26
thumperyay04:26
thumpernow for step 2704:26
* thumper is done for now04:41
=== vladk is now known as vladk|offline
=== vladk|offline is now known as vladk
jam1axw: I'm just testing the bot for a second, I'll set your branch back to approved when I'm done06:31
=== jam1 is now known as jam
axwjam: okey dokey06:32
axwjam: do you know what that error was about?07:24
jamaxw: well, I killed it once07:24
jambut we also seem to have a new intermittent failure in TestRunStop07:25
jamhttps://bugs.launchpad.net/juju-core/+bug/130119807:25
axwyay :(07:25
_mup_Bug #1301198: jujud Provisioner TestRunStop no activity detected <intermittent-failure> <test-failure> <juju-core:Triaged> <https://launchpad.net/bugs/1301198>07:25
=== psivaa is now known as psivaa-afk
jamand AddRemoveSet still causes problems from time to time...07:26
jamnot *quite* as often as it used to07:26
wallyworld_jam: is the bot stalled?07:30
jamwallyworld_: I was poking at it, it should be back up now07:30
wallyworld_log file lasted updated 11 mins ago07:30
wallyworld_doesn't *appear* to be working07:31
rogpeppe3mornin' all07:31
axwmorning rogpeppe307:31
=== rogpeppe3 is now known as rogpeppe
axwjam: did you notice this? "listen unix @/tmp/juju-core-test.ARliJS/gocheck-6334824724549167320/18/var/lib/juju/agents/unit-wordpress-0/agent.socket: invalid argument"07:31
axwjam: I wonder if the TMPDIR change has broken something07:31
jamI had not seen that.07:32
jamaxw: one thing comes to mind, the /tmp/XXX dir starts with 700 permissions.07:38
jambut doesn't everything have to be running as the tarmac user anyway?07:38
axwyeah, I thought the same thing and had the same conclusion...07:38
axwit won't/can't change user07:39
axwjam: I think we may have exceeded the path length.07:44
axwmax path length07:44
axwmax path length is 108, that is exactly 108 - I'm guessing it needs to include the null byte07:44
jamaxw: odd. We also had a problem where we rm -rf /tmp07:45
jam:)07:45
jamwhich I'm fixing now07:45
axw:o07:45
jamaxw: if something before we set TMPDIR ran and failed, it would still hit the rm -rf TMPDIR07:46
axwah heh :)07:46
jamso I'm setting it in another var, and only removing that one.07:46
jamaxw: I didn't realize normal users could rm tmp07:46
jamaxw: but that is why the bot stopped working, because it couldn't get /tmp access.07:47
axwdoes it not just remove all the files they own within and then fail?07:47
axwyikes, ok07:47
jamaxw: well /tmp was gone07:47
jamI had to mkdir it07:47
jamaxw: I don't think that is why the original failure occurred.07:48
axwjam: tmp being gone, or the invalid argument/max path limit?07:48
jamaxw: you're probably right about the socket thing: https://bugs.launchpad.net/unity-scopes-api/+bug/125258807:48
_mup_Bug #1252588: UNIX domain socket path name limit <unity-scopes-api:Fix Released by michihenning> <https://launchpad.net/bugs/1252588>07:48
axwmk07:48
jamaxw: so I can make my TMPDIR prefix a bit shorter, but we were only just lucky that it was working before.07:49
axwindeed, if ever moved away from /var/lib/juju...07:50
jamaxw: like with the namespacing work?07:51
jam/var/lib/juju-jameinel-local ?07:51
axwnamespace only affects the log dir07:51
axwdata-dir is in $HOME for machine-0 in the local provider07:52
axwbut that does not allow units07:52
jamaxw: so, I can reproduce directly by making TMPDIR really long and running that test.07:52
jamI made them shorter, but it still seems like we're going to get bitten sometime.07:52
axwyeah. I dunno how we're going to fix that one... perhaps the socket should be in /var/run or something07:53
axwthat's no good for tests, but we could override it for tests07:53
vladkdimitern: morning07:55
dimiternmorning vladk07:56
jammorning vladk and dimitern08:11
vladkjam: morning08:11
dimiternmorning jam08:15
jamaxw: did you see the bug about rev 2524 ?08:23
axwnot yet08:23
axwoh08:24
jamaxw: https://bugs.launchpad.net/juju-core/+bug/130088908:24
_mup_Bug #1300889: azure and hp cannot deploy as of r2524 <azure-provider> <hp-cloud> <regression> <juju-core:Triaged> <https://launchpad.net/bugs/1300889>08:24
axweh08:24
jamno shared-secret file08:24
jamerror getting file /var/lib/juju/shared-secret: No such file or directory08:24
axwgah, because it doesn't exist during cloud-init08:25
jamaxw: at the least, your patch should probably have included a logger.Debugf() when we were writing the file.08:25
jamaxw: ah, because we write the Upstart during cloud init, but we don't run the rest of bootstrap stuff until we ssh into the machine.08:26
axwyeah, that was a bit dumb. I'll fix it...08:26
jamaxw: so I think that means we just need to back out your patch until EnsureMongoServer is writing the file at a later time08:26
jambecause we *don't* want to write the contents of shared-secret to cloud-init08:26
axwjam: yeah. I'll just take the --keyFile bit out of the upstart script for now?08:26
jamaxw: that's probably ok08:27
jamaxw: I'll note, changes during bootstrap is something that you should probably test live08:27
axwjam: I did run with local, but have no idea why it worked now08:28
jamaxw: local is special08:28
jamfor a lot of things08:28
jammachine-0 is your $HOST08:28
jamso not brought up via cloud-init08:28
axwmongo is still started before the machine agent though08:29
jamaxw: I'm pretty sure we also don't "ssh localhost"08:29
jamaxw: sure but the bootstrap steps probably happen at a different time.08:29
axwjam: we don't ssh localhost, but we run the same script via bash08:29
axwit's now very similar to cloud bootstrap08:29
axwanyway08:29
axwI will investigate, and test with azure08:30
jamkk08:30
jamI have the feeling it is broken on EC2 as well, but I haven't tested that08:31
jamI don't see any reason why it would be special08:31
jamwallyworld_: did you get your Joyent changes backported to the 1.18 branch?08:32
wallyworld_jam: yep, and CI tests passed ok \o/08:32
jamwallyworld_: nice, so we get a 1.17.8 today ?08:32
wallyworld_as soon as my bug fix gets backported but i need to get in landed in trunk first08:33
jamwallyworld_: that's what you're landing now?08:33
wallyworld_yep08:33
jamp:~wallyworld/juju-core/container-provisioner-retrywatcher08:33
jamk,08:33
jamBot is running it again08:33
jamyou had a test suite timeout08:33
wallyworld_great08:33
wallyworld_as soon as it lands, i'll backport, probably after dinner08:34
jamthe other failures were probably just my changes, so I'll keep an eye on it.08:34
wallyworld_which is imminent08:34
=== psivaa-afk is now known as psivaa
voidspacemorning all08:41
rogpeppevoidspace: mornin'08:43
rogpeppevoidspace: hangout?08:43
axwmorning voidspace08:43
axwrogpeppe: https://codereview.appspot.com/83500043 when you're free08:44
rogpeppeaxw: looking08:44
voidspacerogpeppe: sure, in a minute or two08:51
rogpeppeaxw: reviewed08:51
voidspacerogpeppe: coffee first :-)08:51
axwthanks08:51
axwrogpeppe: so, using State and it working is just lucky (racy)?08:52
axwI never quite State vs. BackingState08:52
axwI never quite understood08:52
rogpeppeaxw: how long did the tests take to run?08:53
axwI never quite English08:53
rogpeppeaxw: it's really a failure of vision08:53
rogpeppeaxw: because you talk to a specific State to sync it, but in this case we've got several08:53
rogpeppeaxw: so you need to prod the right one into action08:53
rogpeppeaxw: for a while now, i've wanted to change the syncing scheme so it's global08:54
axwrogpeppe: didn't take particularly long to run. it makes sense to change it, anyway08:54
jamwallyworld_: your patch has landed.08:57
wallyworld_jam: the one in 1.18? i submitted that just before dinner08:57
wallyworld_almost finished eating :-)08:57
wallyworld_i hadn't checked back08:58
jamwallyworld_: no, the one in trunk, I guess you were faster than I :)08:58
wallyworld_yeah, i am keen to get 1.18 fixed08:58
wallyworld_so i can relax08:58
jamwallyworld_: bot is currently processing axw's gocrypto change, probably will do yours next08:58
* wallyworld_ taps fingers impatiently08:59
voidspacerogpeppe: I'm in the hangout09:00
frankbanmorning all, is the joyent provider working in trunk? I am trying it and bootstrapping hangs on "Bootstrapping Juju machine agent"09:01
rogpeppevoidspace: i suspect my net connection may be working even less than yesterday...09:01
voidspacerogpeppe: that's impressive :-)09:01
rogpeppevoidspace: and there's a BT van outside, so it's quite possible it'll go away completely soon09:02
rogpeppefwereade: what's the deal with utils.IsNotExist ?09:06
axwfrankban: there's a bug on trunk that affects all providers, I'm fixing it right now09:06
fwereaderogpeppe, exactly what it looks like: if foo is a file, statting foo/bar does not give an error that satisfies IsNotExist :/09:07
fwereadeos.IsNotExist, that is09:07
frankbanaxw: cool, FYI 1) ec2 works well and 2) bootstrapping joyent panics if key-file is not specified in the environments.yaml file09:09
frankbanpanic: interface conversion: interface is nil, not string on /provider/joyent/config.go:12109:10
axwfrankban: ec2 worked? ok. I think there's a race condition. key-file is something specific to joyent... over to wallyworld_ :)09:10
frankbanaxw: yes, I was able to bootstrap that correctly earlier (saucy, revno 2535)09:11
frankbanaxw: ec2 I mean09:11
rogpeppei'm just losing internet connection while an engineer works on the line09:12
rogpeppeback soon i hope09:12
axwfrankban: if you want to get unstuck quickly, then try merging lp:~axwalk/juju-core/lp1300889-disable-mongo-keyfile09:12
axw(still uploading...)09:12
jamwallyworld_: bot is running your 1.18 branch now09:16
jamstarted 14 min ago09:16
jamfwereade: because ENOTDIR != ENOEXIST ?09:17
jamwallyworld_: bots done09:20
frankbanaxw: trying joyent with your branch09:21
jamwallyworld_: looks like it was happy with your patch09:21
jam 2253 Ian Booth2014-04-02 [merge]09:22
jam      [r=wallyworld],[bug=1299588] Backport r2536 to fix container provisioner retry issue.09:22
jamrogpeppe: I did end up going with "godeps before the bot runs", thanks for the suggestion.09:24
jamI trust godeps enough now, I'm still not sure about a go get -u in there, though.09:24
rogpeppejam: i thought i'd already changed it to do that actually09:24
jamrogpeppe: if you did, it didn't end up in the config I saw09:25
jamrogpeppe: maybe you did but didn't push the config back into swift ?09:25
rogpeppejam: ah, yes, you're right, i didn't09:26
rogpeppejam: so i guess you (or someone) overwrote the config i'd done09:26
rogpeppejam: oh well09:26
jamrogpeppe: I did, as I needed to update it, so I updated my local copy from swift09:27
rogpeppejam: i've got a program that enables you to do a juju set with the same data that juju get returns09:28
jamfrankban: joyent panic is bug #1300846, right?09:28
_mup_Bug #1300846: Juju crashes bootstrapping joyent <bootstrap> <joyent-provider> <juju-core:Triaged> <https://launchpad.net/bugs/1300846>09:28
frankbanjam: yeah it seems to be that bug09:29
rogpeppevoidspace: MgoInstance.Port returns the same port that is inside MgoInstance.Addr09:30
voidspacerogpeppe: right09:30
rogpeppevoidspace: so no need to parse09:30
voidspacerogpeppe: cool, that's nicer09:30
voidspacerogpeppe: so one of your suggestions (agent/agent.go:528)09:32
voidspacerogpeppe: you suggest gating on SharedSecret == "" instead of StatePort == 009:33
rogpeppevoidspace: i can hear you pretty well BTW09:33
voidspacerogpeppe: how is that any better or different09:33
frankbanaxw: after merging your branch, bootstrapping joyent succeeded, thank you!09:33
axwfrankban: cool, no worries09:34
voidspacerogpeppe: if you're talking I can't hear you :-)09:35
rogpeppevoidspace: ok, i'll give up on the hangout :-)09:35
voidspacerogpeppe: if StatePort == 0 but SharedSecret != "" we're just as screwed as StatePort != 0 but SharedSecret == ""09:35
rogpeppevoidspace: so, i see SharedSecret as slightly more fundamental, but you're probably right that it doesn't matter much09:35
voidspacerogpeppe: so they seem directly equivalent checks09:35
rogpeppevoidspace: the other possibility i thought of was to store a *StateServingInfo instead09:35
voidspacerogpeppe: I'm happy to make the change09:35
voidspacerogpeppe: that would be less arbitrary09:36
rogpeppevoidspace: then the test could be "if not nil"09:36
voidspacerogpeppe: yep09:36
rogpeppevoidspace: yeah, otherwise they're both pretty arbitrary09:36
voidspacebut think of the performance hit we take from the extra level of indirection!09:36
voidspacerogpeppe: ok, I'll look at making that change09:37
wallyworld_frankban: axw: key-file is supposed to be optional and default to ~/.ssh/id_rsa. if it doesn't do that, then that's a bug :-(09:39
rogpeppevoidspace: ha ha09:39
frankbanwallyworld_: yeah, it seems to be  bug #130084609:39
_mup_Bug #1300846: Juju crashes bootstrapping joyent <bootstrap> <joyent-provider> <juju-core:Triaged> <https://launchpad.net/bugs/1300846>09:39
jamwallyworld_: sounds like we have a bug :)09:39
wallyworld_we can still release 1.18 with that unresolved but documented in the release notes09:40
wallyworld_just ensure key-file is set09:40
wallyworld_it will be fixed for 1.2009:40
frankbanwallyworld_: so, the mandatory fields are sdc-user, sdc-key-id, manta-user and manta-key-id, correct?09:41
wallyworld_from memory yes09:41
wallyworld_in oractice key-file will also be set09:41
wallyworld_practice09:41
frankbanwallyworld_: yeah09:41
wallyworld_because you don't necessarily want to use your default private key with joyent09:41
wallyworld_you want to generate one for the purpose09:42
wallyworld_hence the bug got missed also in CI09:42
voidspacerogpeppe: made all those changes except switching to *params.StateServingInfo09:42
frankbanwallyworld_: agreed09:42
voidspacerogpeppe: pushed and running tests09:42
rogpeppevoidspace: cool09:42
wallyworld_frankban: so yeah, not a show stopper :-)09:42
wallyworld_but will be fixed09:42
frankbanwallyworld_: ack, thank you09:43
wallyworld_np, sorry about the bug09:43
wallyworld_i was a bit rushed to make the 1.18 release09:43
jamwallyworld_: the bug seems pretty trivial to fix, even for 1.17.809:43
jamjust the line that looks at private-key and then at key-file needs to be aware that key-file may be empty09:43
wallyworld_jam: yes, but if we wnt to ship real soon now i may not get it done as it's way pat my EOD09:44
wallyworld_past09:44
jamwallyworld_: k, I'll poke at it.09:44
wallyworld_jam: i'd normally look at it but am way tired tonight09:44
wallyworld_if you get stuck let me know and i'll do it after the standup09:45
jamnp09:45
jamwallyworld_: so *should* it default to ~/.ssh/id_rsa ?09:45
jambecause internally it defaults to ""09:45
jamah I see09:46
jamthey have a bunch of logic to pull it from the ENV or use a different default09:46
jamthey just reference it before they've done those steps09:46
wallyworld_yeah09:46
wallyworld_it got messy09:46
wallyworld_it needs to be "" so the env can override if necessary09:46
wallyworld_or something like that09:46
jamwallyworld_: right, they just fix it up in validateConfig, but apparently we call prepareConfig without validating first.09:47
wallyworld_jam: i did a fair bit of refactoring in that area to bring stuff into line with other providers, so i likely was complicit in the bug09:48
wallyworld_maybe a call to validate is all that is required, not sure09:48
wallyworld_bbiab, got to put the kid to bed09:48
rogpeppevoidspace: here's the followup to your branch: https://codereview.appspot.com/8353004309:48
axwrogpeppe: is "HA: make APIAddresses use state.APIAddresses, not state.APIAddressesFromMachines" still relevant?09:51
rogpeppeaxw: yes09:52
rogpeppeaxw: it should be a totally trivial change09:52
axwwhat uses APIAddresses rather than APIHostPorts?09:52
rogpeppeaxw: nothing should be using APIAddressesFromMachines any more09:52
rogpeppeaxw: ah, i may well be talking about APIHostPorts here :-)09:52
axwah, so uniter and deployer use it for initial addresses... yeah ok.09:54
axwI can take a look at that next if nobody else does09:54
=== axw is now known as axw-afk
axw-afkcan someone please take a look at https://codereview.appspot.com/83270045/, which fixes https://bugs.launchpad.net/juju-core/+bug/130088909:57
_mup_Bug #1300889: azure and hp cannot deploy as of r2524 <azure-provider> <hp-cloud> <regression> <juju-core:In Progress by axwalk> <https://launchpad.net/bugs/1300889>09:57
rogpeppeaxw-afk: i'm on it09:58
voidspacerogpeppe: yep, looks good09:59
rogpeppevoidspace: have you proposed yours yet?09:59
voidspacerogpeppe: about to09:59
rogpeppeBT engineer found the problem with my phone line10:00
rogpeppea intermittent break in a copper line at the top of the telegraph pole opposite the house10:01
voidspacegood he found it10:01
rogpeppevoidspace: yeah10:01
rogpeppevoidspace: now i'll just need to phone talktalk and get them to reset the SNR on the line, and hopefully should be back to normal10:02
voidspacerogpeppe: just switching to using *params.StateServingInfo10:02
voidspaceit's not much work10:02
voidspacejust a couple of changes10:02
rogpeppevoidspace: cool10:02
dimiternfwereade, mgz, https://codereview.appspot.com/83070047/ quick review adding machine NICs?10:13
rogpeppe2yay, internet now fixed10:15
jamrogpeppe2: now we just have to figure out who your doppleganger is :)10:19
fwereadedimitern, couple of tweaks -- just add a separate collection/doc for configured networks and different types for internal/external usage10:19
fwereadedimitern, hum, another thought10:19
dimiternfwereade, i forgot to add NetworkName to the struct10:20
fwereadedimitern, mgz: how does this stuff interact with mgz's Network type?10:20
fwereadedimitern, mgz: I am worried that there should be some link between the two10:20
voidspacerogpeppe2: I think this change makes one code path untestable10:20
voidspacerogpeppe2: or very hard to test10:20
dimiternfwereade, what's that type?10:21
dimiternmgz, around?10:21
fwereadedimitern, mgz: sorry, I think I mean instance.Address -- I just feel like there probably ought to be some connection that isn't just coincidental, but maybe it's not the time quite yet10:22
dimiternfwereade, I think it's not the time yet10:22
fwereadedimitern, mgz: in particular the scope stuff feels like it ought to be reflected somehow10:23
fwereadedimitern, mgz: but I'll accept that suggestion if mgz concurs ;)10:23
dimiternfwereade, and what do you mean by "different types for internal/external usage" ?10:24
perrito666good morning10:24
fwereadedimitern, if we use the same struct in the DB and in the exported methods, then it's hard to track the scope of changes to that type10:25
dimiternfwereade, ok, I'll add a separate networkInterfaces collection linked to a machine10:25
fwereadedimitern, if there's a translation layer we have a place to deal with schema changes as they happen, if there isn't it's way too easy to make schema changes without knowing10:26
fwereadedimitern, eg changing charm.Meta should not magically change our schema, but it does :/10:26
dimiternfwereade, I see, good point!10:27
voidspacerogpeppe2: so making configInternal.servingInfo into a *params.StateServingInfo10:39
voidspacerogpeppe2: leaves one code path untestable10:39
voidspacerogpeppe2: but only because it's not possible for that code path to be triggered10:39
voidspacerogpeppe2: so I'm removing the test10:39
voidspacerogpeppe2: and I'm also going to ignore the "ok" return value from config.StateServingInfo()10:40
voidspacerogpeppe2: because it's not possible for it to return false in InitializeState10:40
rogpeppe2voidspace: ah, i have internet again!10:41
voidspacerogpeppe2: cool10:41
voidspacerogpeppe2: proposal updated10:47
voidspacehttps://codereview.appspot.com/82960044/10:47
rogpeppe2voidspace: lookin10:48
rogpeppe2g10:48
wwitzel3updated proposal https://codereview.appspot.com/83150043/ .. if someone can take a look10:49
* perrito666 curses hi decaf coffee and its lack of ... well caf :p10:49
wwitzel3rogpeppe2, perrito666 ^10:50
perrito666wwitzel3: looking10:50
rogpeppe2wwitzel3: will do10:50
fwereadejam, standup?10:50
wallyworld_fwereade: mgz: as far as i can see, there is no remote API on machine to get Addresses() so that would need to be added before we ship 1.1811:24
fwereadewallyworld_, yeah, I think we'd need that, dammit11:24
wallyworld_so a blocker for 1.18, needs to be done post haste11:25
rogpeppe2axw-afk: this branch fixes your test failure: lp:~rogpeppe/juju-core/axwalk-lp1300889-disable-mongo-keyfile11:37
axw-afkrogpeppe2: thanks, I was about to look into it.11:38
axw-afkrogpeppe2: will you be sending an MP?11:39
rogpeppe2axw-afk: i suggest just pulling it into your branch and reproposing11:39
jam1axw-afk: if you have time now, do so, otherwise rogpeppe2 I would just suggest you push it up, mark it for merging and approve it.11:40
jam1At least, if the changes are obvious11:40
=== rogpeppe2 is now known as rogpeppe
axw-afkrogpeppe jam1: right, will do. just about to have dinner, will do that later11:40
jam1sure, just setting a general policy that if it is after-hours for someone, and you can fix their patch, its fine, unless you think it is controversial, go ahead and propose and land the fixed versio.n11:41
rogpeppeaxw-afk: i could easily propose it as a separate branch - it's independent of yours11:41
rogpeppeaxw-afk: TestAddressChange was quite broken before11:41
rogpeppeaxw-afk: (i should've picked it up)11:42
wallyworld_jam: i +1'ed your key-file branch11:52
jam1wallyworld_: thx, want to do a quick followup on :https://code.launchpad.net/~jameinel/juju-core/1.18-private-key-path-1301315/+merge/21381812:01
wallyworld_sure12:02
axw-afkrogpeppe: finished dinner, I'll merge it in now.12:02
rogpeppeaxw-afk: you don't need to - i'm just proposing it as a separate fix12:02
axw-afkok12:03
wallyworld_jam: done, perhaps with a comment fix12:05
perrito666brb12:05
rogpeppeaxw-afk: https://codereview.appspot.com/8359004312:07
natefinchfwereade: aren't we working on getting rid of using git with charms?  re: the fat charm thread in email?12:07
axw-afkrogpeppe: thanks for that. reviewed12:09
rogpeppeaxw-afk: ta12:09
jam1natefinch: it won't be in 1.18 for sure, it may not be in trusty12:10
jam1there is some code out there that fwereade might get done.12:10
natefinchjam1: ok, I remember he'd mentioned working on it, but didn't know the status.12:10
wwitzel3natefinch: https://codereview.appspot.com/83150043/ when you can12:12
jam1wallyworld_: you mentioned changing the MANTA_KEY_FILE env var.12:12
jam1should we?12:12
jam1or is that coming from Joyent as the recommended way of setting it?12:12
wallyworld_jam: nah, that was us. i think it needs to be consistent12:13
jam1(like we just use the standard OS_ENV* for openstack/ec2, we didn't come up with our own.)12:13
jam1wallyworld_: k, if we created it, I'm happy to set it to something else.12:13
wallyworld_i created it :-) to match the attr name12:13
jam1wallyworld_: MANTA_PRIVATE_KEY_PATH or MANTA_PRIVATE_KEY ?12:15
wallyworld_path i think to match the attr?12:15
rogpeppeaxw-afk: are you doing "HA: make APIAddresses use state.APIAddresses, not state.APIAddressesFromMachines" ?12:16
jam1wallyworld_: yeah, I'm not really sure what a standard env var would be, so I'll go with just matching the var name.12:16
jam1wallyworld_: PATH in env vars tends to be a list of paths to search12:16
jam1but , meh12:16
wallyworld_i'm hopeless at naming things12:16
wallyworld_hmm, maybe just MANTA_PRIVATE_KEY_FILE12:17
wallyworld_i sorta with the ca stuff used -file as well12:17
wallyworld_wish12:17
mgzdimitern: I need to pick something up on the vlan work, what do you want me to do?12:20
dimiternmgz, well, the thing is most of what's left depend on changes around StartInstance12:23
dimiternmgz, except maybe the add-machine card12:23
dimiternmgz, that's can be done in parallel with the other related CLI card12:23
axw-afkrogpeppe: not tonight, but I will tomorrow if it's still up for grabs12:23
mgzI can take that one12:23
rogpeppemgz: if you have a moment to do it, that would be great12:25
mgzrogpeppe: I'll have a quick look12:26
rogpeppemgz: it *should* be fairly trivial, but it may affect tests12:26
mgzrogpeppe: whihc APIAddresses?12:28
rogpeppemgz: common.APIAddresses.APIAddresses12:29
rogpeppemgz: in state/apiserver/common12:29
mgzk12:29
jam1wallyworld_: proposal updated, care to have another pass ?12:36
wallyworld_sure12:36
jam1wallyworld_: https://codereview.appspot.com/83530044/12:36
wallyworld_jam: land it i reckon12:38
jam1wallyworld_: done, thanks12:39
jam1sinzui: if you have a CI test for Joyent, you'll need to update your config. the config entry "key-file" is now named "private-key-path".12:39
jam1(at least, once this branch lands in the bot)12:39
sinzuithank you. I will12:40
jam1That will be in the 1.17.8 release, and I'll merge it into 1.1912:40
sinzuijam, is private-key still valid12:41
jam1sinzui: yes12:42
jam1the rename was just to make it more consistent with other "youcan specify the file or the content"12:42
mgzrogpeppe: something like http://paste.ubuntu.com/7194149/13:00
mgzrunning tests now13:00
bodie_greetings13:01
mgzhey bodie_13:01
mgztyop...13:02
mgzrogpeppe: actualy compiles http://paste.ubuntu.com/7194162/13:04
rogpeppemgz: that's the general idea13:04
rogpeppemgz: it's not quite right though13:05
rogpeppemgz: i think it should be addrs := make([]string, 0, len(apiHostPorts))13:05
mgzdo we want multiple addresses per state server if they exist?13:05
rogpeppemgz: good question.13:05
rogpeppemgz: well, we don't need them currently, and we want to deprecate APIAddresses13:06
rogpeppemgz: so i'd say just stick with the existing semantics from APIAddressesFromMachines13:06
mgzgood call on make, legacy of first version where I forgot "" was a valid return value but not something we wanted to pass down13:08
jam1can I get a review of the trivial patch: https://code.launchpad.net/~jameinel/juju-core/1.18-always-ensure-curl-130032113:08
mgzjam: looking13:09
mgznoooooo13:09
mgznot again13:09
jam1mgz: ?13:09
mgzI wish we could just freakin' apt13:10
mgzjam1: dimitern had that line, I told him to remove it as it's in the base image, and hey, without apt sanity that turns out to have been bad advice13:11
jam1mgz: well, we're apt installing all of them13:11
jam1mgz: :)13:11
jam1mgz: note that "juju-local" doesn't depend on curl, because we didn't realize we needed it (being installed in base)13:13
jam1mgz: as such, we *still* would have been broken for manual13:13
mgzright, but we can fix that dep in the juju-local package :)13:13
jam1mgz: and we can fix this dep in the place where it is given :)13:14
mgzjam1: lgtm'd13:14
jam1thx13:14
jam1I guess I need to go get a drobox account now: http://blog.canonical.com/2014/04/02/shutting-down-ubuntu-one-file-services/13:16
mgzwhy am I getting test functions not defined...13:33
mgzhttp://paste.ubuntu.com/7194249/13:33
ahasenackis there a scenario where config-get would fail with "settings not found"?13:33
ahasenackhttp://pastebin.ubuntu.com/7194251/13:33
ahasenackthat is inside config-changed (!)13:33
natefinchjam1, mgz: what do we use curl for?14:11
jam1natefinch: downloading the juju .tgz14:11
natefinchjam1: ahh, yeah14:13
mgzanyone got any idea on my test build error with trunk above? ^14:20
natefinchmgz: this, I think: https://github.com/juju/testing/blob/master/patch.go14:21
natefinchI think we've moved to only using github for that package?14:22
mgz...why does godeps not complain...14:22
natefinchI think the problem is that godeps only knows what dependencies you tell it about14:22
natefinchyou're using a dependency it doesn't know about14:22
natefinch(launchpad.com/juju-core/testing)14:23
mgzbut it's trunk, I've not touched anything about this...14:23
natefinchoh weird14:23
natefinchok, so trunk is still using the one from launchpad14:24
=== hatch__ is now known as hatch
natefinchmgz: is that on your local machine?  Try blowing away $GOPATH/pkg ... sometimes old stuff gets stuck in there14:28
mgzsounds like a good plan14:28
mgzr2448 seems like a lie14:28
wwitzel3rogpeppe: https://codereview.appspot.com/83150043/15:22
natefinchwwitzel3: sorry I missed that review earlier15:23
rogpeppefwereade, dimitern, wwitzel3, natefinch, mgz: here's the singular worker implementation. reviews much appreciated:  https://codereview.appspot.com/8330004715:23
natefinchrogpeppe:  looking15:25
wwitzel3natefinch: np15:27
rogpeppevoidspace: lp:~rogpeppe/juju-core/536-machineconfig-stateservinginfo15:32
wwitzel3https://codereview.appspot.com/83130045/ reviews welcomed from anyone with a moment, pretty straightfoward.15:35
rogpeppenatefinch: how's tricks?15:40
voidspacerogpeppe: https://pastebin.canonical.com/107661/15:46
natefinchrogpeppe: sorry, had to do an early lunch, because I'm doing an interview in 3 minutes.  So.... yeah.  I updated the namespace proposal to include the changes to check the contents of the upstart config instead of using a version.15:58
natefinchrogpeppe: https://codereview.appspot.com/81980043/15:58
natefinchrogpeppe:  I didn't get a chance to totally review the singeular stuff... I'll finish up after the interview15:58
rogpeppenatefinch: ta15:59
sinzuijam, fwereade, juju-gui see this bug as a blocker for 1.18.0 130146416:13
sinzuibug 130146416:13
_mup_Bug #1301464: The mega-watcher for machines does not include containers addresses <addressability> <api> <juju-gui> <juju-core:Triaged> <https://launchpad.net/bugs/1301464>16:13
sinzuiI will also invite thumper to comment on it when he comes online16:14
perrito666I am supposed to implement a failure if a requested service machine does not have the networks requested in the networks/not-networks params, but I cannot know that until the machine is up, what should I do with the machine in case it fails?16:14
perrito666(I feel I might be missing something)16:15
mgzperrito666: so, add-unit and deploy are both in the context of a service, where we have networks/exclude-networks as context16:53
mgzand with --to we are specifying a machine16:54
mgzwhich, now in the case of maas, we can look up the networks it actually has16:54
perrito666ahh, indeed16:54
mgzbeccause that machine must already exist for --to to make sense16:54
mgzI agree it's a bit confusing without add-machine having the networks/exclude-networks params yet, so there's no clear two-step process16:55
bodie_I don't understand why state/api/client_test.go is so different from client.go17:00
bodie_is it just not fully implemented?17:01
bodie_oh, this bug is mentioned17:02
bodie_https://bugs.launchpad.net/juju-core/+bug/121728217:02
_mup_Bug #1217282: api.Client tests should be in api not state/apiserver/client/ <tech-debt> <juju-core:Triaged> <https://launchpad.net/bugs/1217282>17:02
mgzbodie_: yeah, it's mostly just an arrangement thing17:04
fwereadesinzui, do you overlap with wallyworld_?17:07
fwereadesinzui, we talked about that a little bit this morning with him, I think he's poised to do more tonight17:07
sinzuifwereade, I do. I will show him the bug17:08
fwereadesinzui, brilliant, tyvm17:08
jamsinzui: so for bug #1301464... I'm pretty sure we've never had it working the way they described, so it doesn't seem like a regression.17:08
_mup_Bug #1301464: The mega-watcher for machines does not include containers addresses <addressability> <api> <juju-gui> <juju-core:Triaged> <juju-core (Ubuntu):Triaged> <juju-quickstart (Ubuntu):Triaged> <https://launchpad.net/bugs/1301464>17:08
jamI can see why it could be important, but it is a little bit late, unless someone other than myself has an obvious way of fixing it.17:09
fwereadejam, isn't the problem that we *used* to have unit addresses... but now that we don't, the lack of machine addresses is a stark and serious problem17:09
rick_h_jam: fwereade this is the bug frankban is going to work on. We need it for quickstart. This has broken quickstart17:10
jamrick_h_: so i'd like to understand what the regression is17:10
jamwhat *was* working that now isn't17:10
frankbanfwereade, jam: that's my understanding. either we reinstate unit addresses (for local envs, ec2 seems to have them) or we include containers addresses in the MachineInfo AFAICT17:11
rick_h_frankban: it was the lxc ip address fetching right?17:11
frankbanwe used to have PublicAddress on the UnitInfo: with the 1.18 branch it seems an empty string is returned by the mega-watcher if the local provider is used17:12
frankbanrick_h_, jam, fwereade: from our perspective, reintroducing them on unit info is ok for now. IIUC the path is to remove the addresses from the UnitInfo though. So the problem might be solved including containers addresses in the MachineInfo.17:13
=== vladk is now known as vladk|offline
frankbanrick_h_, jam, fwereade: I am not sure about that, but I guess the problem there is that MachineInfo.Addresses only include addresses obtained from the provider. I'd expect containers ones to be included if we also merge in the slice the machine addresses (in a way similar to what's done in *state.Machine.Addresses()).17:15
fwereadefrankban, am I right in thinking you were already in communication with wallyworld_ about this general issue?17:16
frankbanfwereade: yes17:16
fwereadefrankban, I'm hoping it's easier, because we can now get lxc containers' addresses from the provider, iirc17:16
fwereadefrankban, lxc-ls --fancy17:17
fwereadeor whatever it is17:17
rick_h_fwereade: yes, wallyworld sent an email on the matter last night and he and frankban have been in communication on requirements17:17
* rick_h_ checks what list that thread was in17:18
fwereadefrankban, just to be clear: if all machines reported all their addresses in the AllWatcher (including scope, ie public/private), that would be sufficient?17:18
frankbanrick_h_: is in the private emails17:19
frankbanfwereade: I think so, at that point we need to fix quickstart and the GUI to use the new source of information if available. The important thing is that info to be available to API clients in some way. MachineInfo already has an Addresses field as a slice of instance.Address, so merging all the addresses there should be sufficient17:21
fwereadefrankban, ok, that is *hopefully* a relatively trivial bug then17:23
fwereadefrankban, ...or maybe not so much, gaah17:26
frankbanfwereade: I am checking my assumption wit this change: http://pastebin.ubuntu.com/7195189/ (that's not a fix, just a check for the contents of MachineAddresses)17:27
fwereadefrankban, yeah, the issue appears to be that local instances still don't report addresses17:28
bodie_can anyone help me understand what's going on in state/apiserver/client/ ?17:31
frankbanfwereade: with that change the watcher reports the ipv4 address for machine 1 (lxc): http://pastebin.ubuntu.com/7195204/17:31
bodie_I think I get that the api client is using 'call' to trigger methods from those files on the apiserver, but I'm not following how that relates to state/api/client17:31
voidspaceg'night all17:32
voidspaceEOD17:32
fwereadebodie_, state/api/client is the minimal implementation necessary to get the CLI to work17:33
frankbanfwereade: the real fix could be something like: 1) have a function receiving a machine doc and returning the merged addresses, 2) make Machine.Addresses use that function (passing m.doc) and 3) update the megaewatcher to use that function (passing the backingMachine)17:33
fwereadefrankban, ha, yes, ofc, that sounds like exactlythe right thing to do17:33
fwereadefrankban, I'd forgotten we stored machine-reported addresses separately from provider-reported addresses17:34
fwereadefrankban, the plan was basically to grab all the info we can and do our best to merge the two into something sane17:34
fwereadebodie_, sorry, actually, I'm not 100% sure I understand your question, would you restate please?17:35
bodie_thinking about how to do so17:35
fwereadefrankban, clearly that last step got missed somehow :/17:35
frankbanfwereade: yeah, the only change seems to be: dong that at the document level and not at the state.Machine level.17:35
fwereadefrankban, I'm not keen on discarding any of that info, I think it's a matter of a func for the megawatcher rather than something at machineDoc level17:36
wwitzel3natefinch: you free?17:36
bodie_I see a bunch of methods in /state/api/client.go which are used by Commands in /cmd/juju/ via their 'call' method to signal the API server to do things17:37
frankbanfwereade: I was just thinking about having a function that can be used both by Machine.Addresses and by the megawatcher, the former at that point being just a wrapper17:37
fwereadebodie_, yeah; they map to methods on the Client type in apiserver17:37
fwereadefrankban, ah, gotcha: yes, that sounds ideal17:37
=== hatch__ is now known as hatch
bodie_OK17:38
jamfwereade: frankban: you realize the reason we store them separately is because otherwise you'd only end up with private addresses (what you can read from eth0 != public address).17:39
bodie_so the files in /state/apiserver/client/* are where those Client functions are defined17:39
bodie_I think I'm confused between the apiclient "Client" and the apiserver "Client"17:39
jambodie_: so state/apiserver/* is the server-side of an RPC, and state/api/* is a wrapper around those RPCs to make them look like just function calls.17:39
fwereadejam, yes, we definitely need to store those differently-sourced addresses separately17:40
jambodie_: so cmd/juju/add.go makes a "myconnection.GiveMeSomething()" which under the covers does a RPC Call() to 'MyObject.GiveMeSomething'17:40
jambodie_: it is called "Client" because it is the API for GUI/CLI Clients, not because it is the actual client portion of a client-server relationship.17:41
bodie_OK.  so if, for example, I want to understand how Set works, I would start in /cmd/juju/set.go -- which calls /state/api/client.go 's "ServiceSet" function, which calls NewServiceSetForClientAPI via RPC on the apiserver17:41
frankbanjam: yeah, I know that. My proposal would only merge them when they are sent by the mega-watcher. API client can then just ignore the address they are not interested in by looking at the NetworkScope17:42
bodie_jam, I see.  I think that helps clarify things for me in terms of what "Client" means17:42
jambodie_: (may not be the greatest example because we had to do bad things with the RPC names there, but yes)17:42
bodie_heh17:42
jamfrankban: right, that seems fine. I don't think we need to expose it externally as separate.17:42
jamwe just need to not overwrite them17:43
bodie_jam: since the remote function is being called by name, do I just need to find the function of that name in apiserver/client/* ?17:43
bodie_er, by string17:43
jambodie_: in general the state/api/client is going to map 1:1 with state/apiserver/client. It happens that we couldn't do that for SetService, but the string in the Call() is always the exact name on the apiserver.17:44
* fwereade needs to spend a bit of time with his family, will bbl17:45
bodie_gotcha, which in the case of "Set" (or rather NewServiceSetForClientAPI) is defined in apiserver/client/client.go17:49
bodie_but in other cases, might be defined in one of those other files in client17:49
bodie_thanks17:49
natefinchwwitzel3: just got off the interview, will write it up and then be free17:51
wwitzel3natefinch: sounds good17:52
frankbanfwereade, jam: something like this? http://pastebin.ubuntu.com/7195287/17:55
jamfrankban: for genericity, would it make sense to just have a mergeAddresses(...[]addresses) ?17:59
jamotherwise seems ok to me18:00
* rogpeppe is done for the day18:01
rogpeppeg'night all18:01
natefinchnight rog18:02
wwitzel3see ya rogpeppe18:05
frankbanjam: sounds good yeah, that's just a quick prototype. it seems to work. the only problem I see is that NetworkScope is empty: http://pastebin.ubuntu.com/7195357/  This is a local env and I expected the scope to be "public"18:07
frankbanjam, fwereade should we assume empty scope == public? Or this is a bug?18:09
=== vladk|offline is now known as vladk
natefinchwwitzel3: want to hang out, or was there something specific you wanted to talk about?18:28
wwitzel3natefinch: hangout, catchup on HA, etc18:29
natefinchok18:29
sinzuiI think we have user backlash over the changes to juju-local and juju-mongodb. Most victims are canonical staff too. They don't have juju-local installed, they didn't get the new deps, they blame juju to for not telling them what the deps are.18:52
sinzuiI suggest juju checks is juju-local is installed when bootstrapping the juju local env. stop and tell the user to install the right packages before reporting bugs or complaining to the release manager18:53
natefinchheh, that seems like a reasonable position, sinzui19:07
bodie_I'm trying to understand this ServiceSetYAML method in /state/api/client.go19:46
bodie_I think it's for the "set" command which sets config options on a remote service or unit19:46
bodie_but there's also ServiceSet19:46
bodie_and I noticed ServiceSetYAML is reading its values from the command context19:46
bodie_but I'm assuming that's just for set --config=file.yaml19:47
natefinchbodie_: IIRC, the only difference is that one takes YAML and one takes key value pairs19:47
bodie_I just don't want to leave it out if it's important for setting up flags on the command in a general sense or some such19:47
natefinchbodie_: it probably gets used by somebody, yes.19:49
bodie_so not just Set.19:50
bodie_I think I'll leave it out and see what happens.  ^_^19:50
natefinchDepends on what you mean by "leaving it out".  If this is for new code (actions), it's probably fine to leave it out. No one likes yaml.19:52
jcw4natefinch there are no plans to move away from yaml on the backend though right?19:53
natefinchjcw4: define backend and I can answer the question (possibly)19:53
jcw4haha19:53
jcw4natefinch my keyhole view of the world separates the UI as the front end, and everything else (jujud as well as workers) as backend19:54
jcw4UI === Web GUI in this case19:54
jcw4natefinch, as I understand it the config for each charm is held in a yaml file... that's not going to change any time soon right?19:55
natefinchjcw4: there's no plans to change that, no.  We were just disappointed in the difference between the ease of hand editing that yaml promotes and how it actually works in practice.19:56
jcw4natefinch interesting.  That makes sense.  I initially thought that plans were afoot to move to JSON, but then realized that the migration of all the existing Charms would be impractical.19:57
natefinchRight. We don't mind parsing the yaml in the code, that's trivial.  It's more from a end user perspective, it's not very fun to try to write correct yaml in a text editor.... which is honestly true of pretty much any structured text file.19:59
jcw4I see.20:00
=== BradCrittenden is now known as bac
marcoceppiwhy move to json? yaml is wayyyy easyer. It's like moving from python to php20:14
thumperfwereade: are you around?20:17
natefinchmarcoceppi: we're not20:18
marcoceppinatefinch: okay, cool20:18
natefinchmarcoceppi: I actually prefer json, personally.  there's a little less magic around the edges, it's a little more uniform, even if it's a little more cumbersome in general. There definitely are benefits to yaml, the main one I like is support for comments.20:19
marcoceppinatefinch: I love json for a machine format, but to type it out by hand it pisses me off20:20
natefinchmarcoceppi: heh, typing out any structured format pissed me off :)20:20
natefinchmarcoceppi: the one thing I'm thinking about in particular with yaml is getting bitten by the fact that you don't need to put key names in quotes.... unless you run into a keyword, like null, which bit us several times with the null provider.20:21
marcoceppinatefinch: well, the name null for a provider wasn't the best choice ;)20:23
marcoceppiimmho20:23
natefinchmarcoceppi: well, yes, definitely.  but that's not the point :)20:23
marcoceppisure20:24
mwhudsonthere is a need for something kinder to humans than json20:30
mwhudsonand yaml is kinder to humans, mostly20:30
mwhudsonbut, man, it has it's screwy bits20:30
mwhudson-'20:30
natefinchyep20:30
mwhudson(i do _not_ want my configuration language to support recursive objects!)20:31
natefinchyaml is a lot easier to read and somewhat easier to write than json20:31
marcoceppiwhy not an ini file20:32
jcw4or a properties file20:32
mwhudsonjcw4: what's a properties file?20:33
jcw4java20:33
mwhudsonoh right20:33
jcw4some.long.scoped.variable=value20:33
natefinchini is pretty good, actually, though no support for lists of things20:36
rharperis there a way to set default-series as a constraint instead of configuring multiple environments with different series values ?20:38
fwereaderharper, would you explain your use case? it can be specified at env level, like constraints, but if you want services to run on a particular series you'll probably want to just explicitly name a charm that uses that series20:45
fwereaderharper, I'm not sure how multiple environments come in?20:45
mwhudsonnatefinch: yeah, it feels like there is a venn diagram with an empty set where i want there to be something :/20:46
natefinchmwhudson: same here.  I want it to be all powerful, but somehow super easy to read and write.20:49
mwhudsonyaml with some of the crazy filed off would be ok i /think/20:50
natefinchI might be ok with ini style key value pairs and yaml style lists20:52
natefinchEOD, kid is bugging me for food.  Swear I fed her yesterday.20:52
rharperfwereade: I have a jenkins setup which bootstraps environments for openstack installs, the ubuntu releases is one of the parameters;   if I need to change which series is used (precise or trusty) then I have to two entries in environments.yaml which differ only in the default-series value (and name)20:53
rharperif I add additional releases, then I need to update the environment yaml on jenkins; if it were a parameter passed to bootstrap, then I don;'t have keep updating each time we add a new release to the tests;20:55
=== vladk is now known as vladk|offline
fwereaderharper, ah, got you20:58
fwereaderharper, I don't suppose it'd be easier to ignore default-series and just be explicit about what charms you're running?20:59
fwereaderharper, (I am not pooh-poohing your use case, just uncomfortably aware that I don;t think I'll be fixing it in the next few weeks)20:59
rharperfwereade: we have control over the charm names; I'm new to juju stuff, so, if I specified the charm location in such a way that would force the image that is booted on the allocated node to run a specific release?21:00
rharperfwereade: and it's OK to have say a precise bootstrap node, but then trusty "service" nodes?21:00
fwereaderharper, cross-series environments should be fine, yeah21:01
fwereaderharper, charms are series-specific21:01
fwereaderharper, so you should be fine to just `deploy precise/foo` or `trusty/foo` or whatever21:01
fwereaderharper, assuming you have charms for the series you care about, which I think you must :)21:02
rharperhrm, ok21:02
fwereadethumper, ping21:02
thumperfwereade: hey21:02
rharperyeah, charms for both (openstack)21:02
thumperfwereade: wondering if you read my email21:02
fwereadethumper, I did, and hoped to look at the code, but didn't21:03
perrito666hey, suppose I have a ToMachineSpec, how can I get an instance of the machine from that?21:04
fwereadethumper, my only comment on the mail was that I think we *do* need lines-of-context, but I will not be overly bothered if it only searches back so far21:04
thumperthe problem is that it doesn't make sense when combined with filteres21:04
thumperif you don't care, then that's fine21:04
thumperI was going to keep the 'replay' function from pyjuju21:04
thumperthat replayed the entire log21:05
fwereadethumper, it's mainly a gui use case21:05
thumperalso keeping --lines to mean "output that number and stop"21:05
thumperyeah, but that is still wrong21:05
thumperlets say the gui has debug log for 'machine-1'21:05
thumperand wants previous 2000 lines21:05
fwereadethumper, I am aware that we can't guarantee N lines of output when filtering21:05
thumperit is possible that none of the previous 2000 lines are for machine-121:05
thumperif you are fine with that, then ok21:06
thumperwe can keep it21:06
thumperI'm trying to work out why the stream isn't dying when I think it should be21:06
fwereadethumper, which branch again? I can take a quick look now21:07
thumper lp:~thumper/juju-core/debug-log-api21:08
fwereadethumper, so, I'm not sure why closing the file you're writing to would be expected to stop the stream21:27
thumperfwereade: oh fuck21:27
thumperyou are right21:27
thumperhang on21:27
thumperlet me test something21:28
fwereadethumper, closing the reader gives all sorts of exciting errors21:28
thumperthanks21:28
thumperI wondered WTF was going on...21:29
thumpera hang over from when I was trying to read on the writing file21:29
thumperthat didn't work either21:29
thumperwhy is it a "bad file descriptor" when it is a closed file?21:29
thumperis there a way to check for closed?21:30
fwereadethumper, hm, not sure21:31
fwereadethumper, I feellike having the file closed underneath yu is ground for an error though, in general21:31
thumperI guess...21:32
thumperfrom the reader point of view sure21:32
thumperI guess I was trying to simulate how it would happen21:32
thumpernormally the user will hit ctrl-c21:32
thumperwhich will close the websocket21:32
thumperI think21:32
thumperwhich would cause an error on the *next* write21:32
thumperso it would clean up *eventually*21:33
fwereadethumper, hmm, ofc, we can't register it for cleanup in the usual way21:37
thumperyeah...21:37
thumperi think it'll be ok21:37
thumpermy test is now good21:37
thumperso I'm happy21:37
thumperish21:38
fwereadecool21:38
fwereadethumper, and about the lines-of-context -- we're *never* guaranteed to have N lines available for a given target anyway21:39
thumperfwereade: any pointers on testing the actual websocket bit?21:39
fwereadethumper, I think it's fine to explicitly say that it means "up to N lines"21:39
thumperor just more boiler-plate21:39
thumperand auth?21:39
fwereadethumper, and iterate on less sucky implementations21:39
thumperdo we have tests somewhere?21:39
thumperack re liens21:39
thumperfwereade: hmm... thought about an interesting implementation detail, but it is kinda crazy21:40
fwereadethumper, I would hope you'd be able to reuse the tests for the auth stuff used in charm.go in that package, butmaybe context differs annoyingly21:40
thumperbut it can wait until later21:40
thumperok...21:40
thumperI'll muddle along21:41
fwereadethumper, don;t have much to offer re websockets I'm afraid21:41
fwereadethumper, but I'm sorta falling asleep, so I might bow out now21:41
thumperkk21:42
thumpernight21:42
fwereadethumper, when he's online, please poke ian re lp:1301464 -- there's a big chunk of context about 4-5hours back in this channel that would be easily missed21:43
fwereadethumper, I think he knows about the bug anyway though21:44
* fwereade away21:44
thumperack21:44
perrito666go question, can I know if a group of elements (in this case in an array) is subset of a larger group (also in an array) without iterating them ? (something like set.issubset in python)21:52
sinzuiwallyworld_, is bug 1301464 also bug 1301331?22:25
_mup_Bug #1301464: The mega-watcher for machines does not include containers addresses <addressability> <api> <juju-gui> <juju-core:In Progress by wallyworld> <juju-core (Ubuntu):Triaged> <juju-quickstart (Ubuntu):Triaged> <https://launchpad.net/bugs/1301464>22:25
_mup_Bug #1301331: Remote machine addresses API required <api> <juju-gui> <juju-core:Triaged> <https://launchpad.net/bugs/1301331>22:25
wallyworld_sinzui: maybe22:25
wallyworld_the latter may not be required22:25
wallyworld_i'll know more soon22:26
sinzuiwallyworld_, okay22:26
wallyworld_sinzui: it all got messed up with the move to machine addresses instead of unit addresses i think22:26
wallyworld_sinzui: also, one of the bugs i fixed yesterday only got exposed when deploying to a container on say ec2. it would be good to include such a test in CI22:28
davechen1ythis PSA was about to you by the words "killall mongod"22:29
davechen1ys/about/bought/22:30
sinzuiwallyworld_, Can you describe the situation in more detail in an email after you have sorted out the bug?22:30
davechen1ywaigani: how you doing today ?22:43
davechen1ywaigani: do you need help with your charm fix ?22:43
thumperdavechen1y: waigani has just left my house, he'll probably be online again after lunch22:51
thumper'tis thumpen time22:51
* thumper heads to the gym22:51
davechen1ythumper: right o22:52
davechen1yyou guys buddy breathing the internet ?22:52
thumperwallyworld_: <fwereade> thumper, when he's online, please poke ian re lp:1301464 -- there's a big chunk of context about 4-5hours back in this channel that would be easily missed22:52
thumperwallyworld_: <fwereade> thumper, I think he knows about the bug anyway though22:52
thumperdavechen1y: we are in the same city, so it makes sense to get together periodically22:52
thumpera bit of pairing this moring22:52
wallyworld_thumper: yep, saw it :-) otp22:52
thumpersharing knowledge and all that22:53
thumperwallyworld_: ack22:53
perrito666sinzui: if you want to chime in https://codereview.appspot.com/83370043/ there is an interesting debate going on there :)23:59

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