veebers | thumper oh lol, sorry to blank you - I'm not actually online atm (EOY leave :-D) How's things? | 01:26 |
---|---|---|
hpidcock | tlm: can you review this plz https://github.com/juju/juju/pull/11044 | 01:51 |
thumper | veebers: I thought it could have just been a bouncer reconnect | 01:52 |
thumper | veebers: I'm good, you? | 01:52 |
thumper | veebers: we should catch up for a coffee sometime | 01:52 |
veebers | thumper can't complain - busy with the boy. Aye I would be keen! | 01:53 |
thumper | veebers: he must be getting a lot bigger now | 01:55 |
veebers | thumper grows faster than a weed! On a fine day we could go play a round of disc golf if you wanted something more energetic than coffee :-D In the week after xmas I could bring Link too | 01:56 |
tlm | hpidcock: sure | 01:56 |
thumper | veebers: not sure how energetic I'll feel :) | 01:57 |
thumper | babbageclunk: I think I need you again | 01:57 |
veebers | :-D | 01:57 |
wallyworld | hpidcock: and here it is https://github.com/juju/juju/pull/11045 | 01:58 |
wallyworld | babbageclunk: you ready for me to look at your test issue? | 01:59 |
hpidcock | just a casual 222 files changed | 01:59 |
wallyworld | mostly imports :-) | 01:59 |
thumper | hpidcock, babbageclunk: https://github.com/juju/juju/pull/11046 for 2.7 merge | 02:25 |
thumper | can I get you two to cast your eyes over it to make sure I didn't fubar it | 02:25 |
hpidcock | thumper: yep, the files I was concerned about look how they should | 02:28 |
thumper | hpidcock: coolio | 02:29 |
hpidcock | wallyworld: I'm halfway and the green lines are starting to merge with the red lines haha I'm going to take a break from this PR for a bit | 02:34 |
wallyworld | sure, np | 02:34 |
babbageclunk | thumper: looking | 02:47 |
wallyworld | babbageclunk: so in https://github.com/juju/juju/pull/11013, what test is it that is failing? | 02:49 |
babbageclunk | wallyworld: hang on, getting you a link... | 02:50 |
wallyworld | and PR has latest code pushed? | 02:50 |
babbageclunk | it's in api/crossmodelrelations | 02:50 |
babbageclunk | yup | 02:50 |
babbageclunk | wallyworld: https://github.com/juju/juju/pull/11013/files#diff-d93493a140cf12285d568802cca83761R363 | 02:51 |
wallyworld | righto | 02:52 |
babbageclunk | fails with: https://paste.ubuntu.com/p/wwgkyScvFY/ | 02:53 |
babbageclunk | Instead of coming in as something that I can assign a value to, result comes in as just interface{} | 02:53 |
babbageclunk | Presumably it's because of the dance that happens with the commonWatcher inside the client-side watchers (constructing a new result type and passing it around as interface{})? | 02:54 |
wallyworld | not sure yet, will look | 03:00 |
wallyworld | just finishing a fight with go dep. go dep sucks | 03:01 |
babbageclunk | it's just dep | 03:26 |
babbageclunk | thanks - no rush, still wrestling with the remoterelations worker tests | 03:27 |
hpidcock | thumper: you still handling that forward port? | 03:37 |
thumper | hpidcock: yeah, got an expected error | 03:41 |
thumper | in babbageclunk's stuff | 03:41 |
thumper | babbageclunk: may need your assistance again | 03:41 |
babbageclunk | ok | 03:42 |
thumper | that was easier than I thought it was going to be | 03:48 |
thumper | ... which is good | 03:48 |
babbageclunk | thumper: normally it goes the other way | 03:56 |
thumper | babbageclunk: true that | 03:57 |
wallyworld | babbageclunk: i'm not sure either at this point how to deference that ptr. Goland knows how to so it clearly can be done | 04:09 |
wallyworld | babbageclunk: actually, this works, but need to figure out how to do the assert | 04:16 |
wallyworld | res := reflect.ValueOf(result).Elem() | 04:16 |
wallyworld | res.Set(reflect.ValueOf(¶ms.RelationUnitsWatchResult{})) | 04:16 |
wallyworld | //c.Assert(res, gc.FitsTypeOf, ¶ms.RelationUnitsWatchResult{}) | 04:16 |
wallyworld | *(res.Interface().(*params.RelationUnitsWatchResult)) = params.RelationUnitsWatchResult{ | 04:16 |
wallyworld | Error: ¶ms.Error{Message: "STOPPED"}, | 04:16 |
wallyworld | } | 04:16 |
hpidcock | you should be able to dereference a interface ptr https://play.golang.org/p/mlyAZHqvWPJ | 04:17 |
wallyworld | yeah, that works need to see if it works with the assert stuff | 04:19 |
wallyworld | hmmm, we still need all the reflect machinery to wrie stuff up. but can add a check to start with and avoid the checker | 04:31 |
wallyworld | _, ok := result.(interface{}).(*params.RelationUnitsWatchResult) | 04:31 |
wallyworld | if !ok { | 04:31 |
wallyworld | c.Fail() | 04:31 |
wallyworld | } | 04:31 |
wallyworld | res := reflect.ValueOf(result).Elem() | 04:31 |
wallyworld | res.Set(reflect.ValueOf(¶ms.RelationUnitsWatchResult{})) | 04:31 |
wallyworld | *(res.Interface().(*params.RelationUnitsWatchResult)) = params.RelationUnitsWatchResult{ | 04:31 |
wallyworld | Error: ¶ms.Error{Message: "STOPPED"}, | 04:31 |
wallyworld | } | 04:31 |
wallyworld | babbageclunk: the above will unblock for now at least | 04:32 |
thumper | https://github.com/juju/juju/pull/11047 for someone... | 04:38 |
thumper | provides exposing the underlying replicaset status in juju_metrics and juju_engine_report | 04:38 |
wallyworld | thumper: done | 04:53 |
thumper | wallyworld: ta | 04:53 |
wallyworld | tlm: you going ok on the pylibjuju bug? | 04:53 |
tlm | bug yes | 04:54 |
tlm | python venv no | 04:54 |
wallyworld | joy | 04:54 |
wallyworld | hpidcock can probs help | 04:54 |
wallyworld | don't forget to add a trello card | 04:54 |
tlm | it will work soon, hpidcock has been. Having an issue installing requirements. Might be a version mismatch | 04:54 |
tlm | yep will do now | 04:54 |
wallyworld | ty | 04:54 |
hpidcock | wallyworld: I won't let him drown | 04:56 |
wallyworld | hpidcock: did the pr explain ok how bakery.v2-unstable in places still? | 04:57 |
hpidcock | wallyworld: haha yep makes sense sorry. I must have read it. Went in this ear and out the other | 04:59 |
wallyworld | no worries, sorry about the snark :-) | 04:59 |
hpidcock | I appreciated the snarky comment | 05:00 |
tlm | rage quit, problem is because python remove a function from an interface between 3.7 3.8. So much for backwards compatibility | 05:02 |
hpidcock | go 1.0 promise keeps me loving go | 05:03 |
hpidcock | wallyworld: I'm happy with the PR now. Hopefully it lands without 🔥 | 05:06 |
wallyworld | hpidcock: awesome, and many thanks, those sorts of prs are horrible to review (and even worse to write, took me ages to get stuff sorted). | 05:07 |
hpidcock | they are fine, one day I'll return the favour with a 1000 file PR :P | 05:07 |
wallyworld | huh, only 1000, i eat then for breakfast | 05:08 |
* thumper EODs | 05:13 | |
thumper | see y'all tomorrow | 05:13 |
hpidcock | wallyworld: can a subordinate unit be a subordinate to multiple parents? | 06:06 |
hpidcock | hmm I dunno if that makes sense | 06:06 |
wallyworld | no, you need to install the charm a second time and alias the app name | 06:06 |
hpidcock | ok | 06:06 |
hpidcock | weird how the "subordinate-to" field is an array | 06:07 |
wallyworld | hmmm, maybe i'm wrong then | 06:07 |
wallyworld | i would have been 99.9% sure i was right | 06:07 |
hpidcock | yeah I'm getting more and more confused as I read the code | 06:17 |
hpidcock | processApplicationRelations in apiserver/facades/client/client/status.go | 06:19 |
hpidcock | makes me think it "could" | 06:19 |
=== tyldis_ is now known as tyldis | ||
=== niemeyer_ is now known as niemeyer | ||
=== skay_ is now known as skay | ||
=== nniehoff_ is now known as nniehoff | ||
=== petevg_ is now known as petevg | ||
=== davecore_ is now known as davecore | ||
=== coreycb_ is now known as coreycb | ||
=== nottrobin_ is now known as nottrobin | ||
=== skay is now known as Guest62328 | ||
=== arif-ali_ is now known as arif-ali | ||
stickupkid | I find it interesting that on first use of juju, we break --format directives :| | 10:11 |
=== wpk_ is now known as wpk | ||
=== Guest62328 is now known as skay | ||
gnuoy | stickupkid, do you know when the next release to pypi might be for libjuju ? | 14:08 |
stickupkid | gnuoy, might be worth pinging rick_h | 14:09 |
gnuoy | stickupkid, ack, thanks | 14:09 |
rick_h | gnuoy: sorry, it'll be after the break I think. There's some WIP that's going into the next release for some missing items that we're doing on roadmap | 14:19 |
gnuoy | rick_h, sure, np, thanks | 14:20 |
rick_h | gnuoy: the other half of Juju is doing them so I don't have really solid insight into what % of the way they are but it feels a bit like there's another weekish of work there | 14:20 |
achilleasa | hml: I am looking at the code in runner/debug/server.go:43. Can you tell how it figures out what script to run? | 16:35 |
hml | achilleasa: looking | 16:36 |
hml | achilleasa: I think i know - HO? | 16:37 |
achilleasa | give me 5' | 16:37 |
hml | achilleasa: sure - it’s related to juju debug-hooks | 16:38 |
hml | achilleasa: a hook is not actually run, just does setup to the debug-hooks tmux session to let the user know what hook would have been run. so the user can run it themselves and debug the results, try again etc. | 16:49 |
hml | we do need a way to “hook” into that for process-hook. | 16:50 |
achilleasa | hml: can you join daily? | 16:54 |
hml | achilleasa: omw | 16:54 |
=== gurmble is now known as grumble | ||
babbageclunk | wallyworld: ah, so it seems the problem is that it's an interface{} wrapping another interface{} wrapping the real type, and the checker machinery is only going down one level? | 22:01 |
wallyworld | babbageclunk: yeah, i think that's the case | 22:02 |
babbageclunk | awesome - thanks for picking that apart! Think I've got all of the other tests fixed, just incorporating that now. | 22:02 |
wallyworld | awesome | 22:03 |
babbageclunk | wallyworld: hmm, I don't think that does it - that code always succeeds, even if the result type is wrong | 22:29 |
babbageclunk | ie, I've changed the newResult func to use the wrong type, and I can't get the test to fail | 22:31 |
wallyworld | hmmm, well that sucks | 22:32 |
wallyworld | babbageclunk: this line is meant to cater f rot that | 22:33 |
wallyworld | _, ok := result.(interface{}).(*params.RelationUnitsWatchResult) | 22:33 |
wallyworld | ok should be false if the type is wrong surely? | 22:33 |
babbageclunk | doesn't seem to fail... | 23:09 |
babbageclunk | wallyworld: oh yeah - that fails, but it also fails if the type is right. | 23:09 |
hpidcock | small forward port from 2.7 - develop https://github.com/juju/juju/pull/11048 | 23:18 |
babbageclunk | hpidcock: did you have any conflicts? | 23:22 |
hpidcock | 0 conflicto | 23:22 |
babbageclunk | sweet | 23:22 |
babbageclunk | I'm going to get so many when I merge the remaining cmr/appdata stuff | 23:23 |
babbageclunk | really looking forward to it | 23:23 |
hpidcock | pffft, you'll only have 5000 | 23:23 |
babbageclunk | hpidcock: approved anyway | 23:26 |
hpidcock | thanks :) | 23:27 |
wallyworld | babbageclunk: i ran the unit test with the code i pasted and it worked as expected when the type was correct | 23:34 |
wallyworld | i didn't test when the type was wrong, but i can't see how it wouldn't fail | 23:34 |
babbageclunk | :( | 23:35 |
babbageclunk | might try in the debugger | 23:35 |
wallyworld | so it passes for you? but dosn't fail? | 23:37 |
babbageclunk | no, that check always fails | 23:39 |
babbageclunk | if I take it out, the res.Set always succeeds | 23:39 |
wallyworld | whaaaat | 23:39 |
babbageclunk | ikr | 23:40 |
wallyworld | maybe get someone else to pull the code and try it | 23:40 |
babbageclunk | Looking at the watcher code I can see that I'm missing a case where the watch result has an error - I'm going to handle that and then tweak the test some more | 23:40 |
babbageclunk | wallyworld: you don't believe me! It's true though | 23:40 |
hpidcock | I'm happy to help, let me know | 23:41 |
babbageclunk | thanks hpidcock - just trying something else, will v likely hit you up after that | 23:44 |
babbageclunk | ugh, trying to read the json unmarshalling code to see how it manages to store info into the result in this circumstance | 23:52 |
babbageclunk | yeah, that's too Lovecraftian for my taste | 23:54 |
Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!