/srv/irclogs.ubuntu.com/2014/03/31/#juju-dev.txt

wallyworld_thumper: pingy00:25
thumperwallyworld_: hey00:31
wallyworld_thumper: i'd like to be able to land the joyent provider code as i think william wants it in my tomorrow00:31
wallyworld_i have it working00:31
wallyworld_http://165.225.148.189/wp-admin/install.php00:32
wallyworld_but it's a huuuuuuge branch00:32
wallyworld_since it has been developed all in one go00:32
* thumper nods00:32
wallyworld_and i've taken what was there and modified it so it works00:32
thumperhow much outside provider/joyent is there?00:32
wallyworld_none00:32
thumperok, lets do it00:32
wallyworld_i have another branch i'm doing00:32
wallyworld_which does outside work00:33
wallyworld_fixes some other stuff00:33
thumperok00:33
thumpercan we land it but not enable for the first cut?00:33
thumperthat way we can still release 1.18 off trunk00:33
thumperbut the code is a least there00:33
wallyworld_thumper: yes, i want to land https://codereview.appspot.com/82050043/00:33
wallyworld_and i will have the other work done today00:33
* thumper looks00:33
wallyworld_which will allow the provider to work as per the link i pasted above00:33
thumperdo you want a real review00:34
thumperor a cursory look?00:34
wallyworld_the latter :-)00:34
thumperheh00:34
wallyworld_i know there's stuff to do00:34
thumperok00:34
wallyworld_but we can iterate00:34
thumperagreed00:34
wallyworld_i have clean uop a lot00:34
wallyworld_but i ran out of steam00:34
* thumper looks00:35
wallyworld_a lot of the work is not mine00:35
wallyworld_i branched off daniel's work and did stuff to get it going00:36
davecheneywallyworld_: thumper i say if it commits cleanly an the bot gives it the green light00:36
davecheneycommit it00:36
wallyworld_davecheney: and it works :-) http://165.225.148.189/wp-admin/install.php00:37
davecheneywallyworld_: LGTM00:37
davecheneylets get it landed00:37
wallyworld_davecheney: also, i added a comment to the RT cause outgoing ssh did not work for me00:37
davecheneywallyworld_: balls00:37
wallyworld_i tried from rockne-03 with no luck00:37
davecheneywallyworld_: we might have to put the breaks on that00:37
davecheneyarosales: said I should work on local and manual providers00:37
davecheneyand I guess maas00:38
davecheneybecause those are what we would use to demo ppc00:38
wallyworld_ok, i think ppc will work fine, just want to verify00:38
davecheneywallyworld_: same00:38
davecheneyi want to verify as well00:38
davecheneybut i've been told a few times now not to proritise it00:38
wallyworld_so i'm not doing any dev work as such, just testing00:38
davecheneyso I sohuld be smart and start listening00:38
wallyworld_thats what my wife says00:40
wallyworld_but less politely00:40
davecheneywallyworld_: your wife sounds smart00:49
wallyworld_she is, but not so smart she didn't marry me00:50
thumperdavecheney: are there bugs filed for the failing power tests?00:50
davecheneythumper: i am raising them as I work on them00:50
thumperok, how many failures do we have?00:50
davecheneythumper: i don't have an exact cound00:50
davecheneyless than we had last week00:51
davecheneyplease hold00:51
davecheneydoing a test run at the moment00:51
=== Daviey_ is now known as Daviey
axwwallyworld_: in case you haven't seen this already: #129980201:19
_mup_Bug #1299802: upgrade-juju 1.16.6 -> 1.18 (tip) fails <juju-core:New> <https://launchpad.net/bugs/1299802>01:20
wallyworld_oh :-( hadn't seen that01:20
axwlooks like an upgrade steps thing, maybe01:20
wallyworld_could be, i'd have to trawl through the log01:21
wallyworld_i think if something fails, the desired version remains as it was01:21
axwah ok01:22
davechen1y_thumper_: http://paste.ubuntu.com/7182728/01:30
davechen1ycurrent state of play01:30
davechen1y_thumper_: https://bugs.launchpad.net/juju-core/+bug/129995801:31
_mup_Bug #1299958: worker/peergrouper: test failure <ppc64el> <juju-core:Triaged by dave-cheney> <https://launchpad.net/bugs/1299958>01:31
davechen1yworking on this one now01:31
davechen1y_thumper_: the big difference between gccgo/amd64 failures and gccgo/ppc64 failures is there are no test fixtures for ppc6401:35
davechen1y_thumper_: I will raise an issue for this by COB01:35
* _thumper_ nods01:37
=== _thumper_ is now known as thumper
axwwallyworld_: sorry, what was that branch again?01:49
wallyworld_axw: lp:~wallyworld/uju-core/remove-provider-addr-methods01:49
mwhudsondavechen1y: hello, would it be more useful to run juju tests on arm64 from the latest release or bzr tip?01:49
axwta01:50
mwhudsondavechen1y: also, is the fix for that test linking bug in trusty yet?01:54
mwhudsonhm seems like it should be01:55
mwhudsonwhy am i still seeing linker errors then :(01:56
thumperdavechen1y: just proposing a fix for the bzr test failure01:58
thumperdavechen1y: https://codereview.appspot.com/8225004502:01
davechen1ythumper: /me looks02:06
davechen1ymwhudson: make sure you have gccgo-go 1.2.102:06
davechen1ythen you're good02:06
davechen1ythumper: +102:07
thumperaxw: do you think your logging dir config changes would have fixed this: https://bugs.launchpad.net/juju-core/+bug/1298663 ??02:07
_mup_Bug #1298663: juju debug-log broken in 1.17.6 <debug-log> <regression> <juju-core:Triaged> <https://launchpad.net/bugs/1298663>02:07
* axw looks02:07
axwthumper: yeah I think so02:08
axwthumper: I will find the bug and set as dupe02:09
mwhudson$ dpkg-query -W gccgo-go02:09
mwhudsongccgo-go        1.2.1-0ubuntu102:09
davechen1ymwhudson: yup02:10
davechen1ythere is one package that still fails to link02:10
davechen1yit's on my list02:10
mwhudsonok02:10
mwhudsondavechen1y: is your list online somewhere?02:10
davechen1ymwhudson: i email it daily to a shittone of people02:12
mwhudsondavechen1y: feel free to add me to the list :-)02:12
davechen1ymwhudson: https://docs.google.com/a/canonical.com/document/d/1aKWR3kDzS5Og6PXxe9m98Xea75ScVrGWIZ95rSQIdTM/edit02:12
davechen1yall bugs are tracked in lp02:12
davechen1ythere is no separate bug list02:12
davechen1ythe list of bugs tracked in lp is not exhaustive02:12
mwhudsonthanks02:12
davechen1ythumper: https://bugs.launchpad.net/juju-core/+bug/129996902:13
_mup_Bug #1299969: launchpad.net/juju-core/provider/manual: ssh tests are not properly isolated <ppc64el> <juju-core:Triaged> <https://launchpad.net/bugs/1299969>02:13
davechen1ylooks similar to the bzr bug02:13
axwwallyworld_: we should be able to remove public/private address from the unit doc too, right?02:14
axwwallyworld_: if we always wait for the machine to have addresses first02:14
wallyworld_axw: yeah, when we can support schema changes02:14
axwwallyworld_: true. we can just ignore it for now I suppose02:14
axwthough it is already, if the machine has addresses02:14
wallyworld_yeah, i was going to remove the api first02:14
axwsounds good02:15
wallyworld_the thing i'm up against now - can subordinate units have addresses?02:15
wallyworld_i'd like to say no02:15
wallyworld_will make the refactoring simpler, otherwise i'll need to add a bunch of extra code02:15
axwwallyworld_: from the docs, "Subordinate units inherit the public/private address of the principal service."02:16
axwhow that's implemented I don't know02:16
wallyworld_it uses the provider addresses02:17
wallyworld_the ones i want to delete02:17
wallyworld_which is kinda sucky02:17
axwI mean how the subordinate inherits from the principal...02:17
axwsame machine, so it'll just work I guess02:17
axwwallyworld_: where's that code?02:18
wallyworld_yeah, but the current assumption is the provider.PublicAddress() works02:18
wallyworld_state/unit.go02:18
axwwallyworld_: right, but there's nothign special about subordinates there... is there somewhere else?02:19
axwwallyworld_: what extra code do you need to land?02:19
wallyworld_sec02:19
wallyworld_axw: i think it's in worker/unit/modes.go which calls unit.SetPrivateAddress() which it gets from the provider02:22
axwwallyworld_: we may be able to get away without waiting for addresses. you may need to check with fwereade or someone else02:22
axwwallyworld_: yeah but what's special about subordinates there?02:22
axwwallyworld_: they still live on a machine, and they'll still get their addresses from the machine02:23
wallyworld_axw: nothing, but that's how subords get the unit doc address set02:23
axwthat's only used if its machine doesn't have addresses02:23
wallyworld_axw: the unitDoc for sub ords has machne id = ""02:23
axwoh02:23
axwright02:23
wallyworld_so the machineAddresses() bt fails02:23
axwso, we need to use its principal's machine rather02:23
wallyworld_so i need to look up the principal unit02:24
wallyworld_but the state apis return no error :-(02:24
axwno error for what?02:24
wallyworld_so i have to do it at the api level or chaneg the method02:24
wallyworld_PrivateAddress()02:24
wallyworld_so if i want to look up princiap unit, get assigned machine etc, i need to cater for errors02:25
axwnor does addressesOfMachine if Machine() errors at the moment02:25
axwI don't think this is any worse02:25
wallyworld_true, still sucks though :-(02:25
wallyworld_but yeah02:25
arosalesdavechen1y: thanks for the for the work on manual02:26
wallyworld_arosales: http://165.225.148.189/wp-admin/install.php02:26
arosaleswallyworld_: thanks for landing the joyent provider02:26
mwhudson105 of 141 launchpad.net/juju-core/... package tests fail :/02:26
arosaleswallyworld_: is that off joyent?02:27
wallyworld_yep :-D02:27
arosaleswallyworld_: woot \o/02:27
arosaleswell done02:27
arosaleswallyworld_: any work arounds in place or can I have folks start testing?02:27
wallyworld_got a few follow up branches to land to fix juju core stuff02:27
arosalesah ok02:27
arosaleswallyworld_: good stuff02:27
wallyworld_arosales: i'll land the stuff by today or tomorrow02:28
arosaleswallyworld_: give me a mail when trunk is ready for general testing02:28
arosaleswallyworld_: thanks02:28
wallyworld_sure, welcome02:28
* arosales returns to dinner02:28
axwwallyworld_: in addressesOfMachine, you can just use AssignedMachineId instead of u.doc.MachineId02:31
axwthat'll do the right thing for subordinates02:31
wallyworld_yeah02:32
axwwallyworld_: deployed a charm to azure, it got addresses02:32
axwwallyworld_: anything in particular you want me to test?02:32
wallyworld_axw: nah, just a smoke test, that's great thanks02:32
wallyworld_lots of code to delete \o/02:32
mwhudsonalthough02:33
mwhudson(t-mwhudson)mwhudson@am1:~/juju-core-1.17.7$ date02:33
mwhudsonThu May  7 09:01:27 UTC 215002:33
mwhudson^ this may be responsible for some of the failures02:33
axwwallyworld_: yeah, looks like a nice branch :)02:33
wallyworld_will get better :-)02:33
davechen1ymwhudson: sad trombole02:35
mwhudsondavechen1y: yay shared porter hardware02:35
davechen1yda f02:36
davechen1y215002:36
davechen1yunix time goes that high ?02:36
davechen1ywell, I guess an int is 8 bytes big02:36
davechen1yon mar6402:36
davechen1yon arm6402:36
mwhudsonyeah, i guess it does on arm64?  i have no idea what this is about02:36
davechen1yhyperactive real time clock02:36
mwhudsonfixing that makes 30 more packages' tests pass02:39
mwhudsonhmmf, lots of this:02:40
mwhudsonpanic: runtime error: invalid memory address or nil pointer dereference [recovered]02:40
mwhudson        panic: runtime error: invalid memory address or nil pointer dereference02:40
mwhudson[signal 0xb code=0x1 addr=0xa0]02:40
mwhudsonwhich is a bit of a worry02:41
mwhudsonoh, it's some pointer being null inside mgo02:43
mwhudsonoh heh, helps to have juju-mongodb installed i imagine02:43
mwhudsonbah02:45
wallyworld_thumper: thanks for review. i can land disabled for now but when i propose the followup branch to fix the juju-core address issue i should enable then as 1. i've been asked to get it into trunk so people can test 2. it's ment to go into 1.1802:48
mwhudsonhm, where do logger.Debugf messages end up when running tests?02:52
thumperwallyworld_: ok02:54
thumpermwhudson: into the gocheck log02:54
thumpermwhudson: assuming that you are using something that has the LoggingSuite contained02:55
mwhudsonthumper: which is ... ?02:55
mwhudsonrunning with -gocheck.vv doesn't make anything appear02:55
mwhudsonis it going into some file somewhere?02:55
thumperno, the log is only shown if a test fails02:55
mwhudsonwell it's panicking?02:55
mwhudsondoes that count?02:55
thumpermwhudson: hmm...02:55
* thumper looks at the code02:56
thumpermwhudson: c.GetTestLog()02:59
thumpermwhudson: returns a string02:59
mwhudsonuh03:01
mwhudsonthumper: thanks03:01
mwhudsonalthough i think this is a silly bug03:01
mwhudsonhttp://bazaar.launchpad.net/~go-bot/juju-core/trunk/view/head:/testing/mgo.go#L112 <- this debugf only makes sense if there was no error right?03:02
mwhudsoni.e. it should be in an } else { from the preceding test03:02
mwhudsonbecause if inst.server is null it goes bang03:02
mwhudsonerr03:04
mwhudsonoh do i have to put the juju-mongodb binaries on $PATH explicitly?03:05
mwhudson... yes03:05
thumperyes03:08
thumperalthough I think perhaps the test harness should fix that for you IMO03:08
mwhudsonthe failure mode is certainly impressively obscure :)03:09
mwhudsonok the tests are taking much longer now, that's a good sign :-)03:12
mwhudsondown to 20 failures03:17
mwhudsonmuch better :-)03:17
* mwhudson goes home03:17
wallyworld_axw: do you know if instance polling works as expected for the manual provider? I would assume so03:37
axwwallyworld_: it won't do anything for machines other than machine-0, since hte manual provider does not manage instances03:38
axwwallyworld_: the machiner will update machine addresses though03:39
wallyworld_cool, just checking that removing those methods off manual env provider won't brek stuff03:39
axwwallyworld_: actually, just a moment. it might.03:39
axwwallyworld_: ah no, addresses are recorded at provisioning time too03:41
wallyworld_so all good?03:41
axwwallyworld_: and the hostname is recorded as public03:41
axwyeah should be good03:41
wallyworld_i'm going to test local provider03:41
wallyworld_i think maas should be ok03:41
mattywis anyone seeing this error on trunk? http://paste.ubuntu.com/7168714/?03:45
mattyw^^ I'm guessing not as things seem to be landing - but I've not changed anything in my branch that 'should' have affected this03:46
=== vladk|offline is now known as vladk
=== vladk is now known as vladk|offline
hazmatanybody know windows?04:31
jamhazmat: "this is unix, I *know* this". but yes, I have some familiarity04:34
hazmatjam, so i've got a user trying to use the digital ocean plugin on windows.. and the path the plugin code thinks juju is at doesn't quite line up .. i'm just using os.path.expanduser("~/.juju") (taking into account JUJU_HOME)04:35
hazmatjam, https://github.com/kapilt/juju-digitalocean/issues/16 and https://github.com/kapilt/juju-digitalocean/issues/1504:36
mischiefjuju is not very go-gettable is it04:37
hazmatjam, going through the juju-core code at the moment trying to see the delta.. ic.. HOMEDRIVE and HOMEPATH..04:37
jamhazmat: I'm pretty sure we don't use $HOME on Windows for our .juju dir, but use the %APPDATA% magic. So probably we need a helper in juju-core that gives you the path to look in04:37
hazmatmischief, it is.. but go dep management needs help..04:37
jamhazmat: juju/osenv/home.go APPDATA04:37
hazmatmischief, you go get.. cat dependencies.tsv.. update the various branches04:37
mischiefyea, i just tried to go get and some package api has changed04:37
mischiefah04:37
hazmatmischief, there's some tool that will read dependencies.tsv and do it for you04:38
hazmatjam, thanks04:38
mischiefi would like that :)04:38
hazmatmischief, go get launchpad.net/godeps .. see bottom of CONTRIBUTING.txt04:39
hazmater.. minus the .txt04:39
hazmathmm.. interesting thats docs on how to generate but now how to use04:40
hazmatjam, so reading through home.go .. its a bit unclear are the functions in  in osenv/var_windows.go  used.. else it just looks like return os.environ['APPDATA'] but that looks like its some how being  setup by magic04:44
hazmatand in this context the plugin is in a separate process.. not clear if its gets it own APPDATA or if it inherits.04:44
hazmathmm04:44
jamhazmat: so Home() != JujuHome()04:45
jamhazmat: APPDATA is windows place to put your application stuff04:45
jamit is C:\Users\$USER\AppData\Roaming\04:45
jamhazmat: and then we put our own "Juju" under that04:45
hazmatjam, right.. but JujuHome() calls Home() on linux.. but not04:45
jamhazmat: right04:46
hazmaton windows04:46
jamhazmat: on Windows we don't put it in $HOME04:46
jamso osenv.JujuHomeDir() is what you should be using.04:46
hazmatbut we have functions to determine Home() on windows from other env vars04:46
hazmatk04:46
hazmatyup.. that should do it04:46
hazmatthanks04:46
jamhazmat: we also support $HOME for some other reason04:46
hazmathmm.. not sure this is going to work.. juju docean depends on an ssh binary04:52
mischiefhazmat: ok finally done04:53
mischiefnow i am finally building jujud :)04:53
mischiefi never used godeps before, but it certainly does solve the dependency tracking problem04:53
mischiefthere are many tools like it04:53
hazmatmischief, yup.. lack of leadership ..  fragemented ecosystem tooling for basic problems.. i think there's roughly a dozen different paradigms and tools for this issue.04:55
jamhazmat: well, I have ssh on my windows box05:00
jamyou can certainly get one05:00
hazmatjam, putty, etc.. but not openssh i presume05:00
jamhazmat: both git and cygwin give you openssh05:01
hazmatjam, i recommended they use cygwin..05:01
hazmatyeah05:01
jamand you *can* build it natievly somehow05:01
hazmatfair enough.. but that's not happening (be building it for users) i can't really support that effectively..  and afaics neither does openssh.. http://www.openssh.com/windows.html05:02
hazmats/be/me05:02
hazmatbetter would be if i could get digital ocean to support userdata/cloudinit and drop the ssh entirely.. but need them to implement it.. slowly getting more votes on it.. http://digitalocean.uservoice.com/forums/136585-digitalocean/suggestions/3736274-support-cloudinit-instance-metadata05:03
mischiefhazmat: it would still appear there is a problem, after use of godeps -u05:18
mischiefhttp://sprunge.us/GAAV05:31
mischiefi guess i'll use ubuntu ._.05:33
jpdsAs most people do.05:58
dimiternfwereade, jam, i'd appreciate a review on this so i can land it https://codereview.appspot.com/80600044/06:09
jamdimitern: the first thing that comes to mind is that I thought we specified it as "--network/--exclude-networks" for the Juju deploy command line. 'no-networks' being a MaaS API name, but not as user-friendly.06:12
dimiternjam, maas'es is actually not_networks, but fair enough --exclude-networks it is06:13
dimiternjam, and you mean --networks right, not --network for the other one?06:14
jamdimitern: well, they should be the same plurality06:14
jam*I* like plural form (networks)06:14
dimiternjam, btw is our 1-1 in 15m or in 1h 15m ?06:14
jamI think fwereade was asking for singular06:14
jamdimitern: 1h15m06:14
dimiternjam, ok06:15
dimiternjam, i don't recall that06:15
jamI certainly recall it, because I remember disagree on this case. We have "--constraints" which is a plural for something that might be one but can hold many06:16
jamI think --networks fits well in the same vein06:16
dimitern+106:16
waiganithumper: https://codereview.appspot.com/77970043/06:17
dimiternjam, i found a bug 1299114 in maas when adding networks06:19
_mup_Bug #1299114: 'ValidationError' object has no attribute 'error_dict' when creating a network <api> <cli> <MAAS:Triaged> <https://launchpad.net/bugs/1299114>06:19
dimiternjam, now I'm in the process of exporting and uploading to u1 21GB disk image06:20
dimitern(now my 100mbps fiber will come in handy :)06:20
dimiternjam, re what fwereade said about mocking api requests to test 1.16 compat code path - any ideas?06:21
jamdimitern: I did not, I just did manual testing for most of the cross version compat code.06:22
dimiternjam, yeah, me too; i was thinking of trying to mock it, but there are too many levels of indirection to make it cheap to do06:24
jamyeap06:26
jamIf we had it in place before, then I would certainly use it.06:26
mattywfwereade, rogpeppe1 does one of you have a spare moment to help me out with a test that's failing?06:56
rogpeppe1mattyw: sure06:57
rogpeppe1mornin' all06:57
mattywrogpeppe1, morning!06:57
rogpeppe1mattyw: how's tricks?06:57
dimiternmorning!07:07
fwereadedimitern, jam: sorry, I must have misremembered the mocking -- and I'm fine with --networks/--exclude-networks, I think that was what we agreed? if my preference for singular seems insane to you both then let's go with plural07:11
dimiternfwereade, plural seems more appropriate07:12
* fwereade has another public holiday, yay malta, and so I have laura at home, and will not be getting much work done07:14
fwereadebut fwiw I will be reviewing things flagged in the channel when laura is otherwise occupied07:14
axwrogpeppe1: taking it over here07:15
axwrogpeppe1: ok, understand doing it at bootstrap-state because peergrouper isn't working. for #2, the only address will be machine--0 right? then the client already has the address...?07:15
axwmachine-0 rather07:15
wallyworld_fwereade: this already has  a +1 but just in case there's something that raises any red flags, it would be great if you did get to look at https://codereview.appspot.com/82470043/07:16
rogpeppe1the client already has the address it used to dial, but there might be other addresses too07:16
rogpeppe1axw: ^07:16
axwrogpeppe1: when would you need another address for the same machine?07:16
rogpeppe1axw: perhaps you might want to dial it within the cloud07:17
rogpeppe1axw: and perhaps the public address isn't valid in the cloud07:17
axwrogpeppe1: we already have api-addresses for that?07:17
rogpeppe1axw: also, it means we don't need any special casing for the addresses returned by Login07:18
rogpeppe1axw: it just seems right to me that we should ensure from the very start that APIHostPorts is valid07:18
rogpeppe1axw: especially since it's user-visible07:19
axwyes, I suppose so07:19
rogpeppe1axw: also, there are other things in the agent that watch it07:19
rogpeppe1axw: and it would be nice not to need to special-case them07:20
axwrogpeppe1: ok, I will get back to that one now then. now that we have a fully valid config at bootstrap time, it's straight forward to do without any changes to environs/cloudinit and so on07:20
rogpeppe1axw: yeah07:20
rogpeppe1axw: the code to set up the replica set already needs the address anyway tbh07:21
fwereadewallyworld_, I have not reviewed it but I heartily endorse what you did07:27
wallyworld_fwereade: i thinks it's all ok, stuff works07:27
wallyworld_just wanted to be sure i hasn't missed any subtle issues07:27
wallyworld_i need this to land for the joyent provider to work07:27
wallyworld_i like all the red in the diff07:28
dimiternjam, i'll be 5m late for 1-1, sorry07:28
jamdimitern: np07:29
fwereadewallyworld_, I might review it anyway just to see the red, those CLs do always make me happy07:29
fwereadewallyworld_, but don't wait on me ;)07:29
* fwereade bbs07:29
wallyworld_fwereade: sure, np. i have a filing status test to fix anyway07:30
wallyworld_failing07:30
wallyworld_fwereade: my main concern is just to check that it is 100% ok to remove the SetAddress calls from the uniter startup in ModeInit(). I'm sure it is but....07:31
dimiternjam, i've joined07:37
=== psivaa_ is now known as psivaa
rogpeppe2axw: i'm trying to understand the comment in https://codereview.appspot.com/81780043/diff2/1:20001/juju/apiconn_test.go?column_width=9007:47
rogpeppe2axw: i'm not sure what you mean by "we can only create the zero value"07:48
rogpeppe2axw: the zero value of what?07:48
* axw looks07:48
axwrogpeppe2: we can only create the  zero value of api.State, because all of its members are private07:49
axwsorry, not very clear07:50
axwrogpeppe2: the point is, without a real call to Login we can't change the result of HostPorts07:50
fwereadewallyworld_, I will be most sad if we are not ready to do that -- they'reonly there as a fallback anyway, we should always be deriving unit addressesfrom machine addresses these days07:50
rogpeppe2axw: ah yes. hmm. i wonder if we should mock out api.State hre07:51
rogpeppe2here07:51
rogpeppe2axw: we're relying on it not crashing when methods are called on its zero value07:51
rogpeppe2axw: that seems a bit wrong to me07:51
rogpeppe2axw: it was kind of ok before because we weren't calling any methods on in07:51
rogpeppe2it07:51
axwrogpeppe2: sure, I'll look into doing that07:52
rogpeppe2axw: i think that'll mean you'll have to create an internal version of NewAPIFromStore that returns the possibly-mock api.State, then a thin wrapper that type asserts the returned value back to api.State07:53
rogpeppe2axw: then in tests you can call the internal version07:53
rogpeppe2axw: i suppose another possibility would be to actually create a genuine api.State to return.07:54
axwrogpeppe2: that might be less painful :)07:55
axwI don't want to create a Mongo test just because though07:55
rogpeppe2axw: i actually don't think doing the mock thing will be that much hassle07:55
axwI'll see how hard it is to create an interface here07:55
rogpeppe2axw: thanks07:55
rogpeppe2axw: the test was always slightly dodgy (for which i'm fully responsible) but i think the latest changes push it over the boundary into crackfulness.07:56
axwfair enough :)  I was being a bit too lazy, I admit07:57
wallyworld_fwereade: that's what i thought, justed wanted some extra eyes cause of the scope of the change08:18
jamespageanyone know who's working on the joyent cloud provider?08:26
jamespagefwereade, rogpeppe2 ^^08:27
fwereadejamespage, wallyworld_ has been doing so most recently, and mgz before him08:27
wallyworld_jamespage: i have it working. one more branch to land08:28
jamespagewallyworld_, fwereade: am I right in thinking that introducing this feature is fairly isolated in terms of impact on other code ares?08:28
jamespage(just assessing for the Feature Freeze Exception)08:28
fwereadejamespage, yes, it shouldn't be able to affect anything that's not directly joyent-related08:29
wallyworld_jamespage: yes, but there some old methods need to be deleted08:29
wallyworld_cause the joyent provider does not implement them08:29
jamespagegreat - thanks!08:29
fwereadejamespage, and indeed some dead code elimination08:29
voidspacemorning everyone08:36
rogpeppe2voidspace: hiya08:39
voidspacerogpeppe2: thanks for your emails08:40
voidspacerogpeppe2: ah, one email and you assigned me a card08:41
voidspaceanyway :-)08:41
rogpeppe2voidspace: i think it was a card that you were already working on08:41
voidspacerogpeppe2: yeah08:41
rogpeppe2voidspace: perhaps slightly changed08:41
voidspaceoh08:41
voidspaceI'd better check :-)08:41
voidspacethat's quite a few cards for HA08:42
voidspacenot changed I don't think08:43
voidspaceweeeee, conflicts in merge from trunk08:44
voidspacehappy Monday morning08:44
rogpeppe2voidspace: sorry about that08:44
voidspaceheh08:45
voidspaceah, "someone" moved the declaration of an interface method I've removed08:45
voidspaceeasy enough to fix08:45
voidspacerogpeppe2: ah, the ticket is slightly changed - you want SetStateServingInfo on the ConfigSetter now08:46
rogpeppe2voidspace: yup08:46
rogpeppe2fwereade, dimitern: i'm concerned about this bug, that i discovered when live-testing my agent config changes: https://bugs.launchpad.net/juju-core/+bug/129980208:47
_mup_Bug #1299802: upgrade-juju 1.16.6 -> 1.18 (tip) fails <juju-core:New> <https://launchpad.net/bugs/1299802>08:47
rogpeppe2there's something very odd going on there08:48
dimiternrogpeppe2, is it possible the api server wasn't upgraded first?08:49
dimiternrogpeppe2, hence DesiredVersion returns 1.1608:50
rogpeppe2dimitern: no, i don't think so08:50
rogpeppe2dimitern: note that the unit server had already upgraded to 1.1808:50
dimiternrogpeppe2, have you investigated why it returns 1.16?08:50
rogpeppe2dimitern: and *then* downgraded08:50
rogpeppe2dimitern: i've looked at the code and i can't see how it could possibly happen08:51
rogpeppe2dimitern: the desired version comes from the agent-version field in the env config08:51
rogpeppe2dimitern: and an earlier log message confirms that that's previously changed to 1.1808:51
rogpeppe2dimitern: so there's something very odd happening08:52
=== rogpeppe2 is now known as rogpeppe
dimiternrogpeppe2, well, a good point to start from is add more debug logging in SetEnvironAgentVersion - that's what get's called (and only that should be called) to change "agent-version" in env config08:54
rogpeppedimitern: also, regardless of the api server version, the desired version should always return the same thing08:54
rogpeppedimitern: (it just returns what's in the environ config)08:54
dimiternrogpeppe, i'm not quite clear on what's desiredversion supposed to do08:54
rogpeppedimitern: it's supposed to return the desired agent version08:55
rogpeppedimitern: which is just the agent-version as stored in the env config08:55
dimiternrogpeppe, why do we need an api call for that, if we can get if from env config?08:56
dimiternrogpeppe, the issue seems to be a race is happening changing agent-version08:56
rogpeppedimitern: i don't see how that could happen08:57
rogpeppedimitern: the environment is stable. we change the agent version once. the environment reacts.08:57
rogpeppedimitern: where's a race?08:57
dimiternrogpeppe, if i knew :)08:58
rogpeppedimitern: the reason for an API call is that not all agents are allowed to see the environment config08:58
rogpeppedimitern: oh, i thought maybe you had a theory for why it might be a race condition08:59
dimiternrogpeppe, i'd pull 1.16, add logging around SetEnvironAgentVersion (if it was there in 1.16) and setting environ config in state and try the upgrade08:59
rogpeppedimitern: i suspect *some* kind of race somewhere (because the issue isn't entirely deterministic) but i doubt it's when changing the agent version09:00
jamrogpeppe: 1:1 ?09:01
rogpeppejam: i'm there...09:02
jamrogpeppe: check your calendar entry again, I think I updated the hangout link09:02
jamhttps://plus.google.com/hangouts/_/canonical.com/john-roger?authuser=109:03
jamdimitern: https://code.launchpad.net/~dimitern/juju-core/370-cli-deploy-networks/+merge/212860 LGTM09:06
dimiternjam, cheers09:06
mgzmornin' all09:09
jammorning mgz09:10
mgzso, is the alendar right, that everything is gmt still, so it's an hour later for me?09:11
mgz*calendar09:11
=== jcsackett_ is now known as jcsackett
wallyworld_fwereade: in juju status output, do we want to show public-address of subordinate units? we don't currently in many tests but my change exposes such addresses because we now navigate to the assigned machine. i could just suppress public address output for subords09:19
mgzwallyworld_: I don't really see why we should09:21
wallyworld_why we should suppress public address display for subords?09:22
mgzjust because it's the same as the er... what word are we using, main unit. that might not be a good enough reason09:22
mgzespecially for backwards charms that expose via a sub rather than the reverse09:23
wallyworld_mgz: so the status tests are written wrongly then i think, as they don't set unit addresses directly like what would happen with the provider.PublicAddress() call. But for real deployments we would show them. So I'll just update the tests09:25
fwereadewallyworld_, IMO we should not show subordinate addresses in status, it's duplicate info and the output is bloated enough already09:51
wallyworld_fwereade: balls, i submitted the branch. i can do a followup. note that we do show subordinate addr now if set. it's just that some tests didn't set it09:51
wallyworld_fwereade: mgz also had a concerm about leving it out09:52
voidspacerestarting09:53
fwereademgz, the addresses of the subordinates can/should be the same as the principals' in every respect, because they should both just be derived from the machine's address09:56
fwereademgz, in relations things get much more interesting09:56
fwereademgz, so we'll end up with various addresses per unit, on different networks, and need to bind to, and advertise, the right ones09:57
wallyworld_anyone for a real quick review? https://codereview.appspot.com/82480043/10:00
wallyworld_fwereade: so you want a branch to explicitly exclude display of subordinate address info?10:07
jamwallyworld_: what do we gain by not validating comments here? Is it just to support user keys that are already present that don't have a comment?10:10
wallyworld_jam: yes. and comments are validated further up the chain anyway10:10
wallyworld_when keys are added to juju they are validated10:10
jammgz: ping10:10
jamwallyworld_: then LGTM with a comment so that people don't come back later and just re-add the comment checking.10:11
wallyworld_sure10:11
jamso a comment on the test that we are explicitly testing the behavior when you don't have a comment10:11
wallyworld_ok10:12
mgzjam: hey10:12
jammgz: 1:1 ?10:12
voidspacegodeps: cannot parse "dependencies.tsv": cannot find directory for "github.com/joyent/gomanta": not found in GOPATH10:15
voidspacedo I need to manually install the missing dependencies?10:16
mgzvoidspace: or run go get again10:16
voidspacemgz: yeah, that's what I'm doing - but my branch is currently in flux, so I need to get that compilable first10:17
voidspacerogpeppe: is the creation of ConfigSetter new?10:18
rogpeppevoidspace: i'm not sure i understand the question10:18
rogpeppevoidspace: wanna hang out?10:18
voidspacerogpeppe: did you add the ConfigSetter interface recently?10:19
voidspacerogpeppe: sure10:19
rogpeppevoidspace: yes10:19
voidspacerogpeppe: right, now the compiler doesn't know about fields on what was the configInternal type because it's using the interface instead10:19
voidspacerogpeppe: and I need access to the fields10:19
=== vladk|offline is now known as vladk
perrito666morning10:33
voidspacecoffee before standup10:36
jamfwereade: mgz: standup https://plus.google.com/hangouts/_/canonical.com/juju-core10:45
jamaxw: are you still around for today, or are you done?11:05
dimiternjam, mgz, fwereade, rogpeppe, https://codereview.appspot.com/82530043 - provisioner api for machine networks, PTAL11:10
wwitzel3rogpeppe: https://codereview.appspot.com/82550043 .. short one, when you have a moment.11:21
jamwwitzel3: you're adding a public function, but not adding any tests for that public function, nor updating callers to use that function. I'm not quite sure the utility of the patch11:26
wwitzel3jam: I must of accidently torched the test, I will get it re-added, the purpose is so that the HA APIs and things like the replicaset worker use the same selection behavior.11:29
axwjam: I am around and still working (eating atm tho)11:29
jamwwitzel3: sure, I just would have expected to see something other than just a 3 line change :)11:29
wwitzel3jam: it was a card from rogpeppe that I started Friday that I was just wrapping up11:29
jamaxw: so we'd like to make sure your stuff lands, I'm happy to hand it off to nate and wayne, but I want to make sure things are moving forward for everyone11:30
axwjam: nps, I aim to wrap up all my in-progress HA stuff tonight11:30
wwitzel3jam: when the ensuremongo branch got set back to WIP we added some cards that could be done without having to worry about how that implementation would change.11:31
wwitzel3jam: so that is the reason for such a trivial implementation11:31
axwif someone is free to review, there's https://codereview.appspot.com/82450043/ and https://codereview.appspot.com/82520043/ waiting11:32
axwfixing up https://codereview.appspot.com/81780043/ now11:32
jamrogpeppe: fwiw, I can't reproduce bug #129980211:33
_mup_Bug #1299802: upgrade-juju 1.16.6 -> 1.18 (tip) fails <juju-core:Triaged> <https://launchpad.net/bugs/1299802>11:33
jamupgrade works smooth here11:33
wwitzel3jam: review updated, thanks11:40
jamaxw: does that mean you're actually landing the code, or should nate/wayne be doing the review feedback?11:40
axwjam: 1/3 is LGTMd and I'll land when I've fixed it11:42
axw2/3 (the two I pasted before) need reviews11:43
axwnot sure if they came through because my wifi is a bit dodgy11:43
axwaxw> if someone is free to review, there's https://codereview.appspot.com/82450043/ and https://codereview.appspot.com/82520043/ waiting11:43
dimiternjam, rogpeppe, fwereade, mgz: please, I really need a review on https://codereview.appspot.com/8253004311:50
mgzI'll do some reviwings11:52
fwereadedimitern, LGTM11:53
dimiternfwereade, thanks!11:54
mgzdimitern: does the Network result want to include the machine id?11:56
dimiternaxw, both reviewed11:57
axwdimitern: thanks11:57
mgzotherwise, if there are multiple machines passed, do you need to rely on order to know which networks go with which machines?11:57
dimiternmgz, no, it's just like Constraints or other calls11:57
wwitzel3rogpeppe: https://codereview.appspot.com/8255004311:57
dimiternmgz, yes, as all the other bulk calls do11:57
mgzdimitern: thanks11:58
rogpeppewwitzel3: bzr+ssh://bazaar.launchpad.net/~rogpeppe/juju-core/natefinch-030-MA-HA/12:00
rogpeppewwitzel3: func (m *Machine) IsMaster() (bool, error)12:05
jamhey fwereade, I thought you were off today12:08
jamfwereade: dimitern said it was a public holiday12:08
dimiternjam, if you scroll back ~5h you'll see his comment12:10
hazmatmischief, what distro where you on there?... you can manually specify --series="precise, trusty" to workaround that one12:13
=== bloodearnest_ is now known as bloodearnest
rogpeppewwitzel3: http://paste.ubuntu.com/7184551/12:19
rogpeppewwitzel3: http://paste.ubuntu.com/7184555/12:20
perrito666natefinch: out of curiosity, what kind of laptop are you using?12:22
rogpeppewwitzel3: func IsMaster(session *mongo.Session, addrs []instance.Address) (bool, error) {12:23
wwitzel3rogpeppe: +112:24
jamrogpeppe: I thought the idea was to have code that took a generic "my address", so that it could be used if you had a direct session, or if you had an API connection ?12:27
jamwwitzel3: ^^12:27
rogpeppejam: i've come round to a slightly different point of view12:28
rogpeppewwitzel3: http://paste.ubuntu.com/7184597/12:30
rogpeppehttp://paste.ubuntu.com/7184602/12:32
axwjam: re layer violation, yes I think you're right. not sure if changing it at this stage is helpful though - how about I create a tech-debt bug and fix it once the MVP is done?12:38
rogpeppefunc IsMaster(session *mgo.Session, m *state.Machine) (bool, error) {12:49
rogpeppewwitzel3: ^12:49
rogpeppewwitzel3: http://paste.ubuntu.com/7184668/12:52
rogpeppewwitzel3: func (m *Machine) State() *state.State12:54
rogpeppem.State().MongoSession()12:54
=== lazypower_travel is now known as lazyPower
natefinchperrito666: I'm  on a Dell XPS 15, 2013 haswell revision (9530 model number).  Worked great until umm... yesterday, when the screen started flaking out after I updated.13:20
natefinchspeaking of which, I'm going to reboot to see if that helps13:21
voidspacefinally got the InitializeState tests passing13:25
voidspaceso lunch13:25
fwereadejam, I am off, but occasionally laura dashes off to do something on her own13:28
natefinchupdated, sort of fixed... at least I *have* a laptop screen now.13:28
perrito666negronjl: thank you, just wanted to know if upgrading my other laptop :p13:29
Valduarehi guys14:18
Valduaregot an interesting problem for ya http://pastebin.com/qhK1HJ9Y14:19
wwitzel3natefinch: I am working on the IsMaster stuff that roger and I had a discussion about, but let me know when you're up and running and want to hangout.14:20
natefinchValduare: is juju-wordpress a hostname you can otherwise ssh to?14:20
natefinchwwitzel3: now is good14:21
Valduareyes14:21
Valduareset it up in .ssh/config14:21
Valduareand i’ve previously add-machine this method14:21
Valduareim on manual provision setup14:21
ValduareI even tried blowing away one of the vm’s and reinstalling fresh ubuntu server but still cant14:21
Valduarethen I tried blowing away my local juju installation after destroy-environment manual14:22
Valduareand reinstalling juju14:22
axwValduare: do you have juju-wordpress in /etc/hosts?14:25
Valduareno its ssh config14:25
Valduarejuju add-machine ssh:juju-wordpress14:26
Valduarethat type of thing14:26
axwok14:26
axwso that may be something we need to improve, but you currently must specify something that can be resolved to an IP (not using ssh)14:26
Valduarereason being - I have a different port for each vm14:26
Valduaremy juju bootstrap is port 22 at one of my public ip’s14:27
Valduarethen the other vm’s are each on their own ssh port14:27
Valduarethey can all talk to eachother locally no problem14:27
axwah, no public IP?14:27
Valduarejuju bootstrap vm is on a public ip14:28
axwI mean the other machines14:28
Valduareah those are NAT14:28
ValduareI had this all working the other day14:29
Valduarebut catastrophic failure juju status showed a machine I tried to remove as just dead14:29
Valduareand couldnt re-add it14:29
Valduareso I reinstalled the vm from scratch - fresh ubuntu server installed and still couldnt add it14:29
axwfyi you can "juju destroy-machine --force <machine>" to remove things from status if they won't budge14:30
Valduareit didnt work14:30
Valduarejust left it there as life: dead14:30
axwhuh, ok14:30
Valduareany ideas how I can fix this14:35
axwValduare: if you haven't already, please file a bug with that pastebin - I at least haven't seen that before, and hadn't considered the scenario of an address known to ssh but not to the resolver14:35
Valduareok14:36
Valduarewhat is the resolver in this case?14:36
wwitzel3rogpeppe: https://codereview.appspot.com/82550043/14:36
axwi.e. the hostname->IP resolver14:36
natefinchaxw: do you have stuff that needs to get landed that I can help with?14:36
rogpeppeaxw: if you're around, i've just LGTM'd https://code.launchpad.net/~axwalk/juju-core/bootstrapstate-addresses/+merge/21348314:36
rogpeppeaxw: if you're not, i'll land it anyway14:36
axwnatefinch: not just at the moment thanks14:37
axwrogpeppe: cheers14:37
axwjust saw14:37
axwthat was quick :)14:37
rogpeppeaxw: ha, just noticed you're still active14:37
rogpeppeaxw: i'm trying :-)14:37
rogpeppewwitzel3: looking14:37
natefinchrogpeppe: what's the state of the config changes you were working on?  Are you planning to merge those into my branch, or put them in trunk first and then merge?14:38
rogpeppenatefinch: the former14:38
rogpeppenatefinch: i pushed a branch which gets your branch working again14:38
rogpeppenatefinch: ~rogpeppe/natefinch-030-MA-HA14:39
natefinchrogpeppe: great, I can merge that into mine.14:39
rogpeppenatefinch: well, i ran the cmd/jujud tests, and not any others :-)14:39
natefinchrogpeppe: ok, I'll run all the tests after merge to make sure14:39
Valduareaxw any suggestions for bug name?14:39
rogpeppenatefinch: cool14:40
axw"Valduare: manual provisioning requires target hostname to be directly resolvable"?14:41
axwerr, move the quotes, you get the idea ;)14:41
Valduareok wanted to make sure it was something you guys understood lol14:41
axwValduare: yeah that'll mean something to me at least ;)14:41
axwI'll try to take a look in the morning14:42
Valduarehttps://bugs.launchpad.net/juju-core/+bug/130026414:44
_mup_Bug #1300264: manual provisioning requires target hostname to be directly resolvable <juju-core:New> <https://launchpad.net/bugs/1300264>14:44
Valduarewow I have the most important bug in the world filed right there :P14:44
Valduarekinda gives me a warm fuzzy feeling in side14:44
axwValduare: thanks for filing that14:45
Valduarenp14:48
ValduareI currently have one host box, a gigabyte gae350n mobo with 16 gigs of ram (amd e350 proc)  running esxi and a freenas box serving iscsi to it for about 17 vm’s14:48
axwValduare: btw, how do the VMs refer to each other? is "juju-wordpress" a usable address between the VMs, or must they use IPs?14:49
Valduarei’d like to eventually move over to a juju, maas openstack setup14:49
=== hatch__ is now known as hatch
ValduareI have a smoothwall router vm with 2 nic’s one that holds the public ip address and port forwards to an “internal nic” then all of the vm’s are on that internal nic network14:50
ValduareI havnt setup ssh configs at all on the vm’s14:51
Valduarejust from workstation to vm14:51
axwokey dokey14:52
axwthanks14:52
axwValduare: are you set up to build juju from source?14:52
Valduarenot atm14:52
ValduareI just updated the brew juju.rb the other day to point devel to 1.17.714:53
Valduarefor mac14:53
axwnps. there's a bit of code in the manual provisioning path that sets up the machine's addresses. we could just warn if it can't resolve the hostname, and not record any external addresses14:53
axwok14:53
Valduarehow long does juju-core take to compile - im on a macbook pro 7.1   2.66 dual core proc 4 gigs of ram (barely any ram available as its all used up by greedy mavericks)14:55
hazmataxw, fwiw, my manual provider usage.. i stopped bothering recording addresses when injecting machines.. the agent will come up and do the right thing14:55
hazmats/recording/passing14:55
axwValduare: it should be in the seconds range14:55
axwhazmat: yeah I figure we can just rely on that if the hostname's not resolvable14:56
axwhazmat: only thing you don't get then is a "public" address14:56
axwhazmat: but in this case there really isn't one14:56
* hazmat nods.. 14:56
Valduarebtw - does my setup sound sane?14:56
axwValduare: yeah, I think it does14:57
axwyou'll need to manage exposing service ports yourself, but I guess you know that already14:57
Valduareaye14:59
Valduarethats where smoothwall has been nice for me in this low power hardware setup heh14:59
ValduareI have not been able to get a clear answer to how many physical machines are needed for a juju,maas,openstack setup?15:00
axwValduare: sorry, I'm not going to be useful there15:06
axwI'd suggest #juju15:06
Valduareok15:06
natefinchrogpeppe: after that code is merged in, do we need to wait on anything else to get this branch landed?  Just verified all tests pass.15:11
rogpeppenatefinch: i think there's some commented out code there that can only work when StateServingInfo in the config is landed15:12
rogpeppenatefinch: the branch doesn't really make sense unless the mongo secrets are coming from the agent config15:12
natefinchrogpeppe: ok, right.  Is that something you can land?  Is there anything I can do to help?15:12
rogpeppenatefinch: voidspace is not far off it15:13
natefinchrogpeppe: awesome15:13
rogpeppenatefinch: i'd really like to see [HA: agent stores API addresses after api.Open] happen, if wwitzel3 isn't already on it15:14
natefinchrogpeppe: yep, that's next on my list.  Wayne is finishing up the IsMaster API stuff since he was already in the middle of it.15:14
rogpeppeaxw: apiclient-open-parallel isn't quite right yet15:15
axwrogpeppe: bugger, it just landed. howso?15:15
rogpeppeaxw: (i know it's too late, but just saying, it needs a little bit of work)15:15
rogpeppeaxw: if one of the attempts succeeds really fast, the dial will fail15:16
rogpeppeaxw: because Try.Start returns ErrStopped if the try has already succeeded15:16
axwwat15:16
rogpeppeaxw: (this is deliberate, to avoid making excess attempts)15:16
rogpeppeaxw: otherwise if you're going to start 50 dial attempts and the first one succeeds, you're going to do all 50 dials regardless15:17
axwrogpeppe: I think I'm too tired to understand, would you mind commenting on the CL?15:17
rogpeppeaxw: am doing15:18
axwI'm going to crash, will take a look in the morning15:18
rogpeppeaxw: thanks hugely for your work15:18
rogpeppeaxw: i can fix the code15:18
natefinchaxw: definitely, huge amount of work done, super awesome.15:18
axwrogpeppe: ok cool, but leave it if it's too distracting and I can take a look15:18
rogpeppeaxw: it's possible that Start should return nil, but we could provide another method, say Completed to find out if the try has completed15:19
rogpeppeaxw: that might be less wat-ish15:19
axwrogpeppe: ohhh, I get it now15:19
axwrogpeppe: no that makes sense15:19
axwErrStopped, that is15:19
rogpeppeaxw: cool. it's always difficult to know when an API is bad or just unfamiliar15:20
axwrogpeppe: I should try reading doc comments sometimes15:20
rogpeppeaxw: :-)15:20
axwI expected Start to succeed but then the stopped channel to be closed upon entry15:21
axwbut anyway, now I know15:21
axwanyways, nighty night15:22
wwitzel3rogpeppe: thanks for the review, updated15:22
mgzdimitern: if we propose some maas provider wip stuff, can you give us api feedback15:27
dimiternmgz, sure thing15:28
mgzdimitern: ta, proposing now with messy bits left in15:28
perrito666dimitern: hey, could you take a look to https://codereview.appspot.com/82690043/15:37
perrito666?15:37
dimiternperrito666, will look in a moment, thanks15:37
perrito666tx15:37
arosalesquick question on code URL for juju core (ie to hand out in printed material.  Would folks prefer https://code.launchpad.net/juju-core or https://code.launchpad.net/~go-bot/juju-core/trunk15:38
mgzthe former15:38
arosalesI prefer the first as it is shorter, but thought I should get input here15:38
mgzor just lp:juju-core where appropriate15:38
arosalesmgz: agreed, thanks :-)15:38
dimiternmgz, perrito666, was it live-tested on maas?15:38
arosalesmgz: I would be feedback is most folks aren't as familiar with lp :-/15:39
mgzarosales: right, but if doing sample commands and such like, the short form should be used15:39
mgzdimitern: nope, not yet15:40
dimiternmgz, ok15:41
natefinchmgz: if I didn't work for canonical, I'd think lp:juju-core was a typo or something... but definitely for bzr commands, at least, it's fine (does it work with things besides bzr?)15:42
dimiternperrito666, mgz, lgtm + a live test15:42
mgzdimitern: does the maas provider even do live tests?15:42
mgzor do you just mean it should be checked that it actually does summat useful?15:42
dimiternmgz, I mean run the GetNetworks code against a maas environment with networks support15:43
mgzright :)15:43
dimitern:)15:43
mgzdimitern: also our naming sucks a bit and should get changed, but that method should provide roughly what we need on provisioning15:44
arosalesmgz: ack on sample commands15:44
dimiternmgz, that's ok for now15:44
perrito666mgz: dunno, GetChanged is a pretty bad name too15:44
mgznatefinch: other launchpaddy tools probably understand the short form15:44
perrito666:p15:44
mgzit's time to go swimming! GetChanged()15:45
natefinchlol15:45
perrito666mgz: and there you are, awkwardly looking next to a copy of yourself, changed for swimming and json encoded15:46
natefinchperrito666, mgz: changed is bad, it's an adjective, not a noun15:47
motter   /win 215:52
mottersorry15:52
mgzhm, no sinzui online currently?15:55
perrito666mgz: I was looking for him too :) has not been here on friday either16:02
perrito666holiday?16:02
mgzhe sent mail to the list ealier today I wanted to respond to16:02
rogpeppejeeze, g+ really doesn't like me today16:10
mgzrogpeppe: mumble ftw16:10
mgzrural broadband can't screw it up16:10
rogpeppemgz: i like being able to the screenshare thing without using a tty emulator...16:11
rogpeppes/to/to do/16:11
perrito666rogpeppe: vnc?16:13
rogpeppeperrito666: maybe, haven't used vnc in years16:14
perrito666rogpeppe: no one else has :p16:14
rogpeppeif anyone wants to provide input on the singular worker package design, here's what i'm thinking of going with: http://paste.ubuntu.com/7185512/16:15
perrito666rogpeppe: but, given a way to publish the port tightvncserver should be more than enough16:15
rogpeppeactually, this is more accurate: http://paste.ubuntu.com/7185532/16:15
rogpeppedimitern, fwereade, jam, natefinch, wwitzel3, voidspace, wallyworld_: ^16:16
natefinchperrito666, rogpeppe: I use VNC to do remote desktop support.  Free, works great, both people can see and control.16:24
rogpeppenatefinch: how well does it work with two very differently proportioned displays?16:25
natefinchrogpeppe: not entirely sure.  I know it supports scaling, but since my screen is always bigger than the other person's, it hasn't come up.16:25
natefinchrogpeppe: btw, on the Conn interface, IsMaster is ambiguous to me.  I can't tell if it's telling me if I'm the master, or if some other person who is master happens to have the connection right now.16:27
rogpeppenatefinch: the doc comment is suppose to make that clear16:27
natefinchrogpeppe: the doc comment is what confused me ;)16:27
rogpeppenatefinch: if i changed "the connection" to "this connection", would that help?16:28
natefinchrogpeppe: yes :)  I was trying to figure out why I was confused. That's it.16:28
rogpeppenatefinch: cool16:28
natefinchrogpeppe: is "IsMaster reports whether this connection is to the master of the resource" accurate?  "Held by" makes it sound like the master is me, holding the connection to something else, but I assume this is actually a connection to something that is master... right?16:30
rogpeppenatefinch: no, that's not accurate16:31
rogpeppenatefinch: we want precisely "held by" semantics16:31
rogpeppenatefinch: because with mongo, everyone is connected *to* the master16:31
rogpeppenatefinch: but what we're interested in is whether we're on the same machine as the master16:31
natefinchrogpeppe: ok, I see.  I find it a little weird to get that information from a connection.  It seems like the connection is just an implementation detail about how we decide if we're master.16:33
rogpeppenatefinch: well, maybe Conn is the wrong name16:33
rogpeppenatefinch: other name suggestions?16:33
voidspacein a full test run I got 6 panics due to "unreachable servers"16:34
rogpeppevoidspace: all in the same package?16:34
voidspacerunning all the tests for each package with a failing test and they all passed16:34
voidspaceis that "normal"?16:35
rogpeppevoidspace: kinda :-\16:35
voidspacerogpeppe: mostly in replicasets16:35
voidspacefive out of six I think16:35
rogpeppevoidspace: that's pretty usual, unfortunately16:35
voidspacerogpeppe: thanks16:35
rogpeppevoidspace: (we need to do more investigation)16:35
rogpeppevoidspace: what was the 6th?16:35
voidspacerogpeppe: it was in store16:36
voidspaceTestBlitzKey16:36
rogpeppevoidspace: ha, store is another unreliable one16:36
voidspacelovely :-)16:36
voidspacerogpeppe: so I'm at the point where the code for this change is "complete" (I think)16:37
voidspacerogpeppe: just some missing tests16:37
rogpeppevoidspace: yay!16:37
voidspacewell...16:37
rogpeppenatefinch: this is what my implementation turned out like. no tests yet, mind. http://paste.ubuntu.com/7185691/16:51
natefinchrogpeppe: sorry, got pulled away.  looking16:52
voidspaceany equivalent of setattr for a struct?16:56
voidspaceexcept through reflection I guess16:57
natefinchvoidspace: there's reflection, but there's usually a better way.  What are you trying to do?16:57
=== vladk is now known as vladk|offline
natefinchvoidspace: the short answer is no ;)16:57
voidspacenatefinch: I want to write a test that asserts that a particular function returns false until given a struct with all members populated16:57
mgzvoidspace: see rog's three (!) excellent answers to our question on that last week16:57
mgzI'll find the irclog16:57
voidspaceI can manually set them one by one16:58
voidspacebut that's tedious :-)16:58
natefinchvoidspace:  there's really no way to do that except the long way.  Note that because Go initializes everything to a zero value "populated" may be ambiguous.16:59
mgzvoidspace: http://irclogs.ubuntu.com/2014/03/26//%23juju-dev.html#t17:5916:59
voidspacesure, I'll be checking that the "non-zero value" is present17:00
voidspacemgz: thanks17:00
mgzand the pastebins from rog under17:00
voidspacemgz: thanks17:00
rogpeppevoidspace: i'm not sure those suggestions will help you17:02
natefinchyeah, I was going to say thatr17:02
voidspaceit turns out to be a philosophical question rather than a practical one17:02
voidspacethe code is actually only testing one field to determine "availability"17:03
voidspaceso I only need one test rather than a bunch17:03
natefinchvoidspace:  well there you go :)17:03
rogpeppevoidspace: ha ha17:03
voidspacehah, indeed17:03
voidspacerogpeppe: so I'm back at the point where all that is missing is the unmarshaller tests17:03
rogpeppevoidspace: FWIW, in some similar type of situation, i wouldn't be too averse to a bit of reflection17:03
voidspacerogpeppe: but there's also (now) a conflict with trunk17:03
natefinchvoidspace: really, reflection is what you'd use if you really wanted to do something like that, but reflection is cumbersome (likely on purpose)17:03
voidspacerogpeppe: I have to go to Krav Maga now, but I can hopefully pick it up again on my return17:04
voidspacewould be nice to get it ready for CL17:04
rogpeppenatefinch: actually, i don't think that reflection is any more cumbersome than it needs to be17:04
voidspacewell, I'm sure it could do with a helper layer...17:04
rogpeppei dunno what that might look like17:04
voidspacewell, without generics it might be hard17:04
voidspacebut you could use reflection to write the helpers17:05
rogpeppevoidspace: type parameters wouldn't really be that helpful here17:05
voidspaceif there isn't already direct getattr and setattr equivalents17:05
natefinchrogpeppe: I just mean that it could be a lot more integrated into the language, and it's not.17:05
voidspacerogpeppe: I've not looked at reflection at all17:05
voidspacenatefinch: a type declaration of "dynamic" that defers member lookup to runtime reflection automatically17:05
voidspaceC# has that17:05
rogpeppevoidspace: reflect.NewValue(v).FieldByName("foo") is fairly simple17:05
rogpeppevoidspace: which is pretty much getattr17:06
voidspacerogpeppe: right17:06
voidspacerogpeppe: maybe it's easy enough then17:06
voidspacebut that sounds like fun to defer for another day...17:06
rogpeppevoidspace: i think natefinch is overstating a little17:06
rogpeppenatefinch: it would make for a much bigger language17:06
voidspaceright, off to Krav Maga.17:07
voidspaceback later17:07
rogpeppenatefinch: i like the fact that it's just a normal package17:07
rogpeppevoidspace: ttfn17:07
voidspacerogpeppe: if you get bored you could look at what I've done and pick out any obviously glaring errors...17:07
voidspacerogpeppe: https://code.launchpad.net/~mfoord/juju-core/stateservinginfo/+merge/21287417:07
rogpeppevoidspace: have you pushed it somewherE?17:07
voidspacebut I'm sure have more pressing things to do17:07
rogpeppevoidspace: great, will take a look17:07
voidspacesee you later all17:08
natefinchrogpeppe: I'm happy not to have it integrated into the language, don't get me wrong.  I wouldn't want it integrated into the language.17:12
rogpeppenatefinch: i know what might be quite cool - a package that used go/ast and go/types and parsed go expressions at runtime and generated closures that did appropriate reflection operations from the go expressions.17:13
rogpeppenatefinch: e.g.17:13
natefinchrogpeppe: I may be overstating it some.  The API for it is (necessarily) very large, and code that uses it extensively can be hard to read, since everything is a method call instead of just code.  I've done some with it, and it's always easier than it seems (though I wish they would have called Elem() something different)17:13
rogpeppeaccessor, err := reflecthelper.Accessor("x[p1].Foo.Bar()")17:15
rogpeppebarResult := accessor(someValue)17:15
natefinchrogpeppe: our very own eval()17:15
rogpeppenatefinch: indeed :-)17:15
rogpeppenatefinch: we already have it, actualy17:16
rogpeppenatefinch: kinda17:16
rogpeppeafk17:16
rogpeppenatefinch: are you around for a quick chat?17:34
natefinchrogpeppe: yep17:35
rogpeppehttps://plus.google.com/hangouts/_/canonical.com/juju-core?authuser=117:35
rogpeppenatefinch: or i can join you if you're already in one17:35
=== vladk|offline is now known as vladk
=== hatch__ is now known as hatch
natefinchrogpeppe: you still around?18:36
rogpeppenatefinch: just...18:36
natefinchrogpeppe: quick question.  I was looking at the "Save api addresses to agent config" and realized I probably was misinterpreting what it was asking.   Where is that code supposed to live?  It says after we call api.Open, but I'm not sure where we do that.  (I had misread it as state.Open)18:37
rogpeppenatefinch: we do that in cmd/jujud18:38
wwitzel3rogpeppe: you in a hangout atm?18:38
rogpeppewwitzel3: no18:38
rogpeppewwitzel3: you?18:38
wwitzel3rogpeppe: have a question, yeah, I can invite you18:38
natefinchhttps://plus.google.com/hangouts/_/72cpj1cktoghcmpks6aar56570?hl=en18:39
natefinchrogpeppe: I guess the question is, is this correct?  It's using state.ApiAddressesFromMachines()  https://codereview.appspot.com/82780043/diff/1/cmd/jujud/machine.go?context=&column_width=10018:42
rogpeppewwitzel3: api.auth.GetAuthEntity.(*state.Machine)18:44
rogpeppewwitzel3: api.auth.GetAuthEntity().(*state.Machine)18:45
=== Ursinha is now known as Ursinha-afk
bodie_is there a way to list keys that can be set by juju set?19:11
=== vladk is now known as vladk|offline
fwereadebodie_, `juju get` should describe what's available19:29
bodie_excellent19:30
bodie_bits3rpent, jcw419:30
jcw4cool19:31
thumpermorning19:58
thumperhmm... seems like I forgot to close this yesterday19:58
=== hatch__ is now known as hatch
thumperalexisb: how's your interwebs now?20:01
alexisbthumper, good20:01
thumperalexisb: weren't we going to move the call to be 30 minutes earlier?20:01
thumperalexisb: so it doesn't clash with my later call?20:02
alexisbthumper, sure :)20:02
alexisbbut I forgot20:02
alexisbneed a few minutes20:02
thumperthat's fine20:02
thumperI'll join the hangout from the meeting, join when you're ready20:03
natefinchmornin' thumper20:06
mwhudson... value *errors.errorString = &errors.errorString{s:"cannot upload bootstrap tools: environment \"only\" of type dummy does20:44
mwhudsonnot support instances running on \"arm64\""} ("cannot upload bootstrap tools: environment \"only\" of type dummy does not supp20:44
mwhudsonort instances running on \"arm64\"")20:44
mwhudsonwhat makes that happen and how do i stop it?20:44
natefinchmwhudson: sounds like you're running tests on arm64?20:44
mwhudsonyes20:45
mwhudsonthat is the intent20:45
mwhudsonso "don't run tests on arm64" is not a useful answer, even if accurate :)20:45
natefinchmwhudson: somewhere in provider/dummy/environs.go there's probably something with a hardcoded list that needs updating20:46
natefinchmwhudson: that is an error about the environment that gets created with the SampleConfig that you can see at the top of the aforementioned file (environment of type testing, name is "only")20:47
natefinchmwhudson: I'm not 100% sure what's causing the error, however.20:49
mischiefhazmat: i am using debian.21:00
mischiefhazmat: now, http://sprunge.us/aaDB XD21:01
hazmatmischief, can you do that with --debug21:02
hazmati'd like to see where that's getting raised from21:02
hazmatmischief, also what provider are you working with?21:02
mischieflocal21:03
mischiefhttp://sprunge.us/dShP21:03
hazmatmischief, hmmm. interesting.. so with --upload-tools i think the host would need to be ubuntu.. if you do without upload-tools what happens?21:03
mischiefit says with --series i must use --upload-tools21:04
mischiefso.. i used it!21:04
hazmatmischief, yup.. sorry.. so without upload-tools and series it also bombs?21:04
hazmatits creating tools 1.17.7.1-unknown-amd6421:04
hazmatcause it can't identify the distro series.. but if you have default-series: precise for the provider and the lxc package there has ubuntu-cloud template (dpkg -L lxc) then it should pull the tools down from the global bucket/cdn21:05
mischiefyea it just says21:05
mischieferror: --series requires --upload-tools21:05
hazmatmischief, right.. if you drop --series and drop --upload-tools what happens?21:05
mischiefthe original error from yesterday, seen here with --debug http://sprunge.us/VaUG21:06
hazmathmm.. that's also trying to upload tools21:07
hazmatthere's an implicit fallback to upload-tools21:07
hazmatmischief, i'd suggest filing a bug21:08
hazmathttps://bugs.launchpad.net/juju-core21:08
mischiefhaha21:08
mischiefi guess i have two bugs to file now21:08
mischiefone to support plan 9 and one to support debian :-D21:08
hazmatmischief, hmm.. can you try going back to the 1.17.7 tag21:08
hazmatmischief, your on trunk and thats not available from the global bucket/cdn21:08
mischiefum21:09
hazmatmischief, if your client matches up though it can pull those from the cdn global bucket instead of hitting the issue/bug that your running into re uploading from a different distro21:09
hazmatmischief, cd $GOPATH/src/launchpad.net/juju-core21:09
mischiefi am using https://launchpad.net/juju-core/trunk/1.17.7/+download/juju-core_1.17.7.tar.gz21:09
hazmatoh.21:09
hazmathmm21:09
mischiefi did not use the source from go get because i wasn't able to line up all the dependencies21:09
hazmatstrange its coming out as version 1.17.7.121:09
mischiefmaybe i missed a step like sacrifice a goat to the juju-god21:10
* hazmat checks the dev bucket21:10
mischiefjuju version says '1.17.7-unknown-amd64'21:10
hazmatk, yeah.. that causes issues  on upload.. but if you have default-series: precise it should pick up the right tools from http://streams.canonical.com/juju/tools/streams/v1/com.ubuntu.juju:released:tools.json21:12
hazmati gotta run.. bbiab21:12
mischiefok, thanks for the tips21:12
mischiefoh btw i do i have 'default-series: precise' in ~/.juju/environments.yaml under local :)21:12
mischiefi just got a dedicated server though, i'm gonna set up openstack there and worry about a local provider later.21:13
=== hatch__ is now known as hatch
mwhudsonheh there appears to be a bootstrap test that explicitly checks arm64 is unsupported21:40
thumper?!21:41
mwhudsongrep arm64 src/launchpad.net/juju-core/cmd/juju/bootstrap_test.go21:42
* mwhudson recommends ia64 for that test instead21:43
davecheneymorning all22:14
davecheneymorning all22:14
davecheneywaigani: do you have your own ppc vm ?22:15
waiganihang on - chatting with tim22:15
davecheneythumper: maybe it would be faster if you added waigani 's keys to your vm22:16
thumperdavecheney: I was thinking that too22:16
thumperwaigani: how about this one ?https://bugs.launchpad.net/juju-core/+bug/130003222:16
_mup_Bug #1300032: charm: gccgo test failure <gccgo> <ppc64el> <juju-core:Triaged> <https://launchpad.net/bugs/1300032>22:16
thumperdavecheney: you aren't doing that one are you?22:16
davecheneythumper: do that, i'll ask mr moser for more vm's22:16
davecheneythumper: waigani that is a good bug22:16
davecheneyprobably related to http_proxy not being isolated in the environment22:16
* thumper nods22:16
thumperwe shouldn't be hitting the store in the tests22:17
thumperthe entire test suite should run disconnected22:17
davecheneyi'm glad that wasn't juju-core/store22:17
davecheneyi would have thrown a shoe22:17
davecheneywaigani: thumper http://paste.ubuntu.com/7182685/22:18
davecheneyi'll raise a bug, if i haven't already done so after this morning's run22:18
davecheneywaigani: thumper https://docs.google.com/a/canonical.com/document/d/1m9R2n6LPLNLGjdopcNkQYVG8D5V4FTyvc1vvn-9ZifM/edit22:18
davecheneyyou'll need this22:18
davecheneyhttps://bugs.launchpad.net/bugs/130032122:21
_mup_Bug #1300321: manual provider bootstrap fails if curl isn't installed <juju-core:New> <https://launchpad.net/bugs/1300321>22:21
davecheneythis looks like something we should fix22:21
davecheneyand it shouldn't be hard22:21
davecheneycurl is usually installed, so it'll be a noop22:21
davecheneyand we can just add it to the cloud-init add-package stanza22:21
* mwhudson has now gotten to the point where the juju-core tests take a long time on arm64, at least22:23
davecheneymwhudson: then everything is working as expected :)22:24
davecheneymwhudson: takes ~30 mins on a dual core vm22:24
davecheneyfor me22:24
davecheney(ppc64)22:24
mwhudsoni've not been timing, but it's around that i think22:24
mwhudsonmachine is also building glibc22:25
mwhudsonah22:25
mwhudsoneglibc build was spinning due to yesterdays time fun22:25
davecheney:(22:26
davecheneymwhudson: is this real tin22:26
davecheneyor the fast model ?22:26
thumperdavecheney: what is the other login that waigani needs for power access? the jump off point?22:27
davecheneybatuan22:27
davecheneyi was just going to raise the RT22:27
mwhudsonreal22:27
davecheneythumper: are you doing it ?22:27
davecheneymwhudson: orly22:27
thumperI'll go poke on #is22:27
davecheneythumper: right o, probably faster22:27
davecheneymwhudson: can you tell me about this arm64 kit22:27
davecheneyor is it sekrit ?22:28
mwhudsondavecheney: probably not22:28
mwhudsonnot on freenode anyway :)22:28
davecheneymwhudson: another day then22:28
thumperdavecheney: I'll file it if I need it22:28
davecheneythumper: roger22:29
waiganidavecheney: lunch and finish up current branch - then I'll jump into gccgo test failures22:30
davecheneywaigani: okie dokes22:31
thumperdavecheney: cc'ed you on the RT22:33
davecheneythumper: thanks mate22:33
thumperis being actioned now(ish) AFAICT22:33
mwhudsondavecheney, thumper, waigani: current status: http://paste.ubuntu.com/7187184/22:37
mwhudson(this is with two hacks: one to not strip tools, one to make the dummy provider support arm64)22:38
davecheneymwhudson: that matches what I see22:39
mwhudsoncool22:39
davecheneyi have fixes for line 15 in review22:39
davecheneyline 13 i'm going to dummy spit22:39
davecheneyline 9 will be hard22:39
davecheney3 and 4 will be medium22:39
davecheneymany fail because there are no text fixtures for ppc6422:40
davecheneyor arm64 for that matter22:40
mwhudsonyeah, that seems to be a theme22:40
mwhudson"no tools available" messages or similar22:40
davecheneyline 7 is worrying, that might be a compiler error22:40
davecheneymwhudson: yeah, followed by a hundred lines of debug22:40
davecheneymwhudson: my big item for today is to figure out how to add fixture data22:41
davecheneyonce that is done I can copy pasta it for arm6422:41
* davecheney goes to kick up a stink about the store tests22:41
thumperline 2 is what waigani is about to fix22:41
davecheneycool22:42
thumperdavecheney: those failres with simple stream data are test isolation failures22:42
mwhudsonthe error for rpc is "panic: interface conversion: interface is nil, not error"22:42
thumpernot simple stream failures22:42
thumperplease don't fix test ioslation bugs with data for the local environ22:42
thumpers/environ/arch/22:42
davecheneythumper: orly22:43
mwhudsonanyway it sounds like you guys have things under control, and that fixing ppc is mostly22:43
mwhudsonfixing arm6422:43
davecheneywallyworld_: said they were because there were no test fixtures22:43
davecheneymwhudson: yup22:43
davecheneythumper: this is going to make things harder22:43
davecheneybecause 'precise' is probably baked into a lot of places22:44
thumperdavecheney: hmm...22:47
thumperdavecheney: there are ways to handwave over it22:47
thumperfor example, patching version.Current22:47
thumperanyway, I have to go and drop gym gear off for my daughter before my gym class22:48
thumpercatch soon22:48
davecheneyok22:50
davecheneyhttp://paste.ubuntu.com/7187301/23:09
davecheney^ useful ppc aliases23:09
mwhudsondavecheney: i hate src/cmd/go/build.go23:15
davecheneymwhudson: i feel you23:16
davecheneythumper: /var/lib/juju/tools/1.17.8.1-trusty-ppc64/jujud: error while loading shared libraries: libgo.so.5: cannot open shared object file: No such file or directory23:16
davecheney2014-03-31 23:16:03 ERROR juju.environs.manual bootstrap.go:101 bootstrapping failed, removing state file: rc: 123:16
davecheneydid someone recently change the way --upload-tools works23:17
davecheneysay, to make it *always* rebuild local tools ?23:17
davecheneyhmm, looks like there are stale tools on that instance23:21
davecheney2014-03-31 23:23:28 DEBUG juju.environs.tools build.go:223 forcing version to 1.17.8.900123:23
davecheneyITS OVER 9000!23:23
davecheneyWhoot23:29
davecheneymanual provider on ppc23:29
davecheneyhttp://paste.ubuntu.com/7187355/23:30
wallyworld_davecheney: that is good news. i tried again on the power vm to bootstrap into ec2 because they said that more ports were opened but no luck. so i'll park that23:51
davecheneywallyworld_: yup, put it on the back burner23:53

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