/srv/irclogs.ubuntu.com/2013/03/26/#juju-dev.txt

davecheneym_3: are you doing update alternatives ?00:00
m_3davecheney: side note, we should push that to ~juju btw, not ~davecheney/juju-core/packaging00:00
m_3yup00:00
davecheneym_3: have you talked to mgz ?00:01
m_3I think it's assigned to martin, not sure...00:01
davecheneyhe is also doing that00:01
davecheneyok, make sure you don't overlap and waste your own time00:01
m_3yep, thanks... I'm getting him the juju-0.6 version to look at00:01
m_3we discussed this morning00:02
m_3davecheney: on charm-testing, did you get a chance to get a basic version of watch working?00:03
m_3davecheney: or still need that done?00:03
davecheneym_3: still todo00:03
m_3ack00:03
davecheneysorry, making slow going gettting my changes comitted00:04
davecheneyshort version, although we can't prove it, charm testing looks good to me00:04
davecheneywe haven't managed to break anything significant00:04
m_3davecheney: no prob... just wanted to sync up with you before spending any time on it00:04
davecheneybut right now the providers and backends are so unstable it is impossible to tell how well the charm's are tested00:04
davecheneyapparently we do retry ec2 operatoins00:05
davecheneynot that it helps00:05
davecheneythe f'r still returns garbage00:05
m_3davecheney: dude, that's not a 2.0-specific issue ;)00:05
m_3yeah, lots of flakiness lately against the apis (hard to quantify tho)00:05
m_3certs not being valid for brief periods of time, then passing in a retry00:06
thumperdavecheney: got some time?00:19
thumperfwereade: you work weird hours dude00:21
thumperfwereade: if you are really around, I have a few specific questions00:21
fwereadethumper, heh, laura's had an earache and I'm not likely to sleep for a bit00:21
thumperfwereade: regarding mongo transactions and unit allocation00:21
thumper:(00:21
fwereadethumper, ok, cool00:21
thumperis she still awake?00:21
fwereadethumper, she's sleeping now, but if crying starts I may suddenly disappear and not come back predictably or at all00:22
davecheneythumper: sorry, on my way out the door00:22
thumperdavecheney: np00:22
fwereadethumper, happy to chat for now anyway :)00:22
thumperfwereade: that's fine00:22
=== jtv1 is now known as jtv
* wallyworld_ -> doctor, bbiab03:49
davecheneym_3: https://canonical.leankit.com/Boards/View/103148069/10415161305:04
davecheney^ this is hte card for 'make a juju watch sort of thing'05:04
rogpeppemorning all08:00
=== TheRealMue is now known as TheMue
rogpeppedavecheney: ping08:08
jammgz: poke11:18
w7zreping mgz please? other machine is... having fun11:27
jamw7z: you' were quit with a timeout11:27
jammgz: poke11:27
jamso there is no mgz to poke anymore11:27
w7zcounter-poke11:27
jamw7z: prod11:27
jamJust wanted to chat, but you're on mumble, so you can probably just undeafen yourself11:28
jamw7z: no love for the undeafening?11:29
w7zI'm getting there...11:31
dimiternfwereade: ping11:42
fwereadedimitern, pong11:42
dimiternfwereade: am i right to assume, that if neither --repository is given nor JUJU_REPOSITORY is set, then the cmd should use the charm store?11:43
fwereadedimitern, it's independent, I think11:43
fwereadedimitern, the repoPath argument is only used if we know it's a local charm in the first place11:44
fwereadedimitern, ie it starts with local:11:44
dimiternfwereade: so we never use the CS? how about if the effective the repo is empty - should it be a separate error?11:44
dimiternfwereade: ah, I see your point - it's only used for local: charms11:45
fwereadedimitern, I don't think we should worry about the repo path at all at the command level11:45
fwereadedimitern, pass it through and if there's an error, then there's an error11:45
dimiternfwereade: my question was - should I distinguish between --repository= and --repository=invalid_path11:46
fwereadedimitern, maybe, if it's specified, we should validate that it's a dir? otherwise double-check what we do the relevant Infer* methods11:46
dimiternfwereade: I'm already using ReadDir to verify it's a dir11:46
dimiternfwereade: it it's empty and we need it there will be an error reported11:47
fwereadedimitern, emphasis was meant to be on the "if it's specified"... but then maybe it makes sense to assume . to be the repo in the absence of any specific value set11:47
fwereadedimitern, an empty dir is, I think, a valid repo11:47
fwereadedimitern, it just doesn't have any series or charms in it11:48
dimiternfwereade: ok, so if it's a valid dir it's ok, otherwise it's an error11:48
fwereadedimitern, the interesting thing is that it won't ever be empty in fact11:48
fwereadedimitern, by empty I mean ""11:48
fwereadedimitern, because we use ctx.AbsPath to figure out where it really is11:48
dimiternfwereade: it can be empty when you pass --repository= and unset J_REPO11:49
fwereadedimitern, still won;t be empty once it's gone through ctx.AbsPath11:49
dimiternfwereade: that's even worse - it'll mean it's the cwd11:49
fwereadedimitern, what's wrong with that?11:49
fwereadedimitern, if I'm developing charms, having the repo as the pwd seems very convenient11:49
dimiternfwereade: istm this is kinda unexpected11:49
dimiternfwereade: unless documented in the help at least11:50
fwereadedimitern, if I'm not developing charms I shouldn't be using a local repo ;p11:50
fwereadedimitern, what's the worst that can happen? "no charm found in local repo at /path/to/pwd"?11:51
dimiternfwereade: so I'll have to check it on run, rather than on init (where I can't use AbsPath)11:51
TheMuelunchtime11:51
fwereadedimitern, I'm becoming convinced that it shouldn't be checked by the command at all11:51
wallyworldmgz: dimitern: jam:11:52
wallyworldian@wallyworld:~/.hpopenstack$ juju debuglog11:52
wallyworldjuju-hpcloudx-machine-0:2013/03/26 11:51:27 DEBUG JUJU:jujud:machine state/watcher: loading new events from changelog collection...11:52
wallyworldjuju-hpcloudx-machine-0:2013/03/26 11:51:27 DEBUG JUJU:jujud:machine state/watcher: loading new events from changelog collection...11:52
wallyworldjuju-hpcloudx-machine-0:2013/03/26 11:51:32 DEBUG JUJU:jujud:machine state/watcher: loading new events from changelog collection...11:52
dimiternfwereade: so then: remove the tests for --repository as well?11:52
fwereadedimitern, just run it through ctx.AbsPath and sling it into InferRepository11:52
fwereadedimitern, I didn't say anything about tests11:52
fwereadedimitern, just that it doesn't need special handling in the command11:53
dimiternfwereade: if we're not checking it why should we test it?11:53
fwereadedimitern, because it affects the behaviour of the command?11:53
dimiternfwereade: just a sec, need to test this11:53
mattywrogpeppe, am I able to ask you some questions about the juju api?11:54
fwereadewallyworld, whoa!11:54
fwereadewallyworld, awesome!11:54
fwereadewallyworld, tyvm11:54
wallyworldfwereade: yeah, me happy :-)11:55
dimiternfwereade: if i'm not checking --repo explicitly, passing either an invalid or empty one there will cause "service "blah" not found" to be returned11:55
wallyworldfwereade: that is tailing the consolidated log file which contains accumulated logs from all nodes11:55
fwereadewallyworld, I completely failed to understand what you pasted for a mo :)11:55
fwereadewallyworld, just one detail, please call it "debug-log"11:56
wallyworldfwereade: we are on a standup and i was communicating with the team :-)11:56
wallyworldfwereade: already mentioned :-)11:56
fwereadewallyworld, cool :)11:56
fwereadedimitern, I'm not following; what does the repo have to do with the service?11:56
rogpeppemattyw: sure, ask away11:57
dimiternfwereade: i'm not doing it explicitly, just the check for service fires when there is no repo given11:58
fwereadedimitern, ah, are you talking about the error tests for repo values?11:58
dimiternfwereade: yes11:58
fwereadedimitern, I think you need to create a service so you can get far enough in those tests11:58
dimiternfwereade: ofc, silly me :) sorry, still waking up11:59
mattywrogpeppe, well I;m basically about to start poking around, to begin with all I really want is to read the current status of all the units. I'm looking at the juju-core/state/apiserver and api packages. There looks to be a client.go, is this essentially an example of something to read from the api?11:59
rogpeppemattyw: what are you writing your client code in?12:00
mattywrogpeppe, go12:00
rogpeppemattyw: ok, so you don't need the API in fact, for the time being.12:00
rogpeppemattyw: what's your use case?12:00
dimiternfwereade: ok, then we have this unhelpful error: "no repository found at \"/tmp/gocheck-583324308/12/blah\""12:01
dimiternfwereade: (with juju upgrade-charm riak --repo=blah)12:01
fwereadedimitern, ok, so an empty dir is not a valid repo12:01
fwereadedimitern, what's unhelpful about that?12:01
fwereadedimitern, it seems to describe exactly the problem12:02
dimiternfwereade: well, for starters there's no blah dir there at all12:02
fwereadedimitern, so, yeah: no dir, no repo12:02
dimiternfwereade: ok then, I'll leave it to this and make a fuzzy regexp error matching\12:03
fwereadedimitern, william@diz:~/code/go/src/launchpad.net/juju-core$ rm not-here12:03
fwereaderm: cannot remove `not-here': No such file or directory12:03
fwereadedimitern, sgtnm12:03
dimiternfwereade: thanks12:03
* fwereade => lunch12:06
dimiternfwereade: ping me when you're back please12:26
mgzjam: made that change and the tests still pass12:26
mgzI don't see anything accessing Config from the suite, only from env12:29
jammgz: http://bazaar.launchpad.net/~juju/juju-core/trunk/view/head:/environs/jujutest/livetests.go#L5012:29
jamlooks the same in your branch: http://bazaar.launchpad.net/~gz/juju-core/tests_os_ssh_isolation_1144704/view/head:/environs/jujutest/livetests.go#L5012:30
mgzhm, declaring A A is ineffective then12:31
jammgz: If I just do "TestConfig TestConfig" on line 28 of livetests.go12:32
jamthen "go test" fails with "type *LiveTests has no field or method Config"12:32
rogpeppedoes anyone around know about the particular requirements of the "Need something that functions like jitsu watch" ticket?12:33
mgzokay, ...the problem is (cd environs&&go test ./...) doesn't actually run any of the tests I care about...12:33
dimiternrogpeppe: m_3 or hazmat are your best choices here I think, although AFAIR it was about having a regexp filter over status output12:34
mgzso, how do I actually run all tests under environs/ then?12:35
rogpeppedimitern: yeah, although having just taken only 10 minutes to knock up something that uses the client AllWatcher (http://paste.ubuntu.com/5649215/) i think we can do better than that12:35
rogpeppedimitern: with probably less code12:35
dimiternrogpeppe: i don't quite get what that code is doing12:36
rogpeppedimitern: it's watching for any changes in the environment12:36
rogpeppedimitern: through the GUI API interface12:36
dimiternrogpeppe: i think filtering is key here - it's the way to block a script until something happens in status12:37
rogpeppedimitern: sure. all you need for filtering is to put some code inside that for loop12:37
jammgz: that should run all the ec2 tests and all the openstack tests12:37
jamWith the problem that if something doesn't compile, it gives you a minimal error message12:37
mgzjam: it appears that it doesn't even build them12:38
mgzbecause it just passed...12:38
dimiternrogpeppe: sgtm12:38
rogpeppedimitern: but i'm not sure exactly what they mean by "machine state" or "service state"12:38
jamI get "FAIL launchpad.net/juju-core/environs/dummy [build failed]"12:38
dimiternrogpeppe: whether service X was deployed and now running perhaps?12:39
rogpeppedimitern: i can guess, but i'd like to know for sure before i code something wrong12:39
jammgz: are you sure 'bzr dif' agrees you made the change?12:39
mgzhttp://pastebin.ubuntu.com/5649271/12:40
jammgz: see my earlier comments12:40
dimiternrogpeppe: maybe it's a good question to ask on the list then12:40
jamyou cannot pass -gocheck.v12:40
jamwith ./...12:40
mgzgah...12:40
jam'go test ./...' does what you want12:40
jamand *maybe* go test ./... -gocheck.v12:41
jamgo test -gocheck.v <anything> only runs the tests in the CWD12:41
jamby earlier comments12:41
jamI mean things from months ago when I ran into that myself12:42
jamwhich is why goose has a "test.py" helper12:42
mgzyeah, I hit it previously, but apparently can't internalise all the go test weirdnesses12:42
jammgz: it doesn't help that it does run some tests, and they all appear to pass12:43
jamand doesn't complain while it goes about ignoring your passed parameter12:43
fwereadedimitern, pong12:48
dimiternfwereade: I made the changes, wanna take a look before I submit? https://codereview.appspot.com/7927043/12:49
=== vds` is now known as vds
fwereadedimitern, sure, thanks12:51
hazmatrogpeppe, so jitsu watch has an overly large range of functionality.. but in practice.. its primarily used to assert that a unit is started and relations are not in error12:51
=== vds is now known as indentify
=== indentify is now known as vds
rogpeppehazmat: could you describe briefly the actual functionality required? does it need info about machines? what about services?12:52
rogpeppehazmat: if i'm right, then it's a very small piece of work :-)12:53
vdsI've juju bootstrapped and juju deployed a charm with py juju on ec2, juju status tells me everything works fine, with exactly the same settings juju-core status tells me: error: Get  :301 response missing Location header12:53
mgzfwereade, jam: have pushed up and proposed a change I think is good to land12:54
vdsI've seen something similar here: https://bugs.launchpad.net/juju-core/+bug/108301712:54
_mup_Bug #1083017: Cannot bootstrap with public-tools in non us-east-1 region <ec2> <juju-core:Fix Released by dave-cheney> < https://launchpad.net/bugs/1083017 >12:54
mgzwant to try some other changes, but will probably use a different branch12:55
hazmatrogpeppe, i think yes to both (although the later primarily as an aggregate of the units being in good order). the problem is its implementation is extremely generic. so its hard to categorize effectively without auditing uses.. it supports additional things that i'm a little more concerned with like setting predicate expressions on relation data12:55
* hazmat pokes around a charm checkout12:56
rogpeppehazmat: yeah, we won't be doing that yet12:56
rogpeppehazmat: (if ever, i dunno)12:56
hazmatvds, is that the only output ? re juju-core status?12:56
vdshazmat, yep12:56
TheMuefwereade: time for a short hangout?12:57
fwereadeTheMue, I would love to but would you ping me again in 10 mins please?12:57
TheMuefwereade: ok12:58
fwereadeTheMue, tyvm12:58
TheMuefwereade: yw, i have to ty12:58
fwereadedimitern, LGTM13:01
dimiternfwereade: great, tyvm13:01
dimiternfwereade: and of the two cards left for upgrade-charm, which one is more important: handling (new peer) relations with SetCharm or validating endpoints compat?13:02
fwereadedimitern, peer relations13:05
rogpeppehazmat: yes, it would be very useful to know what's actually needed in practice.13:05
dimiternfwereade: ok, I'll pick that up next13:05
fwereadedimitern, the endpoints compat fixes a race but quite an obscure one13:05
fwereadedimitern, I'm ok to kick that back to post-13.0413:05
dimiternfwereade: great to hear :)13:06
hazmatrogpeppe, afaics there are only two users of jitsu watch.. juju-gui charm, and the internal implementation of jitsu test.13:11
hazmatrogpeppe, there are quite a few users of jitsu get-service-info13:11
rogpeppehazmat: what does get-service-info provide that juju status doesn't ?13:11
rogpeppehazmat: and how does jitsu test use jitsu watch?13:12
hazmatrogpeppe, fwiw the grep jitsu audit against precise charms. http://paste.ubuntu.com/5649345/ and quantal http://paste.ubuntu.com/5649346/13:12
hazmatrogpeppe, nothing of note.. its already built on status parsing13:13
rogpeppehazmat: cool13:14
jammgz: so what about making TestConfig.Config() a method, so that we copy it at that point13:15
jamrather than having it as an exposed map?13:15
mgzit ideally would not be exposed at all13:16
mgzbut the tests all suck13:16
mgzI have an alternative I prefer, but that's why I mentioned a different branch13:16
mgzbecause that's more rewritey13:16
=== wedgwood_away is now known as wedgwood
=== wedgwood is now known as Guest28578
=== Makyo|out is now known as Makyo
mariuskoHi, it seems like the Ubuntu package repo in EC2 is broken, at least in ireland region14:02
mariusko"Failed to fetch bzip2:/var/lib/apt/lists/partial/eu-west-1.ec2.archive.ubuntu.com_ubuntu_dists_precise-updates_main_source_Sources  Hash Sum mismatch"14:02
mariuskoBreaks most of the charms...14:03
robbiewmariusko: ack, thx14:12
mariuskorobbiew: opened a bug report to track it: https://bugs.launchpad.net/ubuntu-on-ec2/+bug/116035814:13
_mup_Bug #1160358: Hash Sum mismatch for Precise main and universe EC2 images <Ubuntu on EC2:New> < https://launchpad.net/bugs/1160358 >14:13
* dimitern lunch14:15
mariuskorobbiew: works fine in EC2 default US15:13
mattywrogpeppe, the api is great :)15:14
rogpeppemattyw: thanks!15:14
rogpeppemattyw: those are welcome words :-)15:14
robbiewmariusko: ok, thanks15:16
rogpeppemattyw: did you know you can see nicely formatted docs here? http://godoc.org/launchpad.net/juju-core/state/api15:16
robbiewI've alerted the appropriate folks within our IS and cloud engineering teams15:16
mattywrogpeppe, I'm actually serving it up on my pc using godoc -http=":6060" as I find it displays slightly neater15:17
rogpeppemattyw: even better :-)15:17
mattywrogpeppe, but I had seen the godoc.org one, one of the things I like about go15:17
rogpeppemattyw: although it's quite nice that the types on the godoc.org link to their definitions15:18
mattywrogpeppe, that's true, I'm happy to cheat and Ctrl+f for those though15:18
rogpeppemattyw: ha ha15:19
rogpeppefwereade, hazmat: fancy a brief chat about the interface to the juju-watch tool?15:31
fwereaderogpeppe, sure, if hazmat's not sleeping15:32
rogpeppefwereade: well, we could do an initial pass15:32
* TheMue is AFK as said yesterday, will continue later15:32
TheMuefwereade: changes feel good so far15:32
fwereadeTheMue, excellent15:33
rogpeppefwereade, hazmat: https://plus.google.com/hangouts/_/e8d67225b0b8f66799886c65264cd98a37bf4053?authuser=0&hl=en-GB15:33
rogpeppem_3: ping15:51
m_3rogpeppe: pong15:51
rogpeppem_3: just pondering the design of a jitsu watch-like tool15:52
m_3rogpeppe: cool15:52
rogpeppem_3: and wondering how important it is to retain compatibility with that tool's command-line interface15:52
rogpeppem_3: and how much functionality is required15:52
m_3rogpeppe: not important at all afaik... we can pretty easily adapt the tooling that's using it15:52
rogpeppem_3: ok, that's cool.15:53
m_3rogpeppe: required functionality imo:15:53
m_3rogpeppe: block until terminal state is reached15:53
rogpeppem_3: here's my preliminary sketch BTW: http://paste.ubuntu.com/5649690/15:54
m_3rogpeppe: make the current state available15:54
rogpeppem_3: ah, so when the terminal state is reached, it'll print the entire status?15:54
m_3rogpeppe: timeout can be done from outside of the tool15:54
rogpeppem_3: ok, though it's trivial to do inside it.15:54
m_3terminal states were {started, install-error, start-error} iirc15:55
m_3rogpeppe: no need for the entire status if we're watching a particular service... just that service's status15:56
rogpeppem_3: hmm, interesting, so just waiting for one particular state is not quite good enough.15:56
m_3rogpeppe: correct15:56
rogpeppem_3: do you need to watch for more than one thing at a time?15:56
m_3rogpeppe: in the context of testing, you wanna wait through non-terminal states (like 'pending')15:57
rogpeppem_3: yeah, i see that15:57
m_3rogpeppe: but know when your test is complete... pass or fail15:57
m_3rogpeppe: not sure if there's _really_ a need to watch more than one service... at least at first15:58
m_3rogpeppe: it'd be nice to watch for relation status as well15:58
m_3again... waiting through non-terminal... until a terminal is reachedd15:58
rogpeppem_3: what do you mean by relation status?15:58
m_3rogpeppe: I gotta run to chair an ubuntu-server irc meeting15:59
rogpeppem_3: ok, thanks for the input - very helpful!15:59
m_3rogpeppe: watch for relation state to be in a failed state or not15:59
m_3rogpeppe: I can talk more about it after that meeting...15:59
rogpeppem_3: that might be useful, thanks15:59
m_3rogpeppe: thanks for getting watchers in!!!16:00
rogpeppem_3: np!16:00
dimiternrogpeppe: are megawatcher_internal_test.go and state_test.go in a different package somehow?16:11
rogpeppedimitern: yes16:11
dimiternrogpeppe: I mean, they are but why?16:11
rogpeppedimitern: because megawatcher_internal_test tests lots of internal stuff16:12
rogpeppedimitern: the other tests test using only the external interfaces16:12
rogpeppedimitern: i broke with tradition for the allwatcher :-)16:12
dimiternrogpeppe: I need to move AddConfigCharm out of there, so I can use it in state tests16:12
rogpeppedimitern: you can use it in state tests16:13
dimiternrogpeppe: though conn_test yes16:13
dimiternrogpeppe: but istm something so generic should be in state_test instead16:13
rogpeppedimitern: you can use it directly too, if you want.16:13
rogpeppedimitern: well, it can't be in state_test because some of the internal tests use it16:14
rogpeppedimitern: unless we want to dupe the code16:14
dimiternrogpeppe: i need to add a similar helper - AddMetaCharm for overriding metadata.yaml, but putting this in megawatcher_internal_test seems wrong16:14
rogpeppedimitern: it's arguable that perhaps it should be in export_test.go16:15
dimiternrogpeppe: ok, I'll just put it there then, with AddConfigCharm16:15
rogpeppedimitern: megawatcher_test is just a place of convenience16:15
rogpeppedimitern: won't AddMetaCharm be almost identical to AddConfigCharm?16:16
dimiternrogpeppe: yes16:16
rogpeppedimitern: perhaps there's a more general function struggling to emerge here16:16
dimiternrogpeppe: yeah, good point16:16
dimiternrogpeppe: how should i call it? AddCustomCharm? passing filename + content?16:17
rogpeppedimitern: something like: AddTestingCharm(c *C, name string, mutate func(ch *charm.Dir)) ?16:18
rogpeppedimitern: if mutate is nil, it does nothing; otherwise it can be used to change the cloned charm as desired16:19
dimiternrogpeppe: I don't really want to change 100 files with tests just for that 1 func16:19
dimiternrogpeppe: i can do it in a follow up though16:19
dimiternrogpeppe: for now I'll add AddCustomCharm and make conn_test's Add(Meta|Config)Charm call it internally16:20
rogpeppedimitern: that sounds good to me16:20
rogpeppedimitern: as does the move to export_test.go16:20
vdsI get this error trying to go get juju-core https://pastebin.canonical.com/87778/16:30
rogpeppevds: try go get -u launchpad.net/goose16:33
rogpeppevds: then try again: go install launchpad.net/juju-core/...16:33
vdsrogpeppe, done already few minutes ago, I can try again16:34
rogpeppevds: hmm, that won't help then16:34
rogpeppevds: what revision of goose are you on?16:36
vdsrogpeppe, 6016:37
rogpeppevds: ah, current rev is 8216:37
rogpeppevds: i think you might be switched to a different branch or something16:37
vdsrogpeppe, it says trunk, I remove it and go get it again16:38
rogpeppevds: good plan16:38
dimitern vds: rev 60 seems about the same time we introduced tarmac + goose-bot for trunk management, so it's best to scratch it and get it afresh16:40
dimiternrogpeppe: i'm getting ErrExcessiveContention with upgradecharm stuff because of the annotations, albeit intermittently16:42
rogpeppedimitern: interesting. can you paste a log?16:42
dimiternrogpeppe: http://paste.ubuntu.com/5649803/16:43
fwereadedimitern, what's the connection to the annotations?16:44
dimiternfwereade: hmm.. maybe it's not actually16:45
dimiternfwereade: but it worked earlier today16:45
rogpeppedimitern, fwereade: yeah, that was my question too16:46
dimiternit's not intermittent - got it twice so far - 100% reproducability16:46
dimiternit worked before i merged current trunk just now, and it was working when I was submitting the upgrade charm cmd16:46
* fwereade checks16:47
rogpeppedimitern: i'm not seeing the issue at all16:47
rogpeppedimitern: do you see it when you run the test in isolation?16:48
dimiternrogpeppe: I was about to propose the new peer relations stuff and merged trunk before16:48
dimiternrogpeppe: it was working before the merge16:48
rogpeppedimitern: could you paste me the branch you're working on and i'll test it in that16:48
fwereadedimitern, STM that trunk works16:48
rogpeppefwereade: +116:48
dimiternlet me push it16:48
fwereadedimitern, are you 100% sure you're only adding *new* peer relations? ;p16:49
rogpeppedimitern: i've run it > 87 times now without problem16:49
dimiterni am16:49
dimiternin isolation it also fails16:50
fwereadedimitern, yeah, on reflection that question made little sense, sorry16:50
* rogpeppe wishes we added more context to errors as a matter of course16:50
dimiternlp:~dimitern/juju-core/017-upgrade-charm-add-new-peer-relations16:51
dimiternwhen I run the state tests they all pass16:52
dimiternincluding the new one i added to check new peer rels are added on upgrade16:52
dimiternbut upgrade cmd fails16:52
dimiterns/cmd fails/cmd tests fail/16:52
dimiterni cannot see what the problem might be16:53
rogpeppedimitern: i can confirm that i see the error16:55
fwereadedimitern, I'm not sure about the logic in peerRelationsDifference16:56
dimiternfwereade: please explain?16:56
fwereadedimitern, looks to me like "for every existing relation, if it's also a new one, add it"16:57
fwereadedimitern, where it should be "for every new relation, if it doesn't already exist, add it"16:57
dimiternfwereade: ah! makes sens16:58
dimiternfwereade: :) yeah, I'll change it16:58
dimiternsomething is very wrong with my machine -> rebooting17:00
dimiternfwereade: very weird.. how come such case wasn't caught by the state tests?17:05
dimiternfwereade: probably because the test is a bit flawed - I need to start with some peer relations already and then try to add new ones17:06
fwereadedimitern, I imagine your test coverage was a touch lacking somewhere, but I haven't actually read them yet17:06
dimiternfwereade: now it works! :) tyvm17:08
fwereadedimitern, awesome17:09
fwereadegn all, see you soon17:16
dimiternrogpeppe: if it's not too late for a review :) take a look at this please: https://codereview.appspot.com/8034043/17:26
rogpeppedimitern: have you added a state test that fails when the last issue wasn't fixed?17:27
dimiternrogpeppe: I improved the state test, but it's not easy to test this there17:28
dimiternrogpeppe: but upgrade-charm cmd tests pass now17:29
rogpeppedimitern: why is it hard to test?17:29
rogpeppedimitern: i think it's important to add a test near the functionality that was wrong17:30
dimiternrogpeppe: I think i did just that in the test\17:32
rogpeppedimitern: so you've reverted the changes to the non-test state files and checked that the state tests now fail?17:33
dimiternrogpeppe: no I didn't revert them17:34
rogpeppedimitern: it's worth trying, just to make sure17:35
dimiternrogpeppe: but the i guess the test could be improved a bit17:35
dimiternrogpeppe: I'll try yeah17:35
rogpeppedimitern: if tests still pass then the tests do need improving :-)17:35
dimiternrogpeppe: i'll give it a go tomorrow then17:36
rogpeppedimitern: cool, thanks17:36
dimiternrogpeppe: thanks you for reviewing this17:39
rogpeppedimitern: i haven't reviewed it yet, i'm afraid17:39
dimiternrogpeppe: well, the comments so far were helpful :)17:39
dimiternrogpeppe: i'd appreciate if you mention them17:40
rogpeppedimitern: on the review?17:40
dimiternrogpeppe: yeah, i'll be easier for me to remember the suggestions in the morning17:41
rogpeppedimitern: done17:42
dimiternrogpeppe: cheers17:42
rogpeppetime for me to go. g'night all.17:56
=== hatch_ is now known as hatch
thumpermorning19:56
mramm2thumper: evening ;)20:05
TheMueyep, evening, and latest CL is in again, so good night20:33
thumperfwereade: if you are around, I have more questions21:29
dimiternthumper: no chance right now :) just coming from his place, he's off already21:30
thumperdimitern: ok, ta21:30
dimiternthumper: btw what's your local time now?21:31
thumper10:31am21:31
dimiternah, ok21:31
davecheneythumper: sorry i missed you yesterday, i'm all yours today22:19
thumperdavecheney: cool22:19
thumperI have some questions now if you are available22:19
thumpermostly about how we use mongo, and state stuff22:19
davecheneythumper: lemmie get my headset22:22
davecheneyskype or G+ ?22:22
thumperskype?22:22
davecheneykk22:22
davecheneythumper: my cal says I have a surpirse one on one with mramm22:26
davecheneylets see if he is around22:26
davecheneymramm: ping22:26
thumpersurprise :)22:26
mrammdavecheney: pong22:26
thumperdavecheney: I can wait22:26
* thumper goes to get fud22:26
mrammnot a full 1 on 1, just want to catch up on things22:26
davecheneythumper: ok, you're next in line22:26
davecheneymramm: skype or g+ ?22:26
mrammsince it seems you have a lot in flight22:26
mrammeither works for me22:26
mrammI'm in the G+22:27
davecheneykk22:27
mrammbut can drop for skype if you prefer22:27
davecheneymramm: i'm inthe hangout now22:27
davecheneythumper: ok, off tha phone22:39
thumperhang on22:44
thumperdumb ipad22:44
thumperdavecheney: skype is being dumb22:45
thumperg+?22:45
davecheneysorry, this was working for the last G=22:46
davecheneyi'll send you a hang out22:46
davecheneythumper: http://docs.mongodb.org/manual/core/object-id/22:55
=== OutOfControl is now known as benonsoftware
=== wedgwood is now known as wedgwood_away
bigjoolsdavecheney: do you know a good example of how to use flags? the online docs are shocking23:51
davecheneybigjools: the gnuflags package ?23:58
davecheneyor the go flags package23:58
bigjoolsgo's23:58
davecheneyto be fair., they are both a bit of a headfuck23:58
davecheneythumper: thanks for the chat, sorry to kick you off so abruptly23:59
bigjoolsstd lib documentation is generally quite bad :(23:59
bigjoolsI got the flag part but I was hoping I could make it generate a usage error containing mandatory args as well23:59

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