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

wallyworldalexisb: free now if you are00:10
wallyworldanastasiamac: looks like you need to pull juju/testing etc to get latest versions00:11
alexisbwallyworld, ok, brt00:12
anastasiamacthis elements that the build contains are in charm.v400:12
anastasiamacbut it looks like there is a conflict with gopkg.in/charm.v4 vs my github.com/juju/charm.v4?... have no idea how to resolve it00:13
anastasiamacwallyworld: ^^00:13
anastasiamaci'll try pulling testing though I cannot c if/how it's related..00:13
wallyworldanastasiamac: the error indicates that juju/testing is out of date00:13
anastasiamack. thnx ;)00:14
anastasiamacwallyworld: pulled testing but the error for charm.v4 is the same..00:20
=== kadams54 is now known as kadams54-away
katcowallyworld: SHAM-WOW! http://reviews.vapour.ws/r/658/00:25
thumperwallyworld: https://bugs.launchpad.net/juju-core/+bug/140368900:42
mupBug #1403689: Server should store tools of unknown or unsupported series <upgrade-juju> <upload-tools> <juju-core:Triaged> <https://launchpad.net/bugs/1403689>00:42
wallyworldthumper: just finished meeting, thanks, will look01:06
thumpernp01:06
wwitzel3ericsnow: ping, in moonstone01:44
thumperok, I'm turning distractions off and going to try to focus for an hour02:02
thumpernow if only the kids comply...02:02
* thumper switches music from random to heavy mix02:03
mattywthumper, morning - mind if this kid distracts you for a moment?02:07
* thumper looks at mattyw02:07
mattywthumper, I made this small change in juju/utils the other day  -  I'm not sure if it belong there - but as it was small I thought - better to ask forgiveness than permission - what do you think? http://reviews.vapour.ws/r/634/02:08
thumperseems reasonable02:09
mattywthumper, do I $$merge$$ utils?02:13
thumperI don't remember02:13
thumpertry it and if the bot doesn't say anything02:13
thumpermanually do it02:13
mattywthumper, thanks for the help - you can go back to <whatever it was you were doing>02:14
mattywthumper, me again - I don't have permission, can you hit merge for me?02:19
thumperdone02:19
mattywthanks very much02:19
jogwallyworld, around?02:59
wallyworldjog: in a meeting, can be with you soon03:00
jogI'm considering setting bug 1396099 as a blocker on master, please see my latest comment when you're available03:01
mupBug #1396099: AWS/Joyent/manual/maas: juju deploy error "connection is shut down" <api> <ci> <deploy> <ec2-provider> <joyent-provider> <manual-provider> <juju-core:Triaged> <https://launchpad.net/bugs/1396099>03:01
wwitzel3so in cloud-init.log I see some log lines that read writing /home/ubuntu/.ssh/authorized_keys .. but when I look in the file, the keys don't match my jenv. Any pointers on where to start poking around?03:05
jw4jog: can I send you some clickbait, or interesting wired articles or anything?03:05
jw4jog: just trying to buy some time before CI gets blocked03:06
jogheh heh03:06
katcodavecheney: hey just reviewing some of your comments03:08
katcodavecheney: to maybe save you a bit of time: as this is refactoring, i don't want to change any existing code i don't have to touch03:09
katcodavecheney: e.g.: eitherState (which i agree is a little strange)03:09
davecheneykatco: if you don't clean it up now03:09
davecheneythen when ?03:09
davecheneyrefactoring sounds like the perfect time to clean house03:10
katcodavecheney: i will be making changes to this area for awhile longer03:10
katcodavecheney: this piece is just so i can land some leadership functional tests03:10
katcodavecheney: once that's done, i will be circling back and giving this package some more TLC :)03:11
davecheneysgtm03:12
katcodavecheney: i do appreciate your thoughtful reviews03:12
katcodavecheney: in fact, if you want to call anything out, but not open it as an issue, i'd love that so i can reference it03:12
mattywfolks, the latest version of juju/utils contains a call to errors.UserNotFound https://github.com/juju/utils/blob/master/file_unix.go. But that call doesn't exist03:29
mattywI think we should just return err here - what does everyone else think03:30
menn0wallyworld, jog: I wonder if that's the new certupdater work. it can lead to the API server being restarted soon after the machine agent starts up.03:40
jw4mattyw: is errors.UserNotFound in a later version of juju/utils?03:41
jw4mattyw: can we just update03:41
menn0s/work/worker/03:41
jw4mattyw: otherwise I'm in favor of just returning err too03:41
menn0wallyworld, jog: that issue has certainly been happening a lot in CI lately03:43
jogyup, it's been a big problem for us lately03:44
mattywjw4, is in the latest version03:46
mattywjw4, you mean the latest version of juju/errors?03:47
mattywjw4, ah yes, it's in the latest version of juju errors - I thought I'd tried that, but apprently not03:48
jw4mattyw: I meant the latest version of juju/utils because I misunderstood you - but I'm glad you found it anyway :D03:50
ericsnowdavecheney: FYI, I've added a set.Ints (http://reviews.vapour.ws/r/659/) and updated the PortSet patch to use it (http://reviews.vapour.ws/r/617/)03:52
ericsnowdavecheney: thanks for the nudge03:52
wwitzel3ericsnow: nothing yet on why authorized_keys doesn't contain our keys03:52
ericsnowwwitzel3: :(03:52
wwitzel3ericsnow: I did take care of the autoDelete though03:52
ericsnowwwitzel3: sweet03:53
ericsnowwwitzel3: I'm pretty sure once the connection issue is resolved we'll be bootstrapping on GCE!!!03:53
wwitzel3ericsnow: yeah, seems that way .. I'm going to login manually while the attempting to connect loops are running and add the key to authorized_keys and see if that fixes it03:54
ericsnowwwitzel3: sneaky :)03:55
davecheneyericsnow: ta03:55
ericsnowdavecheney: it was easier than expected :)03:55
wwitzel3ericsnow: yeah, the cloud-init.log file looks good, it appears to update the auth_keys file for both ubuntu and root03:55
wwitzel3ericsnow: but our keys never end up in there :(03:56
ericsnowwwitzel3: ?!?03:56
ericsnowwwitzel3: where does cloud-init get the stuff it's supposed to add?03:58
wwitzel3ericsnow: so far, no luck, I've added the keys, but the Attempting to connect is still just hanging.03:58
wwitzel3ericsnow: it is from the jenv for gce03:58
davecheneythumper: i was trying to sort out my xmas leave03:58
davecheneyhttps://sites.google.com/a/canonical.com/operations/people-and-culture/dashboard03:58
davecheneythis page is now 40403:59
ericsnowwwitzel3: oh, right03:59
davecheneywhere is the calendar that tells us what days we need to claim ?03:59
thumperhr somehwere03:59
thumperwaigani: do you have that link somewhere?03:59
thumperwaigani: you had it the other day03:59
ericsnowwwitzel3: what feeds that data to cloud-init on the new instance?03:59
thumperwaigani: the christmas leave page03:59
ericsnowwwitzel3: I have a feeling it's that metadata :(04:00
wwitzel3ericsnow: error: Could not load host key: /etc/ssh/ssh_host_ed25519_key04:00
waiganithumper: https://sites.google.com/a/canonical.com/operations/people-and-culture/general?pli=104:00
thumperdavecheney: ^^^04:01
thumperwaigani: ta04:01
wwitzel3ericsnow: it looks like we are connecting successfully, but that error is resulting in a disconnect04:02
ericsnowwwitzel3: ah04:03
wwitzel3ericsnow: the keys still aren't getting populated correct, but that error is also preventing us from connecting04:03
wwitzel3ericsnow: I'm going to keep swing my bat around in this china shop for a while, I'll let you know what i come up with him the morning04:04
dimiternericsnow, hey04:04
ericsnowwwitzel3: k04:04
ericsnowdimitern: hey04:04
wallyworldmenn0: jog: sorry, just finished meeting04:04
dimiternericsnow, can you have a quick look at this please? http://reviews.vapour.ws/r/656/04:04
ericsnowdimitern: sure04:05
jogwallyworld, just trying to decide what to do about bug 139609904:05
wallyworldwhen juju starts, it will restart the state server api to accommodate newly known machine addresses04:05
mupBug #1396099: AWS/Joyent/manual/maas: juju deploy error "connection is shut down" <api> <ci> <deploy> <ec2-provider> <joyent-provider> <manual-provider> <juju-core:Triaged> <https://launchpad.net/bugs/1396099>04:05
dimiternericsnow, thanks04:05
wallyworldjog: if the CI scripts immediately connect to the state server api, they could come undone as the state server api will be restarted very shortly after the state server comes up04:06
wallyworldthis restart is necessary to accommodate a new server certicicate being generated04:06
wallyworldthe certificate regeneration is needed to allow https connections over the state server IP addresses04:07
wallyworldjog: is it plausible to add a small delay to the CI script?04:08
ericsnowwallyworld: how long does it go before restarting after coming up?04:08
jogwallyworld, yeah that sounds like what's happening, but if we add a sleep to the test script, customer who are also scripting will experience intermittent connection failures.04:08
bodie_could use a quick review on https://github.com/juju/charm/pull/81 if anyone has a few moments :)04:08
wallyworldericsnow: as soon as it learns about the state server machine addresses, not sure of the exact time04:08
* jog is actually testing a sleep now04:08
bodie_a worthy Actions schema format04:08
dimiternwallyworld, can't we use the upgrade blocker or something to block deployments until api server cert is regenerated?04:08
wallyworlddimitern: it's a change listener, the addresses could change anytime04:09
davecheneythumper: ta04:09
dimiternwallyworld, hmm right04:09
wallyworlddimitern: so before this, any htths connection over the state server ip address would fail04:09
ericsnowwallyworld: I've see issues with the API client used in backups commands being good for only one request (and then the connection shows up as disconnected), so perhaps that's related04:09
ericsnowwallyworld: ah04:10
wallyworldericsnow: the backup client, if run after the state server has fully come up, will not be affected by this04:10
ericsnowwallyworld: yeah, that's what I gathered from what you just said :)04:11
wallyworldwell, by fail, i mean certificate verification would fail04:11
ericsnowdimitern: LGTM04:13
dimiternericsnow, cheers04:13
dimiternwallyworld, well, the api client could be made more robust I guess04:14
dimiternwallyworld, I mean since this happens at every bootstrap the initial connection (or say first 3 attempts) might fail, but shouldn't be logged as errors04:15
dimiternwallyworld, and the sleep could be in there, rather than in the ci script04:16
jw4ericsnow: thanks for that clarification - copied:= *meta... looked like a pointer assignment to me04:24
wallyworlddimitern: the issue is that if it is really quick, a client might grab a connection which is then lost with the restart. we could look at delaying the state server start until after the first address change04:26
dimiternwallyworld, that second part sgtm04:26
wallyworldi'll raise a bug04:26
ericsnowjw4: yep, * != &, but our brains don't handle that so well sometimes :)04:30
anastasiamacericsnow: this should be on a t-shirt :D04:34
jw4ericsnow: :-p04:35
jw4ericsnow: yours did04:35
ericsnowjw4: sure, this time... :)04:36
jw4hehe04:36
wallyworldjam1: hi, i see you guys did some work on the status spec. i made a couple of v1 compatibility comments near the top. i also see you didn't like "broken", which is to blocked as busy is to waiting05:07
jam1wallyworld: so it isn't entirely, we did discuss it a bit05:08
jam1specifically, Broken is actually "come look and fix something with *me*"05:08
jam1which is what we had as broken05:08
wallyworldyes05:08
wallyworldjust like busy, which is waiting on me05:08
jam1(yes, it means you need to relate me to something else, but that distinction vs you need to fix my config isn't very compelling)05:08
jam1wallyworld: so still, not exactly05:08
jam1sorry, I had a typo05:09
wallyworldnot just my config, could also be disk spac eetc05:09
jam1*blocked* is come look at me05:09
wallyworlddoesn't matter, we can go with what's there05:09
wallyworldi see there's a lot of extra unit states05:09
jam1wallyworld: so I would like you to understand how we put the rationale together, I realize in the scale of things the specifics aren't huge, but there was a fair discussion and I was happy with how the mapping worked out.05:11
wallyworldi think i disagree that error shouldn't be on agent-state, as just because a hook fails, doesn't mean that the software isn't running, but you guys would have discussed that05:11
jam1wallyworld: so one guiding thing there is that we want to move to where we have 1 Juju agent for the machine and all its units05:11
jam1not 1 unit-agent per unit05:11
wallyworldyes, that's true05:12
jam1wallyworld: so you do need a place to say "this unit failed its hook", without saying that all units are dead05:12
wallyworldso error is best done on unit then05:12
wallyworldfair point05:12
jam1wallyworld: IIRC there is *also* error on the agent for compat05:12
jam1and then we drop that in favor of "failed"05:12
jam1when the agent itself is unresponsive05:12
wallyworldyes05:12
wallyworldso you agree with my v1 compat comments?05:13
wallyworlds/do/do05:13
wallyworlds/so/do05:13
jam1I haven't gotten to them yet, just chatting with you here05:13
wallyworldsure, sorry05:13
jam1wallyworld: np. So Mark feels strongly that we can drop pending, because nobody is actually depending on it, but we'll keep Started and Error05:14
jam1We don't need Installed, because nothing stayed there very long05:14
jam1Down is a fair point, though05:14
wallyworldi figured that would be the case for Installed, just wanted to be 10000% sure05:14
wallyworldi wasn't sure if we wanted to be really anal about keeping 100% compat05:15
wallyworldi think we need to keep Stopped also05:15
wallyworlds/need/should05:15
wallyworldas we don't know who has scripts that depend on it05:16
jam1wallyworld: this is agent-state stopped, right? Are we actually able to depend on it? We can run it by fwereade or someone, but I thought Stopped only existed as long as the Database hadn't cleaned up that unit yet05:16
jam1We may need to keep it for the same purpose, though.05:17
wallyworldjam1: yes, the current agent-state Stopped05:17
wallyworldwe might be able to safely drop it, as for Installed, just want to be sure05:17
bodie_I'd really like to land this so TheMue can land the changes in master tomorrow: https://github.com/juju/charm/pull/8105:49
bodie_it's a pretty simple change which tweaks the way Charm parses actions schemas from yaml05:49
wwitzel3so when cloud-init writes the authroized_keys file, where does it get the information it writes in to there from?05:50
bodie_s/tomorrow/today05:51
bodie_(but a huge usability improvement from the charm author's perspective)05:52
dimiternbodie_, looking05:52
jogwallyworld, looks like something with 24c1b80d is affecting upgrades across multiple substrates05:53
bodie_dimitern, thanks!05:53
wallyworldlet me look at what the rev is05:53
wallyworldjog: this PR https://github.com/juju/juju/pull/1291 ?05:54
jogwallyworld, yes05:56
wallyworldi have no knowledge of that work, what do the CI logs say is the problem?05:56
jogwallyworld, joyent, aws, hp, azure, maas, KVM, ... all timing out after waiting 10 minutes for juju status after the upgrade... so at a minimum the time for an upgrade to complete has increased06:01
=== kadams54 is now known as kadams54-away
wallyworldwouldn't surprise me if it's more than that, more likely to be a breakage, the juju state server upgrade and machine log would be helpful06:02
wwitzel3so in the cloud-init log I see 014-12-18 05:51:56,497 - util.py[DEBUG]: Writing to /home/ubuntu/.ssh/authorized_keys - wb: [384] 1416 bytes06:03
wwitzel3which implies that it is writing the keys, but when I look at that file, there are only the keys from the provider06:03
wwitzel3I wonder if Google is overwriting them after we write them ..06:03
wallyworldcould be, i know nothing about gce06:04
wwitzel3hrmm actually I think maybe I am just not writing them to the proper place in the metadata06:06
jogwallyworld, I can attach log or if you want to look sooner one instance is under the artifacts here:  http://juju-ci.vapour.ws:8080/job/aws-upgrade-precise-amd64/2176/06:06
wwitzel3but then what is cloud-init writing? .. hrmm06:06
wallyworldjog: looking06:07
jogwallyworld, this looks like the same issue menn0 fixed yesterday " login blocked because upgrade is in progress"06:10
wallyworldi wasn't aware of that fix - do the logs look the same or similar?06:11
wallyworldi can see a test fix06:13
wallyworldthe logs sure do have a lot of terminated connections06:15
jam1fwereade: ping for where you're at with active/goal06:15
dimiternbodie_, reviewed06:16
bodie_dimitern, thanks, have been following along making a few changes :)06:16
bodie_I really ought to call it a day though06:16
bodie_I think most of this should be very straightforward -- can you sync up with TheMue?  I have to get up early to travel in the morning06:17
bodie_he offered to pick it up since I'm leaving town06:17
bodie_or... expect him to ping you back in there06:17
jogwallyworld, this was yesterdays fix https://github.com/mjs/juju/commit/f22f2f07ace804fbce81b66bfe938439a6878a2906:17
bodie_or something which works well and makes everyone happy ;)06:17
dimiternbodie_, ok, feel free to land this, but I'd like you to address the suggestions in a follow-up if you don't mind?06:17
dimiternbodie_, I will sync up with TheMue06:19
wallyworldjog: could be related, but doesn't seem like it. i can't see off hand from the logs what the issue is. more detailed investigation is required06:20
wallyworldare these upgrade failures intermittent?06:20
dimiternwallyworld, I might be able to help there, let me have a look at the logs06:21
wallyworldty :-)06:21
jogwallyworld, dimitern nearly all substrates started failing upgrade tests with pull 1291... so not intermittent, rather very consistent06:24
dimiternjog, why is the job destroying the environment? http://juju-ci.vapour.ws:8080/job/aws-upgrade-precise-amd64/2175/console after upgrade06:25
* wallyworld bbiab06:25
dimiternjog, this is seems fishy 2014-12-18 03:27:58 INFO juju.provider.common destroy.go:15 destroying environment "aws-upgrade-precise-amd64"06:26
jogit waits 10 minutes checking 'juju status' and then gives up and destroys the environment, so the resources are available for the next test06:26
dimiternjog, ah, ok06:26
jogdimitern, wallyworld, I think we should block on this, it might be harder to figure out if addition code lands06:28
bodie_dimitern, that sounds perfect, much appreciated!06:36
dimiternjog, looking at the logs so far it seems the upgrade was completed on machine-0, but the upgrade block wasn't lifted06:39
jam1fwereade: poke when you're awake06:43
wwitzel3man, it got late. We are so close to getting GCE to bootstrap.06:44
dimiternwwitzel3, \o/06:46
bodie_dimitern, I'm going to go ahead and ship the charm fix, and open a new PR with the requested changes referenced.  I also have a branch for updating tests on master to reflect this stuff06:46
dimiternbodie_, sweet, thanks06:48
dimiternjog, this is the issue: cannot set agent version for machine 0: not found or dead06:54
dimiternjog, and machine-0 is obviously alive and well, so something around env-uuid changes in state recently does not work properly06:54
bodie_fwiw, the PR to fix the charm actions parsing in juju master is http://reviews.vapour.ws/r/661/ if anyone fancies having a look06:55
jogdimitern, I opened bug https://bugs.launchpad.net/juju-core/+bug/140373806:55
mupBug #1403738: upgrade tests fail on multiple substrates with revision 24c1b80d <juju-core:Triaged> <https://launchpad.net/bugs/1403738>06:55
jogdimitern, do you need anything else from me? If not my day is long over.07:07
dimiternjog, can you re-run one of the failing jobs, but using logging-config: <root>=TRACE in envs.yaml ?07:07
dimiternjog, with <root>=INFO we're practically loosing all context during the upgrade - all upgrade jobs should run with at least logging-config: <root>=DEBUG07:08
jogok07:09
jam1wallyworld: fwereade: we feel pretty good about where the status spec is at (you should have gotten an email). So comments are welcome.07:09
wallyworldjam1: ty, will look07:10
jam1wallyworld: are you around at all during the break?07:15
jam1I feel like it might be good to have a hangout to discuss finer points, but I know everyone is officially not-working07:15
wallyworldjam1: sure, i can be available, what time is the break?07:17
jam1wallyworld: I mean Holiday break07:18
jam1eg, next week07:18
wallyworldjam1: oh, right :-) that will be fine too07:18
wallyworldmaybe one evening my time, afternoon your time, which will be midday for william07:19
jam1wallyworld: k, I know I'm out of town from 25-1st, but I'll have Monday/Tues that I'm just relaxing around the house07:19
wallyworldok, maybe aim for monday depending on william's availability?07:19
=== urulama|out is now known as urulama
wallyworldfwereade: you free for a catchup in 10?07:22
dimiternjog, updated the bug07:38
wallyworldjam1: storage phase 1 spec has openstack cinder volumes in scope, yet the in scope providers are listed as maas, local, aws. i thought openstack was out of scope for phase 108:36
wallyworldjam1: you may have missed my message when your connection bounced08:42
wallyworldstorage phase 1 spec has openstack cinder volumes in scope, yet the in scope providers are listed as maas, local, aws. i thought openstack was out of scope for phase 108:42
jam1wallyworld: thanks for the heads up, the network here likes to stay up for approximately 2min before needing to be reset…09:04
jam1I did try to flag that with a comment, can you make sure there is a note if mine didn't go through ?09:04
wallyworldsure, will do, just about to be called for dinner, will do it straight after09:04
TheMuemorning09:26
voidspaceTheMue: o/09:32
=== rogpeppe3 is now known as rogpeppe
voidspacedimitern: ping09:48
dimiternvoidspace, pong09:52
voidspacedimitern: hey, hi09:54
voidspacedimitern: davecheney suggests that network.SubnetInfo should use net.IP for the AllocatableIPLow and High09:54
voidspacedimitern: what do you think?09:55
dimiternvoidspace, sgtm09:55
voidspacedimitern: we have to convert back to strings where we *use them*09:55
voidspacedimitern: in state and on the wire09:55
voidspacedimitern: and it doesn't save us validation as constructing an IP doesn't return an error (you have to check for a nil value)09:55
voidspaceso I'm not sure what it buys, beyond more conversions09:56
voidspacedimitern: TheMue: little girl just woken up - neighbour has agreed to babysit (wife out), but I have to set that up09:58
voidspacedimitern: TheMue: will take a few minutes, so will be late to standup again... sorry09:58
TheMuevoi09:59
TheMuevoidspace: ok09:59
rogpeppeis a unit's public-address also supposed to be accessible from within an environment?10:05
rogpeppedimitern: ^10:05
voidspaceTheMue: dimitern: babysitter here, omw10:07
dimiternrogpeppe, you mean like in ec2 automatic public ips ?10:07
rogpeppethe question is really: is it reasonable to have a single address for a service endpoint that works both within the environment (from unit to unit) and from outside it?10:07
dimiternrogpeppe, short answer - it depends10:07
rogpeppedimitern: i mean the public-address as reported by the unit-get public-address charm tool10:08
dimiternrogpeppe, in joyent for example you can, but not in ec2 or openstack (depends on how floating ips are configured)10:08
rogpeppedimitern: i thought it worked ok in ec2 as the public-address resolves correctly whether you're inside or outside the cloud10:09
voidspaceTheMue: dimitern: struggling to join...10:09
rogpeppedimitern: but perhaps i'm misremembering?10:09
voidspace"Trying to join the call. Please wait..."10:09
rogpeppedimitern: i'm more concerned with the intra-environment behaviour here10:10
dimiternrogpeppe, you're talking about different things10:10
rogpeppedimitern: as i already know that public-address might not be accessible from outside the env - that's an issue we always need to deal with10:10
dimiternrogpeppe, the ec2 instance dns name resolves to internal ip in ec2 or to the public ip outside10:10
rogpeppedimitern: and that's what we report for public-address, right?10:11
rogpeppedimitern: or has that changed?10:11
rogpeppeperhaps i should phrase the question like this: can i be sure that a unit can connect to another unit's public-address as well as its private-address?10:12
rogpeppevoidspace, dimitern: FWIW, I'm +1 on using net.IP when we know we've got IP addresses10:13
rogpeppevoidspace: and net.ParseIP does validate, even though it doesn't return an explicit error10:14
dimiternrogpeppe, it depends on the provider10:16
rogpeppedimitern: hmm, that's not great10:17
dimiternrogpeppe, in standup now, i'll get back to you in a bit10:18
rogpeppedimitern: ta10:19
rogpeppeanother network-related question: is it possible for a unit to find out the public address of another unit that it's related to?10:45
rogpeppedimitern, fwereade: ^10:45
dimiternrogpeppe, so you can rely on a split horizon dns name to work internally and externally in ec2 and openstack (if so configured)10:46
dimiternrogpeppe, not automatically - via relation settings10:47
rogpeppedimitern: and public-address will always return a split-horizon dns name10:47
rogpeppe?10:47
dimiternrogpeppe, I wouldn't say always10:47
rogpeppedimitern: ok, so i can't rely on this at all then?10:47
dimiternrogpeppe, in juju status - most likely, as unit.PublicAddress - if set by the provider (IIRC some providers were explicitly changed to either return dns name or ip for various reasons)10:48
rogpeppedimitern: my situation is that i have a web service that returns some data to the client which includes the address of another service for the client to connect to.10:49
rogpeppedimitern: i'd like that client to work correctly whether it's inside the environment or outside it10:49
dimiternrogpeppe, right10:49
rogpeppedimitern: it currently looks like that's not possible without returning more than one address10:49
dimiternrogpeppe, yes10:50
rogpeppedimitern: and that a standard http relation isn't sufficient to find out the public address10:50
dimiternrogpeppe, hopefully this will change as more networking model stuff lands10:50
rogpeppedimitern: i'm guessing that it will only change if this specific requirement is on the roadmap10:50
dimiternrogpeppe, alternatively, you can use custom networking config inside the charm10:51
rogpeppedimitern: how would that work?10:51
dimiternrogpeppe, so your webservice charm returns this info via relation settings?10:52
rogpeppedimitern: no, via http10:52
dimiternrogpeppe, ok, so the webservice is not running inside a charm?10:53
rogpeppedimitern: it's part of the http API that it exposes10:53
rogpeppedimitern: yes, it is running inside a charm10:53
rogpeppedimitern: all the services here are running as charms, possibly excluding the client10:53
dimiternrogpeppe, and you want to return a single hostname/ip that's usable both internally and externally?10:53
rogpeppedimitern: ideally, yes10:54
dimiternrogpeppe, so first, the only way I can think of is to use a split horizon dns name10:55
rogpeppedimitern: but i can't rely on that, right?10:55
dimiternrogpeppe, and it needs to be supported either by the cloud itself (like ec2) or by another exposed service running a dns server10:55
dimiternrogpeppe, not right now, because the addresses we store in state are not in a single place10:57
dimiternrogpeppe, that's why it's unreliable - unit.PublicAddress() returns whatever its assigned machine's Addresses() method returns10:58
rogpeppedimitern: an arbitrary selection, presumably?10:58
rogpeppedimitern: because Addresses can return many addresses10:59
rogpeppedimitern: i think i'll just go with returning several addresses to the client and relying on them to try all of them10:59
dimiternrogpeppe, nope11:00
rogpeppedimitern: anything else i think is being unreasonably optimistic/platform-dependent11:00
dimiternrogpeppe, since a recent change I made all addresses are consistently ordered - public ips before hostnames, then cloud-local, etc.11:00
rogpeppedimitern: ok, so it's still an arbitrary selection but at least a stable choice, then?11:01
dimiternrogpeppe, however the uncertainty still exists, as those addresses are merged from the instance addresses (coming from the provider) and machine ones (as discovered by the net package)11:01
dimiternrogpeppe, it is stable yes11:01
rogpeppedimitern: hmm, so that means that IP addresses are always chosen over host names?11:01
rogpeppedimitern: so you'll never get a split-horizon DNS name?11:02
dimiternrogpeppe, and provider addresses always shadow machine ones - so if the provider (e.g. like maas) adds dns names in addition to ips in response of calling instance.Addresses() - you'll get those, then machine addrs in a single list, ordered11:03
dimiternrogpeppe, effectively, since that change it's even less likely (can only happen if there are only hostnames)11:03
rogpeppedimitern: so i'm right that it'll never return a DNS name when an IP address is available?11:04
rogpeppedimitern: "it" == "unit-get public-address"11:04
dimiternrogpeppe, but this can change - preferring ips over hostnames was a requirement for api endpoints, but for intra-environment communication can be different11:04
rogpeppedimitern: in this case, this is about from-the-outside access to the environment11:05
dimiternrogpeppe, it depends what ip - if it's public, yes - it will always come before any hostnames; if cloud-local - hostnames come first11:06
rogpeppedimitern: aren't ip addresses less stable than dns names?11:06
dimiternrogpeppe, in maas'es case for example we have "vm0.maas" "192.168.10.1" and "127.0.0.1" - hostname will be chosen11:07
dimiternrogpeppe, ips are absolute (much more so at least than hostnames that can resolve to anything)11:07
rogpeppedimitern: yeah, but ip addresses can be on short-term lease11:07
rogpeppedimitern: in this case i need a stable address that can be used to contact a service11:08
dimiternrogpeppe, that's rarely an issue11:08
dimiternrogpeppe, I agree11:08
dimiternrogpeppe, and can suggest raising a bug about it :)11:08
rogpeppedimitern: ok11:09
dimiternrogpeppe, i.e. have a way to get a hostname if possible for public-address11:09
rogpeppedimitern: it would be quite nice if a unit was able to get the public address of a related unit as well as its priviate address too11:10
dimiternrogpeppe, it still can - if the remote unit sets its address into the relation settings11:11
dimiternrogpeppe, also, there might not be a public address to get11:12
rogpeppedimitern: also, this means that "unit-get public-address" in ec2 will never return an address that is reachable from within the environment, right?11:12
dimiternrogpeppe, e.g. in maas all ips are cloud-local11:12
rogpeppedimitern: that's true. i'm thinking that public-address is provided by default (when available) along with private-address11:13
dimiternrogpeppe, that's like this since several months now actually - after DNSName got dropped from Environ11:14
rogpeppedimitern: just to be clear, there's currently no way to obtain the ec2 split-horizon DNS name within juju, right?11:14
dimiternrogpeppe, ec2 now only reports ips (public and private)11:14
dimiternrogpeppe, there are lots of ways :) - fetching a metadata url from the charm for example11:15
dimiternrogpeppe, but not a "usual" way11:15
rogpeppedimitern: yeah, i don't want to write ec2-specific code in my charm11:16
rogpeppedimitern: that kinda loses the point of juju11:16
dimiternrogpeppe, i can't recall what was the reasoning behind removing DNSName() from Environ11:16
dimiternrogpeppe, true, i'm not suggesting it seriously11:17
rogpeppedimitern: i guess one way forward would be to expose a way to get all a unit's addresses from a unit, (and possibly from a related unit)11:17
dimiternrogpeppe, yeah - a client api call "get all unit addresses"11:20
rogpeppedimitern: i'm actually thinking of: unit-get addresses11:21
dimiternrogpeppe, which then can be called from a hook tool that does that11:21
rogpeppedimitern: and relation-get addresses11:21
dimiternrogpeppe, the address-get hook tool that's on the roadmap for 15.04 will do this11:22
rogpeppedimitern: the client side is another question - the only way to get a unit's address is through status currently, right?11:22
dimiternrogpeppe, by default it will return a single address; you can specify -r <rel-id>  -maybe --all as well11:22
rogpeppedimitern: ah, replacing unit-get ?11:23
dimiternrogpeppe, yep - unit-get will only live for backwards compatibility but will get dropped and aliased to something else in the mean time (most likely address-get)11:23
fwereademm, heston blumenthal mass-produces a pretty decent christmas cake11:50
rogpeppefwereade: :)12:05
* rogpeppe has mince pies downstairs12:05
rogpeppedimitern: as it turns out the public IP address also works ok internally in ec212:07
dimiternrogpeppe, nice! :)12:08
jam2fwereade: sounds yummy. feeling better today ?12:14
fwereadejam2, yeah, more-or-less with it again12:15
voidspacedimitern: fancy giving my PR another quick look-over (including string to net.IP change)12:29
voidspacedimitern: http://reviews.vapour.ws/r/644/12:29
dimiternvoidspace, sure thing12:30
dimiternvoidspace, great, just 1 typo12:35
dimiternwell, not a typo - more like an omission12:35
voidspacedimitern: ok, cool - thanks12:36
voidspacedimitern: hmmm... looks like the change to SubnetInfo to use net.IP instead of string is causing a panic12:44
voidspacedimitern: ... Panic: runtime error: hash of unhashable type network.SubnetInfo (PC=0x414676)12:45
voidspace 12:45
voidspacedimitern: investigating12:45
voidspacedimitern: hah, jc.SameContents is panicking trying to compare12:45
dimiternvoidspace, use jc.DeepEquals instead?12:46
voidspacedimitern: I presume SameContents is being used to not be order dependent12:47
voidspacedimitern: (this is a pre-existing test)12:47
voidspacedimitern: I'll try it though12:47
voidspaceit works12:47
voidspaceShipIt!12:47
dimiternvoidspace, it's used for maps (or was it slices?) but works for gcc-go (ppc) and golang-go12:53
dimiternvoidspace, \o/12:54
wwitzel3ericsnow: bug #1403662 lgtm, so I'm going prepare the commit to backout the hack we have working around it14:23
wwitzel3ericsnow: also I still didn't get the ssh issue solved .. even with explictly adding the sshKeys to the GCE metadata.14:24
wwitzel3ericsnow: it is like there is a step we are missing14:24
wwitzel3ericsnow: ok, so I have the keys being properly uploaded to GCE, now I'm just trying to resolve this "error: Could not load host key: /etc/ssh/ssh_host_ed25519_key"14:51
wwitzel3ericsnow: that is the error the juju ssh client keeps disconnecting on14:51
LinstatSDRGood morning all.14:52
wwitzel3ericsnow: looks like we are running in to this bug https://bugs.launchpad.net/cloud-init/+bug/138211814:55
mupBug #1382118: Cloud-init doesn't support SSH ed25519 keys <cloud-init:New> <https://launchpad.net/bugs/1382118>14:55
ericsnowwwitzel3: looks like you're on to something15:13
natefinchwell that looks less than promising15:15
ericsnownatefinch: it does mean we are nearly done with bootstrapping (I think)15:20
natefinchericsnow: awesome.  Any idea if that bug is going to be a major problem for you guys?15:21
ericsnownatefinch: I imagine so but wwitzel3 may have a better idea of it15:22
wwitzel3natefinch:I don't know much about cloud-init .. can we send it some a set of custom commands to run for us?15:28
wwitzel3natefinch: we either need the sshd_config on the instance to remove the line expecting ed25519 keys or we need to issue a ssh-keygen to create the expected key file.15:29
natefinchman I wish we used github for releases.... trying to figure out what code is in what release in launchpad is a huge pain15:39
perrito666natefinch: tags dont have the same name as releases in lp?15:40
natefinchperrito666: ha, I missed we had tags on juju... it's a separate tab in the list of branches.  Thanks for that.15:41
=== kadams54 is now known as kadams54-away
=== kadams54-away is now known as kadams54
ericsnowfwereade: PTAL: http://reviews.vapour.ws/r/663/16:29
ericsnowfwereade: that drops the AZ from unit-get and adds it as an env variable16:30
ericsnowfwereade: let me know if that's what you had in mind16:30
fwereadeericsnow, catching up wit hthe related code: I'm wondering (1) why we set context.availabilityZone in factory.updateContext, especially given the doc comment on updateContext and (2) why there aren't any tests for it in factory_test.go?16:34
ericsnowfwereade: I'll take a look16:36
ericsnowfwereade: FWIW, a lot of what I did for availability zones was following the precedent of what I considered to be the similar fields16:38
fwereadeericsnow, hmm, what are the untested factory/context bits? I made an effort to fix them -- not saying I *did* catch them all, but I'd like to know so I can fix them ;)16:40
ericsnowfwereade: oh, I probably just missed addin the AZ-related tests16:42
ericsnowfwereade: if I see something missing I'll let you know :)16:42
katcogah, trunk is currently closed?16:42
katcothe room's title lies!16:42
fwereadeericsnow, I don't want to claim particular superiority of the existing code, though: in particular all the tests that directly construct a *HookContext are Bad Tests, and they're only like that because I was [focused on delivering business value elsewhere|too damn lazy] (strike out whichever does not apply)16:42
katcowe really should modify mup to report CI status.16:43
natefinchkatco: the only thing that never lies is this page: https://bugs.launchpad.net/juju-core/+bugs?field.status%3Alist=TRIAGED&field.status%3Alist=INPROGRESS&field.importance%3Alist=CRITICAL&field.tag=ci+regression+&field.tags_combinator=ALL16:43
fwereadeericsnow, (context: I added Factory and moved NewHookContext into export_test.go, but didn't fix all the tests that used it)16:43
* natefinch has that labeled in his bookmarks toolbar as "CI Blockers"16:43
katcoit seems like this question comes up CONSTANTLY and from different people16:44
katcoit's clearly something we need to make more clear somehow16:44
natefinchkatco: yeah, I don't know enough about launchpad to know if there's some way to create a status page or something16:44
natefinchkatco: rather than a random filter of existing bugs16:45
katconatefinch: there is; i wrote some emacs lisp to interface w/ launchpad16:45
katconatefinch: ah, yeah that's probably what it would be: does this query return anything? blocked. no? not blocked.16:45
ericsnowfwereade: got it16:45
katcoand then have mup periodically do that16:45
katcoand change the room topic16:45
katcoand maybe announce it16:46
katco~1m or so16:46
natefinchplease no announcements every minute :)16:46
katcono i mean if it changes haha16:46
katco"CI IS OPEN AND ALL IS WELL! HEAR YE HEAR YE!"16:47
fwereadehaha16:48
katco^ this guy gets it!16:48
natefinchit would be nice, but not really sufficient, I think.  It's easy to miss stuff in IRC, and you don't see the room title except on login....  I'm much rather have a webpage with a URL I can at least attempt to remember that I can point people to.16:48
katconatefinch: +1; but fwiw, the topic is always up for me and i can set notifications on keywords/people16:49
voidspacenatefinch: if you use xchat you see the room title all the time16:49
katconatefinch: but i website would be a great first step. i don't even care if it's blank and the background changes from #00FF00 to #FF000016:50
natefinchOh, yeah, there it is at the top of the screen...16:50
katcoand it should probably be hooked into reports.vapour or w/e16:50
natefinchit's just like a foot above where I usually look on my IRC window16:50
voidspacehah...16:50
voidspacenatefinch: you remember the question I asked you about netmasks the other day? How to work out the last ip in a subnet.16:51
voidspacenatefinch: I was taking the number of zeros in the netmask, then OR'ing (2 ** numZeros -1) with the first IP16:51
voidspacenatefinch: which works16:52
voidspacenatefinch: but instead you can do 1 << numZeros16:52
voidspacenatefinch: which gives you the number of IPs in the subnet16:52
natefinchvoidspace: ahh, bit twiddling16:52
voidspacenatefinch: and is a bit more elegant (then add that to the first IP)16:52
voidspacenatefinch: yeah, fun16:52
natefinchvoidspace: evidently useful for more than CS101 and job interviews ;)16:52
voidspacehehe16:53
voidspaceand crypto16:53
natefinchvoidspace: well, I guess... though if you're writing your own bit twiddling code for crypto, you're probably doing it wrong.16:54
voidspacenatefinch: yeah probably16:54
natefinchvoidspace: but I get your meaning.  Certainly bit twiddling is useful in many circumstances... I was mostly joking :)16:55
voidspacenatefinch: :-)16:55
dimiternericsnow, hey17:05
ericsnowdimitern: what's up?17:05
dimiternericsnow, mattyw asked a question today about which repos are handled by the automatic RB diff creation from PRs17:06
ericsnowdimitern: currently just core and utils17:06
dimiternericsnow, and now that I think of it - I wondered as well17:06
dimiternericsnow, ah, ok, thanks17:07
ericsnowdimitern: It's been on my todo list to add the rest of the ones that RB knows about17:07
dimiternericsnow, and where is the bot/script that does that live?17:07
dimiterns/live//17:07
dimiternericsnow, iirc it's running on some ec2 instance17:08
ericsnowdimitern: it's a github webhook (pointing to a RB URL)17:08
ericsnowdimitern: oh, the GH bot?  I don't know17:08
dimiternericsnow, ah right17:08
dimiternericsnow, so each repo has a webhook configured?17:09
dimiternericsnow, each := juju and utils I mean17:09
ericsnowdimitern: exactly17:09
dimiternericsnow, ok,thanks17:10
ericsnowdimitern: np17:10
alexisbwwitzel3, you around?17:14
=== kadams54 is now known as kadams54-away
voidspacealexisb: o/17:19
voidspacealexisb: hey, alexis - just saying hi17:20
voidspacealexisb: happy christmas and see you next year :-)17:20
wwitzel3alexisb: yes, the bug ended up not being a blocker for gce17:20
voidspacewwitzel3: and you Wayne - I'm signing off for the year shortly... have a good holiday17:21
wwitzel3voidspace: ahh, have a great one! :)17:22
katcovoidspace: happy new year!17:22
voidspacekatco: thanks :-) Have a good break and see you on the other side.17:22
alexisbhey there voidspace we havent chatted in like forever17:23
katcovoidspace: you too! best to you and your family17:23
alexisbyou must not be on my calendar17:23
alexisbhowdy and happy holidays to you!17:23
voidspacealexisb: I don't think I am...17:23
voidspacealexisb: we can sort that out next year :-)17:23
alexisbvoidspace, I will fix that17:23
voidspacecoolio17:23
perrito666mgosuites are a torture17:41
wwitzel3so anyone have any pointers on why the /var/lib/juju folder and nonce.txt would not be being created?18:03
wwitzel3when bootstrapping18:04
hazmatanybody seen these types of errors out of go 1.418:11
hazmat$ go get -u -v github.com/docker/swarm/...18:11
hazmatpackage github.com/docker/swarm: /home/kapil/src/github.com/docker/swarm is from https://github.com/docker/swarm/, should be from https://github.com/docker/swarm18:11
voidspaceright, EOY18:23
voidspacebye all18:23
voidspacehave a great holiday and new year, and see you there...18:24
wwitzel3ericsnow: I'm going to grab some food, but I'll leave my session up18:34
ericsnowwwitzel3: k18:34
ericsnowwwitzel3: ping me when you're back18:34
ericsnowperrito666: so it looks like restore has to be all committed by Jan 9...18:35
perrito666ericsnow: so it seems18:36
ericsnowperrito666: or we'll need to disable backups in 1.22 like we did in 1.2118:36
perrito666we are getting there if CI has enough non locked time18:36
ericsnowperrito666: :)18:37
ericsnowif anyone has a few minutes to spare, I could use a review on http://reviews.vapour.ws/r/659/18:38
ericsnowit's a basically a copy of utils/set.Strings with s/String/Int/ :)18:39
natefinchericsnow: ship it!18:39
ericsnownatefinch: thanks18:39
natefinchericsnow: I had looked at it before but forgot to hit the ship it button18:39
wwitzel3ericsnow: back19:07
ericsnowbrt19:08
wwitzel3during bootstrap what is responsible for creating the /var/lib/juju on the instance?19:13
wwitzel3right now, during ssh, when we login, there is no /var/lib/juju/nonce.txt file19:14
wwitzel3in fact, there is no /var/lib/juju folder at all19:14
wwitzel3the finish bootstrap command expects that nonce.txt file19:14
ericsnow(on GCE)19:14
wwitzel3so that is why GCE is failing atm19:14
natefinchwwitzel3: cloud init makes it19:22
=== kadams54-away is now known as kadams54
katcois there a good, clear example of using suites to set up a full juju stack? i'm getting nil-reference exceptions and it's not exactly clear to me why20:16
perrito666katco: mm?20:19
natefinchThere's the dummy provider, but proceed with caution... there be dragons20:19
katcoperrito666: so you know how we chain suites in tests?20:19
perrito666katco: I have no clue20:19
katcoperrito666: i am probably wording it poorly20:20
natefinchembed this suite in that suite etc etc20:20
katcoyeah20:20
perrito666natefinch: I might have let you a review in priv20:31
natefinchkatco: I think it's the JujuConnSuite20:33
katconatefinch: what is?20:33
natefinchkatco: the suite that gives you a bootstrapped env20:34
natefinchkatco: /home/nate/src/github.com/juju/juju/juju/testing/conn.go20:34
katconatefinch: ah ironically that's where the panic happens :p20:34
thumperhello folks20:34
perrito666thumper: morning mate20:34
thumperkatco: what is your error?20:34
katconatefinch: it's the confluence of using that package with another suite i think20:34
waiganithumper: http://reviews.vapour.ws/r/627/20:34
perrito666natefinch: btw, if we have blocking bugs the topic might benefit from that info20:34
waiganithumper: and follow up branch http://reviews.vapour.ws/r/657/20:34
perrito666waigani: I answered one question on one of your reviews20:35
thumpernatefinch: is anyone on your team dealing with https://bugs.launchpad.net/juju-core/+bug/1396099 ?20:35
mupBug #1396099: AWS/Joyent/HP/manual/maas: juju deploy error "connection is shut down" <api> <ci> <deploy> <ec2-provider> <joyent-provider> <manual-provider> <regression> <juju-core:Triaged by natefinch> <https://launchpad.net/bugs/1396099>20:35
thumperI don't always trust the assignee20:35
=== kadams54_ is now known as kadams54-away
perrito666thumper: btw, thanks for taking over yesterday20:35
waiganiperrito666: which review?20:36
waiganiperrito666: got it20:36
perrito666http://reviews.vapour.ws/r/645/diff/#http://reviews.vapour.ws/r/645/diff/#20:36
thumperperrito666: that's fine20:36
perrito666waigani:  that, but only once20:36
* perrito666 lends his computer a second to his mother in law to look up the recipe of a sweet chrismas bread and is profusely ... criticized... for having the kb layout US20:37
waiganihehe20:38
waiganiperrito666: where are the tests for the Restore func?20:39
perrito666waigani: not yet pushed, sadly when I click fixed it sumits immediately instead of remaining in my draft20:40
perrito666waigani: but you added a ?20:40
perrito666which is not very clear20:40
waiganiperrito666: sorry about that , I dropped it20:41
katcothumper: so i'm trying to use the cmd/jujud/agent/testing/agent.go suite, and if i use that alone i get errors with various workers trying to operate on my host's real fs20:42
katcothumper: and then the test just keeps trying to dial the state server which apparently didn't come up20:42
katcothumper: so i tried to bring in juju/juju/testing, and that gives me a nil reference exception (hold)20:43
thumperkatco: do you have the code handy?20:43
katcothumper: do you feel like doing a peer coding session?20:43
thumpercould do...20:44
=== kadams54-away is now known as kadams54_
katcothumper: it's not pushed up anywhere yet20:44
thumperok20:44
perrito666waigani: no problem I was curious if that actually was a way to say wtf20:44
=== kadams54_ is now known as kadams54-away
perrito666ericsnow: my mind is a bit clouded, the cool upload is already landed right?20:57
ericsnowperrito666: right20:57
perrito666tx man20:59
menn0wallyworld: ping?21:02
perrito666ah wallyworld ping me with relative low priority when you have a moment21:03
ericsnowwhere does nonce.txt get written to the new instance during bootstrap?21:18
natefinchericsnow: it gets added to the stuff cloud init does21:18
ericsnownatefinch: but where?21:18
natefinchericsnow: github.com/juju/juju/environs/cloudinit/cloudinit_ubuntu.go#10521:19
ericsnownatefinch: that doesn't write anything to the new host though, right?21:20
ericsnownatefinch: doesn't that happen in cloudinit/sshinit/configure.go?21:21
natefinchericsnow: yeah, it adds a line to cloud init... github.com/juju/juju/cloudinit/options.go#37421:21
ericsnownatefinch: right21:21
perrito666hey people heads up https://github.com/blog/1938-vulnerability-announced-update-your-git-clients21:30
ericsnownatefinch: is there an initial /var/lib/juju/nonce.txt included in the cloud images?21:38
natefinchericsnow: no clue21:39
ericsnownatefinch: :(21:39
wallyworldperrito666: hi21:53
perrito666wallyworld: hi21:53
perrito666wallyworld: ill privmsg you21:53
menn0hmmm.... I think I've found another upgrade regression that's unrelated to what I'm looking at22:04
wallyworldmenn0: hi22:07
menn0wallyworld: hi22:08
menn0wallyworld: i think I figured out what i was going to ask you22:08
wallyworldask away22:08
menn0wallyworld: but i'm about to ask you to review a fix to one of the CI blockers22:08
wallyworldsure22:08
menn0wallyworld: it's a bit of a reorg of the apiworker in the machine agent22:09
* katco looks at menn0 nervously22:09
wallyworldis this the upgrade bug with uuid?22:09
menn0yep22:09
alexisbmenn0, travel approved22:10
menn0wallyworld: but that change has exposed a "bug" in the machine agent22:10
menn0alexisb: thanks22:10
menn0wallyworld: the container setup code was running during upgrades22:10
wallyworldmenn0: so we are roomies, thumper will be jealous22:10
wallyworldah, container setup code should run after upgrades shouldn't it22:11
menn0thumper has nothing to worry about. you're all his :-p22:11
wallyworld\o/22:11
menn0wallyworld: yep22:11
menn0wallyworld: give me a few minutes and you can see what i've done. it's not completely straightforward to fix this.22:11
wallyworldi guess till now the container setup didn't really matter when it ran so we got away with it22:12
menn0wallyworld: well kinda,22:12
menn0wallyworld: there was always a lurking bug there22:12
wallyworldyeah22:13
wallyworldi men it was luck nothing broke till now22:13
wallyworldmean22:13
menn0wallyworld: if the machines collection migration happened at about the same time as the container setup it could have blown up anyway22:13
menn0wallyworld: it's just much more likely now22:13
wallyworldmenn0: one thing also that needs doing is to delay the api worker start up until after the first address change has come in22:14
wallyworldto allow the server cert to be regenerated22:14
wallyworldwith the machine ip addresses22:14
wallyworldthus avoiding a restart after any clients that manage to connect realy, really quickly22:15
menn0wallyworld: yeah, the other CI problem22:15
wallyworldoh, they raised a blocker for that?22:15
wallyworldwtf22:15
wallyworldsigh22:15
wallyworldthat will not be an issue in practice22:15
wallyworldi wish blockers we added to the juju-dev topic22:16
wallyworldso we could see them22:16
menn0wallyworld: they are but it seems to be a manual process22:30
menn0wallyworld: a bot should do it22:30
wallyworldyes22:30
menn0wallyworld: here's that fix https://github.com/juju/juju/pull/134322:32
wallyworldmenn0: ta, in ameeting will look soon22:33
menn0thumper: can you look at https://github.com/juju/juju/pull/1343 pls? wallyworld is probably best placed to review this but he's in a meeting but I'd like to get this CI blocker fixed.22:34
thumpermenn0: ack22:37
thumpermenn0: Ship It!22:41
menn0thumper: ta22:41
stokachuwhen did juju rename its ssh keys to juju_id_rsa?22:50
stokachuor has it always been like that22:50
wallyworldmenn0: change looks good, thanks for fixing22:52
menn0wallyworld: great22:52
wallyworldstokachu: i'm not 100% sure, i thought it was always like that22:52
menn0wallyworld, thumper: thanks for the reviews22:52
stokachuwallyworld: ok cool22:52
menn0wallyworld: this API server restart issue is affecting my personal test scripts too :)22:53
menn0wallyworld: it'll probably bite anyone who has scripted deployments22:53
wallyworldi'm about to relocate, will look at it as soon as i'm online again ain about 20 mins22:54
stokachui wonder, if using JUJU_HOME causes the sshkeys to be renamed22:55
* thumper sighs22:55
thumperI need to take the dog to the vet22:55
thumperbbl22:55
stokachuthough i can't find anywhere in the code where juju_id_rsa is referenced22:56
perrito666mm, making a function take a variadic argument does not imply I get a slice of that type right?23:24
katcoperrito666: the argument is used as a slice, but you are not guaranteed its length is > 023:26
perrito666but, is it a slice?23:27
katcoyes23:27
katcowell... you mean like down at the AST level?23:27
katcolike if you used reflection would it be a slice?23:27
perrito666katco: like I want to append it to a [][]string :)23:27
perrito666katco: exactly23:27
katcooh, yep. it's a slice :)23:27
perrito666so I have a slice of string slices and I append the variadic arg to it (tests)23:28
perrito666but when I try to DeepEqual each of the slices I get an error about the capacity23:28
katcoi am not sure how go constructs the capacity under the covers for variadic parameters23:29
katcomy guess is that it matches the number of parameters passed in exactly?23:29
katcobut it's almost certainly constant, so i'd allocate your test values with whatever capacity it says go has provided23:30
perrito666katco: It seems that it expects the subslices to have been properly allocated23:38
perrito666so I have to make them and then fill them with the contents of the variadic arg23:38
katcoperrito666: deep equals?23:38
perrito666it does not support dirrect assignation23:38
perrito666katco: yup23:38
katcoi guess that makes sense23:38
perrito666I would expect go to have that kind of information for those slices23:39
perrito666katco: https://github.com/juju/juju/pull/1326/files#diff-32f2baace5b89ccd33a7a5a4c0619b3bR6723:43
perrito666I end up having to do that23:43
perrito666If anybody want to take a second look at  http://reviews.vapour.ws/r/645/ Ill be thankful23:46
katcoperrito666: that code makes send to me. what is unintuitive about it?23:47
perrito666katco: well it makes a string slice and copies a string slice23:47
perrito666but I am most likely de-referencing some pointers there which might be what was breaking my code23:48
katcooh, so if you just do a mgoArgs = append(mgoArgs, mongoRestoreArgs...) it complains?23:49
perrito666I have not tried, if you look closely I dont want to append the elements of mongoRestoreArgs but the slice itself23:49
katcoperrito666: oh i think i see what you meant23:50
katcoperrito666: the variadic slice didn't have the correct capacity23:51
perrito666katco: exactly, which is odd23:51
katcoperrito666: i think there is a way to size it down... hm23:51
perrito666katco: well what I end up doing is clear so I will leave it that way23:51
katcoperrito666: maybe make the new slice, and then do a copy?23:53
katcoto elide the for loop?23:53
perrito666I somehow fear copy will blow in a similar way?23:54
katcoperrito666: http://stackoverflow.com/questions/12768744/re-slicing-slices-in-golang23:54
katcoperrito666: well if it's truly the capacity that's erroring out deepequals, as long as your destination slice is the correct capacity i think it should be fine23:54
katcolooks like even better is this: mongoRestoreArgs = mongoRestoreArgs[0:]23:55
perrito666katco: I might give it a try23:55
* perrito666 tries23:55
katcoperrito666: should give you a slice ref with the correct cap. if not, try mongoRestoreArgs[0:len(mongoRestoreArgs)]23:55
katcowith a nice comment :)23:55
perrito666katco: blows23:57
katcoperrito666: both?23:57
perrito666katco: yup (I used a new variable because I find reassignation is a bit ugly)23:57

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