[00:24]  * babbageclunk goes for a run
[01:15] <perrito666> wallyworld: see priv msg
[01:22] <axw> anastasiamac menn0: on the topic of not being entirely confused: https://en.wiktionary.org/wiki/mersi
[01:24] <menn0> axw: cool :)
[01:24] <anastasiamac> axw: we should start a club \o/
[01:35] <babbageclunk> menn0: ping
[01:35] <menn0> babbageclunk: pong
[01:36] <babbageclunk> menn0: So the other thing that I forgot to ask about because you threw that bijou spannerette into the works was about the version numbers on the log messsages.
[01:38] <babbageclunk> menn0: on https://github.com/juju/juju/pull/6588 thumper-dogwalk was wondering whether we should maintain them from the source system.
[01:39] <babbageclunk> menn0: link to relevant comments https://github.com/juju/juju/pull/6588#discussion_r88825956
[01:44] <menn0> babbageclunk: sorry, got distracted
[01:44] <menn0> babbageclunk: I didn't know that the version number was being sent
[01:44]  * menn0 looks at the code
[01:49] <babbageclunk> menn0: Well, it's sent as a url parameter when the logsender connects to the logsink api handler.
[01:49] <menn0> babbageclunk: yep I see that
[01:51] <menn0> babbageclunk: given that the current code requires it, I guess continue passing the version from the source controller
[01:51] <menn0> babbageclunk: it's terrible that each log record in the DB stores the version
[01:51] <menn0> babbageclunk: but I don't think you should try to fix that now
[01:51] <menn0> babbageclunk: all the logs in the DB should be in the same format
[01:52] <babbageclunk> menn0: ok, but not changing debug-log to get the version from the source DB and emit it?
[01:55] <babbageclunk> menn0: I'm good with not doing that, just want to check.
[01:59] <menn0> babbageclunk: sorry... can we HO, I'm not understanding
[02:00] <babbageclunk> menn0: sure https://hangouts.google.com/hangouts/_/canonical.com/menno
[02:03] <thumper> menn0, babbageclunk: I'd like to know the rationale behind the sending of the juju version
[02:03] <thumper> I just don't see the point
[02:03] <thumper> and especially storing extra data we don't need in the lgos
[02:03] <thumper> logs
[02:08] <menn0> thumper: I just chatted to babbageclunk. we all agree that storing version on each log record is dumb.
[02:09] <menn0> thumper: babbageclunk is filing a bug about that
[02:09]  * thumper agrees
[02:09] <menn0> thumper: that's what I meant by *all* :p
[02:09] <thumper> :)
[02:10] <menn0> thumper: the version isn't going to be sent per record when the logs are transferred during migration
[02:10] <menn0> thumper: but to avoid having to change too much now it's still going to be sent at connection time (it might end up being useful too)
[02:10] <thumper> sure
[02:55]  * thumper needs coffee badly
[03:02] <natefinch> I cant believe someone would write a REST API "wrapper" and just give it methods for Get, Delete, Post, etc.
[03:03] <natefinch> thumper: totally unrelated... any idea the easiest way to ping a maas to make sure the endpoint is correct?
[03:06] <thumper> natefinch: yeah
[03:06] <thumper> natefinch: there is an unauthenticated endpoint I think you can hit
[03:06] <thumper> which will tell you version info
[03:06]  * thumper looks
[03:07] <natefinch> that's what I was thinking of... the gomaasapi package documentation is somewhat less than helpful
[03:08] <thumper> given an endpoint
[03:08] <thumper> do a GET endpoint/version
[03:08] <thumper> see if that works
[03:09]  * thumper thinks...
[03:10] <thumper> nope
[03:10] <thumper> endpoint/api/2.0/version
[03:13] <natefinch> thumper: I was going to use gomaasapi's NewUnauthenticatedClient.... a little search in our codebase shows client.GetSubObject("version/").CallGet("", nil) might work?
[03:13] <thumper> if you have go
[03:13] <thumper> then it is very easy
[03:13] <natefinch> yeah.... this is an addition to the maas provider
[03:14] <natefinch> a way to precheck a url when doing interactive add-cloud to make sure you don't typo the endpoint
[03:14] <thumper> gomaasapi.NewController(gomaasapi.ControllerArgs{
[03:14] <thumper> 		BaseURL: maasServer,
[03:14] <thumper> 		APIKey:  apiKey,
[03:14] <thumper> 	})
[03:14] <thumper> if it errors, it isn't there
[03:14] <natefinch> this is pre-controller
[03:14] <natefinch> before bootstrap
[03:15] <thumper> this isn't a juju controller
[03:15] <thumper> but a gomaasapi controller
[03:15] <natefinch> oh, I see
[03:15] <thumper> it is just a nice endpoint to hit
[03:15] <thumper> it wraps all the maas objects
[03:15] <thumper> part of the controller creation
[03:16] <thumper> is to check that the endpoint supports the 2.0 api
[03:16] <thumper> if it isn't up, or doesn't support it
[03:16] <natefinch> what's apikey?
[03:16] <thumper> it will error out
[03:16] <thumper> the oauth key
[03:16] <thumper> that they need to provide for authentication / authorization
[03:19] <natefinch> the problem with that is that add-credential is separate from add-cloud, so I won't have the apikey yet.
[03:20] <natefinch> the version check should work though, assuming it can be done unauthenticated
[03:23] <thumper> yeah, not 100% sure, but worth checking
[03:23] <thumper> the new controller might barf if not given a valid key
[03:24] <thumper> natefinch: this is icky
[03:24] <thumper> natefinch: but specify an empty apikey with "::"
[03:24] <thumper> the code does a split on ":" and checks for 3 elements
[03:26] <natefinch> ha
[03:50] <babbageclunk> thumper: ping?
[03:55] <thumper> babbageclunk: hey
[03:56] <babbageclunk> thumper: So I was gearing up to use ConnectStream to talk to the migration target when I realised that it sticks a model uuid on the front of the path
[03:57] <babbageclunk> thumper: plus there's no way to add the model uuid header to the request.
[03:57] <thumper> yeah... there is
[03:57]  * thumper thinks
[03:58] <babbageclunk> It looks like the machine nonce has some specific handling.
[03:58] <thumper> babbageclunk: it may need a little refactoring with a hammer
[03:58] <babbageclunk> Yeah, that's what I figured.
[03:59] <babbageclunk> thumper: I was thinking a ConnectControllerStream, which would also take some headers to add to the request.
[03:59] <thumper> babbageclunk: sounds reasonable
[04:00] <babbageclunk> thumper: And then an adapter that takes some headers and exposes a ConnectStream method that calls ConnectControllerStream internally...
[04:00]  * thumper nods
[04:00] <babbageclunk> So I can pass it to something that takes a StreamConnector.
[04:00] <babbageclunk> Make sense?
[04:00] <thumper> babbageclunk: you probably want to do something similar to what I did for the binary transfer
[04:00] <thumper> but yes
[04:01] <thumper> it matches what you are saying
[04:01] <babbageclunk> ok great!
[04:01] <babbageclunk> thanks
[04:02] <babbageclunk> oh, actually, I don't think I need the adapter - I thought I needed to call something that expected a StreamConnector, but that's on the reading side.
[04:03] <thumper> menn0: https://github.com/juju/juju/pull/6592
[04:17] <natefinch> tfw you haven't run your vmaas in forever and now can't remember what the login info is
[04:18] <wallyworld> axw: there's no rush because farking bot is broken, if you get a chance at somepoint, here's a boilerplate PR to set up the remote relations worker https://github.com/juju/juju/pull/6593
[04:23] <axw> wallyworld: okey dokey, will look after lunch. just about ready to send my PRs so will have a break
[04:23] <wallyworld> sure, np, ty
[04:24] <wallyworld> can't land till bot is fixed anyway
[04:24] <wallyworld> i need to go get food as well
[06:43] <anastasiamac> babbageclunk: updated PR as discussed, so far has been running without failures for 45+mins (over 1700 runs)
[06:43] <anastasiamac> babbageclunk: https://github.com/juju/juju/pull/6574
[06:43] <anastasiamac> babbageclunk: before it used to fail within then first 400 depending on my mood :)
[06:44] <anastasiamac> babbageclunk: is it what u had in mind? :D
[15:23] <voidspace> katco: https://www.facebook.com/mfoord/posts/10153916822535880
[15:23] <katco> voidspace: tal
[15:23] <katco> voidspace: are the diamonds ethically mined?
[15:24] <voidspace> katco: that is a good question to which I do not know the answer.
[15:24] <voidspace> katco: I will ask
[15:24] <voidspace> katco: rick_h: https://www.etsy.com/uk/shop/MirielDesign?ref=l2-shopheader-name
[15:25] <mgz> voidspace: I'm reading several slightly confusing sets of instructions on stackoverflow involving git rev-list
[15:25] <voidspace> mgz:  a manual bisect is probably less hassle...
[15:26] <voidspace> katco: I have emailed Josephine and asked her - I will be astonished if they are not, but worth asking.
[15:31] <natefinch> mgz: thoughts on implementing a Ping(endpoint) method for the openstack provider?
[15:38] <mgz> natefinch: my first thought is the method just needs to call authClient()
[15:39] <natefinch> mgz: ideally it needs to be without auth.  This is during add-cloud, so we don't have creds yet
[15:40] <mgz> well, until Authenticate is called I don't think it actually talks, lets just see if there's a keystone command we can do without auth
[15:41] <mgz> well, listing certainly can be, lets see if goose exposes rather
[15:42] <mgz> there's FetchAuthOptions
[15:43] <mgz> is that sensibly exposed...
[15:48] <mgz> natefinch: looks like you can create an authenticcatingClient, then rather than calling Authenticate, call IdentityAuthOptions
[15:48] <mgz> which will return not-nil, nil if the endpoint is valid keystone
[15:49] <natefinch> mgz: interesting, ok
[15:49] <mgz> that doesn't give you region info
[15:49] <balloons> what's the best way to confirm which agent was used to bootstrap with? I can look at the logs -- anything more programmatic than that? I want to confirm I used a specific location that isn't streams.c.c
[15:50] <natefinch> mgz: I just need to check if there's actually an openstack at that endpoint
[15:50] <mgz> balloons: bootstrap output is the best way
[15:50] <natefinch> mgz: can I check region endpoints the same way?
[15:50] <balloons> mgz, redirect and grep the debug log?
[15:51] <mgz> natefinch: I think you might need valid creds to get service/region pairs
[15:51] <natefinch> mgz: I mean, can I call IdentityAuthOptions with the url of the region endpoint?
[15:51] <mgz> balloons: yes, I don't think I can come up with a better options
[15:52] <mgz> natefinch: no, IdentityAuthOptions only looks at what the keystone service itself is advertising as endpoints
[15:52] <mgz> to get a list of services, you need a url under that, which I think will generally require creds
[15:57] <natefinch> ahh, three line error message from goose, fantastic
[16:00] <natefinch> mgz: seems to work :)
[16:01] <natefinch> mgz: interestingly enough, that should let us just avoid asking what kind of auth the cloud uses
[16:07] <mgz> natefinch: ah yes, that is also upside
[16:09] <natefinch> mgz: somewhat tricky to add, though, given that this is in the middle of some very generic code.
[16:12] <natefinch> I'll skip it for now and make a todo for later.
[16:18] <voidspace> katco: Josephine of Miriel is confident that her diamonds are ethically sourced and has pointed me to the two places she sources them from
[16:19] <katco> voidspace: awesome!
[16:19] <voidspace> katco: I'm glad you asked actually, it should have occurred to me
[16:19] <katco> voidspace: i don't know much, but i do know that is a bloody business :(
[16:19] <voidspace> katco: yup :-(
[16:20] <voidspace> time to collect daughter
[16:20] <natefinch> I think most places these days use ethically sourced diamonds, but it's definitely always good to ask.
[16:20] <natefinch> (at least in first world nations)
[17:17] <katco> natefinch: do you know how my card is different from https://github.com/juju/juju/blob/develop/cmd/juju/cloud/add.go#L162 ?
[17:20] <katco> rick_h: ping
[17:20] <rick_h> katco: otp pong
[17:20] <katco> rick_h: it can wait
[17:33] <alexisb> mgz, ping
[18:14]  * voidspace is currently deploying about 60 machines with juju 2.3.0
[18:17] <rick_h> voidspace: wooo! you'll soon reach deployment master levels
[18:17] <voidspace> :-)
[18:18]  * alexisb changes locations 
[19:28] <mup> Bug #1592188 changed: No 'enable-ha' for manual provider <ensure-availability> <juju-core:Triaged> <https://launchpad.net/bugs/1592188>
[19:28] <mup> Bug #1357760 opened: ensure-availability (aka HA) should work with manual provider <cloud-installer> <ha> <landscape> <manual-provider> <manual-story> <juju:Triaged> <juju-core:Triaged> <https://launchpad.net/bugs/1357760>
[19:28] <mup> Bug #1493058 opened: ensure-availability fails on GCE <docteam> <enable-ha> <gce-provider> <ha> <jujuqa> <juju:Invalid by thumper> <juju-core:Triaged> <juju-core 1.24:Won't Fix> <juju-core 1.25:Won't Fix> <https://launchpad.net/bugs/1493058>
[19:31] <mup> Bug #1357760 changed: ensure-availability (aka HA) should work with manual provider <cloud-installer> <ha> <landscape> <manual-provider> <manual-story> <juju:Triaged> <juju-core:Triaged> <https://launchpad.net/bugs/1357760>
[19:31] <mup> Bug #1493058 changed: ensure-availability fails on GCE <docteam> <enable-ha> <gce-provider> <ha> <jujuqa> <juju:Invalid by thumper> <juju-core:Triaged> <juju-core 1.24:Won't Fix> <juju-core 1.25:Won't Fix> <https://launchpad.net/bugs/1493058>
[19:31] <mup> Bug #1592188 opened: No 'enable-ha' for manual provider <ensure-availability> <juju-core:Triaged> <https://launchpad.net/bugs/1592188>
[19:34] <mup> Bug #1592188 changed: No 'enable-ha' for manual provider <ensure-availability> <juju-core:Triaged> <https://launchpad.net/bugs/1592188>
[19:34] <mup> Bug #1357760 opened: ensure-availability (aka HA) should work with manual provider <cloud-installer> <ha> <landscape> <manual-provider> <manual-story> <juju:Triaged> <juju-core:Triaged> <https://launchpad.net/bugs/1357760>
[19:34] <mup> Bug #1493058 opened: ensure-availability fails on GCE <docteam> <enable-ha> <gce-provider> <ha> <jujuqa> <juju:Invalid by thumper> <juju-core:Triaged> <juju-core 1.24:Won't Fix> <juju-core 1.25:Won't Fix> <https://launchpad.net/bugs/1493058>
[19:45] <perrito666> gah, this way of testing things breaks GoImpl
[20:15] <babbageclunk> oh my goodness everyone! I cleaned my keyboard yesterday evening and it is soooooo good!
[20:16] <perrito666> babbageclunk: I am not sure if that is cool or gross :p
[20:16] <perrito666> I am confused
[20:16] <babbageclunk> perrito666: it was very gross. But now it is supercool.
[20:16] <perrito666> babbageclunk: laptop kb?
[20:16] <babbageclunk> perrito666: no, proper keyboard
[20:17] <babbageclunk> perrito666: tempted to bring it to the sprint to show you, but obviously that's madness.
[20:17] <babbageclunk> perrito666: just imagine a really gross dirty keyboard, and juxtapose that in your mind with a really hyper clean one.
[20:19] <perrito666> babbageclunk: lol, well my kb is not the image of cleanness
[20:19] <perrito666> i am too lazy to remove all keys though
[20:19] <babbageclunk> perrito666: one touches them all day with one's gross hands.
[20:20] <babbageclunk> perrito666: I thought I was too lazy too, but it turned out to be a) easier than I expected and 2) way more satisfying.
[20:21] <babbageclunk> perrito666: so now I'm a swivel-eyed kb-cleaning loon
[20:23] <babbageclunk> perrito666: on a more work-related note - is there any easy way to get go to build all the tests under juju/juju?
[20:24] <babbageclunk> perrito666: I keep moving stuff as part of refactoring and then find I haven't updated the tests that refer to it.
[20:25] <perrito666> go test -run=XXX
[20:25] <perrito666> iirc
[20:25] <perrito666> that will build all but not run any
[20:27] <babbageclunk> Ah, ok - I'll try that the next time I move something. Thanks!
[20:27] <babbageclunk> perrito666: ^
[20:27] <alexisb> babbageclunk, perrito666 my keyboard is covered in peanut butter and jelly from this morning
[20:27] <perrito666> babbageclunk: I am not 100% sure of the syntax but its near that
[20:27] <perrito666> alexisb: why? lost apetite after spreading it and are saving it for later?
[20:28] <alexisb> jay's discovery of reading letters has made my keyboard a constant victim
[20:28] <perrito666> lol
[20:28] <babbageclunk> alexisb: ha ha
[20:28] <perrito666> mine is covered by the continuous reminder that I am going bald
[20:30] <alexisb> lol
[20:30] <perrito666> I am thiking on buying the vi cheatsheet variant of the keys for my kb
[20:31] <perrito666> so that might be a chance for a cleanup
[21:41] <alexisb> perrito666, I can meet early for our 1x1 if you would like
[21:42] <perrito666> alexisb: sure, going
[21:55] <katco> natefinch: ping
[21:55] <katco> mgz: ping
[21:55] <mgz> katco: heya
[21:55] <katco> mgz: hey was natefinch talking with you about methods on providers?
[21:55] <mgz> yeah
[21:56] <katco> mgz: hop in ?core for a sec?
[21:56] <mgz> surething
[22:07] <alexisb> wallyworld, ping
[22:07] <wallyworld> yo
[22:08] <alexisb> wallyworld, can you jump into our 1x1 HO really fast
[22:08] <wallyworld> i can
[23:21] <axw> thank mgz and menn0 for the reviews
[23:24] <mgz> axw: no worries, I'm still around for a bit if you need to bug me
[23:26] <axw> mgz: nah all pretty clear. the switching thingy is ugly I know. we need to defer auth until the methods are called, because Open is not meant to make any API calls
[23:26] <axw> mgz: might be able to tidy it up a bit by making additional calls at the callsites though
[23:42] <blahdeblah> axw: I have an lp:1587644-affected environment in Canonistack right now and am about to try the "block traffic to 17070" trick to see if the controller recovers.  Anything you want me to gather from the controller first?
[23:43] <axw> blahdeblah: just the current CPU/mem, but I guess you have that from monitoring already?
[23:43] <blahdeblah> Should do; let me double-check
[23:44] <menn0> axw: that auth thing wasn't a show stopper... just wondering if it could have been tidier
[23:46] <axw> menn0: yup
[23:47] <axw> alexisb: pool guy chose a great time to arrive, gonna be late sorry
[23:49] <blahdeblah> axw: Load doesn't seem outrageous: https://libertysys.com.au/imagebin/rdIGeIze.png - smoking gun is really memory & network traffic: https://libertysys.com.au/imagebin/IZFYoL51.png https://libertysys.com.au/imagebin/2rJpeCDe.png