[00:05] <perrito666> axw: I mailed you the cause of the error, hope it helps.
[00:06] <axw> perrito666: back momentarily. thanks. so ... the credentials are being reset to those from the restored state?
[00:27] <ericsnow> katco: FYI, my poller worker patch is up
[00:32] <perrito666> axw: yes, the server is restored to the old one
[00:33] <perrito666> all of the files from the server become the old files
[00:42] <axw> perrito666: ok, that's an even bigger problem than I had thought. we'll need to extract the credentials from the backup file, I suppose.
[00:42] <perrito666> axw: sorry I was not more helpful
[00:42] <axw> perrito666: you were most helpful, I know what the issue is now
[00:42] <axw> thanks
[00:42] <perrito666> np
[01:25] <katco> ericsnow: sweet, ty!
[01:28] <davecheney> dumb question
[01:28] <davecheney> assuming i'd never used backup / restore before
[01:28] <davecheney> how do I use it
[01:30] <davecheney> lucky(~/src/github.com/juju/juju) % juju backups
[01:30] <davecheney> ERROR there is already a Writer registered with the name "warning"
[01:32] <mup> Bug #1546826 opened: juju backups prints unhelpful error <juju-core:New> <https://launchpad.net/bugs/1546826>
[01:32] <davecheney> totally broken, https://bugs.launchpad.net/juju-core/+bug/1546826
[01:32] <mup> Bug #1546826: juju backups prints unhelpful error <juju-core:New> <https://launchpad.net/bugs/1546826>
[01:38] <mup> Bug #1546826 changed: juju backups prints unhelpful error <juju-core:New> <https://launchpad.net/bugs/1546826>
[01:50] <mup> Bug #1546826 opened: juju backups prints unhelpful error <juju-core:New> <https://launchpad.net/bugs/1546826>
[02:04] <anastasiamac> wallyworld: team meeting?
[02:05] <natefinch-afk> davecheney: team meeting?
[02:20] <mup> Bug #1546836 opened: Cannot deploy to extra models <models> <juju-core:New> <juju-core cloud-credentials:Triaged> <https://launchpad.net/bugs/1546836>
[02:20] <davecheney> natefinch: is anyone there this time ?
[02:21] <davecheney> the last dozen have been no shows
[02:29] <mup> Bug #1546836 changed: Cannot deploy to extra models <models> <juju-core:New> <juju-core cloud-credentials:Triaged> <https://launchpad.net/bugs/1546836>
[02:32] <mup> Bug #1546836 opened: Cannot deploy to extra models <models> <juju-core:New> <juju-core cloud-credentials:Triaged> <https://launchpad.net/bugs/1546836>
[02:35] <mup> Bug #1546836 changed: Cannot deploy to extra models <models> <juju-core:New> <juju-core cloud-credentials:Triaged> <https://launchpad.net/bugs/1546836>
[02:38] <mup> Bug #1546836 opened: Cannot deploy to extra models <models> <juju-core:New> <juju-core cloud-credentials:Triaged> <https://launchpad.net/bugs/1546836>
[02:38] <mup> Bug #1546840 opened: Cannot restore to new bootstrapped instance <backup-restore> <juju-core:Incomplete> <juju-core cloud-credentials:Triaged> <https://launchpad.net/bugs/1546840>
[02:43] <davecheney> thumper: coming back ? or can you not get back on at all ?
[02:44] <mup> Bug #1546840 changed: Cannot restore to new bootstrapped instance <backup-restore> <juju-core:Incomplete> <juju-core cloud-credentials:Triaged> <https://launchpad.net/bugs/1546840>
[02:46] <thumper> davecheney: I was blocked
[02:46] <davecheney> relly ?
[02:47] <mup> Bug #1546840 opened: Cannot restore to new bootstrapped instance <backup-restore> <juju-core:Incomplete> <juju-core cloud-credentials:Triaged> <https://launchpad.net/bugs/1546840>
[02:48] <davecheney> thumper: i've no idea how to fix that
[02:48] <thumper> worked this time
[02:48] <davecheney> i sent you an invite to join the hangout
[03:01] <natefinch> I miss the longer hangouts... actually get to chat with people not in your standup
[03:02] <anastasiamac> natefinch: +1 \o/
[03:41] <wallyworld> anastasiamac: lgtm, ty
[03:41] <anastasiamac> omg! i thought u were busy and pinged axw (ocr)
[03:41] <anastasiamac> wallyworld: tyvm
[03:42] <anastasiamac> axw: tyvm \o/
[03:42] <axw> nps
[03:43] <axw> wallyworld: apparently it's a known issue: https://bugs.launchpad.net/juju-core/+bug/1537620
[03:43] <mup> Bug #1537620: environs/ec2: a stopped machine will cause kill-controller to fail and blow the rate limit <juju-core:Triaged> <https://launchpad.net/bugs/1537620>
[03:43] <axw> I'll try on GCE instead
[03:44] <natefinch> finally!  The time package's Parse function has always rejected any day of month larger than 31, such as January 32. In Go 1.6, Parse now also rejects February 29 in non-leap years, February 30, February 31, April 31, June 31, September 31, and November 31.
[03:44] <wallyworld> joy
[03:44] <wallyworld> wow, date maths must be hard
[03:44] <wallyworld> it took them how many releases
[03:44] <anastasiamac> wallyworld: we should have decimal calendar
[03:45] <anastasiamac> and decimal clock
[03:45] <anastasiamac> :D
[03:45] <wallyworld> yes!
[03:54] <anastasiamac> HAPPY BIRTHDAY IAN
[04:02] <natefinch> decimal clock is easy, decimal calendar requires changing the velocity of the earth :D
[04:15] <davecheney> lucky(~/src/github.com/juju/juju) % juju backups restore -b --file juju-backup-20160218-040500.tar.gz
[04:15] <davecheney> ERROR old bootstrap instance ["i-f007252f"] still seems to exist; will not replace
[04:16] <davecheney> lucky(~/src/github.com/juju/juju) % juju backups restore  --file juju-backup-20160218-040500.tar.gz
[04:16] <davecheney> ERROR could not exit restoring status: cannot complete restore: <nil>: Restore did not finish succesfuly
[04:16] <davecheney> ERROR cannot upload backup file: PUT https://54.79.223.98:17070/model/3037ea53-64dc-48b8-83c1-c0bea979fca2/backups: while storing backup archive: backup metadata "20160218-040500.3037ea53-64dc-48b8-83c1-c0bea979fca2" already exists
[04:16] <davecheney> does this actaully work ?
[04:16] <davecheney> i cannot restore to a system that is running
[04:16] <davecheney> twiddling different flags just makes it fail in different ways
[04:18] <natefinch> 1.25 or 2.0?
[04:18] <davecheney> 2.0
[04:19] <natefinch> probably just broken...
[04:20] <natefinch> afaik, no work has been done on it for 2.0, but I may be mistaken
[04:20] <mup> Bug #1546100 changed: Upgrade 1.24.7 -> 1.25.3 fails <manual-provider> <upgrade-juju> <juju-core 1.24:New> <juju-core 1.25:In Progress by anastasia-macmood> <https://launchpad.net/bugs/1546100>
[06:34] <axw> wallyworld: https://github.com/juju/juju/pull/4459
[06:34] <axw> tested live
[06:45] <wallyworld> looking
[06:46] <wallyworld> axw: so code from master is effectively added back in?
[06:48] <wallyworld> with the relevant cloud credentials tweaks
[06:50] <axw> wallyworld: yes. doing anything else will be substantially more work
[06:50] <axw> this is just a stop-gap
[06:50] <wallyworld> yep, +1
[06:51] <axw> wallyworld: there should be no difference from master now
[06:51] <axw> from user perspective
[06:51] <wallyworld> great, was just checking to be sure
[07:12] <davecheney> https://github.com/juju/juju/pull/4460 << fixes juju backups problem
[07:22] <axw> wallyworld: you're not doing the register accounts.yaml fix are you? assuming not, I'll do it
[07:23] <axw> davecheney: LGTM
[07:23] <wallyworld> axw: not yet, just finished first pass on release notes if you want to see if I've missed anything. maybe it would be better to fix order of regions listing first, and switch
[07:23] <wallyworld> as those are user visible
[07:30] <davecheney> HOW DO I USE JUJU RESTORE
[07:31] <davecheney> you cannot restore the same model you just backed up
[07:31] <davecheney> if you destroy the model, then you cannot restore at all
[07:31] <davecheney> i cannot create a new model
[07:31] <davecheney> i just get a shitload of missing key or TLS mismatch errors
[07:38] <axw> davecheney: this is what I did just a little while ago
[07:38] <axw> davecheney: 1. bootstrap   2. create-backup   3. kill the controller instance   4. restore-backup -b --file <backup-file>
[07:38] <axw> davecheney: only works on non-hosted model AFAIK
[07:38] <davecheney> lucky(~/src/github.com/juju/juju) % juju restore -m foobarbaz x.tgz
[07:38] <davecheney> ERROR cannot determine controller instances: making request: Get : 301 response missing Location header
[07:38] <davecheney> error: exit status 1
[07:38] <davecheney> lucky(~/src/github.com/juju/juju) % juju restore x.tgz
[07:38] <davecheney> ERROR cannot determine controller instances: model is not bootstrapped
[07:38] <davecheney> error: exit status 1
[07:41] <axw> davecheney: did you destroy your controller with destroy/kill-controller? (if so, that won't work)
[07:44] <wallyworld> axw: i'm off to soccer in a bit. you think we can go with show-controller noargs for beta1 (and re-instate switch for beta2 if needed)? so i think region ordering is the last remaining fix foe beta1?
[07:44] <axw> wallyworld: I've just pushed switch no args
[07:44] <wallyworld> ok, great :-)
[07:45] <axw> wallyworld: and will send a plea to rick and john to change it :)
[07:45] <wallyworld> axw: i've asked john to bring it up in spec review
[07:45] <axw> wallyworld: ok
[07:46] <axw> wallyworld: https://github.com/juju/juju/pull/4461
[07:46] <wallyworld> we can do both for beta1 and see what sticks
[07:46] <axw> wallyworld: I think show-controller noargs is fine anyway, but it's doing more than just giving you the name
[07:47] <axw> you can script around it, but it's a bit of a pain
[07:47] <wallyworld> yep
[07:47] <wallyworld> that was my issue
[07:47] <wallyworld> axw: lgtm
[07:49] <axw> wallyworld: ok, will look at region thing next. not sure if I'll be able to get it in in time, but I'll try
[07:49] <wallyworld> axw: ty, see how you go, i'll document the issue in the release notes if need be
[07:51] <axw> wallyworld: hmm, are we doing the default-region thing already? I don't think so
[07:51] <wallyworld> i thought we were
[07:51] <axw> wallyworld: I mean, if not specified in credentials.yaml and there's more than one... I don't think we use the first in the clouds.yaml file
[07:52] <wallyworld> you men in credentials.ysaml
[07:52] <wallyworld> ah maybe not
[07:52] <wallyworld> i thought we were though
[07:52] <wallyworld> will need to check
[07:52] <wallyworld> after soccer
[07:52] <axw> wallyworld: I don't think so. I don't think that's in the spec either.
[07:53] <axw> sure, enjoy
[07:53] <wallyworld> it may not be explicitly, but aws say is expected to have a default region
[07:53] <wallyworld> of us-east-1
[07:53] <wallyworld> if nothing else specified
[07:53] <wallyworld> unless i recall totally wrongly
[07:54] <axw> wallyworld: we used to. I don't know what the expectation is now.
[07:54] <wallyworld> the same as before i think is good to go with
[07:54] <wallyworld> so however we decide to order regions in public clouds yaml
[07:55] <wallyworld> axw: if i've left anything out of release notes, just edit and fix directly would be great
[07:56] <axw> wallyworld: sure
[07:56] <wallyworld> ta
[08:06] <axw> wallyworld: can't see anything missing. I think we need to change the wording about defaults for beta1. I'm not comfortable making first-in-list the default without input from rick and john. it's already complicated, and that makes it moreso. we'll have a command to set the default in beta2.
[08:09] <wallyworld> ok
[08:09] <wallyworld> we still should fix ordering though
[08:10] <wallyworld> there does have to be an out of the box default
[08:10] <wallyworld> a deterministic default
[08:10] <axw> wallyworld: why?
[08:10] <wallyworld> so people know how juju will behave without guessing
[08:10] <axw> wallyworld: what makes sense as a default for someone in the US does not make sense for someone in Australia
[08:10] <axw> it will tell you what to do if you don't specify a region
[08:11] <axw> (or it should)
[08:11] <wallyworld> so out of the box, juju bootstrap controller aws needs to just work
[08:12] <wallyworld> as it does now with a well known default region
[08:12] <wallyworld> that's IMHO
[08:12] <wallyworld> we can seek input though
[08:12] <axw> I think we'll have to, because I disagree :)
[08:12] <wallyworld> fight!
[08:13] <wallyworld> right, really off to soccer now
[08:13] <axw> wallyworld: I'll send an email and CC you
[08:13] <axw> later
[08:13] <wallyworld> ta, can you cc john also
[08:13] <axw> yes
[08:13] <wallyworld> and reference 1.25 behaviour for comparison
[08:54] <axw> wallyworld: I've updated the text bootstrap re regions to reflect current reality. please adjust as you see fit
[09:38]  * fwereade is having some design trouble, anyone free to chat?
[09:39]  * fwereade will rubber-duck irc for a bit; answer if interested ;)
[09:40] <fwereade> so. a while ago, I extracted the OpenAPIState func and a few associated bits from jujud/agent, and moved them to worker/apicaller
[09:43] <fwereade> this functionality includes various agent-specific hacks of varying quality
[09:45] <fwereade> it handles (1) fixing insecure passwords and writing to remote+local state (2) updating local state to record connected model tag (3) some foul remote-state mongo-password hack that I'm scared to touch and (4) enthusiastic generation of the scorched-earth ErrTerminateAgent error
[09:47] <fwereade> and none of these things are actually *fundamental*, they're all artifacts of the assumption that this api connection is the sole connection being made on behalf of an actual agent process
[09:48]  * mgz reads along at least
[09:49] <fwereade> and when you're making a connection as a controller to a hosted model, none of those actions are actually appropriate and some of them are plain broken
[09:51] <fwereade> part of my problem is that I don't have a succinct term for distinguishing between those cases -- I need a lots-of-magic path and a nice-simple path, and I know ahead of time (manifold config specification time) which I will want
[09:52] <fwereade> so the low-friction approach is to add a `NewConnection func(agent.Agent) (api.Connection, error)` field to manifold config
[09:53] <fwereade> because that lets me dodge the issue of what the difference is or how it should be expressed
[09:54] <mgz> that does not sound terrible. do the two paths really not share logic at all?
[09:55] <fwereade> but this makes me uncomfortable -- it feels like what-needs-to-be-done is more a property of the *agent*
[09:56] <mgz> other option is an OnConnection type interface, which you promise to call immediately after getting api.Connection for the first time?
[09:57] <fwereade> yeah, that makes me nervous because it'd need to take (conn api.Connection, oldPassword string, usedOldPassword bool), and that feels like unhelpfully exposed guts
[09:59] <fwereade> so I find myself wanting to add a `ShouldDoFunkyPostConnectStuff() bool` to Agent, but that's *clearly* wrong too
[10:00] <fwereade> if it were more like `IsVirtualAgent() bool` that would make more sense, it would feel like the decision was happening in the right place
[10:00] <fwereade> but that's a bad name
[10:02] <fwereade> so it sort of comes back to "is there a term I can use to express the important property of the agent, in agenty terms, that the apicaller bits can reasonably use to make the decision re: whether to mess with the agent post-connect"
[10:02] <dooferlad> frobware, dimitern: hangout?
[10:03] <dimitern> omw
[10:03] <mgz> fwereade: well, the other part is... this is all one-time stuff really, not actually per-connection? well, I'm not sure about (4)
[10:03] <fwereade> ...which itself is basically "what is the critical property of the agent that makes it different?" and does assume that it's really the agent that's the source of the difference
[10:04] <fwereade> *mostly* one-time, yes
[10:04] <mgz> so it's does-this-hacky-stuff-still-need-doing-and-can-I-do-it
[10:05]  * fwereade is listening
[10:06] <mgz> ShouldAttemptStateUpdateHacks? :P
[10:07] <mgz> I don't have good name ideas. what's the implementation, just always try it if we're not connecting to a hosted env?
[10:08] <fwereade> mgz, pretty much, yeah
[10:09] <fwereade> mgz, it currently maps to "is this connection on behalf of an 'Agent' that's running in its own process", but that is neither fundamental to the agent or any of its business really
[10:09] <fwereade> mgz, so, I'll probably just go with the ManifoldConfig.NewConnection approach because at least it's the most straightforward
[10:10] <fwereade> mgz, it's only one duplicated func call there
[10:10] <mgz> it seems reasonable to me
[10:10] <fwereade> mgz, thanks :)
[10:11] <mgz> and you can document the whys on the implementations
[10:12] <fwereade> mgz, yeah, just figuring out *exactly* what all the original funcs do and giving them less-misleading names/documentation has taken a while already
[10:17] <blahdeblah> Hi folks; any chance of some love for https://bugs.launchpad.net/juju-core/+bug/1465307 sometime soon?  I've got an environment which is basically useless because of it that I'm happy to supply logs from...
[10:17] <mup> Bug #1465307: 1.24.0: Lots of "agent is lost, sorry!" messages <landscape> <regression> <juju-core:New> <https://launchpad.net/bugs/1465307>
[12:25] <perrito666> Morning
[12:27] <rick_h_> morning perrito666
[12:43] <dimitern> frobware,  dooferlad, http://reviews.vapour.ws/r/3898 please take a look when you can
[12:45] <dimitern> fwereade, if you can spare some time, I'd appreciate if you have a look as well ^^
[12:46] <dimitern> fwereade, in case you're wondering, tests using txn hooks will also be added later :)
[12:52] <fwereade> dimitern, ack, likely to be rather later this pm
[12:53] <fwereade> dimitern, and, <3
[12:53] <dimitern> fwereade, cheers, when you get to it :)
[12:54]  * dimitern steps out for ~1h
[13:33] <axw> wallyworld: rather than using MapSlice and all that, would you be OK with adding an unserialised DefaultRegion to the Cloud type, and (a) have that populated with the first item, and (b) use it to decide the order in which we write?
[14:01] <frobware> dimitern: reviewed
[14:09] <dimitern> frobware, thanks!
[14:10] <frobware> dimitern: mostly trivial comments - looks a lot, but mostly harmless. :)
[14:12] <dimitern> frobware, any comments and suggestions are most certainly welcome :)
[14:57] <frobware> dimitern: regarding parent/child, master/slave. the latter makes more sense to me now that I've read your comment.
[15:00] <perrito666> has anyone used goamz with tags?
[15:00] <dimitern> frobware, cheers, but because you asked that tells me the doc comment needs to clarify that :)
[15:01] <frobware> dimitern: the other thing is s/DNSDomain/DNSSearchDomains/
[15:04] <dimitern> frobware, yeah, that's a better name - will change
[15:05] <frobware> dimitern: thanks. the two are entirely related, but different.
[15:10] <dimitern> frobware, I'm not quite clear on the difference - do we need both DNSDomain and DNSSearchDomains ?
[15:23] <perrito666> weee cloud credentials is blessed
[15:43] <frobware> dimitern: don't believe so. just the latter.
[15:43] <frobware> dimitern: there's also DNSSortList if we want completeness.
[15:44] <frobware> dimitern: I guess DNSSearchDomain could just be DNSSearch
[15:45] <dimitern> frobware, I've pushed the changes btw
[15:46] <frobware> dimitern: looking
[15:46] <fwereade> don't suppose anyone is up to date with the uninstallAgent logic? has semi-recent menn0/axw touches, so I'm guessing not, but just in case...
[15:47] <perrito666> I would say menn0 and axw
[15:48] <fwereade> ehh, someone *might* have said "oh yeah I reviewed that stuff" ;p
[15:49] <perrito666> perhaps they cross reviewed :p
[16:06] <katco> ericsnow: i'm in our 1:1... did you have anything you wanted to discuss today?
[16:06] <ericsnow> katco: nope
[16:06] <katco> ericsnow: ok, i'll leave you be then :)
[16:07] <katco> ericsnow: fyi i lost a review i was doing for you yesterday (chrome crashed)... working on it again
[16:07] <ericsnow> katco: that stinks :(
[16:07] <ericsnow> katco: hope you didn't lose too much time
[16:07] <katco> ericsnow: yeah =/ i think like an hour or so. but should go faster the 2nd time
[16:17] <frobware> dimitern: LTGM now. but perhaps you want to wait to see if fwereade has observations on the state stuff.
[16:17] <dimitern> frobware, cheers
[16:17] <dimitern> frobware, I'll push a couple of commits on top of these and drop the interfacelinks.go from the PR for now
[16:18] <dimitern> dooferlad, frobware, so you'd rather see `802.3 interface "eth0" on machine "42"` than `ethernet interface "eth0" on machine "42"` ?
[16:19] <dooferlad> dimitern: you don't have to use the const string value as what you print.
[16:19] <dooferlad> dimitern: but I do care about being completely clear about what protocols we support and what we are doing with them.
[16:20] <dimitern> dooferlad, so you're saying let's have one value representing the type and another when printing / logging ?
[16:20] <dimitern> dooferlad, ok, how about a compromise: type/subtype - i.e. ethernet/802.3 and ethernet/802.11Q ?
[16:22] <dooferlad> dimitern: I don't care so much about the value of ths string, only the variable name
[16:22] <dooferlad> sorry, const name
[16:22] <dimitern> dooferlad, I got you
[16:22] <dooferlad> dimitern: so something nice to read in the string and leave "EthernetInterface" as is.
[16:23] <dimitern> dooferlad, but the value is the important thing we store in the doc and have to change later and deal with upgrades if it's not the right value
[16:23] <dooferlad> dimitern: oh, crumbs, I forgot we do that nonsense. I miss enums. </rant>
[16:24] <dooferlad> I think EthernetInterface = "ethernet", EthernetVLAN1QInterface = "Ethernet 802.1Q bridge"
[16:25] <dooferlad> since those print nicely and only a crazy person would change the meening of Ethernet.
[16:25] <dimitern> dooferlad, Ethernet80211QVLAN ?
[16:25] <dooferlad> dimitern: sure
[16:26] <dimitern> ok, so Ethernet80211QVLANInterface = "802.11q" ?
[16:26] <dooferlad> dimitern: as long as you know what sort of VLAN it is. I know it is ugly to read/type, but I can't think of a better version.
[16:27] <dimitern> dooferlad, or maybe drop the Ethernet and go with 80211QVLANInterface ?
[16:27] <dooferlad> dimitern: I think it is reasonable to have the string be more readable if you want. "Ethernet 802.1Q bridge" does look better in the logs.
[16:27] <dimitern> dooferlad, it's not a bridge though
[16:27] <dooferlad> dimitern: Sorry, "Ethernet 802.1Q VLAN"
[16:28] <dooferlad> dimitern: I also considered Eth802_11_Q_VLAN so I could actually read it, but I know that wouldn't sit well with the "go way of doing things"
[16:30] <dimitern> dooferlad, consider this will be all over the place in case of MAAS
[16:31] <dimitern> dooferlad, so "802.1q" instead is shorter, and I think also clear enough
[16:31] <dimitern> VLAN8021QInterface InterfaceType = "802.11q"
[16:31] <dimitern> oops sorry
[16:31] <dimitern> VLAN8021QInterface InterfaceType = "802.1q"
[16:32] <dooferlad> dimitern: Indeed. Ugly, but clear.
[16:34] <dooferlad> dimitern: I am sure we can call it VLAN_8021QInterface and avoid having rocks thrown at us...
[16:35] <dimitern> dooferlad, we can try :)
[16:37] <dimitern> yeah, readable code is better than blindly following go naming conventions
[17:06] <natefinch> man, xchat has started pegging my CPU for 5 minutes whenever it starts up, only started happening this week sometime.
[17:17] <natefinch> perrito666: you around?
[17:25] <natefinch> so, where are we hiding the new .juju directory?
[17:25] <rick_h_> natefinch: .config/local/juju I think
[17:26] <rick_h_> natefinch: xdg standard locations
[17:26] <natefinch> rick_h_: I don't hav a .config/local :/  And no, I definitely have not touched my XDG settings off whatever is default
[17:27] <rick_h_> natefinch: sorry per https://jujucharms.com/docs/devel/temp-release-notes
[17:27] <rick_h_> natefinch: .local/share/juju
[17:28] <natefinch> rick_h_: ahh, yeah, ok.  I had just drilled down to the code where that's set. Thanks.
[17:29] <natefinch> rick_h_: why .local/share and not .config?  I presume it makes sense to someone, but as someone who barely knows XDG exists... it seems odd.
[17:30] <rick_h_> natefinch: not sure, just guessing it's based on https://specifications.freedesktop.org/basedir-spec/basedir-spec-0.8.html
[17:30] <natefinch> rick_h_: ok :)
[17:30] <rick_h_> there's env vars for the locations and we should be using
[17:31] <natefinch> rick_h_: I'm sure we're doing the right thing, according to the spec.  There's several people on core who Care Very Much™
[17:53] <perrito666> natefinch: still need me?
[17:54] <natefinch> perrito666: yeah... davecheney was trying to use backups with juju 2.0 .... is that supposed to work?  like backup 2.0, bootstrap new 2.0 model, restore?
[17:55] <perrito666> natefinch: should work, expecially if master is blessed
[17:56] <natefinch> perrito666: weird... he was getting a multitude of errors
[17:56] <natefinch> perrito666: http://pastebin.ubuntu.com/15112721/
[17:57] <perrito666> natefinch: just read the backlog, seems that axw might have hit the spot and that dave was killing the controller
[17:59] <natefinch> perrito666: seems like our error messages could be a bit better, if this is something that can happen from user error
[17:59] <perrito666> natefinch: I think he added a bug for that
[17:59] <natefinch> perrito666: good
[18:13] <ericsnow> katco, natefinch: our resources PRs are against master now, right?
[18:13] <katco> ericsnow: no, please still target them to the feature branch
[18:13] <ericsnow> katco: k
[18:13] <katco> ericsnow: you always need a ci bless before hitting master
[18:14] <natefinch> oh, thanks for the clarification :)
[18:14] <natefinch> right, that makes sense
[18:30] <perrito666> natefinch: ericsnow ideally both sides merges need a bless, you should not merge to master without a bless nor merge from unblessed master
[18:30] <perrito666> ymmv on the last one but helps avoid headaches
[18:50] <perrito666> has anyone succesfully used destroy model?
[19:01] <natefinch> features work a lot better if you don't accidentally remove the 3 core lines that actually make them function.
[19:02] <natefinch> ericsnow: during some code cleanup, I evidently removed the lines that actually increment CharmModifiedVersion when you call SetResource :/
[19:03] <ericsnow> natefinch: classic
[19:31] <fwereade> menn0, how much do you remember about writeUninstallFile?
[19:33] <fwereade> menn0, my current understanding is that (1) we need to call it before the agent will pay attention to ErrTerminateAgent (2) there are cases where we send legitimate ErrTerminateAgents that don't have easy access to writeUninstallFile (3) I presume the writeUninstallFile came because we were getting rogue ErrTerminateAgents from somewhere and it was hard to stop them somehow?
[19:34] <fwereade> menn0, (expansion of (2): and hence don't actually work right)
[19:34] <mup> Bug #1547186 opened: Cannot create model with Azure provider <docteam> <juju-core:New> <https://launchpad.net/bugs/1547186>
[19:48] <natefinch> ericsnow, katco: just thought of another benefit to components... it's trivial to test all the code in the component with a simple go test ./... from the top level directory.
[19:48] <ericsnow> natefinch: nice
[19:50] <natefinch> was just thinking of that as I am modifying some fairly core parts to resources... I can run all the resources test s in 6.5 seconds, and not worry that I'm missing anything.... and also not have to run 5 minutes worth of tests across the whole repo
[19:59] <katco> natefinch: hey having a chat about a potential candidate; will be just a little late if you still want to chat
[20:01] <natefinch> katco: kinda head down on getting the upgrade-charm test running... we can skip if you don't have anything to talk about
[20:15] <katco> natefinch: k sounds good
[20:16] <katco> natefinch: that's a good point about the component oriented approach
[20:17] <natefinch> katco: since you often twiddle a lot of bits in a lot of spots when modifying a feature.. it's nice to be able to very simply test everything you need and nothing you don't.
[20:17] <katco> natefinch: yeah exactly
[20:33] <davecheney> thumper: this might explain why restore was so hard
[20:33] <davecheney> https://github.com/juju/juju/pull/4459
[20:33] <davecheney> the -b flag, for restoring to a running state server was missing
[20:33] <thumper> heh
[20:33] <thumper> oops
[20:39] <wallyworld> thumper: davecheney: that's only the cloud credentials branch, not master
[20:40] <wallyworld> we removed it pending reworking some stuff but are re-instating it for now (in cloud credentials)
[20:47] <natefinch> perrito666: ^^
[20:48] <natefinch> davecheney, thumper: if the flag was missing, why didn't we complain about an extraneous flag?
[20:53] <davecheney> natefinch: who is we ?
[20:53] <davecheney> if the flag is not defined it wont' show up in juju restore --help
[20:54] <davecheney> (i don't think there is any CI integratino of backup and restore, there certainly is no unit testing of same)
[20:54] <natefinch> davecheney: I mean, if you pass juju <something> a flag that it's not expecting, the first thing it should do is say "unexpected flag '-b'" .... but it didn't looks like it was doing that
[20:55] <davecheney> wallyworld: on master from yesterday, http://paste.ubuntu.com/15121569/
[20:55] <davecheney> no -b
[20:55] <davecheney> no, i did not try to invoke restore with -b
[20:55] <davecheney> because --help did not list it as an option
[20:55] <natefinch> davecheney> lucky(~/src/github.com/juju/juju) % juju backups restore -b --file juju-backup-20160218-040500.tar.gz
 ERROR old bootstrap instance ["i-f007252f"] still seems to exist; will not replace
[20:56] <davecheney> i think that is a differnt problem
[20:57] <fwereade> menn0, axw: ping re ErrTerminateAgent and writeUninstallAgentFile
[20:57] <menn0> fwereade: sorry, catching up
[20:58] <menn0> fwereade: I don't know much about why the uninstall file was created
[20:58] <menn0> fwereade: my only exposure to that code is when I've converted workers related to it to work with the dep engine
[20:58] <fwereade> menn0, np, I just saw you and axw had touched related lines recently
[20:59] <fwereade> menn0, I do have a theory
[20:59] <natefinch> ericsnow: any idea why StagedResource.Activate() would fail both insert and update during tests?
[20:59] <fwereade> menn0, that ErrTerminateAgent, being evil, was leaking out from somewhere unexpected and triggering agent suicides
[20:59] <ericsnow> natefinch: not off the top of my head
[21:00] <menn0> fwereade: sounds plausible / likely
[21:00] <fwereade> menn0, and that someone added this additional mechanism -- without which ErrTerminateAgent doesn't work, and just gets swallowed as not-even-an-error
[21:00] <fwereade> menn0, and now we have 2 places that use this I-really-mean-it mechanism
[21:00] <wallyworld> davecheney: that's the old plugin
[21:01] <wallyworld> there's a new restore command
[21:01] <wallyworld> cmd/juju/backups/restore.go
[21:01] <fwereade> menn0, and I now need a 3rd, because there's an evidently-undertested path that can generate ErrTerminateAgent and mean it
[21:02] <fwereade> menn0, and which has thus been broken for quite some time
[21:02] <menn0> fwereade: bugger
[21:03] <menn0> fwereade: it seems like now is a good time to fix the situation
[21:03] <fwereade> menn0, and ok it's low-impact because really anything waiting for the uninstall to happen is ludocrously optimistic *anyway*, dead means "you will be nuked from above"
[21:03] <fwereade> yeah
[21:03] <fwereade> I am just trying to keep it bounded
[21:03] <menn0> fwereade: and get rid of the need for the I-really-mean-it mechanism
[21:03] <fwereade> menn0, you speak truth
[21:04] <menn0> fwereade: but yeah, scope creep is an issue
[21:04] <fwereade> menn0, I just don't know where the rogue errors were coming from, and so the obvious approach is to go through adding safe ErrReallyTerminateAgentGodICantBelieveImSuggestingThis
[21:04] <menn0> fwereade: maybe poke at it a bit to get a feel for how hard it will be to untangle?
[21:04] <menn0> :)
[21:05] <menn0> I wonder if thumper or wallyworld remembers where the uninstall file thing came from?
[21:05] <fwereade> menn0, good question indeed :)
[21:06]  * thumper is heads down
[21:06] <thumper> which what?
[21:06] <wallyworld> it rings a bell, i can remmeber discussion around it but not why it was added
[21:06] <thumper> uninstall what?
[21:06] <fwereade> agent uninstall
[21:06] <thumper> manual machine removal
[21:06] <thumper> manual provider
[21:06] <thumper> stop being a juju machine
[21:06] <fwereade> ErrTerminateAgent, that evil slice of crap that any cheeky worker can emit to take down the agent
[21:07] <natefinch> ahh manual, the special needs child
[21:07] <fwereade> right, that's why we'd *need* to uninstall
[21:07] <fwereade> rather than just sitting back and waiting for death
[21:07] <fwereade> but it's not *triggering* based on manualness
[21:08] <fwereade> it's triggering based on did-the-thing-returning-ETA-also-invoke-the-magic
[21:09] <thumper> almost certainly it could be done better
[21:09] <thumper> with the new dep engine
[21:09] <fwereade> anyway, np if nobody has context, I will figure something out
[21:09] <thumper> but way out of my scope of caring right now
[21:09] <fwereade> heh, that is the trouble
[21:10] <fwereade> anyway, no worries, thanks for listening all ;p
[21:12] <menn0> fwereade: np. let me know if something needs a review.
[21:15] <thumper> fwereade, menn0: quick Q, should I use EndPoint or Endpoint ?
[21:15] <natefinch> ericsnow: do you have 15 minutes to hop on a hangout and help me with this test?  I'm sure I'm doing something dumb and just not seeing it.
[21:15] <fwereade> menn0, wil do, thanks
[21:15] <fwereade> thumper, Endpoint IMO?
[21:15] <ericsnow> natefinch: sure
[21:17] <menn0> fwereade: I agree with fwereade
[21:18] <menn0> thumper: "endpoint" is a word
[21:20] <thumper> ac
[21:20] <thumper> k
[21:20] <thumper> I just hit a very weird test failure
[21:20] <thumper> until I found that I had left "return nil" in a method
[21:20] <thumper> to remind me to implement it later
[21:20] <thumper> now is later
[21:58] <sinzui> wallyworld: Do you have a moment to review http://reviews.vapour.ws/r/3903/
[21:59] <wallyworld> sinzui: sure
[22:11] <mup> Bug # changed: 1546348, 1546350, 1546836, 1546840
[22:14] <mup> Bug # opened: 1546348, 1546350, 1546836, 1546840
[22:18] <sinzui> wallyworld: are you actually reading the diff of the feasture branch?
[22:18] <wallyworld> sinzui: yes
[22:20] <sinzui> wallyworld: you like pain. I assume you reviewed the branches that went into the feature branch. My request is just a formal acknowledgement that we want to merge the feature branch into master with proof that CI likes it
[22:20] <wallyworld> sinzui: in that case +1, so far it ssems all as i expect
[22:22] <sinzui> wallyworld: fab. Thank you for cleaning this branch up so quickly. abentley  is standing by to switch CI to treat beta 1 as delta1....ohh..
[22:22] <sinzui> wallyworld: do we need to change the version of this branch *before* we merge? I think we do
[22:22] <wallyworld> sinzui: yes, good point. yes we do. sl long as the ci scripts are changed in sync
[22:23] <mup> Bug # changed: 1546348, 1546350, 1546836, 1546840
[22:24] <sinzui> wallyworld: CI is paused for the switch over. It is actually tessting the last non-voting job for cloud-credentitials. Can you update the version to beta1. The other option is to upfate master asfter this merges. We wont restart CI until the scripts are switch over and master has cc merged and knows it is beta1
[22:25] <wallyworld> sinzui: if you have already done the pr, we can hit merge now and i will change version in a separate pr immediately after
[22:26] <sinzui> wallyworld: okay, I am merging
[23:02] <axw> fwereade: the uninstall file was added as a way to guard against unintentional signals
[23:03] <axw> fwereade: it used to not be required, but IS hosed an environment by accidentally SIGTERMing jujud
[23:27] <perrito666> k ppl EOD
[23:28] <perrito666> axw: I am so hanging a huge picture of you on my office :p
[23:29] <anastasiamac> perrito666: have a gr8 w/end