[00:04] rick_h_: there are two tech debt bugs you moved to beta16, they are really not urgent, i'd like to move them back eg 1577589 [00:37] Bug #1442149 changed: UniterSuite.TestUniterUpgradeConflicts fails [00:48] wallyworld: ok i think you meam ones marked as adsigned and were theybin progress? [00:48] wallyworld: ok with moving them, just wanted to checknon reality vsnbug info [00:49] vsn? [00:49] vs bug info [00:50] darn phone typing ftw [00:50] np :-) yeah, will be nice to get the affect methods sorted, but not this week [00:56] wallyworld: so moving to beta17 and re-assigning from Horacio :D [00:56] no, [00:57] horatio still needs to fix at some point [00:57] and not necessarily for beta17 [00:57] moved back to 2.0.0 for now [00:58] tyvm [01:50] I need a hobby to do while waiting for test runs [01:54] redir: picking up and fixing a bug could b a very relaxing hobby :D [01:58] anastasiamac: but I can't run the tests while working on a different branch. [01:59] and my other computer is running gostress on that race, unsuccsessfully [02:02] Unable to fetch Juju GUI info: error fetching simplestreams metadata: cannot read product data, invalid URL "https://streams.canonical.com/juju/gui/streams/v1/com.canonical.streams-released-gui.sjson" not found [02:02] wat? [02:03] do we care? [02:03] I feel we should [02:03] thumper: we should as we can browse to it.. [02:03] thumper: what are u running? how are u hitting it? [02:04] http://pastebin.ubuntu.com/23063199/ [02:05] * thumper is tapping fingers while reproducing issue [02:05] well, hopefully QAing that I've fixed it [02:06] thumper: if there is no bug, I'd say it ^^ should be [02:07] thumper: and u can navigate to this URL, right? it's not like u do not have internet access... [02:08] what's internet access [02:08] ? [02:09] wallyworld: ping [02:09] wot [02:09] chat? [02:09] sure [02:17] wallyworld: this bud's for you http://reviews.vapour.ws/r/5454/ [02:18] redir: thanks, will look soon [02:18] wallyworld: ^ it's the dummy provider region stuff. If you approve I'll come back and merge for a fresh start tomorrow. [02:18] bbiab [02:18] ok === natefinch-afk is now known as natefinch [02:44] wallyworld: can you help me debug my custom simplestreams setup for agent tools? I'm trying to deploy a windows binary on azure but it keeps saying no tools found even though it really should be finding them, and I can't tell from the logs why it's not finding them. [02:45] i'm sorta tied up trying to fix a CI issue, debug output lists the steps it goes through along the way, does that not help? [02:46] you can also check what gets into state as that iis where the tools come from [02:46] when you use metadata-source [02:46] using metadata-source is supposed to grab the tools and save in state [02:46] and from there, no simplestreams is used [02:47] as the controller will search state and see the tools in there [02:47] wallyworld: not enough.. it finds the index2.json in my s3 bucket, finds the list of candidates... one of which looks like it should match, and then the next thing it logs is trying the default simplestreams source [02:47] wallyworld: I think there's a bug filed about metadata source not working, unless that's been fixed [02:47] you can add debug to the match function [02:47] see why there's no match [02:48] natefinch: metadata-source is not fixed.. in progress [02:48] anastasiamac: cool [02:48] probs the easiest is to add extra debug to the match function to print for each candidate why the match failed [02:48] it's probably related to dev vs non-dev [02:48] wallyworld: yeah, I'll do that. Thanks [02:49] that stuff really needs to die (the old dev paradigm) [02:49] odd version = dev stuff [02:49] it's all obsolete now [02:49] I'm certainly more than happy to never have to deal with simplestreams again :) generate metadata is *also* broken, so I had to actually hack the metadata by hand. [02:50] natefinch: and if the debug is useful, leave it in there for the next poor f*cker who has to deal with this [02:50] wallyworld: haha yeah [02:50] what's broken with egenrate? [02:50] wallyworld: only generates for 1.x versions or something... lemme find the bug [02:51] https://launchpad.net/bugs/1613858 [02:51] that tools hasn't been updated in so long [02:51] heh, I guess mup doesn't like that format - https://bugs.launchpad.net/juju-core/+bug/1613858 [02:51] not surprised it's out of date [02:51] or mup's broken [02:52] I was just lamenting that all I really want is juju upload-tools win2012r2 amd64 /path/to/jujud.exe [02:53] we always get so fancy, and what I really want is the simplest thing that can possibly work [03:14] natefinch: we can add that command now that tools are stored in state, it was never possible before. but no one has gotten around to it [03:14] it's been one of those friday afternoon things [03:15] maybe you have an itch you'd like to scratch :-) [03:18] wallyworld: like I've been rolling in poison ivy [03:18] lol [03:22] thumper: is migration supposed to handle unprovisioned machines? [03:22] no [03:22] the prechecks will fail [03:22] at this stage [03:22] okey dokey [03:22] * thumper taking kiddo to hockey [03:22] back later === thumper is now known as thumper-afk [04:00] wallyworld: if you use upload-tools, we don't look in simplestreams at all, do we? [04:00] correct, but upload tools now deeted [04:00] deleted [04:00] and so we do look [04:00] heh [04:01] I should pull master evidently [04:01] and if none fund, we upload [04:02] I really miss being able to just tell juju what to, rather than hoping it'll do what I want it to do :/ [04:03] It still seems like making the same mistake we made with ensure-HA, where we'd do the "right thing" but then users couldn't tell what the command would do before they ran it. [04:15] wallyworld: so... if I build from current master... it always uses upload-tools? [04:18] (looks like yes, from the logs) [04:18] still does the nasty "add a build number of .1" though, I see. ick. [04:25] that's expected and required [04:25] so we can tell what has been custom uploaded [04:26] so when people say they have an issue we know if it is stock or not [04:27] there's a lot of ways to record that we've custom uploaded without changing the version number itself. Maybe the version number is the most visible... just annoyed I have to go modify my streams metadata to make the version .1 (I presume juju will only accept exact matches to what is on the controller) [04:33] wallyworld: do you know why this if statement is there? https://github.com/juju/juju/blob/master/environs/simplestreams/simplestreams.go#L457 seems to prevent us from logging the simplestreams error unless it's one specific kind [04:34] wallyworld: for example, it prevented me from seeing the json unmarshal error from my simplestreams data [04:36] not sure anymore, i think it was because there we all sorts of reasons why tools search could fail (external to juju) and we didn't care about the specifics - if one path failed, the next would be tried [04:36] anything from unauthorised http to url not being there etc etc [04:36] also stale streams data that wasn't cleaned up [04:37] all of that seems like useful information... if the user has set a streams url, they probably expect it to be used. [04:37] sometimes, but not always [04:37] they could only have a subset of data there and expect fallback to official sources [04:38] the output was waaaay noisy with all the "expected" errors [04:38] and so i think people wanted it to be quiet [04:38] maybe we can put back the general error logging in trace? [04:38] sure [04:38] if there's a need for it, i have no opinion either way [04:39] i was happy enough with lots of output [04:39] but when people bootsrapped with --debug they complained [04:40] especially since we had up to 4 datasources wach with json and sjson [04:40] and index and index2 [04:40] yeah, I agreed with them at the time, but when things break, it's nice having the output. It's hard to know when it's an expected error and when it's not [04:41] yeah, i guess it hasn't been an issue because setting up the streams has all been upstream from us [04:41] done by the Qa guys [04:41] yep [04:43] as you say, not till you roll around in the poison ivy that you start to itch :-D [04:43] haha yep [04:43] did you finf your issue? [04:43] in thw matching? [04:44] yeah, some invisible unicode character in the end of my tools.json was making it fail unmarshaling [04:44] ah [04:45] we'll see what happens when I try again with it fixwed [04:45] this is like the 8th problem I've fixed [04:46] I think always logging that error message will help a lot though. [04:47] holy crap I think it worked [04:48] trumpets blare [04:48] angels sing [04:48] first growth bordeaux rains from the sky [04:49] I've been trying to get ci to run with my windows tools for literally 16 hours of active work time [04:50] * redir fails to generate a good relativity joke [04:51] wallyworld: http://reviews.vapour.ws/r/5454/ has a shipit button that is calling your name:) [04:52] ooh, let me look [04:54] redir: +1 from me, we can debate the name next pr [04:55] wallyworld: works for me. [04:56] natefinch: you would be a good person to review the doc page for adding your own tools then :-) [04:57] https://jujucharms.com/docs/1.25/howto-privatecloud [05:08] axw: care to do a very small review to fix a CI regression http://reviews.vapour.ws/r/5456/ ? [05:09] sure [05:10] natefinch: what are you doing with windows agents? I wrote a plugin for cross-compiling/building and uploading agents, might be useful... [05:13] wallyworld, axw: Who's best to ask about grant revoke? I'm debugging the user grant/revoke test. I see a user removed but the user still remains in the list-shares output. (but is gone from list-users output) [05:13] That might be a bug? [05:13] sounds like it, i think there's a bug already raised [05:13] https://bugs.launchpad.net/juju-core/+bug/1613444 [05:13] Bug #1613444: Remove-user doesn't remove user from list-shares [05:14] wallyworld: reviewed [05:14] ta [05:14] wallyworld: ah thanks missed that bug [05:15] no wuckers [05:16] * veebers googles wuckers [05:16] hah, love it [05:18] wallyworld: ok one more concern, if I do something like: "juju add-model new-model2 && juju destroy-model new-model2 -y" new-model2 stays around in list-models output. I would say this is a bug even if it's pretty odd to create then immediately destroy the model [05:18] oh also, I cannot destroy the model now :-\ it's not found when I try [05:19] veebers: surely as a kiwi you'd know what "wuckers" means? :-D [05:20] it takes a finite time for the model to be cleaned up [05:20] wallyworld: hah never heard the shorthand wuckers, def heard the long form [05:21] perhaps we can improve the experience there [05:21] there may be a bug already, not sure tbh [05:21] wallyworld: it's been 4+ minutes and the model still appears in list-models [05:21] (this is local lxd) [05:21] i'd need to check - i think list-models just looks at local yaml file [05:21] well, it used to [05:22] worth a bug so we can investigate [05:22] if there's not already one there [05:22] I'll have a look see if I can find one [05:26] axw: as an aside I think you can this one now right? https://bugs.launchpad.net/juju-core/+bug/1605710 [05:26] Bug #1605710: Fix and reland axw/cli-model-owner [05:26] veebers: yup, thanks [05:32] wallyworld: fyi I filed 1613960 [05:32] ok, ta [05:35] * thumper-afk headdesks [05:35] oh [05:35] didn't change back === thumper-afk is now known as thumper [05:35] wallyworld: bumping up against romulus dependencies [05:35] with the command formatter branch [05:35] \o/ [05:36] details? [05:36] it specifies command formatters [05:36] and I've changed them :) [05:36] ah [05:37] patches accepted :-D [05:39] bah humbug [05:41] Bug #1605710 changed: Fix and reland axw/cli-model-owner [05:41] Bug #1613960 opened: list-models can show a model that was supposed to have been deleted [05:41] thumper: the default yaml marshaller does append a new line, but weren't we stripping it off for a reason, so as not to append an extra one in our output? [05:42] no, no good reason at all [05:42] why change the existing output behaviour just to add colour? [05:42] this isn't [05:42] this is standardising on the formatters [05:42] ok [05:42] why not output what it is? [05:42] if it is new lines [05:42] output the damn new lines [05:42] it won't change any of our output [05:43] because we don't marshall strings by themselves [05:43] because that's dumb [05:43] it is attempting to be smart of the hell of it [05:43] when there is no good reason [05:43] and yet a newline is appended to json [05:44] because it doesn't append a new line to the end [05:44] the formatters make sure it finishes with a new lien [05:44] lien [05:44] * thumper headdesks [05:44] line [05:44] why not output what it is? [05:44] :-P [05:44] * thumper slaps wallyworld [05:44] lol [05:45] don't you hate it when your own words come back and slap you on the arse [05:46] i gave it a ship it, but just make sure you don't f*ck up anything [05:46] we add a new line to the end of the json so your next prompt doesn't end up at the end of the json line [05:46] exactly [05:46] but [05:46] wouldn't stripping the yaml \n have cuased the same issue? [05:47] so maybe we are adding a \n somewhere else [05:47] and now for json we'll get 2 [05:47] i may be wrong, just a guess based on what the code used to do [05:48] it would have been stripping the \n for a reason [05:48] i bet we add a \n in juju [05:49] i reckon you need to try it out before landing to confirm one way or the other [05:52] wallyworld: for you :) http://reviews.vapour.ws/r/5457/ [05:52] no [05:52] you don't get it [05:52] if you want to chat we can [05:52] but you are missing something [05:53] it's ok, i trust you [05:53] almost [05:53] :) [05:53] let's just say "I won't fuck it up" (probably) [05:54] but now, it's dinner time [05:55] so I'll look tomorrow morning [05:55] laters [05:55] TIL: there's (fairly minimal) Go bindings for OpenStack in their tree: http://git.openstack.org/cgit/openstack/golang-client/ [05:57] axw: maybe we can hope to kill off goose for xmas dinner at some point :-) [05:57] wallyworld: that would be nice === ses is now known as Guest65757 [07:40] jamespage: are u there [08:11] Bug #1613992 opened: 1.25.6 "ERROR juju.worker.uniter.filter filter.go:137 tomb: dying" [08:38] axw: did you get a chance to look at the manual provider issue? [08:41] wallyworld: nope, been looking at the azure one all day [08:41] np [08:57] as usual uninstalling maas and trying to reinstall completely fecked the VM [08:57] starting again from scratch [08:59] voidspace: :( [08:59] babbageclunk: :-) [08:59] babbageclunk: hey, hi [08:59] voidspace: Maybe snapshot before installing? [08:59] babbageclunk: yeah, good plan [09:00] babbageclunk: wotcha working on? [09:00] voidspace: the worker to release container addresses. Hopefully the last bit! [09:01] babbageclunk: ah, cool [09:01] babbageclunk: I'm on a 1.25 backport of network stuff (the bridge scripts), so installing maas 1.9 [09:01] babbageclunk: I had to go back and read up how to configure a maas 1.25 environment too, it's that long since I've done it... [09:03] voidspace: Oh, I just got pointed at this too: https://bugs.launchpad.net/juju-core/+bug/1605653 [09:03] Bug #1605653: backup-restore failed creating collection EOF [09:03] voidspace: do you know whether failures are automatically added to these pages? http://reports.vapour.ws/releases/issue/57922732749a5624aac9f7b8 [09:03] babbageclunk: anything to do with backup and restore is horrible [09:04] babbageclunk: I believe so, if the error matcher finds them [09:04] voidspace: 'cause if it's automatic then it looks like this failure hasn't happened for 3 weeks. [09:05] babbageclunk: right [09:05] babbageclunk: maybe it got fixed by accident :-) [09:05] voidspace: yeah, that's what I'm thinking. Kind of annoying. [09:06] voidspace: but good I guess! [09:06] :-) [09:17] Bug #1614010 opened: juju register: cannot register a user when controller already exists [09:29] right, cloned trusty vm with correct /e/n/i and just before maas install [09:39] frobware: ping [09:44] wallyworld: hey, with current tip, Login no longer includes ModelManager in the facade list [09:45] hmmm, ok [09:45] frankban: could that be rogpeppe's latest change to separate controller and model logins? [09:46] frankban: are you logging in to a model? [09:46] rogpeppe: yes [09:46] frankban: in that case, ModelManager is not available [09:46] frankban: ModelManager is now only available to a controller-only API connection [09:46] frankban: along with the other controller-only facades [09:47] frankban: i sent an email to the group about this [09:48] rogpeppe: so, in order to get current model info (like default series, name, provider type) the GUI now needs to use the connection to the controller, right? [09:49] frankban: that's right [09:49] rogpeppe: it's a bit weird that you cannot get info on the currently connected model from the model connection itself [09:50] frankban: because the model info contains things like the model name which can be different between the controller and in the sub-controller [09:50] frankban: tbh it might only be the name that's problematic [09:53] frankban: would it be OK if ModelInfo was provided on another (non-controller-specific) facade and didn't provide the model name? [09:53] frankban: i mean, presumably we already know the name, right? [09:55] rogpeppe: why should the GUI know the name? anyway, that should be ok [09:56] frankban: because how else does it know how to connect to the model? [09:56] rogpeppe: a model is a websocket URL [09:57] frankban: how do you get that URL? [09:57] rogpeppe: it is provided by either the charm or juju itself in gijoe [09:58] rogpeppe: in the dynamically generated GUI config.js [09:58] rogpeppe: are there any other facades no longer available on the model? [09:58] frankban: so how do you know where to get config.js from? [09:59] frankban: the group email mentioned them: AllModelWatcher Cloud Controller MigrationTarget ModelManager UserManager [10:00] rogpeppe: ok so the GUI only uses ModelManager in this list [10:01] rogpeppe: would it be doable to reintroduce that in the models, just to give the GUI time to implement the double connection? [10:01] frankban: could you just avoid using the latest juju-core for the time being? [10:02] rogpeppe: I guess those changes will be released friday on the new beta, so I am worried we don;t have enough time [10:04] frankban: i'd prefer to implement ModelInfo on a different facade instead [10:04] frankban: at least then we'd be going in the right direction [10:09] rogpeppe: ModelInfo on another facade solves some problems (even if we need the model name as well). not sure it gives time sufficient time to have a working GUI on next beta (no ListModels, CreateModel etc.). let's discuss this later with Jeff and Uros [10:10] menn0, katco, babbageclunk: I'd appreciate a review on http://reviews.vapour.ws/r/5449/, it's quite short [10:11] rogpeppe: anyway, ModelInfo on a model facade sounds good to me, as it means we don't have to share model data between the two websocket connections [10:11] frobware: ^^ [10:11] frankban: yeah [10:13] dimitern: looking [10:14] babbageclunk: ta! [10:19] dimitern: LGTM! [10:19] babbageclunk: thanks! [10:19] voidspace: hey, did you manage to get your maas setup going? [10:22] voidspace: if so, could I ask you to QA my fix on your maas? [10:26] * frobware is dismayed that all the individal QA efforts for commits don't get captured into tests that can be repeated ad nauseum. [10:54] frobware: i think the point is that QA efforts are a bit random [10:54] frobware: you play with the new thing [10:55] frobware: if all the individual QA efforts were captured into tests, our test suite would run for weeks [10:55] rogpeppe: but after you do the same thing for a while you have to question why your're doing it again. [10:55] rogpeppe: that's fine. they don't have to run all the time. you could have one job a week that runs them all. [10:56] frobware: that's what our CI tests are essentially [10:56] rogpeppe: it's the endless setup/teardown cost for humans that I think is a problem [10:57] frobware: if you find yourself repeating the same thing, there's nothing stopping us scripting something [10:57] frobware: the reason for the QA thing is that everyone was always just relying on the test suite to find problems, and loads of problems slipped through the net because noone thought to actually use the thing in practice [10:57] rogpeppe: agreed. but in reality it seems more like... "i'll just stop what I'm doing, quickly (ha!) test this thing, then move on" [10:58] rogpeppe: 90%+ of what I do is manual testing. this seems wrong. [10:59] frobware: that seems a bit surprising. the test suite takes 30 minutes by itself to run, right? [10:59] rogpeppe: the test suite doesn't test real networking. [10:59] rogpeppe: it's too perfectly fictious. [10:59] frobware: so how would you suggest that the tests *did* test real networking? [11:00] frobware: QA is not intended to be a substitute for automated tests [11:00] frobware: it's just a smoke-test thing [11:00] rogpeppe: we turn /some/ of the QA tests into running those manual steps. Sure, there's a boatload of infra to get to that point but until we address that we'll continue with the manual effort. [11:01] frobware: if you're spending 90% of your time doing manual QA, there's something wrong [11:01] rogpeppe: ^^ :) [11:02] frobware: i can't parse the sentence "we turn /some/ of the QA tests into running those manual steps" [11:03] rogpeppe: so I initially said "all" whereas that's not necessarily useful or practical. The "some" is me being more pragmatic. [11:04] frobware: i still don't understand [11:04] you want to turn some of the QA tests into manual steps? [11:04] frobware: they already are manual steps, right? [11:05] rogpeppe: ah, I see.... my fault. [11:05] rogpeppe: how do we capture those manual steps into an automated test/script/whatever? [11:05] frobware: right [11:06] frobware: i think there's a lot to be said for coming up with a set of tools that (say) makes QAing (and possibly automated testing) networking stuff easier [11:06] frobware: i think this is probably a particular issue for networking tests [11:06] rogpeppe: yep. I want to automatically provision three nodes, where two nodes have one bonded nic.... and so on. [11:07] frobware: exactly [11:07] rogpeppe: this is where my 90% time comes from. by the time I've done that the next thing I move onto is a variation on that, hence the setup/tear down/setup cost. [11:07] frobware: do the usual thing: imagine how you'd like to specify your usual range of QA scenarios in an ideal world, then think how that might be done [11:08] frobware: i.e. think devops :) [11:08] rogpeppe: you mean like this? https://circleci.com/blog/its-the-future/ :-D [11:09] frobware: precisely :) [11:09] rogpeppe: made me chuckle [11:10] anyone want a straightforward review? this allows Ping to work on controller-only API connections: http://reviews.vapour.ws/r/5458/) [11:10] dimitern: yes, I have maas 1.9 and 2.0 setup [11:11] dimitern: I'm reluctant to screw with my maas 1.9 setup (only one node on it currently) until I've finished this testing though [11:11] dimitern: send me the branch and the QA steps [11:11] voidspace: it's easy to revert [11:11] dimitern: I'm not worried about juju [11:12] voidspace: it's all in the PR desc: http://reviews.vapour.ws/r/5449/ and the branch is lp-1612624-ipv6-mongod [11:12] dimitern: I'm taking a lunch break and can look after that [11:12] dimitern: ok [11:12] voidspace: thanks! [11:12] dimitern: ok to test on maas 2? [11:13] voidspace: shouldn't matter, 1.9 or 2.0 [11:13] dimitern: ok, cool [11:16] strictly speaking, maas is not even needed - there should be a way to test it on lxd, assuming the kernel args can somehow be passed to the container via cloud-init [11:59] Bug #1614065 opened: Unable to attach storage, storage not found [12:03] another tiny review anyone? http://reviews.vapour.ws/r/5459/ [12:04] is it really better to do [12:04] var ( [12:04] a uint64 [12:05] b error [12:05] ) [12:05] rather than just have two var lines? [12:05] it's a matter of taste I guess [12:06] err at least could be one scope in [12:06] var ( longVarHere evenLongerType\nandAnotherLongVar map[string]interface{}\n ) [12:06] dimitern: my only realy question is if 0 is the right no-backing-inode value [12:07] I guess it's safely invalid? [12:07] mgz: it's the zero value of the underlying type we're parsing the value into [12:08] mgz: also this: http://stackoverflow.com/questions/2099121/why-do-inode-numbers-start-from-1-and-not-0 :) [12:08] dimitern: that's what I wanted to know, thanks [12:09] mgz: but good question ;) [12:09] dimitern: shipit [12:09] mgz: awesome! did you try QAing it? [12:10] dimitern: nope, but I certainly can now [12:10] it took me longer to write the QA steps than the fix :D [12:10] mgz: if you can, even better! [12:11] hm, I lost my remote dimitern alias [12:11] (I suspect the steps should work, but haven't actually tried them myself - with the exact commands I mean) [12:11] mgz: have u seen bug 1613864? I'd really appreciate if you could comment there :) [12:11] Bug #1613864: Missing "juju-2"/"juju2" command. [12:11] Bug #1614065 changed: Unable to attach storage, storage not found [12:11] anastasiamac: only as a title - will have a look in a bit [12:12] dimitern: i think it may b packaging related and was hoping mgz would know \o/ I've seen his name on a couple similar ones :D [12:13] anastasiamac: that bug does describe reality [12:13] mgz: all bugs do :D [12:13] anastasiamac: it's what was decided back in the discussions before xenial release - I think my first version had all the aliases? [12:14] I'd need to look at email threads again to remember the reasoning, but generally we don't like too many names for the same thing [12:14] Bug #1614065 opened: Unable to attach storage, storage not found [12:14] Bug #1614072 opened: storage minimum size and default size are conflated [12:15] mgz: i agree.. plz comment on it (when u get chance) that the behavior & observation is expected. it'll give us grounds to mark as 'won't fix'.. unless we need to fix?... [12:16] it's not an unreasonable request [12:17] dimitern: git checkout HEAD doesn't do what you want [12:17] otherwise the steps are okay [12:18] dimitern: qa okay, http://paste.ubuntu.com/23064328 [12:19] mgz: thanks! I'll update the second git checkout step [12:44] i'm needing a second review of this please - does anyone have a moment to have a look? http://reviews.vapour.ws/r/5458/ [12:47] anastasiamac: bug 1613864 - seems like a packaging issue, but natefinch might know if to fix it we need to change cmd/juju's main funcs [12:47] dimitern: thnx. i have also asked mgz :) [12:47] rogpeppe: I was about to, but the QA steps were unclear [12:47] rogpeppe: how to make a controller-only api connection [12:48] dimitern: i'll reach out to nate during my day tomorrow -he seems to be doing a few late nights :) [12:48] anastasiamac: +1 [12:48] dimitern: well, you could review it and leave the QA to someone else [12:48] dimitern: you make a websocket connection to the juju API at the path /api [12:48] dimitern: i'm afraid i can't think of any other way to QA this [12:48] rogpeppe: with what? curl? :) [12:49] dimitern: probably by writing a custom Go program to do it [12:49] dimitern: i think that frankban can QA it more easily [12:49] rogpeppe: see - if you can't describe with a few steps, who could QA it apart from you? :) [12:49] dimitern: as the GUI makes long-lived connections to the controller-only API [12:50] dimitern: i did describe it :) [12:50] rogpeppe: ah, well - if that works, it should be easy [12:50] dimitern: i just didn't write the code to do it [12:51] dimitern: it's a pity that it's hard to open an API connection from Go. lots of boilerplate required. i think i might write a little package to make it easier. [12:51] rogpeppe: is a controller long identified by the controller uuid as username/tag? [12:52] dimitern: "controller long" ? [12:52] rogpeppe: sorry, login [12:52] dimitern: no, it's identified by the websocket URL being /api rather than /model/:modeluuid/api [12:54] rogpeppe: ok, I'll leave it to frankban to QA then (ideally with a comment how he did it) [12:54] dimitern: thanks [12:57] rogpeppe: I can QA it very quickly with a python script [12:57] frankban: cool [12:58] rogpeppe: a comment on how I did it would be just "I wrote a Python script" [12:58] frankban: i guess you could include the script :) [12:59] rogpeppe: well, I have a little library that allows me to run arbitrary ws calls, so it's not really a single file script [13:01] dimitern: testing your branch now [13:01] dimitern: well, starting to [13:01] rogpeppe: I'll try to make it a standalone [13:01] rogpeppe: reviewed [13:02] frankban: well, pasting the script will help anyone that has to repro it later ;) [13:02] voidspace: great! [13:11] dimitern: frobware: with my backport of the bridge script fixes to 1.25, the following is the /e/n/i generated on the bootstrap node [13:12] dimitern: frobware: http://pastebin.ubuntu.com/23063945/ [13:12] voidspace: looking [13:12] dimitern: frobware: this is a machine with two bonded NICs and a vlan [13:12] dimitern: frobware: it looks good to me [13:13] dimitern: frobware: maas 1.9 didn't pick up the vlan though - I had to add it as an interface to the controller, so it appears as "untagged" [13:13] dimitern: frobware: which is concerning :-/ [13:13] voidspace: the backport of https://github.com/juju/juju/pull/5791 ? [13:14] dimitern: yes [13:14] dimitern: although basically I pulled in *all* the changes [13:14] voidspace: 1.25 only bridges the default route interface [13:14] dimitern: i'm not sure that it's worth defining a type for those constants - they're only used in an error message [13:14] voidspace: so that's as I'd expect it to look I think [13:14] dimitern: cool [13:15] dimitern: once I've done your tests (bootstrapping now) I'll add a new node and do a deploy as a sanity check [13:15] dimitern: restrictedRoot could be used for other purposes too - there's no particular need to enumerate the possible strings, i think [13:16] morning all [13:16] natefinch: o/ [13:16] dimitern, anastasiamac, mgz: seems like you guys have that juju2 bug under control? [13:16] dimitern: it's not like we actually check against the values of connType or anything [13:16] rogpeppe: would it be too much trouble though? :) [13:16] dimitern: i think it gives the wrong impression [13:17] voidspace: that's ok, but if you managed to bootstrap with ip6.disabled=1 you've QA-ed it already :) [13:17] dimitern: like those names are important somehow [13:17] dimitern: but we don't define constants for all the strings we pass to fmt.Println [13:17] dimitern: I'm bootstrapping now [13:17] natefinch: o/ well kinda - it's worth double checking no code changes will be needed [13:17] dimitern: ah, complete [13:17] dimitern: so i don't really see why it's worth doing here [13:18] rogpeppe: well.. ok [13:18] dimitern: let alone exporting this trivial implementation detail [13:18] dimitern: to be fair I want to see it fail with master too - to ensure it's actually making a difference [13:18] rogpeppe: they don't have to be exported [13:18] rogpeppe: but I don't want to argue :) I'll drop the issue [13:19] dimitern: would you prefer it if we passed in the whole message to print? [13:19] voidspace: ah, right [13:19] s/print/use in the error/ [13:19] dimitern: just reverted to master and bootstrapping with the setting still in place [13:19] rogpeppe: not really [13:19] voidspace: +1 [13:20] dimitern: i think it's worth defining constants when the values actually matter to something [13:21] rogpeppe: it my mind having a const you can jump to or autocomplete is worth the time you'll otherwise spend grepping for a string literal, and sifting through lots of possibly unrelated hits [13:22] dimitern: i don't understand. these values are used in exactly one place. [13:22] rogpeppe: ok, forget about it :) [13:22] rogpeppe: is the Pinger included in controller facades? [13:23] frankban: that's what http://reviews.vapour.ws/r/5458 is fixing [13:23] rogpeppe: in this case, I tend to agree with you - if it was used in more than one place, then it'll be different [13:23] dimitern: thanks [13:24] rogpeppe: it's not listed in the facades after login [13:24] frankban: hmm, it should be [13:24] rogpeppe: http://pastebin.ubuntu.com/23064485/ [13:25] frankban: that's having bootstrapped with this branch? [13:25] rogpeppe: yes, I can try again [13:25] frankban: let me just check the code again [13:26] frankban: ah! [13:27] frankban: ok, my fault [13:27] useful QA for the win [13:27] frankban: it allows the call but i didn't change the isControllerFacade function [13:27] yes, that was my impression [13:27] frankban: i thought i was doing a better thing there :) [13:27] frankban: +1 [13:30] rogpeppe: seems updated now right [13:30] ? [13:31] dimitern: I can confirm that I can bootstrap with your branch, but not with master, with the disable ipv6 flag in place [13:31] frankban: no, not yet - i'm just running some tests [13:31] voidspace: thanks for confirming! [13:31] rogpeppe: ok ping me [13:32] rick_h_: 1:1 ? [13:32] voidspace: sorry, omw [13:35] frankban: updated now [13:47] frankban: please ping me when you've QA'd and I'll start the branch landing [13:52] rogpeppe: sure on call now [13:52] frankban: ok [13:53] dimitern: FWIW i've just pushed up a "convenience API" package to hopefully make it easier to make ad-hoc connections to the juju API: github.com/rogpeppe/misc/jujuconn [13:53] dimitern: i haven't actually run the code yet though :) [13:54] dimitern: as i'm on a train so can't bootstrap a juju instance to play with [13:54] rogpeppe: awesome! thank you, I'll have a look and try it [14:00] voidspace natefinch ping for standup [14:00] dimitern: ^ [14:06] rick_h_: sorry [14:07] rogpeppe: bootstrapping again [14:07] frankban: ta [14:09] sinzui, mgz: how do I rdp to an azure machine started by CI? There's a "connect" button that gives me RDP info, but my rdp client doesn't ever connect... not sure if I need to open a port on the vm or vpn in somewhere or something [14:09] voidspace: please link your PR to the card [14:09] natefinch: no idea. we have never done that [14:09] dimitern: kk [14:10] natefinch: I've never done it with azure, only our maas where we can supply our rdp cert to maas [14:11] voidspace: in the "Add External Link" section, first field, please [14:11] rogpeppe, dimitern: QA ok, published instructions at http://reviews.vapour.ws/r/5458/ [14:12] dimitern: ah, ok [14:12] :) it'll become second nature very soon, not trying to be a kanban nazi [14:12] dimitern: done [14:12] frankban: awesome! thanks for sharing [14:12] frankban: ta! [14:13] frankban: have you destroyed the controller already? [14:13] rogpeppe: no [14:13] frankban: perhaps you could test this program for me (one mo as i write it :-]) [14:14] voidspace: ta! [14:16] frankban: http://paste.ubuntu.com/23064622/ [14:16] frankban: (you'll need to go get the jujuconn package) [14:16] frankban: it assumes that it's the current controller [14:18] rogpeppe: http://paste.ubuntu.com/23064626/ [14:18] frankban: awesome! [14:18] frankban: thanks [14:18] frankban: always nice when code works first time [14:18] frankban: i wonder if you've got an old controller going that you can check to see if it fails... [14:26] voidspace: I'm QA-ing your fix now on maas 1.9 and a node with a bond and 3 vlans [14:28] dimitern: stupid question - how do I bootstrap with trace logging? [14:29] babbageclunk: I don't think you can easily do that [14:30] dimitern: :( [14:30] babbageclunk: passing --debug to bootstrap gives you debug logging, while setting logging-config='=TRACE' inside the bootstrap config will give you trace logging *later* [14:30] babbageclunk: there was a way though.. let me try to remember [14:31] dimitern: Hmm - actually logging-config='=TRACE' might do it. [14:31] dimitern: I mean, might do what I want [14:32] babbageclunk: try exporting both JUJU_LOGGING_CONFIG and JUJU_STARTUP_LOGGING_CONFIG (to '=TRACE') before running bootstrap [14:32] babbageclunk: that's what I found gives you the most verbose initial logging [14:33] lazyPower has a nice gist about it actually :) https://gist.github.com/chuckbutler/753ff6b88e2220b7a10a [14:40] dimitern: my problem was happening late enough that just the logging-config was enough, thanks! I just couldn't find or remember the exact syntax. [14:42] voidspace: LGTM + QA OK [14:42] babbageclunk: nice ;) [14:53] dimitern: The API requests from my worker are failing with `unknown object type "MachineUpdater"`. Is there another place I need to register my facade? I've added it to allfacades and have a RegisterStandardFacade call. [14:54] babbageclunk: yes, let me have a look where it was [14:54] babbageclunk: api/facadeversions.go and apiserver/allfacades.go need updating [14:56] two line log output change anyone? http://reviews.vapour.ws/r/5461/ [14:57] dimitern: facadeversions! [14:57] natefinch: LGTM, thanks for this - I remember doing something similar some time ago to debug simplestreams [14:57] dimitern: Thanks [14:58] dimitern: yeah... I realized when I saw that if statement, that we were throwing away everything *except* the expected errors. Would have saved me hours of debugging if I'd seen the json unmarshal error for my simlpestreams data [14:58] dimitern: thanks for the review [14:59] :) === natefinch is now known as natefinch-afk === mup_ is now known as mup === mup_ is now known as mup [15:54] * rick_h_ goes for lunchables === frankban is now known as frankban|afk [16:19] morning [16:30] Bug #1614161 opened: Juju does not remember controller after register [16:32] redir: morning [16:43] is it morning there too perrito666 ? [16:43] I think you're like an hour off from me [16:45] its 13:45 [16:49] Is it legit to add a method to an api facade without bumping the version number? [16:49] no more [16:51] perrito666: :( So I guess I need to learn how to bump versions tomorrow! [16:58] or like 4 === natefinch-afk is now known as natefinch [18:13] anyone seen this error? 2016-08-17 15:00:25 ERROR juju.worker.diskmanager lsblk.go:116 error checking if "fd0" is in use: open /dev/fd0: no such device or address [18:13] talk about user friendly: error: The requested backend 'zfs' isn't available on your system (missing tools). [18:14] natefinch: something is reading your floppy disk [18:14] :p [18:14] perrito666: ahh, a less well known feature of azure VMs, I guess. [18:59] sinzui: do we run the windows CI tests on maas/windows? or just azure/windows? [18:59] natefinch: we do have the tests for maas 1.9. I think they are only running for 1.25 since juju 2 supports azure with window [19:01] sinzui: ok, just checking. I can't for the life of me get RDP to work to an azure VM [19:01] :( [19:01] to be fair, I can't even ping the IP address [19:02] natefinch: I am not sure windows will answer ping [19:02] in a default config [19:02] windows does answer ping... at least by default. no idea how azure's vms might handle it though [19:03] natefinch: windows server? [19:03] feh, dunno. I think they'd be silly to turn it off. [19:07] natefinch: https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-windows-classic-connect-logon/ anyone have portal access for the instance? [19:08] natefinch: that states you need to get a generated .rdp file with the ports/etc needed to talk to a specific instance: Clicking Connect creates and downloads a Remote Desktop Protocol file (.rdp file). Click Open to use this file. [19:09] rick_h_: yeah, done that. The rdp file is just an IP address... which doesn't work for our VMs. I'm trying to start a VM manually on azure (using the portal UI) to see if maybe something we're doing with the network is disabling RDP. [19:11] rick_h_: yeah, I can connect to RDP from a manually created instance no problem [19:20] * rick_h_ grabs the boy from summer camp, biab [19:30] mup: help [19:30] natefinch: Run "help " for details on: bug, contrib, echo, help, infer, issue, login, poke, register, run, sendraw, sms [19:31] bug 1614230 [19:31] Bug #1614230: can't remote desktop into windows machines created by juju [19:31] ahh good, mup was borken last night, glad it's back [19:38] when in doubt... reboot [19:39] perrito666: for the record, I can't ping the machine I brought up manually, even though RDP works (obviously ping != rdp, but still, good to know) [19:42] Bug #1614230 opened: can't remote desktop into windows machines created by juju [19:43] does anyone have an opinion on whether it's reasonable for functions to open new API roots? shouldn't that be something that's passed in? [19:54] Bug #1614239 opened: bootstrap-timeout ignored in --config [20:01] katco: I don't really know what you mean by opening an API root [20:02] natefinch: https://github.com/juju/juju/blob/master/cmd/juju/application/deploy.go#L435 [20:02] natefinch: this, but like... at all levels of the call-stack [20:02] natefinch: i.e. deploying bundles creates a new api root, deploying charms, resources and then anything else, etc. [20:02] natefinch: it seems like we should just be opening 1 root at the top of the call graph and passing it through [20:02] katco: I have no idea what that function actually does [20:03] natefinch: but i'm not sure if we need to keep reopening it for some reason [20:03] katco: probably copy pasta [20:03] Bug #1614239 changed: bootstrap-timeout ignored in --config [20:03] natefinch: it's basically this: https://github.com/juju/juju/blob/master/api/interface.go#L156 [20:03] natefinch: returning that, i mean [20:04] it seems like passing in an api.Connection is purely superior.... [20:04] natefinch: that's what i thought, but... the juju codebase does weird stuff sometimes and it's not always clear why [20:06] katco: my guess is that probably most things that currently call NewAPIRoot, should be taking some subset of api.Connection, since that interface is clearly way too big [20:06] natefinch: yeah, that's exactly where i'm headed [20:06] lol // This first block of methods is pretty close to a sane Connection interface. [20:06] natefinch: but first, need to change everything so it's not constructing new connections all over the place [20:07] natefinch: all of this so i can write an actual unit test [20:07] heh [20:10] I just had a brilliant idea... I can cross compile test binaries from my linux desktop and fling them onto a windows machine to run. [20:10] so I don't have to set up a dev environment on a windows machine just to run some tests [20:11] +1 [20:12] Bug #1614239 opened: bootstrap-timeout ignored in --config [20:15] cmars: ping [20:15] thumper, pong [20:16] cmars: I have a branch that modifies the signature of cmd Formatters, and I need to tweak romulus [20:16] but I notice that juju master is behind romulus master by 32 commits [20:16] is there anything that would break if we moved to latest? [20:17] thumper, only one way to find out [20:17] heh [20:17] ok [20:17] I'll just keep sloging forwards [20:17] thumper, i'd be happy to move juju/romulus/cmd/... commands over to cmd/juju/romulus or something [20:18] thumper, the coupling across these projects on juju/juju/cmd has been thorny [20:18] thumper, thoughts? [20:18] sounds good [20:18] but please wait until I'm done :) [20:18] thumper, ok! [20:19] thumper, in some cases, because of this coupling, it's difficult to land changes into juju/romulus with the bot [20:19] ah... [20:19] poos [20:19] thumper, because romulus lands based on tests against a revision of juju [20:19] yeah [20:19] fark [20:19] thumper, in those cases, ping me and i'll run the tests and just push teh green button [20:19] cmars: are you ok if I move the commands ? [20:20] thumper, sure, definitely [20:20] because I'll be messing with those [20:20] ok [20:20] * thumper adds to the list [20:57] Bug #1614256 opened: TestClaimExpire fails with "leadership claim denied" [20:59] rick_h_: FYI, figured out how to get in via RDP, needed to edit the security group the VM was a part of [20:59] natefinch: gotcha [21:00] * natefinch sups === natefinch is now known as natefinch-afk [21:15] Bug #1346597 changed: cannot get replset config: not authorized for query on local.system.replset [21:15] Bug #1575895 changed: juju loses apt-http/s-proxy information if a model is deleted and a new one created [21:43] Bug #1574963 changed: juju2 lxd launch hostname reverse lookup inconsistent [22:24] wallyworld: available for badgering? [22:24] ferreting perhaps? [22:24] general rodentry [22:24] now you're talking [22:24] standup HO? [22:24] standup ho? [22:25] hangout [22:25] in stand-up hangout? [22:35] cmars: https://github.com/juju/romulus/pull/61 [22:40] thumper, ok, cool. do you have the corresponding juju/juju branch for this yet? [22:40] working on it [22:40] I'll land in order [22:40] ffs [22:40] I don't want to say this [22:41] but wallyworld was right [22:44] yay!!!!!!! [22:45] now u've done it, thumper \o/ [22:48] must. not. say. I TOLD YOU SO :-D :-D [22:52] cmars: updated romulus branch for test depds [22:52] thumper, thx [22:55] damn it [22:55] * thumper headdesks [23:15] cmars: I'm making a dedicated branch for the romulus commands [23:16] thumper, sounds good [23:26] cmars: can you give a +1 to the romulus branch? [23:26] I'll need to refer to the new hash [23:26] thumper, ah, right. sure thing [23:27] thumper, go ahead and try $$merge$$ [23:27] ta [23:33] cmars: https://github.com/juju/juju/pull/6017 [23:34] cmars: it is very boring :) [23:36] thumper, looks good.. i'd like to do some QA on this branch, shouldn't take too long [23:38] thumper: happy fun times!!! http://reviews.vapour.ws/r/5465/ [23:38] cmars: ok [23:39] mmm so bootstrapping a controller in aws/us-west-1 then adding a model in us-east-1 should there be anything alive in us-east-1? === natefinch-afk is now known as natefinch [23:42] menn0: shpiit [23:42] or shipit [23:42] anastasiamac: invalidating my bugs, eh? [23:43] cmars: are you just testing that the commands are still there? [23:43] cmars: what exactly are you QAing? [23:44] wallyworld: doesn't seem that creating a new model in another region actually creates anything in that region. [23:44] wallyworld: so asking the model for it's current region might not do what we want. [23:45] i haven't tried myself yet [23:47] natefinch: according to axw, there is a config u need to do on ur environment ;) [23:48] anastasiamac: he said "use juju run" which is not really valid, since that means if juju is broken, you can't access the machine to figure out why juju is broken [23:50] natefinch: that was how you can do it now, not what I'm saying is the ideal way [23:50] natefinch: feel free to triage it differently.. first step is juju-independent tho :) [23:50] it's not invalid tho [23:50] I think we should make it easier/better [23:51] not sure what to do about the password [23:51] axw: good point about the password. not sure. wasn't there a spec somewhere about keeping secrets in juju? [23:52] natefinch: jam replied to a thread on the list about secrets, I don't know about a spec [23:52] redir: I need to go help with kids, if there's an issue with --region could you let me know how to repro and I'll look into it? [23:53] wallyworld, thumper, axw: I'm thinking about proposing this: http://paste.ubuntu.com/23065898/ [23:54] wallyworld, thumper, axw: is this ok or would you prefer these were kept as debug/trace [23:54] menn0: perhaps tracef, errorf is dumb tho [23:54] menn0: is it ever useful? [23:54] tracef [23:54] I agree with axw [23:55] thumper: the only one that could be useful to keep is the on in destroyHostOps [23:55] IMO [23:55] i'll just make them trace