/srv/irclogs.ubuntu.com/2014/06/11/#juju-dev.txt

waiganithumper: using Entity Tag now: https://github.com/juju/juju/pull/2200:17
waiganimy branches were all out of sync, had to pull, godeps, make check - back on track now00:18
wallyworldaxw: morning. would you have any time today or tomorrow to look at bug 1325830?01:15
_mup_Bug #1325830: Can't destroy MAAS environment with LXCs <destroy-environment> <landscape> <lxc> <maas-provider> <juju-core:Triaged> <https://launchpad.net/bugs/1325830>01:15
axwwallyworld: yep, I can take a look01:15
wallyworld\o/01:15
wallyworldaxw: i have to disappear for a couple of hours to have lunch with a friend who has had a death in the family. back a bit later01:16
axwwallyworld: :(  no worries, ttyl01:16
wallyworldyeah, car crash :-(01:16
thumperwaigani: ack, will look01:33
davecheneysinzui: ping01:45
davecheneydoes anyone know where the recipes for the precise builds of juju are ?01:53
davecheneywallyworld: axw  ?01:53
axwnope, sorry01:54
davecheneydamn01:54
davecheneywanna get the precise build up to go 1.201:54
davecheneyso we can resolve all the dependency issues01:54
davecheneydoes anyone know how juju even gets built for precise02:04
davecheneyI cannot find anything on the project page02:04
davecheneythere is no linkage from any milestone/series to a ubuntu series02:04
thumperdavecheney: I'm guessing *magic*02:14
rick_h_thumper: took my answer02:14
* thumper high fives rick_h_02:14
davecheneythumper: fond it02:15
davecheneywondering how I can copy the trusty package into this ppa02:15
davecheneyhttps://launchpad.net/~juju/+archive/golang02:15
thumperI appologise in advance for this massive branch02:18
thumperhmm...02:22
* thumper tries something02:22
davecheneygave up, sent email02:22
thumperwtf is github.com/bmizerany/pat ?02:23
rick_h_heh, someone else brought that up today02:23
rick_h_missed what the result of that was02:23
davecheneyyes02:23
davecheneywho landed that02:23
davecheney'twas jam in dae6b34802:24
thumperwhat is the command that does fetch and pull ?02:26
davecheneygit ?02:26
davecheneyor go ?02:26
rick_h_fetch and merge is done with pull02:27
thumpergit02:28
thumperrick_h_: but I don't want to merge02:28
thumperI just want to update master02:28
rick_h_ok, then don't use pull02:28
rick_h_git pull upstream master02:28
thumperrick_h_: so what do I use?02:28
* rick_h_ think you guys are using upstream to refer to the official juju repo02:28
davecheneyyup02:29
thumperrick_h_: ok, new question, interactively merge parts of another branch into the current one02:29
rick_h_thumper: git cherry-pick $commit? or you want per code block in the diff?02:29
thumperper code block02:29
rick_h_interesting question02:30
thumperah... here I was hoping that you'd know02:30
* thumper falls back on the push the entire massive branch up for review02:31
rick_h_thumper: http://stackoverflow.com/questions/449541/how-do-you-merge-selective-files-with-git-merge02:32
rick_h_"Git also has great support for doing “reverse” squashes where a single commit is split into multiple patches. Below is an example of how to split a commit that has multiple unrelated changes in the same file. "02:33
rick_h_http://magazine.redhat.com/2008/05/02/shipping-quality-code-with-git/02:33
thumperfuck that02:33
rick_h_lol02:33
thumpersorry reviewer02:33
* thumper needs to rebase02:34
rick_h_git cherry-pick --no-commit might also be useful02:35
* thumper is in conflict resolution hell02:41
thumperif this test run has no problem, fair dinkum it'll be a miricle02:45
* thumper sighs02:45
thumperspelling was never a strong suit02:45
axwoh fun, we've got an ICE on the bot trying to build the ec2 tests02:47
davecheneyice ?02:49
axwinternal compiler error02:49
davecheneygo ?02:49
axwprovider/ec2/live_test.go:1: internal compiler error: dgcsym: off=8589934928, size=589934736, type struct { overflow *struct { overflow *struct { overflow *struct { overflow *struct { overflow *<...>; keys [8]string; values [8][]instance.Id }; keys [8]string; values [8][]instance.Id }; keys [8]string; values [8][]instance.Id }; keys [8]string; values [8][]instance.Id }; keys [8]string; values [8][]instance.Id02:49
davecheneywow02:49
davecheneynever seen that one02:49
davecheneyoff and size are AFU02:50
thumperwow, that's weird03:01
thumperafter merging trunk, I get a test failure in the logging worker03:01
thumperfutz03:01
thumperI bet it isn't isolating the env var03:02
thumperyup03:04
sinzuidavecheney, lp recipes don't work with go. I upload source packages tot he ppa. I backported 1.2 the juju-packagers devel ppa a few weeks ago. 1.19.3 precise and saucy was built with it03:04
thumperin someones infinite wisdom of test refactoring, they have broken isolation03:05
sinzuidavecheney, as there are no reports of badness. I intend to build the 1.20 with it. I need to work with foundations though to discuss backporting 1.2 to ctools03:05
davecheneysinzui:  right03:05
davecheneycould you please reply to that thread and tell jamespage not to do anything then03:06
davecheneyi was obvkoiusly looking in the wrong03:06
davecheneyplace03:06
sinzuiokay03:06
davecheneybut that also means that mgz can land his branch to the code which uses go.crypto/ssh03:06
davecheneyand then juju builds from the trunk of all the source03:06
davecheney\o/03:06
davecheneyhttps://bugs.launchpad.net/bugs/131294003:08
_mup_Bug #1312940: Update to use gosshnew from go.crypto <ssh> <juju-core:In Progress by gz> <https://launchpad.net/bugs/1312940>03:08
* thumper running daughter down to hockey03:11
davecheneyaxw: where are the instructions for setting up origin and upstream branches03:12
davecheney?03:12
axwCONTRIBUTING.md03:12
davecheneyi thought they were in CONTRIBUTING.md03:12
axwthey're not?03:12
davecheneyi must be blind03:12
davecheneymaybe not on the branch I have03:12
* axw looks03:12
axwdavecheney: https://github.com/juju/juju/blob/master/CONTRIBUTING.md#fork03:13
davecheneyta03:13
davecheneyi must be looking at an old branch03:13
sinzuibugger. the arm64 machine fell of the net. I am removing it from the list of packages and tools to build to unblock CI from testing the current revision03:14
axwsinzui: is that go 1.2 PPA safe to add to our github merge job's setup already? we've got a compiler error that's likely to disappear if I upgrade it now03:17
axwthe next question being where is the PPA?03:18
sinzuiThe PPA is not used to test...we cannot wait hours or days to build packages to test03:19
axwhow will the unit test jobs get the 1.2 compiler then?03:19
axwthe precise ones anyway03:20
sinzuiaxw jamespage setup a private ppa that we build into. It is private because we need to ensure people do not download from it before I publish tools03:20
sinzuiaxw. We can copy the built packages to a public testing ppa. I can update the run-unit-test job to add the ppa for saucy and precise.03:21
axwsinzui: I'm talking about run-unit-tests-precise-amd64 for example, we'll need to update the go compiler on there03:22
sinzuiaxw. I can do that tomorrow when I am truely awake03:22
axwok03:22
sinzuiaxw, good point about that test I need to make the same change to the non-revision test03:23
* thumper sighs03:23
thumperHow do I squash my commits?03:23
thumperrebased with master already03:23
axwthumper: are you doing it interactively?03:23
mwhudsonyou can do it in rebase -i i think03:23
axwgit rebase -i03:24
thumperit says I'm up to date03:24
rick_h_cdid you merge master or rebase master, always rebase03:24
mwhudsongit rebase -i master03:24
sinzuithumper, I git rebase -i --autosquash master. Change all the the first commit it s (squash)03:24
sinzuithumper, git will let you revise the commit message in the next screen03:25
thumpersinzui: I tried that, it didn't work03:25
sinzuigit hates you03:25
thumperit does03:25
sinzuiit knows who you are03:25
axwah hrm, our merge job is running trusty and hence go 1.21.103:25
* thumper tries again03:25
axwcrapola03:25
sinzuihack on git-bzr and bzr-git and then only use bzr command03:25
thumperhow do I set the editor git uses?03:27
davecheney$EDITOR03:28
thumperit obviously doesn't honour EDITOR03:28
davecheneyit really does03:28
mwhudsonunless you've set core.editor03:29
sinzuithumper, It honour vi/vim, probably non-gui emacs03:29
* davecheney jarring chord03:29
davecheneyaxw: thanks for the review03:30
axwnp03:30
davecheneyi should be able to land this03:30
davecheneyand if all the bits are in place03:30
davecheneyit'll work03:30
davecheneyif not, it won't03:30
axwthe landing bot is 1.203:30
* davecheney fires forward missiles03:31
axweasy enough to back out if we need to03:31
sinzuiaxw, because landing bot is trusty right?03:32
axwsinzui: yep03:32
axwwe did talk about making it precise, but haven't yet03:33
davecheneyfail03:34
davecheneysure that bot is running 1.2 ?03:35
axwGet:90 http://us-east-1.archive.ubuntu.com/ubuntu/ trusty/universe golang-go amd64 2:1.2.1-2ubuntu1 [8,104 kB]03:35
davecheneyhmmm03:35
sinzuiaxw I can start the copy of the packages to https://launchpad.net/~juju/+archive/experimental now. the could be there in minute.03:35
* sinzui looks at the test that needs it03:35
axwsinzui: thanks, no rush. the test failure I've got is failing with 1.2 :(03:36
axwdavecheney: I think that something maybe running earlier on with go 103:37
axwdavecheney: the bit that creates the tarball I guess03:37
davecheneymaybe03:38
davecheneyi'm not sure a go 1.3 dependency didn't leak into go.crypto/ssh03:38
davecheneyaxw: i'm investigating03:43
axwokey dokey03:43
davecheneynot quite sure what is going on03:43
axwI will continue with my ICE picking03:43
davecheneyok03:43
davecheneyshitload of compiler errors from 1.2 are fixed in 1.303:43
sinzuiall hell is breaking loose. I cannot ssh to the CI machines in lcy0203:44
sinzuiWhy couldn't this fail during my work hours03:44
davecheneysinzui: you know how these things work03:45
sinzuiI think fate is pushing me to move all canonistack testing to lcy01... I setup a slave to test kvm there saturday03:46
sinzuiand the ppc slave just went offline because the gateway is gone03:48
* davecheney sound of air being let out of a baloon03:49
thumperwallyworld, menn0: this is a big one... https://github.com/juju/juju/pull/6803:49
thumpersorry about that03:49
davecheneythumper: you did all this in one commit :)03:49
menn0queue jokes about thumper's big branch...03:50
menn0menn0: reviewing now03:50
thumperdavecheney: squished it03:50
thumperI'd prefer to work out my pipeline workflow with git03:51
thumperthen it would have been much nicer03:51
thumperas bit as it is, it should be fairly straigh forward03:51
menn0it might be worth looking at Stacked Git. I haven't used it before though.03:52
thumpermenn0: I did look at it, not really suitable for what I want03:53
menn0can someone tell me what Juju uses for the mongo db username and password? I'm trying to connect using mongo shell03:53
davecheneymenn0: admin user ?03:54
davecheney^ note, guess03:55
menn0that's what I figured too but that doesn't seem to work03:55
davecheney:sadface:03:55
davecheneyaxw: still investigating03:55
menn0here's what I'm doing: mongo 127.0.0.1:37017/juju-db --ssl --username admin --password <env's admin password from .jenv>03:55
davecheneymy trusty vm is installing the internet03:56
menn0I get "login failed"03:56
* menn0 hunts through the code03:56
davecheneylogin failed tells you it's working03:57
menn0?03:57
davecheneysorry, that wasn't helpful03:57
davecheneygot 660, 92% complete03:58
davecheneylarge update is large03:58
axwbleh. changed from using a function literal to a struct+method and it goes away...03:59
* davecheney sobs04:00
axwdavecheney: btw yeah, whatever it is is fixed in 1.3 - I'm using rc104:02
davecheneyaxw: i cannot reproduce that failure on a clean machine04:10
davecheneydfc@trusty:~$ go get -u -v code.google.com/p/go.crypto/ssh04:10
davecheneycode.google.com/p/go.crypto (download)04:10
davecheneycode.google.com/p/go.crypto/ssh04:10
davecheneydfc@trusty:~$ go version04:10
davecheneygo version go1.2.1 linux/amd6404:10
axwdavecheney: tried with go1? pretty sure the tarball creation is done on precise04:10
davecheneythis won't work on go104:11
davecheneyaxw: the bot should be doing04:11
davecheneygo get -d -v04:11
davecheneyis it possible to make it do that ?04:12
* axw looks what it's doing04:12
davecheney(it won't be using -d)04:12
axwthis part is part of common CI, so I need to check if/how to change it04:12
davecheneyor, can you apply the go 1.2 deb ?04:13
davecheneythat will also solve the problem04:13
davecheneyand we get precise and trusty build coverage to boot04:13
axwdavecheney: heh, the problem is that it can't build godeps04:17
axwre 1.2 on the box, not my call. it's sinzui's machine. he said he'd update it tomorrow I think04:18
davecheneyok04:18
davecheneythanks04:18
sinzuiI just copied the packages to the ~juju/experimental ppa. The tests will use them tomorrow04:18
davecheneysinzui: what about updating the version of Go on the jenkins host ?04:19
sinzuidavecheney, We don't compile there or run unit tests on it04:19
davecheneysinzui: compilation happens04:20
davecheneyhttp://juju-ci.vapour.ws:8080/job/github-merge-juju/93/console04:20
sinzuidavecheney, not my job04:20
davecheneythis is building because go get will compile anything it downloads04:20
sinzuiAnd last I saw, that job ran in an instance, not in jenkins04:20
davecheneyStarted by remote host 54.86.142.17704:21
davecheneyBuilding on master04:21
davecheneyhttp://juju-ci.vapour.ws:8080/computer/(master)/04:21
davecheneymaster jenkins node04:21
axwsinzui: it's building the tarball04:21
axwsinzui: that needs godeps, and it's having problems doing that it seems04:21
davecheneysinzui: there are two solutions04:21
thumperheh, I'm sure the non-americans here would appreciate that the A0 paper size is by definition one square meter04:21
davecheney1. use go get -d, which will skip building anything it go get's04:21
davecheneyor upgrade to go 1.204:22
axwhmm actually it mustn't be to do with godeps, it was building that fine before04:22
* axw looks again04:22
axwit's building them on there. we could just change it to do this all on the lander04:23
sinzuidavecheney, That job builds the tarball locally. the actual building and testing happens in a ubuntu instance provisioned by the test. I think that ami is trusty04:23
sinzuimgz, know the details04:23
axwsinzui: the tarball gets built on the jenkins host, but we can change that04:23
axwand part of building the tarball seems to be to run "go build ./..."04:24
davecheneyaxw: i think it's running go get launchpad.net/juju-core/... to fetch all the dependencies04:24
davecheneythen runnig godeps -u ... to switch their revisions04:24
axwdavecheney: I can show you the script if you like. it first does "go get -d <stuff>", then builds/runs godeps, then runs "go build ./..."04:25
sinzuiYes, but that those are stripped out of the packaging, and the test rebuilds with the local compiler. The cargo culted test ruins on many series and archs, and the build is redone with the proper compiler04:25
davecheneyaxw: ok, if it's doing go build ./...04:25
davecheneythen the machine running that needs to run go 1.204:26
axwyeah, we'll just fix the lander script to do all this on the lander04:26
sinzuiI advised mgz to switch the to run-unit-tests which I can change to use specific golang.04:26
davecheneym'kay04:26
axwsinzui: no worries, we know what the issues is so we can deal with it now04:27
davecheneythanks sinzui04:27
davecheneythanks axw04:27
thumpermenn0: did you want to chat about the review, or is it all good?04:27
menn0thumper: still looking04:28
menn0thumper: all ok so far. just some minor suggestions so far04:28
menn0thumper: one thing. github.com/juju/juju/state/factory is just for testing right?04:29
thumpermenn0: yes04:29
thumpermenn0: it imports gocheck04:29
menn0the module name doesn't really indicate that04:29
thumpermenn0: I wanted a name that wasn't "testing", and moved it out of "state/testing" for that reason04:29
thumperwe have a proliferation of testing packages...04:30
thumpercould move it to be under a testing package...04:30
thumperthat may make it more obvious04:30
thumpertesting/factory maybe04:30
menn0that might be worthwile.  github.com/juju/juju/state/testing/factory04:30
menn0 github.com/juju/juju/testing/factory is good too04:31
menn0thumper: also, given that all the factory does is make stuff what about User() instead of MakeUser(). Some of the places that are now using the factory are much longer then they used to be.04:32
thumpermenn0: longer yes, but clearer IMO04:33
thumperre: User, maybe...04:33
thumperI'd like to get wallyworld's input04:33
thumperand maybe axw04:33
thumperwallyworld because he understands the idiom from launchpad04:34
menn0this is a definite win: -cs.State.AddUser(state.AdminUser, "", "pass")04:34
menn0 +cs.State.AddAdminUser("pass")04:34
menn0but i'm not sure that this is:04:34
menn0-_, err = s.State.AddUser("arble", "", "pass")04:34
menn0 +s.factory.MakeUser(factory.UserParams{Username: "arble"})04:34
thumperI do kind of like the verb-noun aspect of MakeUser04:34
menn0I see that04:35
thumpermenn0: the clear bit of the second is that you don't have to modify all the call sites when you change how you make users04:35
thumperlike I did by changing params to state.AddUser04:35
menn0completely agree with that04:35
thumperalso04:35
thumperdon't need to check err04:36
thumperas the factory does that04:36
menn0totally agree that that's better too04:36
thumperI feel that the slightly longer line is better for clarity of intent04:36
menn0my only (minor) gripe is that the lines are bit harder to grok now04:36
menn0overall it's a win I suppose04:36
* menn0 misses keyword args04:37
thumperwell, I'd prefer: s.factory.MakeUser(username="arable")04:37
thumperbut we can't do that04:37
* menn0 nods04:37
menn0keep it the way it is04:37
thumperthis is my attempt to take a good python testing pattern and use it here04:37
menn0it's definitely better than before04:37
thumperI think so04:38
thumperI think also as the factory grows other methods04:38
thumperlike MakeMachine, MakeService...04:38
thumperetc04:38
thumperMakeUnit would MakeService and MakeMachine by default...04:38
thumperthat type of pattern04:38
menn0yep that all sounds great04:38
menn0of course the methods could just be Machine, Service, Unit :)04:39
thumperbut if you have a service called Machine...04:39
menn0so you get: s.factory.Unit(...), s.factory.Service(...)04:39
thumperit doesn't say what04:39
thumpermeh...04:39
menn0I actually don't care that much04:39
thumperjust being devil's advocate?04:40
menn0yes04:40
menn0I usually prefer verb-noun myself04:40
menn0idea: you could call the factory field itself "make" so the calls look like: s.make.User(...), s.make.Unit(...) etc :)04:41
menn0probably too confusing for the uninitiated04:41
menn0but more concise04:41
thumperhaha04:44
thumperhmm...04:44
thumperI do expect that we'll end up with some form of DSL for tests, but this may be taking it a step too far :)04:45
=== vladk|offline is now known as vladk
* thumper hasn't got any lxc fixes done yet...04:46
thumperbad thumper04:46
menn0thumper: review done. I've included the relevant bits from our discussion here.04:50
thumperok, ta04:50
menn0thumper: it should have been about PRs right? :)04:51
menn0about 3 even04:51
thumperyeah...04:51
thumperif I was using bzr, it totally would have been04:51
thumperbut I don't yet know how to do this easily with git04:52
thumpermenn0: I'm thinking about the MakeAnyUser...04:52
thumpermay well be worth it04:52
thumperfor the general use case04:52
menn0thumper: it's a minor thing but it's going to get used a lot04:52
thumperthat way the caller doesn't need to import the package to get a random thing04:53
thumperif the factory is in the base suite04:53
* thumper nods04:53
thumperI agree with making the default thing very easy04:53
=== vladk is now known as vladk|offline
menn0yep that alone makes it worthwhile04:53
* thumper does that04:53
menn0completely unrelated question... how do you figure out which state server is master?04:54
waigani_just created a tag from a string in order to get that string from the tag04:55
waigani_there's a bit of code I'm pretty proud of!04:55
thumperno idea sorry menn004:58
menn0I've found a manual way to do it04:58
menn0connect using mongo shell until the prompt says "PRIMARY" :)04:58
menn0(trying each machine)04:59
thumperwallyworld,axw: is the bot wedged? there seem to be many pending merges05:03
* wallyworld looks05:03
axwit's currently idle05:04
axwmy build passed not long ago05:04
wallyworldlast run was 30 mins ago05:04
thumperok05:06
wallyworldthumper: i just ran the lander by hand, it claims no pull requests05:07
thumperok05:07
wallyworldthumper: JujuConnSuite is kinda evil but convenient05:08
davecheneythumper: where is your $$merge$$ comment05:08
davecheney?05:08
wallyworldshould the factory be a fixture?05:08
wallyworldthumper: also, one of the cts guys has volunteered to fix some juju bugs. i could get him to look at local provider usability - improved status etc, or whatever else05:09
wallyworldthat way you're  not on the hook for it05:10
waigani_thumper: your factory looks great :)05:13
thumperwallyworld: I think so05:14
wallyworldwhich question?05:14
thumperdavecheney: almost there...05:14
thumperjust fixing something05:14
davecheneyok05:14
thumperwallyworld: what do you mean by "should the factory be a fixture" ?05:14
* thumper is in and out of the office to help make dinner05:15
wallyworlddon't add it to JujuConnSuite  - introduce a new Suite with the factory05:15
wallyworldlike the FakeHome fixtures05:15
wallyworldJujuConnSite will hopefully die at some point05:16
wallyworldbut it's convenient i know05:16
wallyworldif you had some specific local provider issues logged as bugs, let me know. the initial template image delay progress would be one05:17
thumperwallyworld: it needs a state connection05:20
thumperwallyworld: so, ackward05:20
wallyworldyes it does, you are right05:20
wallyworldi guess JujuConnSuite is the right place then for now05:21
thumperwallyworld: I did a bare minimal state thing for the factory_test05:21
thumperit would be good to get a base test suite that isn't as bloated as the JujuConnSuite05:22
thumperok, merge is accepted, I'm done for the day05:22
thumperlater ...05:22
wallyworldaxw: will your change to stop instances to ignore containers break the local provider?05:24
axwwallyworld: no, because they're not containers as far as state is concerned05:24
wallyworldnp, just thought i'd check :-)05:25
axwthey're top-level machines that just happen to be implemented as containers05:25
wallyworldyup, sounds good. can't e too careful :-)05:25
=== vladk|offline is now known as vladk
=== vladk is now known as vladk|offline
dimiternmorning all06:54
=== alexlist` is now known as alexlist
rogpeppe1ha, you can't add review comments on github unless they're actually part of the diff07:45
rogpeppe1that's so bogus07:45
TheMuehmm, my branch doesn’t get merged, despite the $$merge$$08:09
axwTheMue: is your membership public?08:10
TheMueaxw: eh, where can I check this?08:10
axwhttps://github.com/orgs/juju/members08:11
axwthe answer is no08:11
axwmake it public, and your $$merge$$ comment will count08:11
TheMue*sniff* I’m not public08:11
TheMueaxw: thx, will change08:11
axwnp08:11
voidspacemorning all08:41
mattywvoidspace, morning08:43
TheMueaxw: now it tells me that the PR is not mergable, any idea? it only contains a new document, nothing else.08:45
axwTheMue: that's a strange transient error from GitHub we've seen a bunch08:46
axwTheMue: you'll have to $$merge$$ again I'm afraid08:46
mattywaxw, have you got a moment to talk about the feedback here: https://github.com/juju/juju/pull/64?08:47
mattywaxw, and by that I mean options for making the output better08:47
axwmattyw: briefly, I've got a standup to go to in 10m or so08:47
TheMueaxw: ok, thx again08:47
axwmattyw: I made that comment after seeing what the output looks like from the test case you wrote08:48
axwit's all sorta glommed together and hard to read08:48
axwmattyw: by which I mean the tools in the format a;b;c;d;e;f08:48
mattywaxw, ok, I could just split the context.tools up by the different tools and print each on a new line, it might look weird in the log, but to console it might looks ok08:49
axwhm, forgot about the log...08:49
axwmattyw: maybe just leave it for now, if people are actually bothered we can change it08:50
mattywa tiny part of me wonders if the whole command could output in yaml or json (using cmd.Output) when it's in dry mode, but that feels like overkill - and doesn't really solve our problem either I think08:50
axwyeah I certainly wouldn't bother going that far08:50
mattywI could also split the tools up and log each line - there's the chance the tools could get split up in the log08:51
mattywbut it would probably be fine08:51
axwmattyw: I reckon either leave it as is, or change to ", " separator08:51
axwI'm not *that* fussed, it just looked a bit funky08:52
wallyworldfwereade: hiya08:53
fwereadewallyworld, heyhey08:53
fwereadewallyworld, still chugging through that giant review, I'm afraid08:54
wallyworldno problem, sorry08:54
wallyworldfwereade: i start out to fix some of our intermittent CI bot failures and the branch ended up refactoring a bit of mongo stuff08:54
fwereadewallyworld, I guess you could have created the new package before using it, but nbd08:54
fwereadewallyworld, despite my cornucopia of nitpicks it's a fantastic change08:55
wallyworldfwereade: you mean the txn stuff?08:55
wallyworldyes, i could have created it but... git08:55
fwereadewallyworld, yeah, I'm not far enough up the page to see what else you did08:55
wallyworldtoo hard to break stuff up08:55
fwereadewallyworld, indeed :)08:55
wallyworldfwereade: would you hate me to take a look at another change referneced above?08:56
wallyworldfwereade: i start out to fix our08:56
wallyworldbah08:56
wallyworldhttps://github.com/juju/juju/pull/7208:56
wallyworldi have a theory as to why we are getting timeout errors in tests08:56
wallyworldon the bt for various mongo operations08:56
mattywaxw, thanks for the feedback, I'll see if I can come up with something better without changing too much08:57
fwereadewallyworld, I would be delighted to, especially if it's fixing that stuff :)08:57
wallyworldbut it ended up turning into refactoring - getting a bunch of mongo stuff out of state08:57
fwereadewallyworld, I think I'll try to finish this one first08:57
wallyworldand moved from agent/mongo into top level mongo08:57
wallyworldnp, just thought you'd want an opinion on it08:57
axwmattyw: cheers08:57
fwereadewallyworld, that also sounds pretty awesome08:57
axwmattyw: btw did you end up looking into the port range bug?08:58
wallyworldfwereade: i need someone to double check - i removed the deprecated AddUser and replaced with UpsertUser08:58
wallyworldanyways, only when you get time08:58
fwereadewallyworld, txn with both insert and update?08:58
wallyworld?08:58
fwereadewallyworld, was asking what you meant by upsert08:59
axwit's an mgo thing08:59
wallyworldoh, that's a mongo api call08:59
axwinsert or update I think08:59
wallyworldyup08:59
fwereadewallyworld, axw, I know what is normally08:59
fwereadewallyworld, axw, not clear how it integrates with mgo/txn08:59
mattywaxw, I looked into it a little, not done anything yet. I have some "ideas" I'd like to discuss with an adult before I do anything08:59
wallyworldfwereade: the mgo driver docs say to use Upsert from 2.4 onwards09:00
fwereadewallyworld, axw, and would kinda prefer to keep mongoisms out of the state interface as much as possible09:00
axwmattyw: heh :)  okay. I'm interested in it too, would like to hear your thoughts some time09:00
wallyworldfwereade: it's a direct replacement mgo.AddUser becomes mgo.UpsertUser09:00
fwereadewallyworld, ah!09:00
wallyworldstate calls it09:00
wallyworldsorry09:00
wallyworldbad comms09:00
fwereadewallyworld, sorry, I see, it's for actual*mongo* users09:00
fwereadewallyworld, that sounds fine09:00
wallyworldyeah, sorry09:00
wallyworldUpsert needs roles defined09:01
wallyworldnot just readonly=true/false like adduser09:01
wallyworldso i need my choice of roles checked09:01
mattywaxw, there was a comment on the bug by fwereade that I need to ask about as I don't understand the implication: https://bugs.launchpad.net/juju-core/+bug/1216644/comments/209:02
_mup_Bug #1216644: allow open-port to expose several ports <addressability> <improvement> <strategy> <usability> <juju-core:Triaged> <https://launchpad.net/bugs/1216644>09:02
wallyworldmgz: axw: quick standup?09:03
axwwallyworld: be there in a sec09:03
axwmattyw: not entirely sure, but we use a security group for each instance to firewall ports unless explicitly opened ("firewall-mode: global" changes this behaviour)09:03
axwmattyw: we'll probably want to change things around to use iptables on each machine, so they manage their own firewalls09:04
axwmattyw: then nuke the security groups09:04
fwereademattyw, ah, are you working on that bug?09:06
fwereademattyw, let's chat in 5 mins?09:06
mattywfwereade, I'm not, but I started looking at it yesterday to see if I could work on it09:06
fwereademattyw, it's pretty massive I'm afraid09:07
mattywfwereade, I think I have enough to keep me busy for this week, but it might be good to discuss it so we can get a plan for it?09:07
fwereademattyw, ok, let's have a hangout and I will braindump issues at you until you cry ;p09:08
mattywfwereade, just ping me when you're ready09:10
=== vladk|offline is now known as vladk
rogpeppe1this PR removes the charm package from juju-core. reviews appreciated (it's all mechanical change) https://github.com/juju/juju/pull/7409:21
rogpeppe1dimitern, fwereade, axw: ^09:21
rogpeppe1fwereade, jam: just about to create a new repo for the charm store. wondering about names. thinking of "charmstore" rather than "store". what do you think?09:24
fwereaderogpeppe1, +109:24
jamrogpeppe1: sgtm09:24
rogpeppe1fwereade, jam: ok, will do, thanks09:25
rogpeppe1i think it's ok even though it will also be used to store bundles09:25
dimiternrogpeppe1, looking09:25
dimiternrogpeppe1, reviewed +1 question09:27
rogpeppe1dimitern: thanks09:28
wallyworldfwereade: thanks wading though my txn bibs and bobs, i'll start addressing the concerns but won't be done till tomorrow. i got sidetracked today on fixing more CI bot failures (mgo timeouts)09:51
voidspacerogpeppe1: ping09:52
rogpeppe1voidspace: pong09:52
=== rogpeppe1 is now known as rogpeppe
voidspacerogpeppe: do you have a minute or two to chat?09:53
rogpeppevoidspace: sure.09:53
jamfwereade: dimitern: so I'm slowly resolving the conflicts and bringing my API versioning stuff over to git. Unfortunately it touches a lot of stuff, and we're moving code all over the place, so it is a bit slow going. However the first step of having the RPC code support versioned requests has been done.09:55
jamWould you like to review it now? I took the opportunity to do it in a "more compatible" way with the existing infrastructure, since I have to work my way up the stack anyway09:55
jamIt isn't *much* different than before, but it means we do expect to know about the type when we lookup what method to call, but we don't expect a concrete object until we actually make the call.09:56
dimiternjam, I'll definitely have a look - what's the link?09:57
jamdimitern: I haven't created a pull request yet but https://github.com/jameinel/juju/tree/api-versioning09:57
jamI wasn't going to do a PR for something in progress that nobody wanted to review. but I can do one now09:58
jamdimitern: fwereade: https://github.com/juju/juju/pull/7510:01
dimiternjam, cheers10:01
fwereadejam, I will try to get to it as I can, I am slowly grinding through the reviews while not otherwise engaged10:01
jamfwereade: understood10:02
jamyou just looked at the code before, so I thought it might be "faster" for you to look at the new version10:02
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
jamvladk: standup ?10:48
rogpeppe1fwereade: how would you feel about moving cmd/{charmd,charmload,charm-admin}into github.com/juju/charmstore ?11:21
rogpeppe1fwereade: then there's nothing in juju-core that depends on charmstore11:21
rogpeppe1jam: ^11:21
jamrogpeppe1: aren't those the ones that just exist to build the charm tools ?11:22
jamI'm trying to remember what they actually do11:22
jam(clearly I'm *very* attached to where they are today :)11:22
rogpeppe1jam: they're commands that talk to the store11:23
=== vladk is now known as vladk|offline
rogpeppe1mgz: ping11:31
mgzrogpeppe1: hey11:32
rogpeppe1mgz: when you fetch dependencies in the 'bot, do you use "go get -t" ?11:33
rogpeppe1mgz: to fetch testing dependencies too11:33
mgznope11:33
rogpeppe1mgz: hmm, i wonder if godeps -t should fetch only testing dependencies of the initially mentioned packages, and not recursively11:34
=== BradCrittenden is now known as bac
mgzwe don't have any test-only deps at present right?11:34
rogpeppe1mgz: yeah, we do11:34
rogpeppe1mgz: github.com/bmizerany/pat imports github.com/bmizerany/assert, but only for its tests11:35
mgzah, I saw those got added, but not the context11:35
rogpeppe1mgz: so when i did "godeps -t ./... > dependencies.tsv", that package (and a couple more) showed up11:35
rogpeppe1mgz: but the 'bot isn't fetching them, so the PR failed11:35
mgzrogpeppe1: can we even use either of those branhces?11:37
rogpeppe1mgz: how do you mean?11:38
mgzoh, I guess he's sort of got it licenced11:38
mgzthe first one has it at the bottom of the readme and the other says, but does not include "MIT licence"11:38
mgzdon't seem like the best deps ever though11:39
rogpeppe1mgz: i'm not that happy about their inclusion, tbh11:39
mgzwhat's requiring them?11:39
mgzassert at least seems totally redundant with what we have anyway11:40
rogpeppe1mgz: the new dispatch code in state/apiserver/apiserver.go11:40
rogpeppe1mgz: this is only for the tests in bmizerany/pat11:40
rogpeppe1mgz: so we don't actually need those deps, as long as we don't run those tests11:40
rogpeppe1mgz: i think i'm best off just excluding secondary testing deps from godeps output11:41
rogpeppe1mgz: the godep tool does that, it seems11:41
mgzwhy is it the charm splitting pr...11:42
mgzah, it's unrelated cleanup? I'm generally confused11:43
rogpeppe1mgz: it has always been supposed standard practice to generate dependencies.tsv by doing "godeps -t ./... > dependencies.tsv"11:44
rogpeppe1mgz: so i did that, and ended up with these new deps11:44
mgzyeah, and then you get the blame on unrelated breakage11:45
rogpeppe1mgz: yeah11:45
rogpeppe1mgz: it's ok, i'm removing the deps explicitly11:45
mgzrogpeppe1: can you un-change the dependencies.tsv for now, land your branch, and post to the list about this?11:45
rogpeppe1mgz: doing that11:45
rogpeppe1mgz: we'll see if it lands ok now11:46
mgzrogpeppe1: thanks11:46
rogpeppe1mgz: i've fixed the godeps tool11:54
mgzI shall pullet11:55
mgzjust chicken out the branch now11:55
bodie_https://github.com/GoogleCloudPlatform/kubernetes12:08
bodie_this is going to make some waves12:09
bodie_methinks12:09
bodie_morning!12:09
fwereaderogpeppe1, oops, sorry I missed you: yes, move the store cmds into store12:13
rogpeppe1fwereade: cool12:13
rogpeppe1fwereade: that will require factoring out cmd too. do you think github.com/juju/cmd is a reasonable name?12:15
fwereaderogpeppe1, yes, that's fine by me12:15
bodie_oh, fwereade regarding the schema validation -- Jeremy raised the point that proper json-schemas don't look much like the samples we're working with in our tests12:15
fwereaderogpeppe1, I'm trying to remember who else was talking about doing that12:15
bodie_https://github.com/juju/docs/pull/117#commitcomment-660148312:15
fwereaderogpeppe1, whoever it was, you should talk to them12:15
bodie_actually, I'll move this content to skunkworks12:15
rogpeppe1bodie_: hiya12:15
* fwereade congratulates self on providing clear and useful direction :/12:16
rogpeppe1bodie_: did you find out what was causing that infinite recursion?12:16
bodie_no, I just got up12:16
rogpeppe1bodie_: (FWIW, i'm concerned about that - it's a definite possible DOS attack)12:16
=== vladk|offline is now known as vladk
rogpeppe1bodie_: np12:16
bodie_yeah, it's concerning12:16
rogpeppe1i'm worried that we're taking on board this whole huge json-schema standard when we really don't need anything nearly so complex12:17
bodie_right.  our original PR actually didn't use json-schema at all12:17
rick_h_rogpeppe1: just keep in mind that while it starts out in actions, it's on the roadmap to use it for charm/bundle config12:18
bodie_mostly because I hadn't been shared the google doc where Mark was indicating his interest in json-schema12:18
rogpeppe1rick_h_: i realise that. it still seems like overkill though.12:18
rogpeppe1rick_h_: we could define something really simple that would probably be sufficient and easy enough to implement in a short amount of time.12:18
rogpeppe1the json-schema thing seems mostly like "here's a standard that we can point to; then all our problems will go away"12:19
rick_h_rogpeppe1: no doubt. However there's merit in getting on board with a published standard and help us with some of the lack of definition we hit with juju models.12:20
rick_h_rogpeppe1: but yea, I'd not heard about it until Mark S linked it and got us investigating on it12:20
bodie_anyway -- (also fwereade), when I had it parsing out of a file, it wasn't validating these "simplistic" schemas anyway12:20
rogpeppe1rick_h_: i'd heard about it, but wrote it off when i actually looked at it12:20
rick_h_rogpeppe1: I guess we're also less resistant as we've got a good set of tools on the JS end currently and json fits our life great anyway12:21
bodie_wasn't *invalidating* them12:21
bodie_honestly, rogpeppe1 I believe that if we run with it a bit, I think it won't be that bad, mostly because we've cleared the hurdles around it12:21
rogpeppe1rick_h_: what kind of thing are you thinking of when you say "the lack of definition we hit with juju models" ?12:21
bodie_now that it's in State, it should be a simple matter of x := gojsonschema.NewJsonSchemaDocument(Actions()["snapshot"].Params)12:22
bodie_x.Validate(incomingJsonBlob)12:22
rick_h_rogpeppe1: 'what can I put in here?' in config, actions will need to be very clear, relations are painful for new people to work with as they're not clear.12:22
bodie_for errorValue := range x.Errors() or whatnot12:22
rick_h_rogpeppe1: it's the 'with great flexibility comes a lack of clear immediate understanding' kind of thing12:22
bodie_and, that's pretty much the whole kit n' kaboodle12:22
* fwereade needs to be away to laura's school for a while, back later12:31
rogpeppe1rick_h_: it would help if relations config attributes were at least documented *somewhere* :-)12:33
rick_h_rogpeppe1: yea, just playing a bit of devils advocate for the idea of using jsonschema :)12:33
rogpeppe1rick_h_: i'm definitely not against using some kind of schema12:34
rogpeppe1rick_h_: i just think that json-schema is yet another example of a W3C-style bloated and unnecessarily complex standard.12:35
rogpeppe1rick_h_: which is a shame, because there's a possibility for something really nice in this space12:35
bodie_on a side note, I think I'm going to discard the meta-validation branch12:37
rogpeppe1bodie_: sgtm for the time being12:37
bodie_it's not doing anything for us as far as I can tell (it wasn't discarding simplistic schemas) and it's turning into a more complicated problem than I had hoped, it was really more of a simple experiment12:37
rogpeppe1bodie_: but i'd really like to get to the bottom of why it went infinitely recursive12:37
bodie_yeah12:38
rogpeppe1bodie_: it's something to do with the {"$ref": "#"}, i think12:39
rogpeppe1bodie_: at least that's one portion of the infinite recursion12:39
rogpeppe1bodie_: i don't know what that's supposed to mean though12:40
bodie_well # is just a URL fragment with no path12:40
bodie_so, it's a json-reference, I think12:40
rogpeppe1bodie_: so what's it meant to mean as a reference?12:40
bodie_not sure I could tell you12:42
bodie_jdorn might know12:42
bodie_http://json-schema.org/latest/json-schema-core.html12:43
bodie_er12:43
bodie_http://json-schema.org/latest/json-schema-core.html#anchor3012:43
bodie_I suppose it's a reference to the root document12:43
bodie_so, you're probably right that it's where the recursion is coming in12:43
rogpeppe1bodie_: yeah, i'd just come to that conclusion12:45
bodie_https://github.com/binary132/gojsonschema/blob/master/schemaDocument.go#L63912:45
rogpeppe1bodie_: it's actually a desired recursive definition12:45
bodie_I guess because it's its own schema12:46
bodie_which means, a recursive self-reference like that shouldn't break it :/12:51
rogpeppe1bodie_: i don't think that's the reason12:51
rogpeppe1bodie_: i think it's because it's actually defining a self-referential type12:52
rogpeppe1bodie_: similarly to how you'd define a linked list using struct types12:52
rogpeppe1bodie_: or a grammar12:52
bodie_I wonder if the recursion is happening here: "$schema": "http://json-schema.org/draft-04/schema#"12:53
bodie_normally, that would be a reference to the same URL as the document itself12:54
bodie_but in our case, it's a reference to a remote document12:54
bodie_rogpeppe1, I see what you're saying, I think that's right12:55
bodie_in other words, schemaArray.items are themselves conformant to json-schema as a whole, i.e. are json-schema documents12:55
rogpeppe1bodie_: the $schema thing isn't the problem12:55
rogpeppe1bodie_: it still does the same thing without that12:55
rogpeppe1bodie_: yup12:55
bodie_I just don't see why it would work fine as a file reference or URL reference, but not when loaded as a string12:56
bodie_maybe encoding/json is altering something12:56
rogpeppe1bodie_: i doubt it12:56
bodie_I don't think that makes sense, but it's the only thing I can think of12:56
bodie_or there's a different logical chain that gets followed if it's a url vs a map12:57
rogpeppe1bodie_: it's something to do with that, i'm pretty sure12:57
bodie_https://github.com/binary132/gojsonschema/blob/master/schemaDocument.go#L3812:57
rogpeppe1bodie_: there's something called a "pool" which gets looked up in jsonreference12:57
rogpeppe1bodie_: and i suspect that's not filled correctly12:58
bodie_case string = URL, case map = the one that has a problem, that we're using12:58
rogpeppe1bodie_: i bet the pool caches the result of its Get12:58
bodie_well13:03
bodie_rogpeppe1, I'm seeing that the getFileJson / getHttpJson methods use interface{} for unmarshaling rather than map[string]interface{}13:04
bodie_it seems kind of silly, but it's possible there's a wonky type switch happening somewhere13:05
bodie_but, I guess that JSON would unmarshal as a map[string]interface{} even if it was getting unmarshaled into an interface{}13:06
bodie_so that seems like a dead end13:06
bodie_I need to get a shower and eat before my meeting with mark... :/13:07
bodie_really stressful to feel bogged down in this point of the project13:07
bodie_but, it is what it is13:07
bodie_you're right that json-schema caused much more complication than we expected13:08
rogpeppe1bodie_: i've reduced the test case to this: http://paste.ubuntu.com/7628481/13:08
rogpeppe1bodie_: it's probably not yet minimal, but it's much smaller13:08
rogpeppe1bodie_: here's some code i've been using to repo the issue: http://paste.ubuntu.com/7628485/13:09
bodie_rogpeppe1, do you have that on a branch in your github?  I'd already thrown out my branch and local copy13:09
bodie_ah, I see13:09
rogpeppe1bodie_: you can always get your branch back via the reflog13:10
bodie_interesting, i've never used reflog13:10
rogpeppe1bodie_: i also put a log print somewhere in the recursion so that i can do go run tst.go 2<&1 | head -10000 | wc13:11
rogpeppe1bodie_: to avoid the runaway process chewing up all my resources13:11
rogpeppe1bodie_: reflog is indispensible sometimes13:11
rogpeppe1bodie_: branches only get GC'd after 30 days13:11
bodie_awesome13:12
bodie_well, that's a relief, it's not something to do with the additions I made to gojsonreference13:16
bodie_or rather, reductions / surgical alterations :P13:16
mattywdimitern, ping?13:16
natefinchbodie_, rogpeppe1: it seems like we could save a ton of time by just defining our own super simplistic schema.  Name, Description, Type(Bool, Int, Float, Date, String).  Done.  Could be coded up in like 20 minutes, does everything we need it to do.13:21
rogpeppe1natefinch: we already had that13:22
rogpeppe1natefinch: but we need something that can be deeper13:22
rogpeppe1natefinch: i suggested something like: T: int | float | string | bool | struct (field: T, ...) | map (T) | array (T)13:22
rick_h_natefinch: right, but for actions we need thinks like urls, file paths, and such13:22
natefinchrick_h_: I hear you saying strings, strings, and such13:23
rogpeppe1rick_h_: but do those things need to be verifiable as such in the schema?13:23
rick_h_natefinch: and soon extensions like resource locations and the like.13:23
natefinchand more strings13:23
rogpeppe1i tend to agree with nate here13:23
bodie_so, we're having a face-to-face with mark in about half an hour here, I'm uncomfortable coming to him and presenting "we're arguing about whether we need json-schema on the backend"13:23
natefinchbodie_: make rogpeppe1 do it ;)13:23
bodie_sigh, he's got a very valid point that if we're permitting users to define charms that stack explosions, that's bad13:24
bodie_*cause*13:24
rogpeppe1bodie_: it's a bunch of code that we didn't vet, and we don't understand13:25
bodie_and then we start getting into constraining json-schema, rooting around for certain keys and certain values on those keys, we don't necessarily have a perfect picture of what's broken, anyway13:25
rogpeppe1bodie_: and we don't even understand the json-schema standard ourselves13:25
bodie_right13:25
natefinchI think it's a really bad idea to do a standard we don't understand with code we don't understand and didn't write and don't trust.  Especially when we already have something workable that we do understand and we do trust.13:26
natefinchJust be totally honest with Mark about the reservations people have with jsonschema and the code and the questionable benefits we get from using a standard that likely no one else uses either.13:27
rick_h_It feels a bit like "Why use SQL when we've got data access we know and trust because we don't know SQL and the library that you use to interact with it"13:27
bodie_um, because SQL is bad.  everyone knows that13:27
bodie_;)13:27
* rick_h_ goes back to his sql-loving corner13:27
natefinchrick_h_: there's a huge difference between SQL and jsonschema13:27
rogpeppe1rick_h_: it's a question of value added vs cost incurred13:28
natefinchthat too13:28
bodie_I think the major difference here is that one has a good implementation in Go and the other doesn't13:28
bodie_:/13:28
natefinchbodie_: tons of people use SQL.... who uses jsonschema?13:28
rick_h_and that feels like a poor reason to ditch something when we're talking about writing our own code anyway13:28
bodie_don't know, I'm not a frontend programmer13:28
rick_h_https://github.com/jdorn/json-editor/pulse/monthly13:29
rick_h_just since it's asked.13:29
=== tvansteenburgh1 is now known as tvansteenburgh
bodie_I think it's probably salvageable with a little elbow grease, but it's not a guaranteed thing that this library will be in suitable shape without an indeterminate amount of monkeying about with it13:30
bodie_this coming from someone who is far too heavy handed with timeline estimates13:30
rogpeppe1bodie_: i suspect it would be less time to implement it from scratch.13:32
bodie_and then it could also be done right13:32
bodie_but, then we're diverting that energy away from <whatever the person is working on>13:33
rogpeppe1bodie_: especially since we can then prioritise the pieces we need most13:33
* rogpeppe1 can barely resist going to do it himself.13:33
bodie_I'll be glad to play along if I suddenly find myself with a lot more free time on my hands =P13:34
rogpeppe1:-)13:34
bodie_but, really hoping it doesn't come to that.  I'm really enjoying working with you guys, and I'd love to stay involved :) but I think I need to get some more product rolled out as proof that it would be a rational direction to go -- and this stuff has been a major eddy current13:35
bodie_well, que sera, sera13:38
voidspaceyay, internet back13:42
voidspacefor now anyway13:42
natefinchvoidspace: yay!13:42
voidspacenatefinch: did you get my emails?13:42
voidspacenatefinch: I finally just sent the [full] one about HA and backup13:42
natefinchvoidspace: yes, sorry, busy morning or I would have responded.  Had a response half typed out :/13:42
voidspacenp13:43
natefinchso, that's a good point that we can't be assured of getting the same server, especially on Azure13:44
voidspaceyep13:44
voidspace(my connection is 2mbit downstream and 154kbps upstream by the way - so I'm not sure if that's good enough for standup / hangout. I'll try though)13:45
wwitzel3natefinch: standup is an hour later today right?13:45
ericsnowvoidspace: avoiding me, huh? <wink>13:45
voidspacewwitzel3: morning13:45
natefinchwwitzel3: coreycb13:45
voidspaceericsnow: hey, hi13:45
natefinchwwitzel3: correct13:45
voidspaceericsnow: sorry, I didn't see your messages until I had to leave13:46
* natefinch tries to auto-complete words that aren't usernames and falls on his face13:46
voidspaceericsnow: I thought I'd been very successfully avoiding you though :-)13:46
ericsnowvoidspace: no worries :)13:46
voidspaceericsnow: how is day 3 treating you?13:46
ericsnowvoidspace: good.  just starting though13:46
voidspaceericsnow: welcome to the mad house13:46
wwitzel3voidspace: morning :) I've been lurking addressing issues that fwereade pointed out on my pull request13:46
voidspaceericsnow: is this your normal start time?13:46
voidspacewwitzel3: cool13:47
voidspacemy internet is ropier-than-usual today13:47
ericsnowvoidspace: we'll see (trying to start no later than 7 so I can sync better with the squad)13:47
voidspacefirst time it's gone down (during the day) for a while13:47
voidspaceericsnow: cool13:47
voidspacenatefinch: what's the use case for storing backups on the state server - is it just so the juju command can complete immediately?13:49
voidspacenatefinch: because that doesn't seem like a *real* use case...13:49
ericsnowBTW, my new laptop is mostly sorted out, trying to remember all the customizations/apps I had the last time I set up Ubuntu on my desktop13:50
ericsnowso what's the story with UDS?13:51
dimiternmattyw, hey, i'm back13:51
ericsnownatefinch: I got a PR up before EOD for the CONTRIBUTING refresh  and a bit of good feedback from davecheney13:54
ericsnownatefinch: (I also filed a bug on the tracker for the task)13:55
mattywdimitern, hey there, your review - n as well as --dry-run. Is there any precedent for that?13:56
mattywdimitern, only I've never seen -n used in that way before13:56
ericsnownatefinch: how do I update the pull request with changes in response to the feedback?13:56
natefinchvoidspace: I don't know that there's a real need to store them on the server.  Possibly so you can easily just fire off a backup from anywhere without needing to worry about where it'll get stored (like from the GUI).13:57
voidspacenatefinch: the GUI can download it too, just like the CLI13:57
voidspacenatefinch: is storing them on the server (an asynchronous api) a requirement or our own idea?13:58
voidspacenatefinch: if it's a requirement we'll have to go with the more complex implementation13:58
natefinchericsnow: I think just committing to the same branch will update the PR automatically13:58
voidspacenatefinch: whenever a state server is asked to list backups it will have to ask the other state servers what backups they have13:59
natefinchvoidspace: it was an idea that was stated at the sprint.  The "requirements" are: do backup the right way13:59
perrito666how about we discuss this on the meeting we should all be  :p13:59
dimiternmattyw, no precedent13:59
voidspacenatefinch: I think "the right way" is to use cloud storage13:59
natefinchperrito666: it's in an hour, I moved the wednesday one13:59
perrito666lol13:59
voidspacenatefinch: and without that, immediate download (not storing on state server) is "good enough"14:00
natefinchperrito666: since I have a TOSCA meeting now14:00
voidspacemy 2c worth14:00
perrito666that explains why voidspace and Iare the only ones there14:00
dimiternmattyw, git uses --dry-run or -n, and as long as it's documented as equivalent it should be fine14:00
voidspacehah14:00
natefinchvoidspace: seems good to me. Let's do it14:00
rogpeppe1fwereade: it seems a bit wrong to me that the --version flag is defined inside SuperCommand. do you concur?14:00
perrito666voidspace: your 2 instances of you just froze14:00
voidspacenatefinch: that simplifies the implementation a great deal14:00
perrito666I dropped from the call until an h from now14:00
voidspaceperrito666: haha14:00
voidspaceok14:01
voidspaceperrito666: see you in an hour14:01
voidspacenatefinch: I think it means your api is unneeded14:01
* perrito666 wishes his calendar would move meetings instead of just adding more14:01
voidspacenatefinch: we have a single endpoint, handled in state/apiserver/apiserver.go that the client does a POST to14:01
* rogpeppe1 gets lunch14:01
ericsnownatefinch: so how do I avoid polluting history with multiple commits when I ultimately just want one?14:01
voidspaceericsnow: rebase I guess14:02
ericsnowvoidspace: a git thing, right?14:02
* ericsnow pines for hg14:02
voidspaceericsnow: yeah - rebase is the evil history rewriting that git supports14:02
voidspaceericsnow: http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html14:03
voidspaceericsnow: the rest of us are pining for bzr which is even better than Hg14:03
voidspaceericsnow: with Hg you get multiple commits on mainline too14:03
perrito666natefinch: just ftr, you did not move the calendar appt14:03
ericsnowvoidspace: I guess that's a consequence of the pull request approach14:03
voidspaceericsnow: right14:04
natefinchperrito666: hrmph... I did something...14:04
natefinchsorry guys14:04
wwitzel3voidspace: well, if you are only rebasing the upstream in to your feature branch AND your feature branch has never been merged to the upstream stream .. it really is just a short cut of stashing your changes, creating a new branch, and then reapplying them.14:04
voidspacewwitzel3: right14:05
wwitzel3but that said, if you don't do that, it can really mess things up14:06
* perrito666 ponders a quick implementation of gunzip for a test14:14
natefinchperrito666: http://golang.org/pkg/compress/gzip/14:14
ericsnowperrito666: system()?14:15
perrito666natefinch: yup, that is what I meant, I am creating the backup inside a tgz but I need to gunzip it to make sure it has the proper contents14:15
perrito666ericsnow: I am so not doing that in a test :p14:16
ericsnowperrito666: oh, like a real test ;)14:16
perrito666ericsnow: yup, this code was faster to write than to test :p14:16
natefinchperrito666: seems like no reason you can't open up a zipped file to check it's contents.14:17
natefinchs/it's/its/14:18
perrito666natefinch: me no understands14:18
perrito666to many negations on that sentence14:18
natefinchperrito666: sorry.... mostly "sure, of course you can write that test"14:19
=== wwitzel3_ is now known as wwitzel3
natefinchperrito666: f, err := os.Open(filename);  gz := gzip.NewReader(f);  // read from gz14:19
mattywdimitern, I worry about having -n to mean dry run, as -n is used elsewhere to mean number of14:22
natefinchmattyw, dimitern: totally agree ^^14:23
dimiternmattyw, it is, but not in the same command - how about "-z" then?14:26
mattywdimitern, I don't have any complaints about that, I'm just searching for what other commands use to see if there is some common usage14:28
natefinchdimitern: what's wrong with just --dry-run?  Doesn't seem like it's something that needs a short flag14:29
mattywnatefinch, dimitern apt-get uses -s (to mean simulate)14:29
mattyw(and also has --dry-run for the same thing)14:29
dimiternnatefinch, i'm totally fine with --dry-run, but users might complain having to type the whole thing - hence the shortcut14:29
ericsnowdimitern: isn't the problem that short options are a limited commodity (so should be assigned rather conservatively)?14:31
dimiternericsnow, that's a fair point yes14:35
mattywdimitern, if you're ok I'll change it to --dry-run but otherwise leave it, if anyone complains we can add a short option14:37
dimiternmattyw, sgtm14:41
natefinchperrito666, wwitzel3, ericsnow, voidspace:  my wife wants me to bring the kids to a school function... like now.  So I'm going to miss the meeting.  I'll be back in an hour and a half -ish.  Sorry for the late notice14:48
wwitzel3natefinch: np14:48
perrito666natefinch: np, have fun on the school thinguie14:48
mattywdimitern, that change has been pushed14:53
dimiternmattyw, ta14:57
alexisbnatefinch, cmars: do either of you have someone on your team that would be available to help with a field bug today?14:59
wwitzel3voidspace, ericsnow: standup15:01
ericsnowwwitzel3: coming15:02
alexisbwwitzel3, can you ask about my ping above15:03
wwitzel3alexisb: yep, soon as he is back15:04
alexisbthanks15:04
wwitzel3alexisb: is the bug in lp?15:04
alexisbyes, see #juju @ canonical15:05
alexisb bug https://bugs.launchpad.net/juju-core/+bug/108929115:05
_mup_Bug #1089291: destroy-machine --force <canonical-webops> <destroy-machine> <iso-testing> <theme-oil> <juju-core:Fix Released by fwereade> <juju-core 1.16:Fix Released by fwereade> <juju-core (Ubuntu):Fix Released> <juju-core (Ubuntu Saucy):New> <https://launchpad.net/bugs/1089291>15:05
alexisbpontentially related to this bug ^^15:05
wwitzel3rgr, ok15:07
perrito666voidspace: are you around?15:14
sinzuiHi devs, We cannogt get any version of juju to work with HP Cloud. This may relate to the region changes. https://bugs.launchpad.net/juju-core/+bug/132890515:15
_mup_Bug #1328905: hpcloud: index file has no data for cloud <ci> <openstack-provider> <juju-core:Triaged> <https://launchpad.net/bugs/1328905>15:15
fwereaderogpeppe1, yes, --version should be somewhere else15:17
dimiternfwereade, jam1, natefinch, others? a trivial PR introducing pending networks in state https://github.com/juju/juju/pull/7815:17
mattywalexisb, did you get any response about your field issue?15:18
alexisbnot yet15:19
rogpeppe1fwereade: ok, thanks. i was wondering though about adding a GetVersion func() string field to SuperCommandParams, so it was easy to plug in15:19
rogpeppe1although perhaps a new version of SuperCommand that embeds the other one but adds version info might be a better approach15:20
ericsnowthe juju core roadmap presentation at UDS starts in about 35 minutes, no?15:23
rogpeppe1anyone know what the rationale is for having plugins/local separate from plugins/local/juju-local ?15:23
ericsnowwwitzel3: is there a bug open for that failed-tests-leave-mongod-running thing?15:24
wwitzel3ericsnow: no, it only happens if the failure is the result of a panic15:26
wwitzel3and there is really no way to cleanup anything in that case15:26
voidspaceperrito666: yes15:26
ericsnowwwitzel3: got it15:26
voidspacewwitzel3: ah, I thought we were waiting for natefinch, sorry15:26
mattywalexisb, I was about to start working on another feature but if I can be any help let me know15:26
voidspacewasn't watching irc15:26
wwitzel3voidspace: we just miss you is all15:27
=== vladk is now known as vladk|offline
ericsnowvoidspace, wwitzel3: :)15:27
voidspaceheh15:27
voidspaceare you there now?15:27
voidspaceI just joined the room and it was empty15:27
rogpeppe1ha, the --version flag looks like it's totally undocumented15:28
wwitzel3rogpeppe1: self documenting?15:28
wwitzel3;)15:28
rogpeppe1wwitzel3: only if you know it's there...15:28
sinzuinatefinch, fwereade, jam, wallyworld, thumper, alexisb: bug 1328905 is super critical Users are reporting that they cannot use any juju with HP15:32
_mup_Bug #1328905: hpcloud: index file has no data for cloud <ci> <openstack-provider> <juju-core:Triaged> <https://launchpad.net/bugs/1328905>15:32
alexisbyeah more critical bugs!15:32
sinzui^ This may relate to region changes and we need to know how to specific the right regions (and AZs?) or HP has an issue that they aren't reporting15:32
fwereadewhoo, critical bugs, indeed :/15:35
alexisbso jam, fwereade, natefinch, cmars, wallyworld, thumber, we will need to get some focus on critical bugs that have come up the last coupld of days, I will send mail with details I am aware of but I leave it to you all to assign/delegate as appropriate15:48
fwereadealexisb, cheers, I will be popping on late tonight to chat to thumper anyway15:49
jcastroalexisb, I am firing up the hangout now15:54
alexisbjcastro, ack be there is just a moment15:55
jcastrohttps://plus.google.com/hangouts/_/hoaevent/AP36tYdbxLFl9wnFqKOiHH4O9UeqMAFRS_cJdePa1FtT5DQH4hv1ag?authuser=0&hl=en15:55
jcastrorick_h_, ^^^15:55
perrito666if anyone has a moment https://github.com/juju/juju/pull/79 review will be appreciated :)15:56
rick_h_jcastro: thuoght it was 2pm?15:57
mfoordgrrrr16:00
mfoordrubbish internet16:00
mfoordnatefinch: here's a prototype of the backup download handler16:07
mfoordnatefinch: https://github.com/voidspace/juju/compare/download-backup16:07
rogpeppe1can anyone tell me what these lines are supposed to be doing? cmd/supercommand.go:264,26816:08
rogpeppe1(starting "if c.subcmd.IsSuperCommand")16:08
rogpeppe1it looks to me as if the first body of the if is a complete no-op16:09
* rogpeppe1 starts to see, and wishes that he hadn't16:14
mfoordperrito666: I don't know if you saw my last message, my internet is a bit up and down16:15
mfoordperrito666: where does your backup stuff live - I can't find it in trunk but I may just be being dumb16:16
* rogpeppe1 feels embarrassed that he signed it off in code review16:19
jamsinzui: are there other critical bugs, or just that one?16:34
sinzuijam, just that one.16:34
sinzuijam. I fear that while hp said they were removing old regions on June 1, there were really removed on june 1116:35
sinzuijam, and devs, This is what I am reading  to for evidence that everyones' config is wrong: https://docs.hpcloud.com/api/v13/compute/16:36
sinzuiI don't know what value really belongs here16:37
sinzuiregion: az-3.region-a.geo-116:37
jamsinzui: so that is what used to work, we strip off the az-3 when we need to, but we need it for somethings16:37
sinzuijam I get further with just region-a.geo-1, and I see in horizon that az3 was given (at random?), but but strap fails...maybe juju couldn't match images to the region?16:38
jamsinzui: so, IIRC, it used to be that either swift or compute required the extra field, and we would strip it off when looking it up in the other one16:41
jammgz: are you still around ?16:42
mgzjam: yup16:42
jammgz: can you investigate the HP cloud stuff?16:42
jamit sounds like keystone might be returning different data now16:42
mgzI also saw that the other day, but didn't dig16:43
mgzthe switch to 13.5 has happened now though16:43
mgzso, we need to switch anything still on the old config16:43
perrito666voidspace: sorry I was just having lunch, I just pull requested the backup stuff16:47
mfoordperrito666: cool, what's the link?16:50
perrito666mfoord:  https://github.com/juju/juju/pull/7916:51
voidspacenatefinch: prototype backup download endpoint - with skeleton tests17:07
voidspacenatefinch: https://github.com/voidspace/juju/compare/download-backup17:07
voidspacemy internet is horrible and I've reached a good place to stop17:08
voidspaceso I'm calling it a day17:08
voidspaceEOD folks17:08
voidspaceg'night17:08
natefinchvoidspace: cool, just got back17:08
natefinchvoidspace: g'night17:08
ericsnowvoidspace: night17:08
voidspacenatefinch: I would appreciate it if you took a look at the download prototype before I hook it into perrito666's backup work17:08
voidspacenatefinch: I don't want to go too far down this road if you think there are horrible issues with the basic approach17:09
voidspacenatefinch: thankfully it's very simple17:09
voidspaceericsnow: o/ hopefully chat more tomorrow17:09
ericsnowvoidspace: :)17:09
wwitzel3see ya voidspace17:09
voidspacewwitzel3: g'night17:10
perrito666natefinch: we need to figure out if we are going with your approach or michaels one so we can integrate backup into any of those :p17:14
natefinchperrito666: michael's approach seems a lot simpler and avoids a lot of the problems of connecting to the wrong HA server17:16
perrito666natefinch: so, we drop much of your work? if not all?17:17
natefinchperrito666: whole damn thing.   It turns into a single synchronous call to the HTTP API and we get back the data from the backup immediately.  Maybe fwereade has an opinion on that17:18
perrito666how much is 2 pts in our kanban?17:22
perrito666I really need to make a post it for that17:22
natefinchperrito666: a point is half a day17:24
natefinchhalf an ideal day, but we only assume like 60-70% efficiency per calendar day17:24
perrito666fwereade: if you have a sec, ptal to the note I added to https://github.com/juju/juju/pull/30 I am not sure I properly expressed what you wanted to say there.17:43
perrito666bbl Ill go biking while there is sun outside17:43
wwitzel3perrito666: ha, read that as bikining17:43
jamwwitzel3: well, it is sunny, right?18:05
wwitzel3:)18:06
natefinchericsnow: how goes?18:26
ericsnowgood18:26
ericsnownatefinch: I have something broken in my bash config that is resulting in test failures that I'm trying to track down18:27
ericsnownatefinch: I also have an update for yesterday's patch that I need to push up18:27
natefinchericsnow: interesting..... I think we've seen similar problems from people trying to run tests in non-bash shells.... which is not really a good reflection on our tests18:28
ericsnownatefinch: yeah, I'll let you know what I find--maybe there is something we could change in the tests to help18:28
natefinchericsnow: you have your laptop up and running?18:29
ericsnownatefinch: pretty much18:29
natefinchcool18:30
ericsnownatefinch: installed 14.04 without ever booting into Windows and everything has just worked :)18:31
natefinchericsnow: nice18:31
alexisbericsnow, what type of laptop did you end up getting?18:32
ericsnowalexisb: dell XPS 15 (haswell)18:32
=== Ursinha is now known as Ursinha-afk
alexisbericsnow, nice18:35
wwitzel3natefinch: in HA, if you a state machines goes down, it will eventually get replaced without use intervention right?18:40
natefinchwwitzel3: nope, you have to manually run ensure-availability18:41
wwitzel3well, that was unproductive waiting18:41
natefinchsorry18:41
wwitzel3yes, I blame you!18:41
natefinchheh18:44
=== patrick-uds is now known as avoine
=== Ursinha-afk is now known as Ursinha
ericsnownatefinch: I've pushed the updated patch and see that the pull request automatically updated...19:17
ericsnownatefinch: but I'm pretty sure I don't want those merge commits showing up there19:17
ericsnownatefinch: how do I keep that from happening?19:18
natefinchericsnow: you can rebase, but it can end up removing comments on old revisions19:31
natefinchericsnow: I don't think the old revisions are a big deal.  We had a big discussion about this and I believe we decided to leave all revisions after the initial pull request.19:34
natefinchericsnow: I sorta wonder how much "intro to Github" we need in our contributing doc19:46
ericsnownatefinch: I'd say just a link to some external tutorial19:47
fwereadeperrito666, natefinch: hmm, in-env storage from wallyworld should be HA soon... is it maybe reasonable to save to disk and distribute to other state servers? feel like there might be too much to go wrong19:47
natefinchericsnow: I agree19:47
ericsnownatefinch: I'll add something in19:48
natefinchfwereade: too much to go wrong with our synchronous approach, or the distributing approach? :)19:48
fwereadenatefinch, the distributing one :-/19:48
natefinchheh19:48
fwereadenatefinch, which is a shame because I'm not 100% sold on the sync one either19:48
natefinchfwereade: me either19:48
bodie_woot, got a properly breaking JSON-Schema validation19:49
natefinchfwereade: depends too much on your network not failing in the middle... or impatient users hitting control-C19:49
* fwereade cheers at bodie_19:49
natefinchbodie_: was it improperly breaking before?19:49
fwereadenatefinch, yeah19:49
natefinchahh, so validation failures were broken? :)19:50
fwereadenatefinch, I haven't properly read back so point and laugh if this is stupid -- can we do both? ie a sync request kicks off a backup, which gets teed both to disk and to env storage, and recorded as an actual backup in state? so the interface is essentially the sync one but we get half a chance of recording it properly as well?19:51
natefinchfwereade: we hadn't planned on actually putting it into mongo, if that's what you're talking about19:51
natefinchfwereade: but yes, both is possible.... the problem was just getting *to* the ones stored on the state machine.19:52
natefinch(when in HA)19:52
fwereadenatefinch, yeah, I was thinking that once we had env storage in gridfs it would be silly not to use it19:53
bodie_natefinch, yeah, I was having a pretty hard time getting Validate to INvalidate anything :P19:53
fwereadenatefinch, but it would also be silly to depend on it19:53
natefinchheh19:53
fwereadenatefinch, so it's more a distribution mechanism than a storage if iyswim19:53
bodie_natefinch, actually hadn't implemented Validate yet, since we were thinking it would be deeper into the State machinery19:53
bodie_anyway, it seems to be working now19:53
bodie_and, I'm discovering some interesting stuff about JSON-Schema19:54
bodie_for one thing..... encoding/json.Unmarshal doesn't explode if you try to unmarshal "something"19:55
bodie_it doesn't like `{"something"}`19:56
bodie_but `"something"` seems to be fine19:56
fwereadebodie_, that seems reasonable19:56
fwereadebodie_, {"something"} is a meaningless perversion of an object19:56
bodie_I didn't realize bare literals like that were JSON values19:56
fwereadebodie_, "something" is just a serialized string19:56
bodie_so, fwereade, I think we CAN define "simplistic" schemas19:57
fwereadebodie_, fantastic19:58
fwereadebodie_, I thought so too but was starting to get nervous :)19:58
bodie_fwereade, so... I think if our params looks like -- the example I gave19:59
bodie_https://github.com/juju/docs/pull/117#commitcomment-660169219:59
bodie_well, we'd want it to be a little different20:00
bodie_let me put something interesting together20:00
bodie_anyway, then the action could be called something more like --20:00
bodie_snapshot "outfilename.bz2" --compression 520:00
bodie_that would probably be dumb, and maybe you'd only be able to define a single parameter like that20:01
bodie_but it might be possible20:01
fwereadebodie_, yeah, I'm a little bit -1 on single-parameter schemas20:01
jcw4fwereade: just a little bit?20:02
fwereadebodie_, your point about params being N keyed schemas seemed like a solid one20:02
fwereadejcw4, yeah, more than a little bit20:03
fwereadejcw4, I wish this did not apply to me quite so much, but it does: http://www.thepoke.co.uk/2011/05/17/anglo-eu-translation-guide/20:04
bodie_heheh, this is gonna be good20:04
jcw4yep... I grew up in Zimbabwe (aka Rhodesia)20:04
=== vladk|offline is now known as vladk
jcw4we consider ourselves more british than the British20:05
bodie_"quite good"20:05
bodie_"incidentally"20:05
jcw4I knew I interpreted your code review comments correctly...20:07
jcw4fwereade: I only have a few minor comments on your PR20:07
jcw4supposed to be in quotes ^^20:07
* fwereade looks decidedly shamefaced20:07
fwereadejcw4, to be fair, even when I am asking someone to completely change things, I have in mind the worst possible case to compare it to20:08
bodie_jcw4, lol20:08
fwereadejcw4, so I can always say it's minor ;)20:08
jcw4:)20:08
jcw4fwereade: I just think it's such a civilized way of communicating20:08
jcw4it's a pity non Anglos misinterperet it so much20:09
jcw4:)20:09
fwereadejcw4, yeah, it seems entirely natural to me :)20:09
=== vladk is now known as vladk|offline
ericsnownatefinch: okay, it's starting to make sense now20:39
=== jcsackett_ is now known as jcsackett
natefinchericsnow: good20:40
* fwereade disappears again for a bit, probably back soon, slightly less guaranteed than before but still likely20:52
thumperfwereade: around?20:57
jcw4thumper: 5 minutes ago he said he would probably be back soon20:58
thumperjcw4: ok, ta20:59
=== Beret- is now known as Beret
waiganimorning all21:16
* thumper is super happy his branch landed last night21:23
menn0waigani, thumper: (belated) hi!21:26
thumpero/21:26
* menn0 is a little zombie-ish this morning. 21:26
menn0Youngest up all night and I'm a bit sick21:26
thumpermenn0: oh no...21:27
menn0more coffee and I should be ok... just clearing out the inbox21:27
wwitzel3ugh that reminds me I've neglected email all day21:28
* menn0 is so glad he discovered the Google Labs Gmail Auto Advance feature.21:28
thumpermenn0: what does that do?21:28
menn0It means you can hit # for Delete or y for Archive and it takes you to the next or prev conversation (configurable) instead of back to the inbox.21:29
menn0I can churn through emails so much faster now. Almost as efficently as Mutt.21:29
wwitzel3menn0: nice, I will have to enable that21:30
menn0It's so good. I'm actually considering going back to Gmail for my personal mail.21:30
bodie_menn0, you a zero inboxer? ;)21:32
ericsnowwhat's the rationale on unsetting $HOME during tests?21:32
thumperericsnow: for isolation21:32
menn0bodie_: I try to be and actually get pretty close most days with my Canonical inbox.21:32
thumperericsnow: IIRC, it is set to a test directory21:32
thumperwhich is deleted at the end of the test21:32
* thumper is waiting around for fwereade21:32
* thumper needs to walk the dog...21:32
* fwereade is here for thumper21:33
wwitzel3yeah same here, I try to zero inbox before I EOD21:33
wwitzel3lol21:33
thumperfwereade: heh21:33
thumperfwereade: was just writing that I'll be back in 30min21:33
ericsnowthumper: I'm getting a bunch of failures because some of my bash startup scripts make use of $HOME21:33
thumperfwereade: but if you are here now, lets chat21:33
menn0fwereade, thumper: that's really sweet :)21:33
thumpermenn0: we try...21:33
fwereadethumper, cool, would you start a hangout while I fix another drink please?21:34
jcw4awwww21:34
thumperfwereade: ack21:34
thumperjcw4, menn0: you guys are just jealous21:34
jcw4wha?21:34
jcw4me?21:34
thumperfwereade: https://plus.google.com/hangouts/_/gte3jtum3i2m4lrjob2lnm72yaa?hl=en21:34
menn0I shouldn't have said nice things about Gmail. It just went pop - 500 errors :)21:37
menn0(as in HTTP status 500)21:37
jcw4whew... I was thinking...21:37
menn0:)  ... it was only dead for a minute21:38
bodie_there was a fun gmail outage last year21:41
bodie_I always thought they were an invulnerable billion-ton giant until that21:41
bodie_now I just think they're a mostly untouchable billion-ton giant21:42
jcw4:)21:42
* jcw4 is off for a few hours...22:07
* thumper takes the dog for a quick walk22:21
thumperthinking time22:21
* ericsnow calls it a day22:25
sinzuiwallyworld, Do you have any insights into this bug. How can I bootstrap with private IPS https://bugs.launchpad.net/juju-core/+bug/132890522:59
_mup_Bug #1328905: hpcloud: index file has no data for cloud <ci> <hp-cloud> <openstack-provider> <juju-core:Triaged> <https://launchpad.net/bugs/1328905>22:59
wallyworldsinzui: one sec otp23:00
thumpermenn0: coming?23:01
waiganimenn0: you alive?23:01
wallyworldsinzui: off the phone now, did you want a hangout about that bug?23:26
sinzuiwallyworld, I think I know what has happened23:27
sinzuiwallyworld, The new version requires manual allocation of floating-ips where as the previous version automatically did http://h30499.www3.hp.com/t5/Grounded-in-the-Cloud/Managing-your-Floating-IPs-in-HP-Cloud-13-5/ba-p/6401527#.U5jkER-cYbw23:28
wallyworldoh joy23:28
sinzuiwallyworld, I suppose the juju config was ignored.23:28
thumperhmm...23:28
thumperwho wrote that code... was it me?23:28
wallyworldsinzui: so it failed with use-floating-ip=true?23:29
thumperhow would I know?23:29
sinzuiwallyworld, I am not sure that is really really true because we only have 5 public addresses, and our project/tenant has had more bootstrapped envs that 523:29
thumperyes23:29
thumperyes it was me23:29
thumperhmm...23:29
sinzuiwallyworld, no it works with that...but I take that to mean the 50 of us sharing juju-scale-test have 5 IPs for either 5 envs or 5 instance total23:30
sinzuiI vaguely recall we always got ip addresses instead of dns for HP envs23:31
thumperhmm... it seems that I have already implemented what I think should be there...23:31
wallyworldsinzui: so maybe i am being dumb - if we need to manually allocate a floating ip, how do we do that outside the hp console?23:31
sinzuiwallyworld, there is a hp cli for that23:32
perrito666rogpeppe1: I know you most likely are not here, but should I consider your review done_23:32
sinzuiwallyworld, I need to read up about something called salt that might allow ssh to a private ip on hp23:33
wallyworldsinzui: hopefully there's api specs and the transport is http or something23:33
wallyworldso we can invoke if needed23:33
wallyworldsinzui: so, do we have a feel for how many people are affected? how many juju users are on 13.x?23:33
wallyworldis this a blocker for 1.20?23:34
sinzuiwallyworld, in the last 18 hours, both canonistack regions failed, azure's delete problem escalated and we ran out of resources on azure, then we finally switched over to HP's new regions loosing sane ip addresses and AZs. I need to sleep23:35
sinzuiwallyworld, every juju user is affected by this23:35
sinzuiwho uses hp23:35
wallyworldok, let's talk tomorrow23:35
wallyworldwell that sucks23:35
wallyworlda vendor change breaking juju like that23:36
sinzuiwallyworld, at the start of the year, it was just the new people who were setup with horizon. A lot of people in Ubuntu engineering couldn't get juju to work because the docs advise AZ prefixes to the region and our boilerplate has  use-floating-ip: false23:37
sinzuiwallyworld, I think the underlying issue is HP ran our of IPs and the failed to solve the network issue with ip6 or dns23:38
wallyworldsure. doesn't help us though :-(23:38
wallyworldjuju's ip6 support is still wip anyway i think23:39
wallyworldsinzui: so if we change the boilerplate as per your last bug comment, do you think that will unblock 1.20? pending a better longer term solution23:41
sinzuiwallyworld, It gets a little uglier https://bugs.launchpad.net/juju-core/+bug/124750023:41
_mup_Bug #1247500: Floating IPs are not recycled in OpenStack Havana <addressability> <ubuntu-openstack> <juju-core:Triaged> <https://launchpad.net/bugs/1247500>23:41
sinzui^ last comment23:41
wallyworld:-(23:42
perrito666thumper: howbazaar, really?23:42
wallyworldsinzui: so short term - use floating ip to true and delete any when env is destroyed will unblock 1.20?23:43
sinzuiwallyworld, I think so...I am still coming to understand this issue after a whole day of testing23:44
sinzuiwallyworld, I am about to destroy and env and see what happens to the ip23:44
wallyworldsinzui: thanks for doing so much work to explain the problem. really appreciated23:44
sinzuiwell ci just did a destroy...at least CI is a little happier23:44
sinzuiwallyworld, test 1 did return the IP23:46
* sinzui does test two23:46
* wallyworld is hopeful23:46
sinzuiwallyworld, I am marking that bug  incomplete. my tests don't repeat it23:48
wallyworldsinzui: ok. so for now, just the boiler plate change for 1.2023:48
sinzuiyep23:48
wallyworldgreat :-)23:48
sinzuiI would like to know how to get the AZ working again23:49
wallyworldas in specifying region with az2.region-a.blah23:50
wallyworldwe are getting stuff in trunk which will handle az spread automatically23:50
sinzuiyay23:54
wallyworldsinzui: should be landed this week - currently in review23:55
wallyworldso explicit region less important i guess23:55
wwitzel3menn0: thanks for that tip about the gmail labs .. makes email way easier23:59
davecheneythumper: https://github.com/juju/names/pull/3#discussion-diff-13674308R16423:59
menn0wwitzel3: np. It's a small thing but it makes a big difference.23:59
davecheneyerr, whatever23:59

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!