[00:06] <davecheney> menn0: none
[00:06] <davecheney> menn0: actually, none, but i'm sure someone else will have 100% opinion on it
[00:06] <davecheney> ask the juju plugin writers
[00:06] <davecheney> they parse status
[00:07] <menn0> davecheney: k thanks
[00:57] <waigani> menn0: can I give you a call?
[01:39] <thumper> menn0: given that the error is going to be on unit wordpress/0 (say), the error text of "mysql-relation-changed with mysql:server" seems clear
[01:40] <thumper> I don't have a strong preference on the "for" vs. "with" bikeshed
[01:40] <thumper> but I think the wordpress:mysql bit is superfluous when on the wordpress unit, and the relation will be 'mysql-relation-chagned;
[01:43] <wallyworld_> axw: hiya, in amongst the az work for openstack, are you also able to look at the e2 startup issues due to az? it seems to me we want this fixed for 1.20 also?
[01:44] <axw> wallyworld_: yeah I will look at both
[01:44] <axw> wallyworld_: OpenStack one is pretty trivial
[01:44] <axw> ec2 not so much
[01:44] <wallyworld_> thank you. and thanks for the +1 on my mongo fuk up fix
[01:44] <axw> nps, sorry I missed it before
[01:44] <axw> I think I reviewed that..
[01:44] <wallyworld_> huh? you didn't miss anythng
[01:45] <axw> maybe I just looked at it
[01:45]  * axw shrugs
[01:45] <wallyworld_> yeah, but why would we think we wanted clusteradmin on a non admoin user?
[01:45] <wallyworld_> i think we've got stuff to fine tune with our user mgmt
[01:45] <wallyworld_> and no unit tests failed
[01:48] <wallyworld_> axw: if there's no bug already for the e2 az stuff, can you raise one when you have a moment and assign to the 1.19.4 milestone? i'd mark it as critical
[01:49] <axw> wallyworld_: I raised one for each last night
[01:49] <axw> wallyworld_: marked OS as critical, EC2 as high - will change
[01:50] <wallyworld_> ok. sorry, i didn't see it on the milestone, i'll chek my eyes :-)
[01:50] <wallyworld_> i think critical because bootstrap doesn't "just work" anymore
[01:51] <wallyworld_> it failed  for me this morning
[02:00] <waigani> thumper: that was it! ugh $#%#3 so frustrating
[02:10] <menn0> thumper: thanks. I think you're right. I also thinking including both endpoints can make the status output quite long especially if the charm and interface names are long.
[02:11] <menn0> waigani: sorry, I was out for a bit and only just saw your messages. Do you still want a call?
[02:11] <waigani> menn0: no, all good, thanks anyway
[02:11] <menn0> waigani: great
[02:14] <waigani> thumper: is there a convenience method for errors.New(fmt.Sprintf(...))
[02:14] <axw> wallyworld_: what region are you using? us-east-1?
[02:14] <thumper> waigani: errors.Errorf
[02:14]  * thumper otp
[02:14] <waigani> thumper: sweet, cheers
[02:16] <wallyworld_> axw: us-west-1
[02:16] <axw> ta
[02:57] <waigani> menn0: responded to your review, new code up
[02:58] <menn0> waigani: otp
[03:01] <menn0> waigani: will look soon
[03:16] <menn0> waigani: I'm done with the review
[03:24] <waigani> menn0: otp
[03:27] <davecheney> thumper: https://github.com/juju/juju/pull/103 and https://github.com/juju/names/pull/5
[03:27] <davecheney> as discussed
[04:31] <waigani> menn0: ping
[04:31] <menn0> waigani: just responded privately
[05:04] <waigani> oh did I miss the card sizing ?
[05:18] <jam> morning all
[05:30] <menn0> waigani: no. it's probably happening tomorrow
[05:30] <menn0> jam: morning
[05:31] <jam> morning menn0
[06:38] <wallyworld_> jam1: what's the state of bug 1319694, marked as in progress against the 1.19.4 milestone?
[06:39] <jam1> wallyworld_: that one might actually be done, I'll investigate and get back to you
[06:39] <jam1> I miss mup
[06:39] <jam1> _mup_: poke
[06:39] <wallyworld_> yeah
[07:01] <dimitern> jam1, i'm getting sso errors trying to login
[07:01] <dimitern> jam1, let's use mumble instead?
[07:04] <jam1> dimitern: I have to install it again, give me a sec
[07:04] <dimitern> jam1, i can't login to mumble as well :(
[07:04] <jam1> dimitern: well, sso is probably used for both, fwiw
[07:04] <dimitern> jam1, yep
[07:04] <jam1> dimitern: do you have a personal gmail account?
[07:04] <jam1> well, google account
[07:05] <dimitern> jam1, yes, trying that now
[07:05] <jam1> wallyworld_: fix committed for bug #1319694
[07:05] <wallyworld_> great :-)
[07:06] <jam1> at least the specific dataDir part of that bug is committed, and the rest is in the branches I've put up for review, but can easily be treated as something separate.
[07:06] <jam1> dimitern: I just invited your personal account
[07:33] <wallyworld> axw: i have an errand tonight, did you have time for a quick standup now?
[07:34] <axw> wallyworld: sure, be there in a moment
[07:34] <wallyworld> kk
[07:35] <axw> wallyworld: https://plus.google.com/hangouts/_/gzksidi5kx4jxzf6qty6lf56iqa?authuser=1&hl=en
[07:36] <wallyworld> ok, i was in the normal one
[07:36] <axw> ah I can come
[07:36] <axw> heh I think we just switched.. I'm in tanzanite now
[07:51] <voidspace> morning all
[07:51] <menn0> voidspace: morning!
[07:53] <voidspace> menn0: o/
[08:10] <axw> wallyworld: thanks, I was able to repro with the shared credentials
[08:25] <mattyw> axw, dimitern fwereade can I get another review for https://github.com/juju/juju/pull/64 when one of you has a spare moment?
[08:30] <axw> mattyw: done
[08:31] <jam> fwereade or dimitern: I'd like to run a design thing past you about the Client side code for API versioning. It might be most appropriate to talk about it in a hangout, though hopefully it won't take super long.
[08:32] <dimitern> mattyw, sorry, axw was faster :)
[08:32] <dimitern> jam, sure
[08:32] <fwereade> jam, I am making a much-belated effort to be dark and just write some damn specs today -- dimitern, can I dump it on you please
[08:33] <dimitern> fwereade, jam, np, dump away :)
[08:34] <jam> dimitern: https://plus.google.com/hangouts/_/canonical.com/dimiter-john
[09:33] <mattyw> axw, I guess you just mean remove the commented line I guess?
[09:36] <axw> mattyw: yes please
[09:36] <mattyw> axw, thanks very much, and then you think it's ok to land?
[09:36] <axw> yes I think so
[10:00] <perrito666> rogpeppe1: hi by any chance you got time to take another look to restore?
[10:00] <rogpeppe1> perrito666: np. will do
[10:01] <perrito666> rogpeppe1: tx a lot, sorry I really need that landed :)
[10:01] <rogpeppe1> perrito666: can you remind of the PR please?
[10:02] <rogpeppe1> perrito666: https://github.com/juju/juju/pull/79 ?
[10:02] <perrito666> https://github.com/juju/juju/pull/79
[10:02] <perrito666> yup sorry
[10:02] <perrito666> had to look it up :)
[10:07] <rogpeppe1> perrito666: i'm still concerned that this code has never been tested for real
[10:08] <perrito666> rogpeppe1: after voidspace can merge it with his part I can run a test I "borrowed" from CI but as is is a bit hard
[10:08] <rogpeppe1> perrito666: yeah, i guess so. it can always be fixed when the logic becomes integrated
[10:09] <perrito666> rogpeppe1: previous backup was easier to try since it was a standalone script
[10:09] <mgz> axw: know if wallyworld is back around yet?
[10:11] <voidspace> perrito666: it won't be long before we can test it
[10:11] <voidspace> perrito666: api is done, api client is basically done
[10:11] <voidspace> it needs restore to test it *properly* of course
[10:12] <perrito666> voidspace: tecnically not :) I made it so it is compatible with current restore :)
[10:12] <voidspace> ah, cool
[10:12] <voidspace> even better
[10:12] <voidspace> perrito666: it could be possible to have an "end-to-end" test today then
[10:14] <axw> mgz: sorry, was afk. I think he said he'd be back around 8:30 his time, which is in 15m
[10:15] <mgz> axw: ta!
[10:22] <axw> jam1: are you CLA-savvy? https://github.com/juju/cmd/pull/2 can be merged without signing right? since it's just a teeny bug fix
[10:23] <axw> mgz: or you? ^^
[10:25] <mgz> axw: we *have* merged similar contributions in the past
[10:25] <mgz> I'm not really sure you can argue it's trivial though
[10:26] <mgz> kind of mp I love though, adds a failing test, fixes bug
[10:26] <voidspace> it's 8 lines of code
[10:27] <voidspace> I would think that counts as "trivial" (even if technically astute)
[10:27] <rogpeppe1> axw: is there a reason we couldn't just do a normal type switch in FormatSmart?
[10:27] <axw> rogpeppe1: I didn't even look
[10:27]  * axw looks
[10:28] <axw> rogpeppe1: well you can't do a type-switch on a string array if you don't know the length
[10:28] <axw> apart from that one case, it'd be fine
[10:28] <rogpeppe1> axw: ah, good point
[10:29] <rogpeppe1> axw: and we do actually pass in string arrays to FormatSmart?
[10:29] <axw> rogpeppe1: I'm wondering that myself - seems unlikely
[10:29] <axw> though that is what the bug fix is for...
[10:30] <mgz> not panicing seems worthwhile even if current callers don't do that
[10:30] <perrito666> rogpeppe1: tal
[10:30] <axw> I'm gonna merge it, we can look at making it non crappy later
[10:30] <rogpeppe1> mgz: yeah, on reflection, i tend to agree
[10:31] <rogpeppe1> mgz, axw: although, thinking about it, that code can still panic
[10:32] <axw> ? :(
[10:32] <mgz> quiff smilie!
[10:32] <rogpeppe1> axw: i think the test probably needs to be if v.Type().Elem().Type() == reflect.TypeOf("") {
[10:32] <axw> uh yeah, typed string
[10:32] <axw> named
[10:32] <rogpeppe1> yeah
[10:33] <rogpeppe1> axw: same with the others actually
[10:33] <mgz> moar tests needed
[10:34] <rogpeppe1> axw, mgz: well, according to the docs, arrays are not supported
[10:35] <mgz> can we just panic("no arrays") at the top then?
[10:36] <mgz> I don't like un-coded preconditions to functions
[10:36]  * perrito666 has to chain a displayport adapter to a thuderbolt adapter to ensure noise filtering.... I am back in the 90s
[10:36] <mgz> perrito666: you bought the wrong kind of computer :)
[10:36] <rogpeppe1> mgz: na, we could just delegate to FormatYaml as documented
[10:37] <rogpeppe1> mgz: the docs specifically mention []string
[10:37] <perrito666> mgz: I think the problem, this time, lies in the $1 cable and the $2 adapter
[10:37] <perrito666> :;p
[10:39] <wallyworld> mgz: hi, just got back, having sinner, will ping you soon
[10:39] <wallyworld> dinner
[10:39] <mgz> ehhe
[10:46] <dimitern> jam1, vladk, standup?
[10:46] <jam1> brt
[10:47] <rogpeppe1> mgz, axw: i suggest we keep things simple and change the implementation to this: http://paste.ubuntu.com/7652447/
[10:48] <rogpeppe1> mgz, axw: which corresponds more directly to the docs
[10:52] <mgz> rogpeppe1: that's deliberatly getting yaml to do the int/float case?
[10:53] <rogpeppe1> mgz: yeah - which the current code does too
[10:53] <mgz> seems fair then
[10:54] <rogpeppe1> mgz, axw: just checking that all the cmd/juju tests pass with that - i'm pretty sure they will
[10:54] <rogpeppe1> yeah, they do
[10:54] <rogpeppe1> i'll propose an alternate PR
[11:00] <rogpeppe1> hmm, it's already merged
[11:05] <rogpeppe1> axw, mgz: https://github.com/juju/cmd/pull/3
[11:07] <perrito666> voidspace: I made the changes suggested and triggered the merge
[11:11] <voidspace> perrito666: awesome
[11:22] <wallyworld> mgz: hiya, wanna join the standup hangout?
[11:24] <perrito666> voidspace: merged
[11:34] <wwitzel3> fwereade: https://github.com/juju/juju/pull/2
[11:59] <voidspace> wwitzel3: hey, morning
[11:59] <wwitzel3> voidspace: morning
[12:11] <voidspace> gah, just wasted 20 minutes merging and resolving conflicts on the wrong branch
[12:11] <voidspace> damn confusing names
[12:11] <voidspace> my own fualt
[12:11] <voidspace> *fault
[12:21] <voidspace> perrito666: integration *slightly* more than two lines of code as I need admin password and mongo port
[12:21] <voidspace> perrito666: will finish after lunch
[12:21]  * voidspace lunches
[13:37] <rogpeppe1> perrito666: re: "Done, I went with ReadAll, although I was under the impression that Read would read len(b)", see http://golang.org/pkg/io/#Reader
[13:37] <rogpeppe1> perrito666: in particular: "Read reads up to len(p) bytes into p"
[13:37] <rogpeppe1> perrito666: it is even possible for it to return zero bytes, tho' that's discouraged
[13:39] <perrito666> rogpeppe1: the "up to" part is what worried you, right?
[13:39] <rogpeppe1> perrito666: yeah - there's no guarantee that Read returns any given number of bytes
[13:40] <rogpeppe1> perrito666: if, for example, you're reading from the network, it's quite common for reads to return too few bytes
[13:40] <rogpeppe1> perrito666: it's also not uncommon for it to happen when the underlying reader is using a buffer
[13:41] <rogpeppe1> perrito666: that's why io.ReadFull exists
[13:41] <mgz> was about to ask about SIGINT then remembered we weren't in c
[13:41] <perrito666> mgz: lol
[13:41] <rogpeppe1> mgz: i'm not sure what go does about automatic syscall restarting actually
[13:41] <rogpeppe1> mgz: i *presume* it does restart syscalls automatically
[13:50] <mattyw> fwereade, ping?
[13:53] <bodie_> morning all
[13:58] <mgz> hey bodie_
[14:03] <natefinch> perrito666, wwitzel3, ericsnow, voidspace:  Can we delay the standup a little?  I'm still waiting for my wife to come back from a school board meeting
[14:04] <perrito666> natefinch: np for me
[14:04] <voidspace> natefinch: sure
[14:04] <ericsnow> natefinch: yep
[14:04] <voidspace> no problem
[14:04] <perrito666> I am just working looking at wwitzel3 and ericsnow
[14:04] <perrito666> its like being in an office
[14:04] <ericsnow> perrito666: so sorry ;)
[14:08] <perrito666> we do have the weirdest layout for an office :p very one has a very different room behind them
[14:29] <voidspace> perrito666: ping
[14:29] <perrito666> voidspace: pong
[14:32] <wwitzel3> is a "safe" way to turn off the apiworker so a state machine isn't running an apiserver? I've tried just not starting it in cmd/jujud/machine, but the problem there is the machine itself seems to not be available yet, so my call to st.Machine are panicing
[14:33] <voidspace> natefinch: ping
[14:36] <voidspace> mgz: you around?
[14:37] <voidspace> I need the mongo admin password for the backup api call
[14:37] <voidspace> it is available in the AgentConfig
[14:37] <voidspace> and I'm wondering how to get that from the apiserver
[14:37] <voidspace> I have a State
[14:38] <mgz> hmm
[14:38]  * voidspace goes and looks how the AgentConfig is created in the first place
[14:38] <voidspace> agent.NewAgentConfig is called from cloudinit
[14:39] <voidspace> that just creates the ConfigSetterWriter in memory
[14:40] <voidspace> I guess it's associated with the machine tag
[14:40] <voidspace> so I probably need to read it in from disk
[14:40] <mgz> if you have state that should be fine - though apiserver to mongo admin is a bit dodgy
[14:40] <voidspace> mgz: what do you mean specifically by "should be fine"?
[14:40] <voidspace> mgz: what should be fine - reading the AgentConfig from disk?
[14:41] <voidspace> the admin password isn't in the db so it isn't on State (as far as I can tell)
[14:41] <mgz> getting the password by some means or other then using it
[14:41] <voidspace> ah
[14:41] <voidspace> cool
[14:41] <voidspace> that's good, because it's required for backup now
[14:43] <cmars> fwereade, could you take another look at my remove-unit pr? https://github.com/juju/juju/pull/52
[14:58] <voidspace> mgz: state.EnvironConfig().StatePort() and AdminSecret() ?
[14:58] <voidspace> for mongo port and admin password?
[14:58] <voidspace> plausible
[14:59] <voidspace> state.State. ...
[15:00] <fwereade> cmars, will try to get to it sometime today
[15:00] <fwereade> cmars, bit meetingy at the moment
[15:01] <fwereade> cmars, btw I copied you in on a mail earlier today that isn't actually to do with you
[15:01] <cmars> fwereade, :)
[15:01] <fwereade> cmars, I thought it was but it wasn't but I forgot to remove you
[15:03] <mgz> voidspace: it's something like that, but I don't recall the details and there were some fiddly bits with the change to config stuff
[15:04] <mgz> voidspace: poke rogpeppe1 maybe
[15:04] <voidspace> mgz: right, those methods exist and the docstrings look positive about what they're for
[15:04] <voidspace> mgz: heh, ok :-)
[15:04] <voidspace> in a minute though
[15:04] <voidspace> taking a "wee break" (said in a Scottish accent)
[15:08] <voidspace> rogpeppe1: ping
[15:24] <ericsnow> voidspace: patch for the backup CLI at https://github.com/juju/juju/pull/97
[15:24] <ericsnow> voidspace: when you have a sec see if that matches up with your stuff
[15:26] <voidspace> ericsnow: sure
[15:27] <voidspace> ericsnow: currently failing to set test values for the mongo port and admin password for a test :-/
[15:27] <voidspace> I think the code is done, but I'm not sure :-)
[15:27] <voidspace> ericsnow: looking now
[15:27] <ericsnow> voidspace: cool
[15:29] <voidspace> ericsnow: yep, looks good to me
[15:29] <voidspace> ericsnow: at least the few specific lines of integration look fine
[15:29] <voidspace> :-)
[15:29] <TheMue> somebody interested in reviewing a little additional test in the rpc package? https://github.com/juju/juju/pull/107
[15:29] <ericsnow> voidspace: okay, good :)
[15:38] <natefinch> perrito666, wwitzel3, ericsnow, voidspace:  Wow, sorry, that took like way way longer than I expected.
[15:39] <wwitzel3> natefinch: np, I just got off a call anyway
[15:47] <perrito666> brb, lunch
[15:47] <perrito666> or not
[15:47] <perrito666> natefinch: wwitzel3 we are set for the standup?
[15:47] <natefinch> perrito666, wwitzel3, ericsnow, voidspace:  yeah, hope in, wayne and I are there
[15:47] <perrito666> in there, sorry I missed the irc notification
[15:52] <SIGILL> For my bachelor thesis I'd like to test 'virtual network embedding' algorithms in the wild, escpecially with latency in mind. Do you think there's room for improvement in juju regarding that?
[15:57] <SIGILL> NB: those algorithms try to figure out how to map a virtual network (the cloud) to actual machines in the most efficient way
[16:02] <natefinch> voidspace: let me know when you're back so we can catch up
[16:04] <voidspace> natefinch: back, sorry
[16:08] <voidspace> natefinch: https://github.com/voidspace/juju/compare/download-backup
[16:08] <voidspace> https://github.com/voidspace/juju/compare/download-backup#diff-198897e828f0611e3185053d7354a523R96
[16:11] <voidspace> natefinch: s.State.UpdateEnvironConfig
[16:25] <voidspace> jam1: ping
[16:25] <voidspace> on the off-chance you're still around
[16:26] <jam1> voidspace: pong
[16:26] <jam1> what's up?
[16:26] <voidspace> jam1: I have a problem with a test :-)
[16:26] <voidspace> it's (indirectly) a JujuConnSuite test with an apiserver and api client
[16:27] <voidspace> I'm testing an api endpoint (so apiserver) that needs to use the mongo port and mongo administrator password
[16:27] <voidspace> I'm pretty sure I can get these by calling state.State.EnvironConfig() and then calling AdminSecret and StatePort
[16:27] <voidspace> so what I want is a test that checks those values are used
[16:28] <voidspace> I can't find a way to set those values (from the test) in the environ config used by the test suite
[16:28] <voidspace> setting them in DummyConfig doesn't work
[16:28] <voidspace> calling BackingState.UpdateEnvironConfig doesn't work
[16:28] <voidspace> calling BackingState.SetAdminMongoPassword and State.SetAdminMongoPassword doesn't work
[16:28] <voidspace> any ideas?
[16:29] <voidspace> jam1: the test specifically is here: https://github.com/voidspace/juju/compare/download-backup#diff-198897e828f0611e3185053d7354a523R96
[16:29] <voidspace> see the XXXX on that line
[16:29] <voidspace> if you search for EnvironConfig() on that page you'll see the code that fetches them
[16:30] <voidspace> by "doesn't work", I mean that the values I set aren't used
[16:30] <voidspace> and I get 1234 for mongo port and "" for admin secret
[17:17] <voidspace> I have to EOD
[17:17] <voidspace> krav maga
[17:17] <voidspace> I may be around later though
[17:17] <voidspace> see you all tomorrow
[17:18] <bodie_> adios
[17:18] <voidspace> o/
[17:49] <perrito666> fwereade: non urgent ping, does the note added to https://github.com/juju/juju/pull/30/files conveys your message to future workers developers?
[19:08] <ericsnow> natefinch, perrito666: I started working on the restore command and noticed that the plugin basically does it already (or am I missing something?)
[19:11] <perrito666> ericsnow: the plugins does it
[19:11] <perrito666> it just does it in a very ugly way
[19:11] <perrito666> if you follow the plugin:
[19:12] <perrito666> 1) it checks that the machine we are trying to restore is no longer working
[19:12] <perrito666> 2) it creates a state server
[19:12] <perrito666> 3) it runs a bash script through ssh
[19:13] <perrito666> we intend to split that into 1&&2 properly coded/tested into the client side and 3 properly coded in go and tested on the server
[19:14] <ericsnow> perrito666: right, but the actual CLI part of that won't really change
[19:14] <ericsnow> it will just call the new client API
[19:14] <perrito666> ericsnow: there is room for improvement definitely
[19:15] <ericsnow> k
[19:15] <perrito666> ericsnow: if you want I can hangout about this (and we can even bring in natefinch)
[19:15] <perrito666> :p
[19:15] <ericsnow> perrito666: yeah, let's do that
[19:16] <perrito666> lets go to the moonstone channel
[19:21] <natefinch> perrito666: in minute - in a meeting
[20:40] <thumper> fwereade: hey, I need to take the dog for a walk before I start, but if you are around later, we can chat
[20:51] <natefinch> perrito666: you still around?
[20:51] <perrito666> natefinch: always
[20:51]  * perrito666 has no life
[20:53] <natefinch> perrito666: so evidently there's a failure with backup and restore with HA
[20:53] <perrito666> natefinch: current or old?
[20:54] <perrito666> i mean, new or old?
[20:54] <natefinch> unknown... Ian said he ran the CI tests for it, and they failed for some reason
[20:54] <natefinch> he said "functional tests" but I assume he means CI
[20:54] <natefinch> "the functional HA backup and restore tests fail. I e-ran that job after the Mongo fix and something is still not right."
[20:55] <natefinch> s/e-ran/re-ran/
[20:55] <perrito666> I guess yes, strange, those are currently running and not failing or I would have sinzui looking at me very angry
[20:55] <perrito666> did he send an email about that?
[20:55] <natefinch> ian sent it to the team leads,  I unfortunately missed it until alexis pointed it out to me
[20:56] <perrito666> that is as much detail as there is?
[20:56] <natefinch> perrito666: http://juju-ci.vapour.ws:8080/job/functional-ha-backup-restore-devel/
[20:56] <natefinch> just found that
[20:57] <perrito666> daf...
[20:57] <natefinch> perrito666: http://juju-ci.vapour.ws:8080/job/functional-ha-backup-restore-devel/136/console
[20:57] <perrito666> yup, I was reading
[20:58] <natefinch> kk
[20:58] <natefinch> looks like... maybe aws is being slow?
[20:59] <perrito666> last succesful run is 104
[20:59] <natefinch> not really sure
[20:59] <natefinch>  there were intermittent failures before
[21:00] <perrito666> natefinch: it sees it was running well then began failing then it completely failed
[21:00]  * perrito666 scratches his chin
[21:04] <natefinch> brb...
[21:05] <menn0> morning all
[21:07] <perrito666> menn0: hi
[21:07] <menn0> perrito666: how's things?
[21:07] <perrito666> could be better
[21:07] <perrito666> :)
[21:10] <perrito666> natefinch: well, sadly, this is new
[21:10] <perrito666> :(
[21:11] <perrito666> this was not there before adding-vote: 2, 3
[21:23] <natefinch> well crap. We can look at it in the morning, but it's highest priority right now
[21:25] <natefinch> perrito666: gotta run
[21:26] <waigani> morning all
[21:29] <waigani> menn0: I'm unable to reproduce the fail locally. I see in the ci logs the LastConnection is in timezone Z, Zulu which is the same as UTC
[21:29] <waigani> menn0: I'm guessing it's a time zone issue but that does not explain why i cannot reproduce it locally
[21:29] <menn0> waigani: from looking at the failure message I don't think the problem is TZ related (although I wouldn't discount it completely given that the CI server is in a different TZ)
[21:30] <menn0> waigani: shall I try on my machine?
[21:30] <waigani> menn0: yes please
[21:30]  * menn0 has to think about how to add tracking branches...
[21:31] <waigani> menn0: in the last push I set the time stamps to UTC, which fails for me locally
[21:35] <waigani> menn0: can't you just checkout my branch from my repo?
[21:35] <menn0> yeah, but I need it in the right place so adding a remote is perhaps easier. it also makes future collaboration easier. It's not hard - almost done.
[21:44] <menn0> waigani: right... that test fails for me as well
[21:45] <waigani> menn0: the one you pulled down? DateCreated set to UTC ?
[21:45] <waigani> try what I emailed you
[21:46] <waigani> menn0: try user.DateCreated.Local() and user.LastConnection().In(obtained.Result.LastConnection.Location())
[21:46] <menn0> yep doing that now
[21:46] <menn0> waigani:  that works
[21:47] <waigani> menn0: right, that is the same for me
[21:47] <waigani> i still think its the timezones
[21:47] <menn0> so the thing about DeepEquals and pointers is a red herring. It's just a misleading error message.
[21:47] <menn0> yes, now I think it's time zones too
[21:48] <waigani> okay, so keep what I originally had and compare .Result ?
[21:49] <waigani> BUT that still does not explain why it passes locally and not on CI
[21:49] <menn0> checking Result is not going to help
[21:49] <menn0> if timezones differences are the problem
[21:50]  * menn0 thinks
[21:50] <waigani> if the user factory just returned everything in UTC it could solve the problem
[21:51] <waigani> but I'm still intrigued as to why CI fails and local does not - unless NZST got hardcoded? but surely not
[21:51] <menn0> it's not the user factory's problem. It's just returned in the user document
[21:52] <menn0> i'm just experimenting with a few things
[21:53] <waigani> menn0: the factory creates a user and returns DateCreated and LastConnection for that user with different timezones and locations than what UserInfo returns
[21:54] <waigani> that is the crux of the problem as I see it
[21:54] <menn0> waigani: yes but that's just a difference between how these values are stored in state and how the API returns them
[21:55] <waigani> menn0: exactly, it's formatting - which my original test addressed
[21:55] <waigani> menn0: and passed locally
[21:59] <jcw4> I've added Tag implementations for Action in juju/names; PTAL: https://github.com/juju/names/pull/6
[22:01] <waigani> menn0: so LastConnection has a location set when returned by the API, but not via the user factory
[22:01] <waigani> menn0: I set the API to always return UTC - the missing location in LastConnection is the only difference between the two now
[22:03] <menn0> waigani: it could also be something to do with LastConnection being uninitialised because there's never been a connection
[22:04] <menn0> but when you print the user docs LastConnection and the one from the API they both look the same (and are both in UTC)
[22:06] <menn0> it could also be the Local conversion for DateCreated...
[22:07] <menn0> sending you an email now
[22:09] <menn0> waigani: just your inbox
[22:10] <waigani> menn0: sweeet, thanks
[22:56] <davecheney> thumper: could I get another set of eyeballs on https://github.com/juju/names/pull/5
[22:56] <davecheney> so I can land this and move on to my next branch this morning
[22:56] <thumper> yup
[22:56] <jcw4> s/5/6/ ;)
[23:22] <jcw4> davecheney: are there specific characters that are (or are not) allowed as a Tag() name?
[23:22] <jcw4> davecheney: I see that / and : are replaced with - and . respectively
[23:23] <jcw4> davecheney: for our Actions entity, I am using # as a marker token in the mongo _id
[23:24] <jcw4> davecheney: and I want to expose the Action name/id through a Tag()
[23:27] <davecheney> jcw4: not really sure
[23:27] <davecheney> i think this is a side effect of forcing tags to be expressable as strings
[23:28] <jcw4> I have a discussion pending with fwereade, but since you did that work on the names package I wanted to see if there were any 'easy' answers  :)
[23:29] <jcw4> thanks davecheney
[23:29] <davecheney> jcw4: sorry, i don't know the answer
[23:30] <davecheney> i think there were some unfortunate interactions with the printed form of, say a relation
[23:30] <davecheney> with the stringified version of the tag
[23:30] <davecheney> given we use hypehn to separate between the name of the tag and it's value
[23:31] <jcw4> davecheney: hence the translation for relations, i see
[23:34] <waigani> menn0: I'll just go wash this curry off me then get back into debugging the timezone issue.
[23:35] <waigani> I'll let you know if i find anything interesting
[23:35] <menn0> waigani: cool. I'm going to leave you to it for a bit so I can get this branch landed but can help out later on if it's still not working out.
[23:35] <waigani> menn0: no problem, I've got a few ideas to try out
[23:40] <jcw4> davecheney: thanks for the ParseActionTag suggestion, I'll investigate; I think it's something we do want
[23:50] <davecheney> jcw4: you may, you can always get the same result with
[23:50] <davecheney> tag, err := ParseTag(tag)
[23:50] <davecheney>  // check err
[23:50] <davecheney> if tag, ok := tag.(ActionTag); ok {
[23:50] <davecheney>  // yup it's an action tag
[23:50] <davecheney> }
[23:54] <jcw4> davecheney: okay, I'll look into that closer.