/srv/irclogs.ubuntu.com/2014/07/01/#juju-dev.txt

wwitzel3wallyworld: ok, will fixup the er's .. I can probably do it as two branches, I will look in to that. As for the results, I already define a params.go to hold the result, so I can just store the value that I am marshalling in there instead of manually marshalling it and the RPC layer will do that for me?00:09
wallyworldwwitzel3: i believe so yes00:10
wallyworldthe gui makes other api calls which just return the structs00:11
wallyworldwwitzel3: don't waste time on 2 branches if it's too difficult to split out. bigger branches can be harder to land though since one bit might be ok but other bits may need fixes and the ok bit can't land separately00:12
wallyworldwwitzel3: also, don't forget to add SupportedArchitectures to the results00:14
wwitzel3wallyworld: I actually removed it, since it is send along with each instanceType00:14
wwitzel3sent00:14
wallyworldwe also need to handle that some providers can not supply InstanceTypes but do have SupportedAchitectures etc00:14
wallyworldoh, let me look00:15
wallyworldwwitzel3: i think we need supported arches as an explicit field since otherwise the caller will have to iterate over the instance types and pull out the arches, also not all providers will suport returning instance types but will be able to supply supported arches00:16
wwitzel3wallyworld: which ones? I didn't see that, it is easy to re-add them as their own top level key in the map00:16
wallyworldmanual provider for example00:17
wallyworldmaas also00:17
wallyworldthe supported arches value will be used to guide the user in creating vlid constraints with arch=blah00:18
wwitzel3ahh ok00:18
wwitzel3should I still include it with the instanceType data?00:18
wallyworldno, it is a separate concept00:18
wallyworldeach provider has a SupportedArchitecures() api00:18
wwitzel3wallyworld: right, I just notice that InstanceType had an Arches field and it was the same type as the return value of SupportedArchitectures()00:19
wallyworldwwitzel3: yes, that's right. for ec2 (only i think), instances can run on i386 or amd64. i think for all other providers instance types run on one arch00:20
wallyworldso we record for individual instance types what arch(es) that instance type can run on00:20
wwitzel3wallyworld: ok, so that needs to be specific to the instance, not the provider level SupportedArchitectures()00:21
wallyworldno, it's at the provider level00:21
wallyworldthe supported rches for the provider comes from reading the simplestreams image metadata00:22
wallyworldand adding together all the arches listed00:22
wallyworldso that the system can disallow arch=foo constraints for arches for which there is no available image00:23
wwitzel3wallyworld: right and that is different than the supported arches for an instance00:23
wallyworldwwitzel3: yes, so when an image is chosen, it needs to be matched up with an instance type and the arches also need to match there too00:23
wwitzel3wallyworld: right, so really what I am doing now in the API InstanceType.Arches = provider.SupportedArchiectures() is wrong, I need to move supported up to its own field and only populate Arches from the specific provider instance/package/flavor response00:24
thumperwallyworld: found one leak00:24
wallyworldwwitzel3: so when the user says mem=64G arch=i386, the matching finds an i386 image from simplestreams and then looks at all the instance types which can provid 64G which can run on i38600:24
wallyworldwwitzel3: you don't really need all the instance type data - just the valid names00:25
wallyworldwwitzel3: the gui only cares about knowing what instance type names are valid00:25
wwitzel3wallyworld: oh, ok, so I'll just drop it from the results then and move supportedArchiectures up to its own field00:25
wallyworldi guess we could return all the instance type data00:26
wallyworldnot just the names00:26
wallyworldbut names is all that's needed for now00:26
wallyworldand regardless, yes, we do need supported aches as top level field00:26
wwitzel3wallyworld: sounds good00:26
wallyworldwwitzel3: since we have api versioning, let's start with just names, and add stuff later if needed00:27
wwitzel3wallyworld: also if you have any suggestions of where I should look to create a proper testing env to exercise this code that would be helpful.00:27
thumpermaybe not...00:27
thumpergeez00:27
wwitzel3wallyworld: well I already have all the other stuff in there, but I can remove it if you prefer00:27
wallyworldwwitzel3: i'm wary of yagni00:27
wallyworldand the extra testing, maintenance etc for stuff thats not used00:28
wallyworldwwitzel3: which bit specifically do you need help testing? the client calls?00:28
wallyworldthumper: be with you in a sec00:28
wwitzel3wallyworld: yes, starting from state/api .. the env I am creating is throwing nil pointer exceptions because it doesn't have the InstanceTypes method or AvailabilityZones methods .. but I've added them to the dummy provider ..00:29
wallyworldwwitzel3: i normally add an assertion that a struct implements an interface so i get a compile time error if i haven't got the right methods eg var _ environs.EnvironProvider = (*environProvider)(nil)00:30
wwitzel3wallyworld: https://github.com/wwitzel3/juju/commit/e1598a5300cd20c4c23c02e09952d1b6136fdad3 here is my broken test if that helps00:30
wallyworldthe above says that the environProvider struct implements the EnvironProvider interface00:31
wallyworldand it won't compile if it doesn't00:31
wallyworldwe have a bunch of those in the various providers00:31
wwitzel3wallyworld: ok00:31
wallyworldsince there's several interfaces that can be implemented00:31
wallyworldwwitzel3: dummy provider has these already00:32
wallyworldvar _ imagemetadata.SupportsCustomSources = (*environ)(nil)00:32
wallyworldvar _ tools.SupportsCustomSources = (*environ)(nil)00:32
wallyworldvar _ environs.Environ = (*environ)(nil)00:32
wallyworldi can't see trivially what's wrong with your implementation00:33
wwitzel3wallyworld: ok, thanks, I'll keep poking at it00:33
wallyworldwwitzel3: thank you. let me know how you go00:34
wwitzel3wallyworld: your tip help, added common.EnvironCapabilities like you mentioned and it revealed that the dummy provider wasn't properly implementing the interface00:45
wallyworldcool :-)00:45
wwitzel3wallyworld: I guess now I actually have to write some tests that assert something useful00:45
wwitzel3bugger :P00:45
wallyworldlol yeah00:45
thumperwallyworld: chat when you have a minute00:46
wallyworldthumper: sure, 2 mins00:46
davecheneyhttps://github.com/juju/juju/pull/19500:51
davecheneyi am blocked on this review00:51
thumperwallyworld: https://github.com/juju/juju/pull/20100:52
wallyworldthumper: https://plus.google.com/hangouts/_/canonical.com/tanzanite-daily00:52
axwwallyworld: gonna spend some time today looking into test failures01:05
axwclearly something is very broken01:06
wallyworldaxw: hey, yes please, i was going to ask you to do that. thumper already has one fix landing https://github.com/juju/juju/pull/20101:06
axwcool01:06
menn0axw: I'm just testing that precise upgrades fix now01:06
axwmenn0: cool, thanks01:07
davecheneygrr, version package01:18
wallyworldaxw: also, don't forget to backport stuff to the 1.20 branch eg i think the ssh timeout fix was proposed for master only01:28
davecheneywallyworld: should i move version.SeriesVersion so it is only visible when compiled on linux ?01:30
axwwallyworld: I've been waiting for them to merge into master first. I guess I'd better do it now before I forget01:30
wallyworldaxw: np :-)01:30
wallyworlddavecheney: it's needed on other clients too01:31
wallyworldto set up ubuntu workloads using custom image metadata01:31
davecheneywallyworld: that is a problem01:31
davecheneyhow can I run it on osx ?01:31
davecheneyfuckit01:31
davecheneyi'll just remove that comment01:31
wallyworlddavecheney: see my comment?01:31
davecheneyyup01:31
wallyworldit can run01:31
davecheneyi'll just remove my comment on that function and back away01:31
axw;)01:32
wallyworldwhy not just make the trivial change i suggested?01:32
wallyworldthen it can run on other clients01:32
davecheneylooked harder than just backing out a comment I wrote that was a mistake01:32
davecheneymy comment was in error01:32
davecheneyi have deleted it01:32
wallyworldsure, but it seems like there's a legitimate problem there that is trivially fixable01:32
wallyworldso lets just fix it01:32
davecheneywallyworld: i'll fix it in a followu01:33
wallyworldok01:33
davecheneythe goal is to fix 1.2001:33
wallyworldi didn't think this was broken in 1.2001:33
davecheneywallyworld: i am only going on the reports I have been given01:33
wallyworldthe 1.20 branch was forked of master before this change?01:33
davecheneyi cannot validate the problem or the fix myself01:34
wallyworldi could be wrong01:34
wallyworldlet me check01:34
menn0axw: did this make it in to 1.20 as well? https://github.com/juju/juju/pull/18801:38
menn0axw: my manual upgrade test worked fine btw01:39
axwmenn0: sweet. not yet, I've just created a PR and sent it to the bot now01:39
menn0axw: great, just making sure01:40
axwmenn0: thanks for testing01:40
wallyworlddavecheney: 1.20 was forked for trunk right before that os_version change that broke stuff01:43
wallyworldso any fixes just need to go to trunk01:43
wallyworldaxw: once stuff lands in 1.20, mark the bugs as fix committed as well01:44
wallyworldi think there are 2 branches for bug 133427301:45
axwwallyworld: will do01:45
_mup_Bug #1334273: Upgrades of precise localhost fail <local-provider> <precise> <regression> <upgrade-juju> <juju-core:Triaged by axwalk> <juju-core 1.20:Triaged by axwalk> <https://launchpad.net/bugs/1334273>01:45
axwwallyworld: yep, there's one more coming for 1.2001:45
menn0axw: I've tested the 1.18.4 to 1.19.5 upgrade on precise 3 times now and all looks well01:45
wallyworld\o/01:45
axwmenn0: awesome01:45
davecheneywallyworld: i don't understand01:58
wallyworldhow can i help?01:59
davecheneywallyworld: dunno, does 1.20 cli work on windows ?01:59
davecheneyif so, job done01:59
wallyworldit should i think since the landings to trunk which broke things happened after 1.20 was forked02:00
wallyworldbut02:00
wallyworldeven on 1.20, if SUpportedSeries is called on bootstrap, it will fail02:00
davecheneywallyworld: the bug i have is 1.20 cli doesn't work on windows02:01
davecheneyi cannot validate this muself02:01
davecheneyonly go on the bug report I have02:01
davecheneyand at the moment, things are getting less clear by the second02:01
wallyworldhmmm. i don't know about that then. perhpas that bug was raised before the decision was made to branch 1.20 off an earlier rev from master02:01
wallyworldwe'd need to check with curtis02:02
davecheneysinzui: ping ?02:03
wallyworlddavecheney: what bug number?02:05
davecheneylp # 133449302:07
_mup_Bug #1334493: Cannot compile/exec win client <regression> <windows> <juju-core:Fix Committed by dave-cheney> <https://launchpad.net/bugs/1334493>02:07
wallyworlddavecheney: that bug is not marked as affecting 1.2002:08
wallyworldit was taken off 1.20 on the 28th02:08
davecheneywallyworld: mate all I can tell you is what is in the bug02:08
wallyworldi'm guessing that's when the 1.20 branch was cut off an earlier rev before that bug was introduced02:08
davecheneysomethigns broken02:08
davecheneyi fixed something02:09
davecheneymaybe it helped02:09
davecheneythe bug was introduced in https://github.com/juju/juju/pull/95/files02:09
wallyworlddavecheney: sure, but look at the affected series - 1.20 was removed02:09
davecheneywhich was 17 days ago02:09
* thumper has father in law drop in for a quick visit02:10
davecheneythumper: is that a euphamism for something ?02:11
lifelessboom tish02:12
wallyworlddavecheney: 1.20 was forked before that rev from what i can tell, which is why the bug was changed to no longer affecting it02:13
davecheney1.20 was forked on the 15th of June ?02:14
davecheneyreally ?02:14
wallyworldno02:14
wallyworldlast common rev was merging pull reuqest 16002:14
wallyworldi think your date is a bit out02:14
wallyworldpr 160 was 5 days ago02:15
davecheneywallyworld: oh02:15
davecheneyyou are right02:15
davecheneyi am sorry02:15
wallyworldnp02:15
davecheneyi was lookig at the first comment on that PR02:15
davecheneynot when it finally merged02:15
davecheneyso02:15
davecheneyok02:15
davecheneyso 1.20 isn't broken and trunk isn't blocked then02:15
wallyworldso, i *think* that bug was originally raised as affecting 1.20, and then retracted02:16
wallyworldyes, 1.20 is good, trunk not blocked02:16
davecheneyphew02:16
* wallyworld is not 100% sure the issue is fixed on trunk, but seems to be02:16
wallyworldwith the pr to be merged02:17
davecheneyok, here's the plan02:17
davecheneyi'll merge this one02:17
davecheneythen i have a followup waiting on it that adds more tests02:18
wallyworldok02:18
davecheneywe can keep the fun going there02:18
davecheneydeal ?02:18
wallyworlddeal, thanks :-)02:18
davecheney\o/02:18
wallyworldsorry for confusion02:18
davecheneynope02:18
davecheneyit was my fault02:18
wallyworldnp02:19
thumperwallyworld: I guess my branch didn't fix the panic02:46
thumperwallyworld: sorry...02:46
wallyworldthumper: hey, thanks for trying. you did a lot of good fixes regardless02:46
thumperoh fark...03:04
* thumper had an annoying thought03:04
thumpermenn0: are you around to chat?03:11
menn0thumper: yep03:11
menn0thumper: hang out?03:13
thumpermenn0: yeah03:14
menn0thumper: https://plus.google.com/hangouts/_/gy36zsk3j2lx4ffgfvotsvzxmya03:15
wallyworldthumper: did you foresee a charm's resources directory on disk being a flat list of files?03:25
wallyworldi'd think we'd want a dir heirarchy03:26
thumperwallyworld: yes...03:26
wallyworldhmmm03:26
thumperit was strongly suggested that the dir be flat by the time a charm hook is using it03:26
wallyworldby whom? our fearless leader?03:27
wallyworldthumper: also, there seem to be devel and stable streams. but what about charm revisions? would we have a stream for each revision, or namespace the resources under each stream by revision?03:28
wallyworldaxw: do my eyes deceive me, your branch landed03:35
axwwow, first attempt03:35
thumperwallyworld: charm revisions are independent of stream revisions04:03
thumperwallyworld: the full charm version would then be "charm revision - stream - stream revision" tuple04:03
thumperall mashed together into a string04:03
thumperthat was the idea anyway04:04
davechen1yumm04:47
davechen1yhttps://github.com/juju/juju/pull/19504:47
davechen1ythe bot ate my merge requst04:47
wallyworldlooks like our landing instance might have gone down04:48
wallyworldit was processing a pr and got interrupted04:48
axwweird, mine too04:50
wallyworldhmmm, and now the lander says no pull requests to merge04:50
axwwallyworld: it thinks it's still processing them04:50
axwgotta add a "Build failed: whatever" message04:51
wallyworldi'll poke around and see if i can find out where it keeps its in progress queue04:51
axwwallyworld: it's dumb, it just checks for "Status: merge request accepted." and then a "Build failed:"04:52
wallyworldoh wait, i see what you're saying04:52
wallyworldsigh04:52
axwI think what we should do is add a link to the Jenkins job, so the the lander can periodically check the status of the jobs it thinks are running04:53
wallyworldyep, let's talk to martin about it04:53
axwatm we just get a link to the job type, but not the actual run04:53
axwuntil it fails anyway04:54
davechen1yso, should i $$merge$$ again ?04:54
axwdavechen1y: already done04:54
davechen1ythanks mate04:54
davechen1ycan someone kill this job05:52
davechen1yhttp://juju-ci.vapour.ws:8080/job/github-merge-juju/310/console05:52
davechen1yit's not going to pass05:52
wallyworldgooone05:53
davechen1ytoday is giving me the shits05:54
wallyworldyeah :-(05:55
davechen1ywin1206:07
=== vladk|offline is now known as vladk
axwwallyworld: https://github.com/juju/juju/pull/20506:27
wallyworldlooking06:28
davechen1y# github.com/juju/juju/state06:29
davechen1ystate/action.go:86: too many arguments in call to names.NewActionTag06:29
davechen1ystate/state.go:1389: tag.UnitTag undefined (type names.ActionTag has no field or method UnitTag)06:29
davechen1ystate/state.go:1390: tag.Sequence undefined (type names.ActionTag has no field or method Sequence)06:29
davechen1yis anyone seeing this on master ?06:29
davechen1yyes, i've run godeps06:29
axwdavechen1y: I was before I ran godeps06:29
* axw tries again06:29
davechen1ylucky(~/src/github.com/juju/juju) % godeps -u dependencies.tsv06:29
davechen1y"/home/dfc/src/github.com/juju/names" now at b2e06a0ab1c09f138853d1ef6b11f94ca9f7b67506:29
davechen1ycommit 780947ad0e66382af782c65eec6b86796409f0c706:30
davechen1yAuthor: Roger Peppe <rogpeppe@gmail.com>06:30
davechen1yDate:   Thu Jun 26 15:46:34 2014 +010006:30
davechen1yuse earlier names dependency06:30
davechen1yumm06:30
davechen1ywhy ?06:30
axwno problems here06:30
davechen1yaxw: what sha do you have for juju/names ?06:30
axwb2e06a0ab1c09f138853d1ef6b11f94ca9f7b67506:30
davechen1yta06:31
davechen1yoh fuck06:31
davechen1ygodeps is broken06:31
davechen1ylucky(~/src/github.com/juju/juju) % godeps -u dependencies.tsv06:31
davechen1y"/home/dfc/src/github.com/juju/names" now at b2e06a0ab1c09f138853d1ef6b11f94ca9f7b67506:31
davechen1ylucky(~/src/github.com/juju/names) % git log | head -n206:32
davechen1ycommit d6e9f06b936da18e4feeef3e788bf0dde0cc2d9906:32
davechen1yMerge: 01e6ac7 f52c44306:32
davechen1ygreap, godeps doens't work06:32
davechen1ygreat, that's fucking great06:32
davechen1ynow the new version of godeps06:32
davechen1ylies06:32
davechen1yrather than telling you it can't find that rev06:33
axwhmm. I'm sure it failed for me last time I didn't specify -f06:33
davechen1yಠ╭╮ಠ06:33
davechen1yaxw: i recently upraded to rog's new version06:33
davechen1yimma gonna downgrade again06:33
axwdavechen1y: yeah I'm on the new version too06:34
davechen1yit didn't work for me06:34
axwunless there' a new new version06:34
davechen1yit kept saying "i've updated"06:34
davechen1ybut it didn't06:34
davechen1ysee above06:34
=== vladk is now known as vladk|offline
davechen1yshit .06:46
=== vladk|offline is now known as vladk
davechen1yaxw: https://github.com/juju/juju/pull/20607:02
davechen1yhttps://github.com/juju/loggo/pull/207:06
davechen1ythere are SO MANY races in the apiserver package07:12
mattywmorning all07:15
axwdavechen1y: sorry went to pick up my daughter. looking now07:15
axwdavechen1y: does the detector pick them up? didn't find any last time I ran it07:15
axwmattyw: morning07:15
mattywaxw, thanks for taking a look at my branch - sorry about putting the wrong bug link07:16
mattywA few minutes before I wrote that I commented on the wrong bug in lp as well07:16
axwmattyw: that's ok, I figured it out from the commit description :)07:16
davechen1yaxw: it does, if you're persistant enough07:17
davechen1yhttp://paste.ubuntu.com/7730028/07:17
axwdavechen1y: ah, thanks07:17
davechen1yPR's for both in play07:17
axwsweet07:17
voidspacemorning all07:31
mattywmorning07:33
davechen1yaxw: shit07:34
davechen1ythat race is worse than I thought07:34
axwdavechen1y: which one?07:35
vladkdimitern: ping07:36
dimiternvladk, pong07:37
davechen1yaxw: the one on the loggo/TestLogWriter07:37
davechen1yaxw: i'm fixing it now07:38
axwdavechen1y: ah, I see.07:38
axwhrm, thought I fixed that.. maybe it was a similar case07:38
vladkdimitern: I wrote a test for WatchInterfaces API client, It gives a 5 sec delay between state modification and notify signal07:38
vladkdimitern: test is working fast on API server, but with delays on API client07:39
davechen1yaxw: i cna't see a way we can assert that the TestLogWriter is single threaded07:39
axwdavechen1y: perhaps just call loggo.RemoveWriter before ranging over tw.Log07:40
davechen1yaxw: fuck it, i've gone and made tw.Log a function that returns a copy of writer.Log07:40
axwokey dokey07:40
dimiternvladk, probably the statetesting code used for the watcher need tweaking a bit - can i have a look?07:40
davechen1yif it's worth doing; it's worth over doing07:40
axwless band-aid-ish07:40
axwsgtm07:40
davechen1yaxw: PTAL07:43
davechen1ythis will need some work to integrate into juju and other callers07:44
fwereadevladk, look for BackingState and StartSync it once you're sure there's a notification waiting07:44
fwereadevladk, (even if that's not *directly* applicable, the point is that the *State that's driving the api server needs to be synced -- and that's not necessarily the *State you're usually manipulating in the tests)07:45
dimiternfwereade, statetesting does that internally for the Assert methods07:47
dimitern..IIRC07:47
fwereadedimitern, indeed, but it's not necessarily using the right *State07:47
fwereadedimitern, and if you're using the wrong one you'll see those 5s delays07:47
dimiternfwereade, right07:47
davechen1yttps://bugs.launchpad.net/juju-core/+bug/133618007:48
_mup_Bug #1336180: state/apiserver: yet more data races <juju-core:In Progress by dave-cheney> <https://launchpad.net/bugs/1336180>07:48
dimiternfwereade, vladk, it uses c.State.StartSync()07:48
fwereadedimitern, vladk: so it *should* just be a matter of starting it with s.BackingState, if that's accessible; and figuring out how to set one up if it's not07:49
vladkdimitern, fwereade: https://github.com/juju/juju/pull/20707:49
dimiternvladk, line 278 in networker_test.go - use s.BackingState instead of s.State for NewNotifyWatcherC07:50
dimitern(and in other similar cases)07:51
=== rogpeppe2 is now known as rogpeppe
TheMuemorning08:06
TheMue*yawn*08:06
vladkdimitern: thanks, that works, could you review my PR08:17
dimiternvladk, will do in a bit08:24
=== rogpeppe1 is now known as rogpeppe
voidspacedimitern: so a network interface always has a subnet (in the juju model)09:05
voidspacedimitern: what's the default subnet?09:05
voidspacedimitern: and why do we reference count networks?09:08
dimiternvoidspace, sorry, in a call, will get back to you a bit later09:09
voidspacedimitern: no problem09:09
* fwereade bbiab09:32
mattywis juju-bot on holiday today?09:33
dimiternvoidspace, back09:34
dimiternvoidspace, so there are two default networks - juju-private and juju-public (if available)09:34
dimiternvoidspace, they are discovered and created at bootstrap time, if the provider supports that09:35
dimiternvoidspace, we use refcounts for networks, because they can be referenced by services and/or machines (i.e. they are considered in-use, when the refcount>0)09:36
dimiternvoidspace, removing networks in use is not allowed; refcounts are used as a simple sanity check on the same doc as the network, as opposed to checking multiple documents in other collections09:37
mattywaxw, are you still awake/ working?09:41
axwmattyw: I am here09:43
axwthe bot is not on holiday, it's just a bit sick09:43
axwmattyw: which PR are you trying to land?09:44
mattywaxw, https://github.com/juju/juju/pull/10809:44
mattywaxw, but I was going to ask you about this one: https://github.com/juju/juju/pull/198/09:44
dimiternvladk, reviewed09:45
axwmattyw: nfi why it didn't pick that up...09:45
axwmattyw: ask away09:45
mattywaxw, just wanted to make sure I understand your feedback properly09:46
mattywaxw, do you mean if you specifiy add-machine -n you shouldn't be able to specify lxc:2 as well?09:46
axwmattyw: right09:47
axwmattyw: just like with "juju deploy", which doesn't allow you to do --to and -n together09:47
mattywaxw, deploy uses the UnitCommandBase stuff for all of that, I did wonder if I should be using something generic to provide the -n flag, but I figured it probably wouldn't be worth it, I guess I should just implement the same logic in AddMachineCommand.Init?09:49
axwmattyw: yeah I think so09:50
mattywaxw, also I wasn't sure if I should just be sending a list of items to the existing AddMachine api call - or making a new api that would take a NumMachine int, do you have an opinion either way?09:50
TheMueone small command change for review: https://github.com/juju/juju/pull/20809:52
axwmattyw: I think a list makes sense09:52
voidspacedimitern: thanks09:52
voidspacedimitern: but, I was asking specifically about subnets09:52
voidspacedimitern: every network must have a subnet09:53
dimiternvoidspace, yes09:53
voidspacedimitern: so what is the "default subnet"?09:53
dimiternvoidspace, a subnet of the default network09:53
voidspacedimitern: specifically09:53
voidspacedimitern: what will the netmask be09:53
voidspacedimitern: how do we determine it09:53
dimiternvoidspace, the provider will implement ListNetworks() and/or ListSubnets(), depending on what's supported, and tell us09:54
voidspacedimitern: heh, so for local provider then09:54
dimiternvoidspace, in network.BasicInfo struct used as result will have an IsDefault field09:54
voidspacedimitern: what does the implementation of ListSubnets do? or what if the provider doesn't support subnets09:55
voidspacedimitern: what will we use as the default09:55
dimiternvoidspace, local and manual are special (yet undefined fully wrt networking)09:55
voidspacedimitern: I just wonder if the concept of "you have to have a subnet" really reflects reality09:55
voidspacedimitern: and for refcounts, it seems to be the case that we want refcounts in order to destroy networks09:56
dimiternvoidspace, there are SupportsNetworks() and there will be SupportsSubnets() as well, which each provider implements to tell juju what it can handle, and we call ListSubnets/Networks or both accordingly09:56
voidspacedimitern: i.e. know when they are not references09:56
voidspacedimitern: (sure, but as a network *must* have a subnet I wonder what we do if the provider doesn't support subnets - what is "the default")09:56
dimiternvoidspace, read the doc :)09:56
voidspacedimitern: why do we need to destroy networks? as they're abstract concepts, what's the cost in just leaving them around09:56
voidspacedimitern: I am!09:57
voidspacedimitern: these are questions that don't *appear* to be easily answered09:57
dimiternvoidspace, when the provider does not support subnets, but supports networks, we simulate a subnet by splitting the network.BasicInfo into a network + subnet09:57
voidspacedimitern: right, I'm asking what the subnet part is09:57
voidspacedimitern: it's quite likely that my understanding of the basic concept is flawed09:58
dimiternvoidspace, CIDR + VLANTag (optional) + AvailabilityZone (if applicable) + ProviderId (if applicable) + IsDefault09:58
dimiternvoidspace, sorry, not the last thing09:58
voidspacedimitern: but doesn't a subnet mask off part of the ip range09:58
dimiternvoidspace, a network does not specify a CIDR range, it's a collection of subnets with a name09:58
voidspacedimitern: so do we simulate it by having a 0.0.0.0 netmask09:59
dimiternvoidspace, sure, for example 172.20.0.0/1609:59
voidspacedimitern: so a network from a provider comes with *a subnet* as part of the specification09:59
dimiternvoidspace, if the provider does not support subnets, only networks, and what we get from the provider contains 0.0.0.0/0 as CIDR, that's the "catch-all" case - everything goes10:00
voidspacedimitern: "not supporting subnets" just means we can't create new subnets, but there will always be a default10:00
voidspacedimitern: ok, fair enough10:00
dimiternvoidspace, take MAAS as an example10:00
voidspacedimitern: ok10:00
dimiternvoidspace, it supports networks, which have a label, CIDR, VLANTag and list of connected MACs10:00
dimiternvoidspace, so even if subnets are not supported, we have all the info we need from the network to create a subnet for it10:01
voidspacedimitern: ok, cool10:01
dimitern(not supported as "there's no such api-accessible entity for juju to handle)10:01
voidspacedimitern: much appreciated, thanks10:02
dimitern(effectively, there will always be some subnet involved, but we might not be able to know which, if the provider does not tell us - like manual and local)10:02
dimiternvoidspace, np, glad you're asking the right questions :) i'll update the model doc some more today, including some clarifications around default networks, as discussed with fwereade10:03
voidspacegreat10:04
jam1voidspace: so to put it from my view, (just in case), we model it as having a subnet, even if that subnet just matches the whole network10:26
voidspacejam1: right - that specifically wasn't clear (to me) from the doc. That in order to match our model we might create a subnet that "just matches the whole network"10:41
voidspacejam1: I guess it's implied...10:42
fwereadevoidspace, we refcount networks so we can know when to delete them10:42
dimiternvoidspace, jam1, vladk, TheMue, I'm sorry I might miss the standup due to an unexpected minor emergency, will join later if it's still going10:42
fwereadevoidspace, when we *can* delete them, rather10:42
voidspacefwereade: right, I wonder why we want to delete them10:43
fwereadevoidspace, if they can be added, we should be able to remove them, I think10:43
TheMuedimitern: ok, hope it’s not to bad10:43
TheMuetoo10:43
jam1dimitern: np, take care of your stuff10:44
jam1voidspace: dimitern: I have the feeling it was in an earlier draft...? I thought I had read it in the subnet section.10:44
voidspacefwereade: in general I suppose I agree, refcounting can be a fair amount of work/hassle to get right10:44
voidspacejam1: I will read again (just gone back for a reread anyway)10:44
fwereadevoidspace, refcounting *is* a hassle10:44
voidspacejam1: maybe I just missed it10:44
voidspacefwereade: :-)10:44
jam1voidspace: I don't see it in my quick searching.10:44
fwereadevoidspace, but peculiarities of the mgo/txn model mean that it's the only tool we really have10:45
jam1Probably worth adding to the subnet/network sections somehow. As EC2 doesn't really have a Network model, just subnets, and MaaS doesn't have Subnets, just a Network.10:45
jam1speaking of which, TheMue, voidspace, vladk: standup?10:45
fwereadevoidspace, in particular, we can only do asserts against specific documents10:45
fwereadevoidspace, so there's no way to assert that "no service uses this network", for example10:46
voidspacefwereade: right10:46
TheMuejam1: coming, only quick jump to the bath ;)10:46
voidspaceoh for a relational query I guess...10:46
jam1TheMue: ??10:46
fwereadevoidspace, well we can do queries just fine10:46
fwereadevoidspace, but we can't use them in txn asserts10:46
mattywaxw, don't suppose you're still around?10:46
voidspacefwereade: ah, I see10:46
perrito666gsamfira: ping?11:16
gsamfirahey11:17
perrito666sorry I got here a bit late, are you in today?11:17
gsamfirayup, but It will be a short day for me.11:17
gsamfiraI'm in the hangout11:17
perrito666gsamfira: william and I are there too and we dont see you11:18
perrito666:)11:18
gsamfirahmm11:19
gsamfiracan you give me the link?11:19
perrito666certainly11:19
perrito666https://plus.google.com/hangouts/_/canonical.com/cloudbase?authuser=311:20
=== jam is now known as jam1
axwfwereade: can you confirm that we no longer need git in juju? we can remove it from our cloud-config?11:59
axw(I just deployed ubuntu to azure without git installed, and it worked... not sure what else I'd need to test)11:59
ahasenackaxw: doesn't juju bootstrap install it?12:03
axwahasenack: it does, I want to remove it12:03
axwand more importantly, not require it in windows bootstrap12:03
ahasenackaxw: while you wait for an answer, try an experiment. In a deployed unit, remove git, make a silly change to the charm and run juju upgrade-charm12:04
ahasenackaxw: or, go to /var/lib/juju/.../..../(don't remember)/charm, see if it's a git repo12:04
axwahasenack: thanks12:04
axwI'll try that12:04
vladkdimitern: I fixed your notices in https://github.com/juju/juju/pull/20712:14
dimiternvladk, cheers, looking12:14
=== psivaa_ is now known as psivaa-lunch
dimiternvladk, LGTM12:19
vladkdimitern: thanks12:19
=== vladk is now known as vladk|offline
jam1TheMue: proposal reviewed12:56
TheMuejam1: thx12:56
TheMuejam1: yeah, will add a follow-up for those tests12:57
=== psivaa-lunch is now known as psivaa
dimiternfwereade, g+?13:30
mattywdoes anyone know what juju-bot hates me? https://github.com/juju/juju/pull/10813:39
perrito666mattyw: well he seems to be hating axw too13:40
sinzuimattyw, perrito666 That looks like it was caused by my attempt to move testing to its dedicated server13:41
sinzuiI am requeuing the tests13:41
katcohello team :)13:54
wwitzel3morning katco13:54
perrito666hey, are we having stdup?13:55
katcois that a question for me?13:57
sinzuimattyw, your PR isn't among the ones that got rejected by the git-merge-juju job13:58
mattywsinzui, afaik it's not even attempted to land yet13:58
wwitzel3perrito666: yes :)13:58
mattywsinzui, juju-bot has certainly never told me it accepted a request to merge13:58
sinzuimattyw, I see you are a public member of the juju org, which is enough for the bot to know your $$merge$$ is good13:58
mattywsinzui, it certainly worked before13:59
sinzuiI see axwalk also tried to intercede.13:59
sinzuimgz, ^ the bot hates mattyw. Can you broker a peace?14:00
mattywno treaty - just an armistice is ok14:01
mgzteh bot is in an unhappy place14:06
mgzwe also have a massive queue, which is partly because nothing has eben lading, but if I get the switch to your dedicated job done sinzui that'll be sorted at least14:07
sinzuimgz, I think we need to configure git on that machine to.14:09
sinzuimaybe you have14:09
mgzsinzui: yeah, I need to do some sample runs to check14:09
sinzuimgz, have you started lxc containers instead of ami instanced? I am very keen to get to it?14:10
mgzI've been trying it out, but just locally14:11
sinzuimgz, I can add lxc support to run-unit-tests within the next 24 hours. Do you intend to use clone?14:12
mgzI'd really like to14:13
sinzuimgz, I gave up hunting for a utopic AMI, so I switch the utopic unit tests to run directly on the utopic slave. I worry that I will have janitorial duties until something like lxc is available14:14
mgzhmmm14:15
sinzuimgz, I will add command support for lxc, setup and teardown. I doubt I can help in the creation the the template or change the test suite to like lxc envs14:16
sinzuimgz, and you want test ./... || test -p  2./... ?14:17
mgzsinzui: I think we need it for now, but it's not helping much today...14:17
sinzuimgz, not many branches pass when -p 2 is needed. I thought fixing the "panic session closed" bug would make -p 2 better14:19
wwitzel3ericsnow, perrito666: https://github.com/wwitzel3/juju/compare/013-environment-info-api14:21
katcosmall milestone; got some charms deployed locally! :)14:22
katcohowever, it seemed to take a long time for wordpress to start (10ish minutes). is that normal?14:23
mgzkatco: with the local provider? probably, it may well be faster for you second time14:26
katcomgz: does jujud do any sort of caching of charms?14:27
mgzit does, but it was the lxc setup I was thinking of14:27
katcoahhh14:27
katcothank you :)14:28
voidspacejam1: ping14:31
jam1voidspace: not usually when I'm around, but I happen to be today, what can i help you with?14:31
voidspacejam1: I thought I'd give it a try... you seem to work about 18hours a day usually14:31
jam1voidspace: :)14:31
voidspacejam1: you suggested that to change mongo to use ipv6 in our test suite that testing/mgo.go would be a place to start14:32
jam1that was my thought, yes14:32
voidspacejam1: this is now a thin wrapper around gitjujutesting/mgo.go (or whatever it's called - horrible package name)14:32
voidspacejam1: it *starts* mongo, but it's open.go that handles the connection14:33
voidspacejam1: how did you have in mind changing the connection just for tests?14:33
voidspacejam1: where you thinking of binding to :: specifically (I'm hoping we don't need to do that and mongo will allow either - but I need to check)14:33
jam1voidspace: So it looks like (as you notice) the old github.com/juju/juju/testing got pulled out into github.com/juju/testing/ but there is still the mgo.go file, they did alreayd remove --bind_ip14:34
jam1but they are'nt passing '--ipv6' for mongo14:35
voidspacejam1: I thought it just used inst.run() to start it... I obviously need to look better14:35
jam1voidspace: thati s where it passes the args14:35
jam1MgoInstance.run needs to pass "--ipv6"14:36
voidspacejam1: gah, ok14:36
voidspacejam1: sorry, being dumb14:36
jam1voidspace: http://docs.mongodb.org/manual/reference/program/mongo/#cmdoption--ipv614:36
voidspaceyeah, I've added that in the actual code and the tests all pass14:36
jam1voidspace: presumably as long as we do that, mongo will be happy to start and bind to both networks14:36
voidspaceyeah, I need to specifically test that14:36
voidspacejam1: for some reason I thought inst.run() called our standard code for starting mongo14:37
jam1voidspace: the other bit is that mongo seems to report "mongod:PORTNUM" for output and we wait to see that.14:37
voidspacenot sure why I thought that...14:37
jam1voidspace: I could see why it you'd think so, certainly it would make more sense if it was shared code14:37
mgzalexisb: you vanished14:39
* perrito666 notices that he should get food before the football game starts or he will not have food until after14:41
katcoperrito666: which game?14:43
perrito666katco: apparently my country (ARG) against.. some other country :p14:43
katcohaha14:43
TheMueperrito666: SWI, directly south to GER (which won yesterday)14:44
perrito666katco: that produces eigher a) food places closing or b) cook spitting into my food14:44
katcogood luck to them :)14:44
ericsnowkatco, perrito666: obviously perrito666 is a real patriot ;)14:44
katcohaha14:44
perrito666TheMue: I know where SWI its, I did not know that its the team against ARG14:44
katcoi'm recording the US v Belgium game14:44
TheMueperrito666: imho ARG will do it, but it won’t be simple14:44
perrito666ericsnow: I pay taxes and have the flag on flag day, I dont mind that much about sports14:45
perrito666TheMue: well our politicians will have problems, bc they have their hart in ARG but their money in SWI14:45
TheMuekatco: there USA will win, the second GER team in this championchip *lol*14:45
ericsnowperrito666: next you'll tell me you don't tango ;)14:45
katcoTheMue: i haven't heard it put like that lol. it's true!14:45
TheMueperrito666: that’s a problem of many politicians (and industrials)14:45
katcoi hope they win14:45
perrito666ericsnow: I dont, requires far more motor ability than I have14:46
ericsnowperrito666: eh, I don't dance well either14:47
* ericsnow doesn't like where this conversation is heading14:47
* TheMue has to admit he absolutely failed when learning tango once in the past14:47
* katco often wonders if she's the only lady with no dancing skills whatsoever14:48
perrito666ericsnow: assuming all Argentinans know how to dance tango is like assuming every oriental person knows martial arts14:48
perrito666katco: oh no, my wife and I cannot put one step together14:48
TheMuekatco: no, my wife neither14:48
perrito666lol14:48
TheMueperrito666: h514:49
katcolol :D14:49
ericsnowperrito666: so true14:49
ericsnowkatco: alas, my wife has a degree in dance14:49
katcoericsnow: oh how neat :)14:49
perrito666ericsnow: I lack practically all required skills to be Argentinian.14:50
mgzperrito666: you have the funny tea drink thing skilz right?14:50
wwitzel3haha14:51
perrito666mgz: I do :p14:51
wwitzel3that's all you need14:51
ericsnowperrito666: ah, but you have mate so it's okay :)14:51
mgzyou'll need to do a demo next week14:51
perrito666mgz: I usually prefer not to go trough the hassle of explaining frontier authorities what is that green herb I carry and why is there a metallic tube on my baggage14:53
mgz:D14:53
ericsnowmgz: amazon carries everything you need: http://www.amazon.com/Taragui-Yerba-Mate-Bombilla-Leather/dp/B007V650EM/ref=sr_1_1?ie=UTF8&qid=1404226489&sr=8-1&keywords=mate+cup14:55
=== vladk|offline is now known as vladk
perrito666ericsnow: with a bit overprice :p but yes14:58
perrito666you also need a thermos14:58
perrito666or something that keeps water hot14:58
ericsnowperrito666: :)14:58
rogpeppe1fwereade: have you got a link to a doc for the specification for charm resources/blobs, by any chance,?15:20
rogpeppe1jam1, mgz, voidspace, wwitzel3: ^15:24
rogpeppe1i've *heard* about the "streams" stuff, but i don't think i've seen it written down15:25
voidspacerogpeppe1: afraid not, sorry15:25
rogpeppe1voidspace: thanks15:25
ericsnowspeaking of blobs, we have 2 (soon 3) API client methods that deal with sending/receiving binary blobs over RPC...15:25
ericsnowdo we anticipate more need for supporting that for more methods?15:26
ericsnow(should we consider adding support for binary data to our RPC implementation?)15:27
rogpeppe1ericsnow: with potentially large binary blobs, we generally tend to avoid RPC and use REST-style15:27
rogpeppe1ericsnow: which methods are you thinking of there?15:27
ericsnowAddLocalCharm and UploadTools15:27
ericsnowand soon Backup15:27
ericsnowand Restore15:28
rogpeppe1AddLocalCharm doesn't use RPC15:28
rogpeppe1ericsnow: i haven't looked at UploadTools, but I hope it's similar to AddLocalCharm15:28
rogpeppe1ericsnow: and Backup and Restore should be similar15:28
ericsnowrogpeppe1:  it is basically copy-and-paste15:28
ericsnowrogpeppe1: right15:28
rogpeppe1ericsnow: well, there might be some common code that can be abstracted15:29
ericsnowfor Backup I've factored the boilerplate into a common package15:29
ericsnowrogpeppe1: I plan on refactoring the other two methods to use it15:29
rogpeppe1ericsnow: i'm surprised there was much boilerplate, actually15:29
rogpeppe1ericsnow: have you got a link to your proposed common package?15:30
ericsnowrogpeppe1: there was enough that wholesale copy-and-paste was happening15:30
ericsnowrogpeppe1: https://github.com/juju/juju/pull/20015:30
ericsnowrogpeppe1: I called it RPC because it basically it...it just doesn't use our RPC implementation nor does it do JSON RPC15:31
rogpeppe1ericsnow: it's really just a REST request, right?15:31
ericsnowrogpeppe1: I wouldn't say REST.  In each case it's a POST to a URL whose location ends with the method name15:32
ericsnowrogpeppe1: args are handled via URL values15:33
rogpeppe1ericsnow: just about anything can be considered REST if it does a POST :-)15:33
ericsnowrogpeppe1: :)15:34
ericsnowrogpeppe1: it's basically a form15:34
rogpeppe1ericsnow: yeah15:34
rogpeppe1ericsnow: BTW if you're implementing exported methods in a package, each exported function should a) deserve to be exported and b) have a doc comment describing what it does15:35
ericsnowrogpeppe1: good to know (I'll fix that)15:36
rogpeppe1ericsnow: i agree that that's useful boilerplate to abstract out15:37
ericsnowrogpeppe1: you mean in export_test.go?15:37
rogpeppe1ericsnow: no, export_test.go is an exception in lots of respects :-)15:38
rogpeppe1ericsnow: i'm looking at UnpackJSON15:38
ericsnowrogpeppe1: ah, got it15:38
rogpeppe1ericsnow: i'm not entirely sure about the form of the package there. let me think for a few moments.15:38
rogpeppe1ericsnow: do we not use a standard error struct type for all error returns?15:42
ericsnowrogpeppe1: not that I saw (I may have missed it)15:42
ericsnowrogpeppe1: you mean why did I make ErrorResult instead of using params.Error?15:46
rogpeppe1ericsnow: yeah15:47
ericsnowrogpeppe1: it was for testing15:47
rogpeppe1ericsnow: i think it should be easy enough to test without that15:48
ericsnowrogpeppe1: the interface allowed using the method rather that relying on the struct member (which is inconsistently an error or a string in various results types)15:48
rogpeppe1ericsnow: i'd suggest something like this: http://paste.ubuntu.com/7732030/15:49
ericsnowrogpeppe1: since it only mattered for the raw RPC calls, I figured ErrorResult was more appropriate in the rawrpc package than in params/apierror.go15:50
* ericsnow takes a look15:50
ericsnowrogpeppe1: FYI, my background is heavily Python with a little C; I first wrote my first Go code around a month ago so pointers on idiomatic approaches is *always* appreciated :)15:54
rogpeppe1ericsnow: np15:54
ericsnowrogpeppe1: as to that code you pasted, are you suggesting that we use an approach like that to handle the errors in the unmarshalled results?15:57
rogpeppe1ericsnow: the point of that function, as i see it, is to take out the boilerplate involved in parsing the error result from http requests to the API15:57
ericsnowrogpeppe1: right, and that was my intention with UnpackJSON as well15:58
rogpeppe1ericsnow: how about something like this: http://paste.ubuntu.com/7732104/16:10
ericsnowrogpeppe1: I like that16:11
rogpeppe1ericsnow: cool16:12
rogpeppe1ericsnow: i'd also add a doc comment to the Doer, BTW.16:12
rogpeppe1ericsnow: something like: // Do makes an HTTP request. It is implemented by *http.Client, for example.16:14
ericsnowrogpeppe1: this does put certain constraints on the response, right?16:14
ericsnowrogpeppe1: yeah16:14
ericsnowrogpeppe1: result, rather16:14
rogpeppe1ericsnow: sure - it means we need to use a consistent error type for all error responses16:14
rogpeppe1ericsnow: but that seems like a good thing to me16:14
ericsnowrogpeppe1: I'm on board with that :)16:14
ericsnowrogpeppe1: I swear the hardest thing we do in this industry is finding the balance between doing things the best way and getting things done (in the cases where you don't have the resources for both)16:16
rogpeppe1ericsnow: yeah16:17
=== vladk is now known as vladk|offline
rogpeppe1ericsnow: the other hardest thing we do is coping with the inevitable creeping complexity that comes from doing too much of the latter without enough of the former :-)16:20
rogpeppe1ericsnow: not that your case was an example of that though, i hasten to add16:21
ericsnowrogpeppe1: :)16:22
ericsnowrogpeppe1: I'll readily admit that I tend toward the latter but over time have become more cognizant of the realities of a world of limited resources and immediate needs :p16:24
rogpeppe1ericsnow: i *hope* you mean tend towards the former :-)16:25
rogpeppe1ericsnow: well, i guess "getting things done" is an admirable attribute too16:25
ericsnowrogpeppe1: oh, yeah :)16:25
rogpeppe1ericsnow: and one which i could do with more of :-)16:25
ericsnowrogpeppe1: I'm glad we have a mix of both in this world16:25
voidspacerogpeppe1: ping16:54
rogpeppe1voidspace: sprong16:55
voidspacerogpeppe1: :-)16:55
=== rogpeppe1 is now known as rogpeppe
voidspacerogpeppe1: can you tell me where in the code we store the replicaset (mongo) addresses16:55
voidspacerogpeppe: and where those addresses are created16:55
voidspaceI've tried following a few trails but I thought you'd likely know pretty quickly16:55
rogpeppeclient side or agent side?16:56
voidspacerogpeppe: agent side16:57
voidspacerogpeppe: client side shouldn't have them, right? just api server addresses16:57
rogpeppevoidspace: the primary source of info is in the state. APIAddresses16:57
rogpeppevoidspace: oh yeah16:57
rogpeppevoidspace: sorry, i was thinking of api addresses16:57
voidspacerogpeppe: I want the mongo addresses not api addresses16:57
voidspaceright16:57
voidspacerogpeppe: I'm experimenting with having mongo use ipv616:58
voidspacerogpeppe: so I want to tweak the way we create those addresses16:58
voidspacerogpeppe: it looks like adding the "--ipv6" flag is sufficient to allow us to connect with ipv6, whilst remaining compatible with our existing code16:59
rogpeppevoidspace: cool17:00
rogpeppevoidspace: i'd hope so17:00
rogpeppevoidspace: state.Machine has a MongoHostPorts method17:00
rogpeppeoh no it doesn't17:00
rogpeppevoidspace: ah17:01
mfoordrogpeppe: sorry, if you replied to me then I didn't see it - my connection was dropped17:01
rogpeppemfoord: what was the last thing you saw me say?17:01
mfoord<rogpeppe> voidspace: sorry, i was thinking of api addresses17:01
rogpeppemfoord: so we get the mongo addresses by adding the configuration's StatePort to the machine addresses17:03
mfoordrogpeppe: right, I remember that being the case17:03
mfoordrogpeppe: where do we do that?17:03
rogpeppemfoord: that's not ideal - i would prefer it if a machine could choose its own mongo port17:03
rogpeppemfoord: in worker/peergrouper17:03
mfoord(we have the same problem with rsyslog)17:03
rogpeppemfoord: see worker/peergrouper/shim.go:/MongoHostPorts17:03
mfoordcool17:04
mfoordrogpeppe: thanks17:04
mfoorddefining methods on machineShim before we define machineShim is confusing17:06
mfoordif only briefly17:06
rogpeppemfoord: yeah, it should be declared earlier17:18
voidspaceso if I hardcode that to use ::1 then everything still seems to work17:19
voidspaceI need to verify this address is actually being used directly though17:19
=== vladk|offline is now known as vladk
=== alexisb is now known as alexisb_afk
=== urulama is now known as uru-away
katcoi just ran into this gem: unit-wordpress-0: 2014-07-01 18:07:02 INFO juju-log db:2: We are now single, ALL THE SINGLE UNITS ALL THE SINGLE UNITS18:07
katcokudos to whomever :)18:08
perrito666lol, I guess you could bzr blame that18:13
ericsnowvoidspace: so I'm guessing their upgrading your internet right now :)18:15
perrito666ericsnow: indeed, he looks taller18:15
perrito666:p18:15
ericsnowmfoord: nice internet you have there :)18:17
mfoordericsnow: yeah, horrible18:29
mfoordand now... EOD18:30
mfoordg'night all18:30
TheMueso, added https://github.com/juju/juju/pull/211 as final PR for today18:30
* TheMue waves18:31
bacjamespage: ping18:52
=== alexisb_afk is now known as alexisb
mattywsinzui, mgz ping?19:51
sinzuihi mattyw19:52
mattywsinzui, I'm not sure if I'm reading this right but it looks like my branch test failed but still landed? http://juju-ci.vapour.ws:8080/job/github-merge-juju/332/console19:52
sinzuimattyw, It did19:53
sinzuimattyw, The test suite is soooo bad that the running will try the tests as we think they should run, and fail over to a run with just two procs. Your branch passed the second try19:54
mattywsinzui, well that's *good* news I guess19:55
mattywthanks19:55
mattywas long as the landing is working to plan19:55
sinzuimattyw, yes, your branch is not being failed because someone else landed a brittle test19:55
mattywsinzui, sweet19:57
mattywwell - thats officially a day then19:57
mattywnight all19:57
thumpermorning folks20:47
katcohowdy thumper20:48
thumperkatco: morning, how's the learning going?20:48
katcogood, thanks for asking :) having a lot of fun20:49
katcoworking on a brilliant charm right now. it's going to revolutionize the way we say hello to the world.20:49
alexisbthumper, speaking of fun, this video totally reminds me of Jesse: https://www.youtube.com/watch?v=HYupUy7wiIU20:51
alexisb:)20:51
* katco has a very dry sense of humor20:51
thumperkatco: hah :-)20:51
thumperalexisb: youtube hates me "an error occurred"20:52
thumperalexisb: but I can guess what it is about :-)20:52
alexisbo, you have to watch it, it is so fitting20:52
* alexisb waits for jesse to show up online20:53
katcoalexisb: i hope this person is still here next week :)20:54
alexisb:)20:54
alexisbkatco, wallyworld will have to fill you in on the back story next week20:54
katcohehe ok20:54
* wallyworld clicks the video20:55
* wallyworld wallyworld can't stop laughing20:55
wallyworldalexisb: you are evil20:55
alexisb:)20:55
ChrisW1can I come program in Go yet? me and python are no longer friends :-/20:57
ChrisW1well, specifically, me, Jenkins and running python jobs are no longer friends20:58
thumperhaha20:59
thumperChrisW1: is that a whingy pom I hear?20:59
ChrisW1sea of red: http://jenkins.simplistix.co.uk/21:00
thumperChrisW1: what are you doing to it?21:00
thumperChrisW1: and three isn't really a sea21:01
ChrisW1http://jenkins.simplistix.co.uk/job/testfixtures-virtualenv/21:01
ChrisW1spot the pattern21:01
thumperChrisW1: you'll have to tell me because I'm not going to go through it all hoping to see a pattern21:02
thumperstill trying to go through my 200 odd emails21:02
ChrisW1there is no pattern21:03
thumperalthough to be honest, I spent the first six months of programming Go being very angry at it21:03
thumpercoming from python21:03
thumperI think I have calmed down a lot now though21:03
ChrisW1you? angry? nah, don't buy it21:03
ChrisW1could never ever imagine that...21:03
thumperheh21:04
ChrisW1if I had hair I would be pulling it out right now21:04
=== vladk is now known as vladk|offline
thumperyou could grow it longer just for the pleasure of pulling it out21:04
* ChrisW1 wonders if menn0 is up yet?21:06
menn0ChrisW1: yep :)21:06
thumpermenn0: careful, I think he may be in a complaining mood21:07
* thumper pokes ChrisW1 with a long stick and runs away21:08
menn0he he21:08
menn0ChrisW1: so what brings you to these parts? :)21:09
ChrisW1my fault, attempting to support a package on 3 x os and 4 x python versions21:10
ChrisW1menn0: oh, no reason...21:10
ChrisW1how's nz?21:10
thumpervery cold today21:11
thumperweather forecast is for 15-20cm of snow today21:11
thumperwhich is a lot for us21:11
thumperand likely to close schools21:11
ChrisW1that'd be a lot for the uk too!"21:11
thumperhowever right now, it is just cold ~3°C and dry21:11
menn0that would bring the UK to a stand-still :)21:12
thumperI'm missing sunny21:12
thumperno.. not what I meant, missing summer21:12
thumperwarmth21:12
thumperand sun21:12
alexisbthumper, it is 34 C here today21:13
alexisbhottest day of the year so far21:13
thumper:-(21:13
alexisband I think I would rather have snow21:13
ChrisW1yeah, pretty toasty here too21:13
ChrisW1great weather for debugging weird on top of weird21:14
alexisbheh21:14
uru-awaycmars: thanks for the info. gonna read the paper 2nd time tomorrow morning with a fresh brain, and try to deduce the number of interactions, as per their design and as section 7 somehow shows their efficiency, there shouldn't be an issue for scaling21:24
thumperChrisW1: I normally find a drink helps in the evening to lower the frustration levels21:32
thumperaim for the Ballmer peak: http://xkcd.com/323/21:33
thumpermenn0: fwiw, I agree on the facade approach21:34
thumpermenn0: if things go wrong, we want the user to be able to ssh in at least21:34
thumperand if we remove the api altogether, we can't do that easily21:34
menn0thumper: did you see the email I just sent?21:34
thumperyeah21:34
thumperjust agreeing with you21:34
thumperfinally through email backlog21:35
menn0you said "facade approach" and what I'm suggesting is actually not quite using facades - although the work done for facades has made it a lot easier21:35
thumpernow I get about 25 minutes before the next meeting21:35
* thumper sighs21:35
thumpermenn0: well, whatever you said makes sense, let's look at the implementation :-)21:35
thumpersinzui: where is the jub page for the landing bot?21:37
rick_h__thumper: github.com/juju/jenkins-github-lander21:38
thumpersinzui: I'm curious to see if recent landings have improved the intermittent failure issue21:38
thumperit looks like it has21:38
rick_h__oh, diff bot :)21:38
sinzuithumper, http://juju-ci.vapour.ws:8080/job/github-merge-juju/21:38
thumpersinzui: cheers21:38
sinzuithumper, There was a misadventure 8 hours ago21:38
sinzuithumper, I tried to move the job to the dedicated slave, but I don't think git was setup.21:39
thumpersinzui: well five passes in a row is more than we have seen in some time21:39
sinzuithumper, so I requeued the job to my favour, all 1.20 jobs first21:39
sinzuithumper, mgz was also working on it the running21:39
* thumper nods21:40
sinzuiI just landed lxc support to the run-unit-tests script. I hope that will help mgz21:40
thumpercmars: with you shortly, just making a pot of tea for my sick wife22:00
thumper:)22:00
sinzuiwallyworld, I am concerned about 1.20. http://juju-ci.vapour.ws:8080/ shows the restore tests failing. I just changed one test to HP after it reached its final 3 tries. Either our restore code has spontaneously combusted in both branch or ec2 has changed. I don't wan't to say https://bugs.launchpad.net/juju-core/+bug/1336104 also affect 1.2023:00
_mup_Bug #1336104: cannot restore bootstrap machine: cannot get public address of bootstrap machine <backup-restore> <regression> <juju-core:Triaged> <https://launchpad.net/bugs/1336104>23:00
sinzuiwallyworld, I was hoping to start the 1.20 release with a blessed revision in an hour23:00
wallyworldsinzui: ok, will look. i was hoping we were good to release as well :-(23:01
wallyworldsinzui: can you clarify - do you think this affects 1.20 also?23:03
sinzuiThis is 1.20 that is failing right now in a similar way23:04
wallyworld:-(23:04
sinzuiwallyworld, none of the recent commits seem to be a cause23:04
wallyworldand it is running now against hp cloud ?23:04
wallyworldin case it's an ec2 issue?23:05
sinzuiwallyworld, I stopped running the functional test on HP at the start of June. This is the first time I am trying them with the new regions23:05
wallyworldok23:05
wallyworldsinzui: was the bootstrap timeout config attribute you are using typed in as "bootstrap-timeout"23:06
sinzuiwallyworld, I tried this with all joyent encs23:10
sinzuibootstrap-timeout: 60023:10
sinzuiI now have a job that kills any joyent proc older than i hour23:10
wallyworldhmmm, ok. that looks correct, so might be an issue23:10
sinzuiwallyworld, 1.20.0 is soooo much better than 1.18.0. Since I am not killing the 1.20.0 versions of juju  I favour fixing this issue in 1.20.123:12
wallyworldsounds good23:12
wallyworldsinzui: my first look into the restore code shows no recent changes in the part that is failing23:12
sinzuiHp just started its restore http://juju-ci.vapour.ws:8080/job/functional-backup-restore/1050/console23:13
sinzui20 minutes and I hope for a pass23:13
sinzuiThe other restore test just switched to Hp23:16
wallyworldsinzui: the error seems to indicate the mongo db is empty, and further back in the console log i see "Restore failed:" but with no additional information23:17
sinzui:(23:18
sinzuiwallyworld, the HP run failed with "no reachable servers" this might be caused by Hp...but the error is still in juju-restore :( http://juju-ci.vapour.ws:8080/job/functional-backup-restore/1050/23:24
* sinzui moves the test back to aws23:24
wallyworldhmmmm23:25
wallyworldwe this kinda sucks23:25
wallyworldsinzui: i think "Restore failed:" is printed by the ci script23:26
sinzuiyes23:26
wallyworldi wonder why it is not logging an error?23:26
sinzuiwallyworld, the test prints "Restore Failed" then the error that was sent to stderr23:29
wallyworldwhich appears to be nothing :-(23:29
sinzuiwallyworld, message about the lock is nothing? http://juju-ci.vapour.ws:8080/job/functional-backup-restore/1049/console23:30
wallyworldsinzui: didn't see that. that is a problem23:31
wallyworldso 2 things are running apt23:31
sinzuiwallyworld, I have seen that several times. The problem with the test is there is so much setup that we see failures getting to HA or  restore dies early with a huge glob of text http://juju-ci.vapour.ws:8080/job/functional-backup-restore/1048/console23:33
wallyworldmaybe a manual test is required23:35
wallyworldwe'll also look into the rev where it first started failing23:37
wallyworldsinzui: how hard would it be to re-run a test with the previous rev to 7f77fc123:38
wallyworldjust  to get another data point23:38

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