[01:06] * thumper goes to look for food for lunch [01:07] axw, wallyworld_: I have the last of juju-run up for review in three hunks [01:07] ok, will look in a bit [01:09] thumper: yup, was about to have a look [01:24] thumper: dumb logging question [01:24] thumper: i have a logger i have just created in the mock charm store [01:25] if i log Infof, nothing is written. i have to log Errorf to see some output [01:25] i'm not sure why in this once case the messages are being filtered like that [01:26] wallyworld_: got the code? [01:26] this is in a test where i capture log output [01:26] i'll pastebin [01:26] ok... [01:26] the default logging for the test is probably set to warning [01:27] what I do in test setups where I want more logging is this... [01:27] loggo.GetLogger("my.test.thing").SetLogLevel(loggo.TRACE) [01:27] the logging levels get cleared during the logging test suite setup [01:27] in testing/testbase [01:29] thumper: https://pastebin.canonical.com/102760/ [01:29] the same code works elsewhere i think [01:29] i can try setting the log level to trace [01:29] when i say the same code works elsewhere, i mean that in non test code, log capture works as expected [01:30] ie the logger is created in prod code and no SetLogLevel is required [01:30] in my pastebin, if i change Infof to Errorf it works [01:31] have I mentioned recently that using logging to confirm things is a terrible idea? [01:32] yes [01:32] but it's not easy to do anything else [01:32] I bet your logger isn't using "juju." as the base [01:33] look at testing/testbase/log.go:48 [01:33] ah i changed it to juju and it worked [01:33] didn't realise juju was special [01:34] juju is always special [01:35] so with the log verification thing, the header value passed in has no effect on the mock store functionality, it is just a label so to speak. so very hard to verify that is has been passed through [01:51] thumper: dunno if you saw, I put up a CL for destroy-env in manual. I've been doing testing of bootstrap on Windows, and found more problems (unrelated to my changes) [01:51] axw: ok [01:51] I'm just looking at your review [01:51] paste a link and I'll look next [01:51] will carry on with that, and then get onto getting manual provisioning in non-null working [01:52] thumper: did I miss anything at the end of the meeting yesterday? my wifi died [01:55] axw: not really [02:08] thumper: "sure, although this is paranoia as there is no other return options." -- I was thinking about panics, mainly. not going to happen with the code as it stands, but someone else might come along and botch it up [02:08] axw: ah, interesting point [02:08] weird having a language that "kinda" has exceptions, [02:08] either you should, or shouldn't, but mixing them is weird [02:09] like I said, it's me being paranoid; as the code stands, it's actually not necessary and your code works fine [02:10] I still changed it :) [02:14] axw: where is the code that removes the upstart job on SIGABORT? [02:15] thumper: preexisting, in cmd/jujud/machine.go, uninstallAgent [02:15] thumper: the same code that runs when destroy-machine is run, is exercised by this [02:16] axw: i'm looking at your ssh fingerprint branch. two issues - 1.for me md5.Sum() is not valid. i need to use md5.New().Sum() and 2. the fingerprint is different to ssh-keygen -lf which is why I abandoned ny attempt to write a go version [02:16] axw: ok, nice [02:16] wallyworld_: md5.Sum is not valid? [02:17] not for me. my go src does not have it [02:17] wallyworld_: if the fingerprint is different, why do all the tests pass? [02:17] :P [02:17] wat [02:17] maybe it's a 1.2 thing [02:18] axw: perhaps the fingerprint is different when not using 1.2 [02:18] wallyworld_: if you changed it to use md5.New.Sum, I know why it's not working [02:18] because the slice returned does not have len == md5.Size [02:19] ah ok [02:19] wallyworld_: are you on 1.1? [02:19] does crypto/md5 have the Size constant? [02:19] i think so yeah [02:19] let me check [02:19] firsly, i'm on go 1.1.2 [02:20] it would be nice if the docs had "since " like the Python docs [02:20] it does have the SIze constant [02:20] thanks [02:20] +1 to that [02:21] axw: you gocrpto ssh branch is kinda hefty [02:21] thumper: yeah I'm going to split it [02:21] that was silly [02:22] I did want to get feedback on general direction tho [02:25] I'll look after my coffee [02:25] I will write some fingerprint tests after my tea [03:00] hmm... looks like the bot is stuck maybe? [03:01] axw: what do you think we should do if the results aren't utf-8 capable? [03:02] axw: how about base64 encoding it and add a flag? [03:03] thumper: json/yaml will do that for you if it's []byte [03:03] hmm... [03:03] if you're running one command, I'd just write it directly to Stdout/Stderr as it is [03:04] axw: a key reason I didn't like keeping it as []byte is that it isn't easy to compare against [03:04] then you cat binaries and whatever :) [03:04] axw: perhaps that doesn't matter... [03:04] except... [03:04] if you are running on multiple machines [03:04] even with smart [03:04] you'll get multip results [03:04] I'd prefer to have a string if I can, and be explicit if I can't [03:05] doesn't smart go to json/yaml if there are multiple targets? [03:05] yaml [03:05] but if the stdout is []byte [03:05] it is unreadble [03:06] yeah, so I'm just suggesting it be base64-encoded if it's not a valid utf-8 string [03:06] that I can do [03:06] you might have to add an additional field tho [03:07] so you can distinguish base64-encoded binary from something that was already base64 [03:07] yeah, that was my thinking too [03:07] also, I do like the idea of supporting globs... [03:07] but perhaps not just yet [03:07] :) [03:07] let's get the basics out there [03:08] yep fair enough [03:09] * axw wishes the bot would hurry up and merge destroy-env, so he can do a happy dance [03:09] axw: how do I check for valid utf8? [03:10] axw: bot is stuck [03:10] thumper: utf8.Valid [03:10] aw poop [03:10] is that encoding/utf8? [03:10] * thumper pokes the bot [03:10] just utf8 [03:10] * thumper tries to remember all the steps... [03:14] there was a lock file there [03:14] * thumper deleted it [03:14] and is watching the log [03:14] for some reason, chose mine first [03:14] it is running again [03:15] axw: unicode/utf8 [03:15] thumper: eh, yes, sorry [03:16] ctrl+. ctrl+p uft8 [03:18] axw: example invalid utf8 for a test? [03:19] umm [03:19] 0xFF ? [03:19] kk [03:20] thumper: MSB indicates there's more bytes coming after to make up the rune === waigani_ is now known as waigani [03:21] thumper: i commented on one of your branches - i disagree with the need to pass in apiConfig [03:22] while I agree only the datadir is needed right now, it seemed more reasonable to pass in the entire config interface than a single value [03:22] however I don't care strongly [03:23] thumper: it's just that we have a method off agentConfig which extracts values [03:23] so with your approach we are inconsistent [03:23] we are extracting values off the config, and then passing the config in anyway [03:24] and someone wrote that StateAPIInfo method or whatever it's called to get just the bits needed [03:24] I'm neutral on the need for that method etc - just want to be consistent [03:25] wallyworld_: that was mostly to avoid rewriting too many tests... [03:25] but I can fix [03:25] I was trying to be lazy [03:25] :-) [03:25] like all good programmers [03:25] yes I realised it was a little icky [03:25] but my fucks to be given was approaching zero [03:25] can understand that [03:26] but i twitched a lot reading the code [03:26] my view - StateAPIInfo shgould return a struct [03:26] not individual attrs [03:27] and then you can add dataDir to that struct [03:27] and we can extend easily if needed [03:27] without changing method signatures etc [03:52] * axw happy dances [03:52] manual provider is complete [04:08] * wallyworld_ -> shops for dinner food [04:15] wallyworld_: I actually took your advice and just passed through the datadir [04:15] * thumper runs the tests to see if all are still good [08:22] mornin' all [10:09] dimitern, hey, would you give the bot a little kick please? there are a few branches that are lying around approved [10:10] fwereade, sure, looking [10:48] fwereade, jam, standup [11:12] when anyone gets a chance, very small change to fix the tests in trusty (or for anyone else with a newer version of git): https://codereview.appspot.com/49470047 [11:24] rogpeppe: ^^ this should help your tests on trusty [11:27] natefinch: reviewed [11:38] dimitern, mgz: bot appears out of disk space [11:38] rMsg:"syncThread: 14031 Can't take a write lock while out of disk space", Healthy:true, State:5, Uptime:60, Ping:0}}} [11:39] natefinch, hmm - I cleaned up /tmp/ - maybe it managed to get into a loop or something and exhaust it again [11:39] (so soon anyway - it never happened like this before) [11:40] this hopefully mean we can lose the forked http package from gwacl: https://codereview.appspot.com/48580043 [11:40] natefinch, it doesn't seem it runs out of space: http://paste.ubuntu.com/6726123/ [11:41] any simple streams experts around? [11:41] natefinch, maybe you're looking at an earlier log/ [11:41] ? [11:41] hazmat, wallyworld_ is your man [11:42] wallyworld_, you around? got a user on irc (private channel) having some issues getting set up with their private openstack cloud [11:42] hey, i've had a few drinks but i'm here :-) [11:42] their doing the juju-metadata generate-images but they still get errors against it [11:43] log? [11:43] wallyworld_, coming up via priv msg [11:43] ok [11:46] dimitern: it was from 15 minutes ago... but maybe somethnig else is going on [11:47] fwereade: heya, would you mind another look at https://codereview.appspot.com/44540043/? [11:48] natefinch, bizarre.. have you tried turning it off and on again? :) reapprove i mean [11:52] TheMue, should get to it soon, but probably after lunch [11:52] TheMue, (stuttering: tailer.FilterFunc reads better than tailer.TailerFilterFunc) [11:56] dimitern: trying again [12:16] fwereade, would you be ok if we resheduled the juju id meeting to monday? [12:18] mattyw, sure :) [12:20] fwereade, tue instead if that's ok [12:21] back from lunch [12:22] fwereade: ah, ok, will change that [14:12] mgz: ping [14:13] wallyworld_: hey [14:13] hi, there's a guy having trouble with openstack and juju [14:13] he has his image metadata in a container, the perms seem correct, but he can't read the json files [14:14] is there a bug or mailing list thread I should be looking at? [14:14] ie if he pastes the link in a browser, it says unauth [14:15] mgz: i'll pm you the private irc channel details === hatch_ is now known as hatch [16:09] fwereade: i just left you a query on https://codereview.appspot.com/49470047/ [16:28] rogpeppe: I don't think you actually CC'd fwereade in this: https://codereview.appspot.com/49470047/#msg6 [16:28] natefinch: I pinger him above [16:28] pinged [16:29] rogpeppe: oh, missed it, ok. [16:29] natefinch: i presume he sees the emails anyway [16:32] natefinch, rogpeppe: sorry, I'm kinda focused on a weird bug [16:32] fwereade: no probs [16:32] fwereade: no rush, definitely [19:08] natefinch: i'd appreciate a review of this, if you could. it's only a staging post, but I'm hoping that it implements the core part of the replica set maintenance algorithm reasonably: https://codereview.appspot.com/49920045 [19:08] fwereade: ^ [19:08] * rogpeppe is now done for the week [19:08] happy weekends all! [19:16] rogpeppe: sure thing === gary_poster is now known as gary_poster|away