/srv/irclogs.ubuntu.com/2014/05/20/#juju-dev.txt

sinzuiguess who types rm -r in his home directory00:50
sinzuiaxw, I have no notes, but I recall I wanted to ask how you did a full i386 test run00:51
sinzuiaxw I saw timeouts in the CI runs. I am sure you fixed the tools issue. I may need to procure bare metal or try running the tests in an lxc in a m1.large amd6400:53
wallyworld_sinzui: afaik, we hard coded the arch in arch.go to i38600:56
wallyworld_so it was faked00:56
sinzuiwallyworld_, okay00:58
sinzuiwallyworld_, is there an env setting to extend the timeouts in the test suite00:58
axwsinzui: one time I actually ran with i386 on canonistack00:58
axwsinzui: after all my changes I only ran locally with arch faked to i38600:59
wallyworld_sinzui: you use command line arg to test00:59
sinzuiaxw okay that works I have a sleve there00:59
wallyworld_test.timeout of something00:59
sinzuithank you wallyworld_01:00
wallyworld_-timeout is the raw go test arg01:00
sinzuiI think canonistack my be viable, even though I have tried to not use it01:00
wallyworld_i think you need test.timeout if used with gocheck, can't recall exactly without trying01:00
sinzuiwallyworld_, thank you01:00
sinzuianyway I need to rebuild my computer. I don't think I will accomplish much tomorrow.01:01
wallyworld_sinzui: np. here's the syntax:   "go test -gocheck.v -test.timeout=xxxxms"01:01
wallyworld_if you use gocheck01:01
* sinzui pastebin's that01:02
wallyworld_sinzui: did we need to schedule a chat about jenkins lander for core?01:02
sinzuiwallyworld_, not just yet. I don't have time to start since I still need to get ppc tested every rev01:03
wallyworld_ok, np01:03
sinzuiand the script that would build ppc64 packages just emptied my home directory01:04
wallyworld_sinzui: if you like, you can give us epermission to set up a job in your jenkins and we can experiment01:04
wallyworld_oh no!01:04
sinzuiAt least I know the script wont fill up the stilson disk space again.01:04
wallyworld_did you have backups?01:04
sinzuiLooks like I have one from 4 days ago01:04
wallyworld_better than nothing, but still :-( :-(01:05
wallyworld_sorry to hear that01:05
sinzuiI don't backup my work or hacking dirs. I need to rebuild my repos01:05
wallyworld_sinzui: would letting giving us permission to create a new jenkins job on your instance be viable? we could then experiment and get the lander working01:09
sinzuiwallyworld_, sure01:09
wallyworld_not sure how far we'll get01:09
wallyworld_but still, having more potential resources to help would be positive01:10
wallyworld_not that i'm in *any* hurry to leav lp01:10
wallyworld_git makes me sad the more i learn about it01:10
wallyworld_br is so much nicer01:10
wallyworld_bzr01:10
wallyworld_axw: morning, i didn't hear back from martin about how he got on looking at the TestEnsureAdminUser failure and he also hasn't assigned himself to the card. so in terms of stuff todo, there's that plus figuring out what's going on with juju on utopic. did you have any preference?01:27
axwwallyworld_: I can take a look at TestEnsureAdminUser01:28
wallyworld_ok, ta01:28
wallyworld_that test has been failing a lot01:28
axwwallyworld_: how'd you go with the PRs to joyent?01:29
wallyworld_axw: we now have a committment that they will look at them in the next day or so01:30
axwcool01:30
wallyworld_so, i'm budgetting for eow by the time it goes around01:30
davecheneytiny change https://codereview.appspot.com/100580045/01:51
perrito666davecheney: lgtm, if the readme file is in that directory :)02:35
menn0review please: https://codereview.appspot.com/92520043/  (new "user" supercommand)03:05
jimmiebtlrIs it best to always post here when a new codereview is up?03:48
jimmiebtlrA proposal for a bug fix03:49
davecheneyjimmiebtlr: seems to work well to get people to look at it if it is urgent03:56
davecheneyany members of juju-core will get an email that the code review is reday03:56
davecheneyactually, they'll get a lot of mail03:56
jimmiebtlrNothing urgent03:57
jimmiebtlrlow priority bug, just getting a feel for committing fixes03:58
davecheneyjimmiebtlr: i haven't seen anyting coming through email03:59
davecheneydo you have a link to the code review ?03:59
jimmiebtlrhttps://codereview.appspot.com/98410043/03:59
davecheneyjimmiebtlr: toptip:04:00
davecheneylbox propose -bug=1313793 to link the review to the bug04:00
davecheneyyou can do this now04:00
davecheneyand it will do the linkage04:00
jimmiebtlrthat returned an error "User does not have sufficient permission to edit the bug task milestone"04:02
davecheneyjam: wallyworld_ can you fix this ?04:10
wallyworld_hmmm, maybe. but we don't want to open permissions to change any milestone04:10
wallyworld_might be that lbox needs looking at to see what it is trying to do04:11
wallyworld_i wonder if it can be linked via the lp gui04:12
jimmiebtlrAre you referring to the codereview being linked to the bug, or the branch being linked to the bug?04:14
wallyworld_branch -> bug04:17
wallyworld_the code review will then pick up the link04:18
jimmiebtlrI linked the branch and the bug via the lp gui several days ago04:19
jimmiebtlror related it anyway04:20
wallyworld_hmm, ok. looks like it all went through ok in any case04:25
wallyworld_i suspect an issue with the lbox code trying to do something unexpected/unneeded but can't be sure without digging into it04:26
jimmiebtlrthanks for the help, I'm off04:29
davecheneyprotip: if you want to do a proposal, but aren't sure what the total diff will look like05:39
davecheneyyou can use the lbox -wip flag to get a proposal and not mail it05:39
=== vladk|offline is now known as vladk
=== vladk is now known as vladk|offline
jcw4yay for protip06:16
jcw4what about bzr missing?06:16
jcw4if I do an lbox propose, and then get feedback and make changes, should I do another lbox propose to propose the updated changes?06:21
jcw4fwereade, mgz ? ^^06:22
davecheneyTechnically, this is a 503 error and has been caused by our database being temporarily offline.06:24
davecheneysad trombone06:24
davecheneyjcw4: just do lbox propose06:24
davecheneyagain06:24
davecheneyjcw4: you are always proposing a branch, not a patch06:25
davecheneyso propose will always roll up your commits06:25
davecheneyso06:25
davecheneybzr commit -m '...';06:25
davecheneyuntil you are happy06:25
davecheneythen lbox propose to ask people to take another look06:25
jcw4davecheney: cool, tx!06:25
jcw4mgz, fwereade  updated the MR: https://codereview.appspot.com/98260043/06:30
* jcw4 is off to bed... early morning meeting at 1400 UTC06:31
jcw4:)06:31
=== Beret- is now known as Beret
voidspacemorning all08:03
fwereadevoidspace, heyhey08:05
TheMuemorning from a sunny veranda too ;)08:08
voidspacewe just had the most incredible downpour of rain and thunder for about half an hour08:09
voidspaceand now we're back to sun08:09
fwereadewe even had some rain here yesterday08:10
=== vladk|offline is now known as vladk
jammorning voidspace08:25
jamfwereade: https://codereview.appspot.com/93500044 is changing Resource to allowed named resources, and changing Pinger to use that functionality.08:26
* fwereade bbiab08:26
jamIts independent of my other API changes.08:26
fwereadejam, sorry, I'll take a look when I get back08:26
jamfwereade: np, no rush08:26
jamdimitern: you're welcome to look at ^^ as well, it is part of my changing of Facades to be versioned.08:27
jamnot directly related, but a necessary precursor to unifying how Facades are created.08:27
dimiternjam, will look in a bit, thanks08:27
voidspacedimitern: morning08:46
voidspacejam: morning to you too08:46
dimiternhey voidspace!08:47
voidspacedimitern: how's life?08:48
dimiternvoidspace, not bad at all :) i wish the weather was so good08:49
dimiternvoidspace, how was the grand canyon?08:49
voidspacedimitern: the grand canyon was spectacular, really amazing08:49
voidspacedimitern: I posted my pictures of our shooting expedition and the grand canyon on flickr08:50
dimiternvoidspace, nice, I'll check them out08:50
voidspacedimitern: https://www.flickr.com/photos/mfoord/sets/08:50
voidspacedimitern: I didn't get a picture of us both together at the shooting, shame :-/08:50
dimiternvoidspace, I still haven't got to posting some pictures yet08:50
voidspacedimitern: it was awesome though, one of the highlights of the trip for me08:50
dimiternvoidspace, yeah, but the photos otherwise kick ass ;)08:51
voidspacedimitern: hehe, yep - and the videos08:51
dimiternvoidspace, indeed08:53
dimiternvoidspace, next time - shotguns ;)08:53
voidspacedimitern: hehe, fair enough :-)08:54
voidspaceI've shot a shotgun before, clay pigeon shooting (once). I was getting the hang of it too.08:54
voidspaceall the guns we shot were fun.08:54
dimiternyep, unexpectedly for me, it *was* fun08:56
perrito666morning09:24
voidspaceperrito666: morning09:25
jamdimitern: fwereade: A followup which uses a Named StringResource to register "dataDir" so that Client's Facade constructor looks like all the other Facades: https://codereview.appspot.com/9941004309:46
dimiternjam, looking09:46
jamdimitern: did you look at the earlier patch? I didn't see a comment from you09:46
dimiternjam, no, sorry got caught up deep in goamz stuff09:47
jamnp, just figured you might want to look at that first09:47
dimiternjam, LGTM, i'm looking at the prereq now09:48
TheMuejam: I’m mostly happy with the document now, so I would like you to take another look. I’ll start with the table now.09:48
jamTheMue: do you have specific questions for me, or you just want me to audit the whole doc?09:49
mattywmorning folks - does this look odd or normal: https://bugs.launchpad.net/juju-core/+bug/132121209:49
_mup_Bug #1321212: Odd behaviour when using ensure-availability <juju-core:New> <https://launchpad.net/bugs/1321212>09:49
TheMuejam: a quick audit of the whole doc. I think everything is now clean and the open questions have been discussed yesterday.09:50
jammattyw: try running "juju bootstrap" and then "juju status" and then a loop of "juju status". You can check what the first line in ~/.juju/environments/$ENV.jenv says are the API servers.09:51
dimiternjam, the prereq LGTM as well09:51
jamThere *was* a bug that it was getting all the possible API server endpoints listed (and one of those is MachineLocal's 127.0.0.1) which is obviously not an address we want to store in clients09:52
jamI would *guess* that this isn't because of ensure-availability, but because of First Login issues09:52
jammattyw: you could also try "juju status --debug" to see what addresses it is trying to connect to09:52
jamthe really weird part is that 127.0.0.1:37017 looks like it is fallback code (we should never usually try to connect to 37017 which is the DB port)09:53
mattywjam, ok thanks - I "sort of" remember that stuff, I'll take another look09:53
=== vladk is now known as vladk|offline
voidspacebrb, grabbing coffee09:59
voidspacejam: doesn't look like natefinch is around yet10:03
jamvoidspace: yeah, I'm a bit surprised he picked that early for him, but when he comes around we'll chat10:03
voidspacejam: cool :-)10:04
voidspacequestion about our watcher architecture10:11
voidspacesuppose a client has a watcher on something (say environ-config changes for example)10:11
voidspaceand three changes occur before the client makes a "Next" request10:11
voidspacewill the subsequent two "Next" requests return *immediately*, or will the next "Next" wait for *another* change?10:12
voidspacedoes the apiserver maintain a queue of changes for watchers?10:12
jamvoidspace: they get collapsed, I believe the Watcher collapse interval is 5s10:13
jamso if there are 3 changes within 5s, then you only get 1 Next() event10:14
voidspacejam: ok10:14
voidspacewhat if there are 3 events each 5 seconds apart, and *then* the client makes a Next call - are they all collapsed too? Or is the collapse interval a *maximum* of five seconds.10:14
jamvoidspace: I'm pretty sure we don't maintain a "you have X events ready" we just have "something has changed" so a single bit10:15
voidspaceright - so they're collapsed all the time, but also "close" events are collapsed automatically anyway10:15
voidspaceso the watchers have a minimum granularity of 5 seconds10:15
voidspacethanks10:16
mattywjam, have you got a moment?10:29
jammattyw: what's up?10:29
mattywjam, tasdomas and I are working on adding output to ensure-availability so it prints what it's doing10:30
jamsure10:31
mattywat the moment we're changing the ensureavailbilityintent struct (addmachine.go:616) to be exported, but we'd have to make all of the values in it exported as well10:31
mattywbut that seems a bit odd since you don't really want to be able to change any of the values within ensureavailbilityintent one at a time10:32
mattywnate suggested we could ask you these kind of questions in his absense - just wondered if you had an opinion?10:32
jammattyw: looking into it10:34
jammattyw: so from what I see, there is just 4 lists of Machines that we are operating on, but we don't want to actually have the Machine objects themselves in the API10:35
jamrather, we should probably just expose lists of machine-tags10:35
jammattyw: so I'm thinking we shouldn't just make that type exposed, but create a new params.EnsureAvailabilityResult (Intent, Actions, ... ?)10:36
mattywjam, the apiserver was going to convert this type into a Results type anyway10:36
=== vladk|offline is now known as vladk
jammattyw: so... exposing the attributes is fine, they are all intended as Readonly anyway, and actually changing them doesn't have any actual effect.10:38
jamhowever, we have precedent for state could just return the polished up params.EnsureAvailabilityResults itself10:39
jamand then we don't have to expose raw Machine entities to apiserver/client code.10:39
jamwe *can* do it with that layering10:39
jamcertainly the AddMachine api works in real Machine objects and then wraps the data into returning the Id(), though *really* *really* AddMachine should be returning Tags not Ids10:40
jamthe API talks in terms of Tags10:41
jamthe internals talk in terms of Ids10:41
jamtime for an AddMachinesV3 :)10:41
mattywjam, I like the idea of the params.params.EnsureAvailabilityResults10:42
dimiternjam, standup?10:45
jamdimitern: yeah, brt10:45
jamvoidspace: looks like natefinch didn't make it online before his wife's dentist appointment11:20
jamI have to work on my son's homework in a bit, but I can chat with you after that.11:20
TheMuelunchtime, ended exactly when my wife called ;)11:36
=== vladk is now known as vladk|offline
voidspacejam: ok11:40
voidspacejam: if you're not around we can postpone appropriately11:41
voidspacejam: don't hang around on my behalf11:41
perrito666fwereade: hey, I am implementing what we spoke yesteday, about ServerInstances, the get/set methods you suggested should operate against Storage right?11:55
fwereadeperrito666, not necessarily11:55
fwereadeperrito666, we want them to be Environ method11:55
=== vladk|offline is now known as vladk
=== vladk is now known as vladk|offline
fwereadeperrito666, but we also need a common implementation that most environs can use to implement them11:56
=== vladk|offline is now known as vladk
fwereadeperrito666, and that would take a storage and keep working the same as before11:56
fwereadeperrito666, the important thing really is that those Environ interface methods *not* metion storage11:56
fwereadeperrito666, am I sounding sane?11:56
perrito666fwereade: most of the time11:57
fwereadeperrito666, how about in the last 2 minutes?11:57
perrito666sane enough :) tx11:57
fwereadeperrito666, cool :)11:57
perrito666what still bothers me a bit is that everywhere seems to be implying that the current storage Should already have that info11:58
* perrito666 looks the rain outside and smiles on his non commuting job11:59
fwereadeperrito666, that is still true12:01
fwereadeperrito666, which is why almost everything should use that method12:01
wwitzel3hello12:01
fwereadeperrito666, pretty sure that manual and local will be different to some degree, though12:02
perrito666fwereade: expected12:02
fwereadeperrito666, and more to the point, we will soon have to deal with some cloud that *doesn't* have storage12:02
perrito666fwereade: I see12:03
fwereadeperrito666, (also, wallyworld_ is moving storage into gridfs soon as well -- so we'll be dropping storage from Environ anyway)12:03
perrito666ok then, I should assume storage is not there for my new methods and then do everything use those12:04
voidspacelunch12:06
fwereadeperrito666, yeah, all the implementations will use storage, but the interface shouldn't mention it12:14
* fwereade should have known the "JoinedRelations" API method was a bad idea, because it should now be "RelationsInScope"12:15
* fwereade kicks himself a couple of times12:15
* fwereade can't wait for the versioned API12:15
ahasenackhi, can someone see what's wrong with the simplestreams in this bug, it was produced by juju's 1.19.2 metadata command, and can't bootstrap12:21
ahasenackhttps://bugs.launchpad.net/juju-core/+bug/132100912:21
_mup_Bug #1321009: juju-metadata doesn't produce content that bootstrap can use <landscape> <juju-core:New> <https://launchpad.net/bugs/1321009>12:21
wallyworld_sinzui: hi, the failing trusy tests can't run bzr, i have no idea why off hand, bzr add results in an error13:12
wallyworld_... Panic: command failed: bzr add13:12
wallyworld_ (PC=0x4143E6)13:12
wallyworld_i haven't seen that before13:12
wallyworld_looks like it's external to juju?13:12
wallyworld_the PC=xxxx is from the br add output13:13
wallyworld_bzr13:13
wallyworld_ahasenack: i commented on your bug - i think you just need to delete your old jenv file and/or first destroy your existing environment13:13
sinzuiwallyworld_, :( I see this hack is still in place when CI prepares13:13
sinzuibzr whoami 'J. Random Hacker <jrandom@example.org>'13:13
wallyworld_that jrandom doesn't look like it comes from juju13:14
ahasenackwallyworld_: ok, will try, thanks13:18
=== cory_fu2 is now known as cory_fu
dimiternniemeyer, hey13:33
niemeyerdimitern: Hey hey13:33
dimiternniemeyer, I have a small review for you if you can spare 10m - https://codereview.appspot.com/98430044/ (for goamz)13:34
dimiternjam, vladk, fwereade, ^^ another review appreciated13:34
ahasenackwallyworld_: same problem, let me paste13:35
niemeyerdimitern: Not exactly a *small* review, but will surely look :)13:35
dimiternniemeyer, :) thanks13:35
ahasenackwallyworld_: http://pastebin.ubuntu.com/7492988/13:35
niemeyerdimitern: At a glance, it's easy to tell the code is under-covered by tests13:36
niemeyerdimitern: Maybe that's okay, given that the fake server itself is meant to be the test13:36
niemeyerdimitern: (how far do we test the test)13:36
dimiternniemeyer, I've included the most important parts for juju in the tests13:37
niemeyerdimitern: Why do we have the rest of the logic in the fake server if it's not relevant?13:46
dimiternniemeyer, which logic?13:49
niemeyerdimitern: You said you've included the most important parts for juju in the tests13:50
dimiternniemeyer, yes - that is the assumption in juju that all instances have 1 nic after launching13:52
niemeyerdimitern: Not sure about how that reflects into the above points13:55
perrito666voidspace: wwitzel3 could anyone of you jump into the moonstone channel? I am trying to set up my hangout13:56
dimiternniemeyer, well, i've always assumed the test server should (when possible) mimic ec2 as close as possible13:56
voidspaceperrito666: ok13:57
dimiternniemeyer, what do you think needs more test coverage?13:57
niemeyerdimitern: I'm mainly wondering about what you were saying.. I said there's certainly a good portion of untested logic in the server, given how extensive the code is and how slim the tests are13:59
niemeyerdimitern: then you said something along the lines of "what matters for juju is tested"13:59
niemeyerdimitern: and my question was "why do we have anything that does not matter for juju in there"?13:59
dimiternniemeyer, ok, let's backtrack a bit, sorry14:00
dimiternniemeyer, imho it doesn't make sense to implement "create a default network interface when none given in RunInstances" and not do "create/use network interfaces if specified in RunInstances"14:01
mbruzekHi guys I am seeing an SSLError from deployer when I try to run some amulet tests.  http://pastebin.ubuntu.com/7493011/14:01
hazmatmbruzek, update your version of jujuclient14:01
dimiternniemeyer, the code it almost the same in both cases14:01
dimiternniemeyer, and the tests indeed cover those 2 cases - the implementation is actually longer than the tests need to be I think14:02
mbruzekhazmat, python-jujuclient is already the newest version.14:02
hazmatmbruzek, are you pulling things from pypi or from packages?14:03
dimiternniemeyer, there are very few changes in behavior not really tested - like "ensure you can't launch more than 1 instance when you specify an existing NIC ID"14:03
hazmatmbruzek, if you pull from packages it should be fine, but if you start mixing in some from both there's a python-websocket default behavior change in ssl cert verification that needs a corresponding version change.14:03
dimiternniemeyer, or a test that creates 2 NICs14:04
hazmatmbruzek, what version?14:04
hazmatmbruzek, pip -U python-jujuclient14:04
hazmatto upgrade14:04
mbruzekhazmat no such option: -U14:04
dimiternniemeyer, on the same instance, but it is supported, I can add a second RunNetworkInterface item to RunInstances and it will do/test that14:04
mbruzekhazmat it looks like 0.17.5 is the version I have14:05
mbruzek$ pip freeze | grep jujuclient14:05
mbruzekjujuclient==0.17.514:05
niemeyerdimitern: I somewhat doubt that, given the sheer volume of logic in the code which is not represented in the tests14:05
hazmatmbruzek, can we move this to #eco14:05
niemeyerdimitern: But as I said, I'm won't argue much.. this is test code being tested14:05
niemeyerI won't14:06
=== hatch__ is now known as hatch
dimiternniemeyer, yes, it is test code14:06
dimiternniemeyer, but I'll be happy to add more tests if you have something particular in mind14:06
niemeyerdimitern: I have everything there in mind :)14:07
dimiternniemeyer, :)14:08
niemeyerdimitern: Lots of these lines are unchecked14:08
niemeyerdimitern: I'm not going to go over the trouble of telling you every single one14:08
niemeyerdimitern: If you really care, you might go over the diff and check yourself14:08
dimiternniemeyer, I'll look some more into it, thanks14:09
jcw4thanks fwereade14:16
bodie_fwereade, wasn't sure if there was any more you wanted to add, but everyone dropped off :)14:16
jcw4wrt. Txn loop: you had sent me some example code which I subsequently misplaced....14:17
fwereadejcw4, bodie_: I'd be keen to talk about txn loops -- mgz, not sure if you've delved deeply there before?14:17
fwereadejcw4, heh, no worries, I'll look that up again -- or, tell you what, I'll do a quick comment on your CL if you send me the link again14:17
jcw4fwereade: +114:17
bodie_my only knowledge is that it's a technique essentially for pipelining State's database queries and upserts through a single port of authority14:17
jcw4fwereade: https://codereview.appspot.com/98260043/14:18
fwereadejcw4, bodie_, mgz: a live chat might be worthwhile then, I'll find the comment I did for perrito66614:18
perrito666voidspace: apparently https://bugs.launchpad.net/ubuntu/+source/linux/+bug/95049014:18
_mup_Bug #950490: External microphone does not work on Zenbook UX31 <amd64> <apport-bug> <precise> <verification-done-precise> <linux (Ubuntu):Fix Released by diwic> <linux (Ubuntu Precise):Fix Released> <https://launchpad.net/bugs/950490>14:18
voidspaceperrito666: ah, so it maybe Ubuntu's fault14:19
perrito666alsa, actually14:19
dimiternfwereade, do you have some time for a goamz review? https://codereview.appspot.com/98430044/14:19
voidspaceperrito666: I have a similar issue - when you have any alternative audio input source the "line in" is no longer available to select14:19
dannfhow can i specify a constraint in a bundle?14:31
dimiternniemeyer, In any case, I'd appreciate your review14:34
niemeyerdimitern: Have been doing it since14:34
niemeyerdimitern: The "10 minutes" :)14:34
dimiternniemeyer, thanks! :)14:35
niemeyerdimitern: https://codereview.appspot.com/98430044/14:39
dimiternniemeyer, cheers!14:39
=== Ursinha is now known as Ursinha-afk
niemeyerdimitern: np, please let me know how you feel about these14:42
dimiternniemeyer, will do14:44
=== Ursinha-afk is now known as Ursinha
=== vladk is now known as vladk|offline
bacmarcoceppi: super trivial charm-tools review at https://codereview.appspot.com/98390047 when you have time15:09
marcoceppibac: thanks!15:12
jamfwereade: yay, Client and Pinger are now no longer special in "api-use-register-standard-facade" so now everything is *just* another Facade with a similar factory.15:39
* fwereade cheers15:40
dimiternniemeyer, updated https://codereview.appspot.com/98430044/ with most of your suggestions, and added some replies15:42
* dimitern reached EOD15:43
tasdomashi15:54
tasdomasI am getting a test failure in cmd/juju/machine_test.go:25315:56
tasdomas(on trunk) : http://paste.ubuntu.com/7493538/15:57
jcw4fwereade: 6pm too late to discuss txn loop?16:01
fwereadejcw4, that's fine16:01
fwereadejcw4, was that link remotely relevant, or missing too much context?16:02
jcw4fwereade: I reviewed and looks interesting.. one question16:02
jcw4fwereade: should I build the ops in the loop?16:02
jcw4fwereade: I assume so16:02
jcw4fwereade: generate the Id outside the loop but everything else inside?16:02
fwereadejcw4, yeah, exactly16:03
jcw4fwereade: and is there a specific reason for 3 iterations?16:03
fwereadejcw4, it may not *always* be necessary to do so, but it's generally the right thing to do16:03
jcw4fwereade: k16:03
fwereadejcw4, none whatsoever16:03
jcw4fwereade: ok... Shall I start with 3?16:03
fwereadejcw4, some use 5; some use fewer because we can guarantee that >2 implies something wrong16:03
fwereadejcw4, sgtm16:03
jcw4fwereade: makes sense16:04
fwereadejcw4, at some point I'll probably get round to a generalised txn build/run/backoff-retry thing16:04
jcw4fwereade: ok.  also, if the txn completes successfully we just break out of the loop right?16:05
fwereadejcw4, better yet, if err != txn.ErrAborted { return err }16:05
fwereadejcw4, that covers both success and surprising failures like dropped connection16:05
jcw4fwereade I see.  so on success err will be nil therefore we return nil error16:06
fwereadejcw4, yeah16:06
jcw4fwereade: and if its anything else but ErrAborted we return the suprising error16:06
jcw4fwereade: and if the failure is ErrAborted we just try again16:06
jcw4k16:06
fwereadejcw4, yeah, just try to build a fresh txn against whatever state needs to be updated16:07
fwereadejcw4, in your case, check the unit's life again16:07
jcw4fwereade: until we finish the loop, and if we get there we return ErrAborted?16:07
jcw4fwereade: ok16:07
fwereadejcw4, fall out of the loop and return ErrExcessiveContention16:07
jcw4fwereade: perfect16:07
fwereadejcw4, although what that *really* means in every case I have yet seen is "some programmer ballsed things up"16:08
fwereadejcw4, one detail16:08
jcw4fwereade: hehe16:08
fwereadejcw4, you'll want to clone the unit rather than Refresh() it in the loop16:08
fwereadejcw4, we prefer not to update fields whose update isn't implies by the op you're running16:09
jcw4fwereade: hmm.  Okay16:09
fwereadejcw4, ie you should be able to call a bunch of methods in a row and not have to worry about in-memory state changing underneath you16:09
fwereadejcw4, (although if you SetFoo you do expect foo to be set)16:09
jcw4fwereade: I think I get it.  I should be able to code this part up fairly quickly... I forget where the example of how to test txn loop stuff was though16:10
bodie_fwereade, jcw4, I'm worrying about the technique I'm using to validate the actions.yaml as valid json-schema16:10
bodie_right now, our actions.yaml is relatively simple, as specified in the MR16:11
fwereadejcw4, the funcs are defined in export_test.go -- SetTransactionHooks et al16:11
jcw4fwereade: right. tx!16:11
bodie_it appears to parse as valid json-schema, but i'm looking at the json-schema spec right now and, among other things it requires a root level key of $schema16:11
bodie_which isn't present in my actions.yaml16:11
fwereadejcw4, searching for Hooks in the state package should get yu plenty of examples16:12
jcw4fwereade: +116:12
fwereadebodie_, hmm, can you get it to fail at all? :)16:12
bodie_it could be that it's returning an empty json-schema, and i'm not checking for that.  i guess that's the point i need to dig down to16:12
bodie_or, perhaps simply loading a k/v map as a jsonschemadoc isn't sufficient to validate it16:12
fwereadebodie_, the examples on json-schema.org don't necessarily include that16:13
bodie_http://json-schema.org/latest/json-schema-core.html#anchor2316:13
bodie_good point16:13
bodie_in that case, I don't understand the use of "MUST" in this spec ;)16:14
fwereadebodie_, "MUST if you feel like it ehh who cares"16:14
bodie_MUST be optional16:14
bodie_:/16:14
bodie_AH16:15
bodie_ah* I misread it16:15
bodie_IF it exists, it must be at the root; it is "RECOMMENDED" that schema authors include this keyword16:16
bodie_need to beef my reading comprehension.  Go is making me lazy....16:16
fwereadebodie_, ah cool16:16
bodie_order matters in short-circuit evaluation of English clauses...16:17
bodie_I guess I'm having a hard time thinking of valid YAML that isn't also valid JSON-Schema16:17
fwereadebodie_, stick a $schema key in *not* at the root :)16:19
bodie_good one16:19
fwereadetasdomas, yeah, that's clearly a real problem, good that you can repro16:22
* fwereade beholds the horror that is cmd/jujud and sighs heavily16:24
jcw4fwereade :)16:24
tasdomasfwereade, if there's anything I can do to help resolve this, let me know - I'd be glad to help16:24
jcw4fwereade: *how* do I clone a unit?16:24
tasdomasalso, lbox propose gives me this error: error: Failed to update merge proposal log: Server returned 401 and body: (<BranchMergeProposal at 0x2af0e8f83850>, 'description', 'launchpad.Edit') - no idea, what's it about, though.16:24
jcw4fwereade:  st.Unit(id) /??16:25
fwereadejcw4, that's probably the easiest way, yeah16:25
jcw4fwereade: tx16:25
fwereadetasdomas, sorry, that bit doesn't ring a bell16:26
jcw4tasdomas: isn't 401 forbidden?16:26
jcw4tasdomas: maybe some auth issue?16:26
fwereadetasdomas, I can explain what the problem is but I kinda want to check with wallyworld_ to see if there's some reason it's like that16:26
jcw4tasdomas: Unauthorized (not forbidden)16:27
mgztasdomas: mat be worth deleting your launchpad login cookie bits and going through the auth in browser bit again16:29
tasdomasmgz, jcw4 - thanks for the advice, solved the issue (had not granted lbox the proper permission level)16:30
mgztasdomas: rm ~/.lpad_oauth16:30
mgztasdomas: ah yes, that one... selecting anything other than "change everything" is a bear trap16:31
mgzthese days launchpad lets the app say what access it wants, lpad probably need updating16:31
jcw4tasdomas: cool16:31
=== vladk|offline is now known as vladk
fwereadetasdomas, you can "fix" it by moving the setupContainerSupport call up just after the `runner := newRunner(...` line16:34
mgzI say these days, 2010... <http://jameswestby.net/weblog/tech/16-Improving-the-usability-of-launchpadlib-using-code.html>16:34
fwereadetasdomas, I would probably LGTM that if you proposed that alone16:34
tasdomasfwereade, great - will do16:35
fwereadetasdomas, but... that whole method is evidently all screwed up16:35
fwereadetasdomas, if I suddenly figure out why that's a terrible idea, I apologise16:35
tasdomasfwereade, no problem - at least you've pointed my in some direction, I'll go take a look at it16:35
* perrito666 starts doing ddd before going crazy16:42
* fwereade approves16:42
voidspaceyay, they're retiring canonicaladmin!!!16:48
voidspaceawesome16:49
mgzvoidspace: not quite, does expenses still16:49
voidspacemgz: ah, well not too bad I guess16:49
voidspacewhich reminds me, I haven't done my expenses for vegas yet16:49
mattywvoidspace, tasdomas and I were have that exact conversation just now16:51
voidspaceheh17:09
voidspaceEOD folks17:23
voidspaceg'night17:23
wwitzel3voidspace: see ya17:23
perrito666fwereade: I am trying to write a watcher for instance id changes but I am not sure what to watch17:39
perrito666brb17:39
fwereadeperrito666, I think the existing API-addresses watcher should be sufficient to inform you of any changes to the set of state servers; then you can just look up the instances on the state server machines, I think17:41
=== vladk is now known as vladk|offline
fwereadeperrito666, btw, you're writing a new API, so please don't just use the same name for the watch method -- you can use the same state method to start the watch, but make the API name reflect its purpose not its implementation17:48
jcw4fwereade: what kind of action would disrupt a transaction that's adding an action to the state.actions collection?17:50
fwereadejcw4, I can't think of anything; you should probably just check for unit dead17:51
fwereadejcw4, you've already got a unique id17:51
jcw4fwereade: yep, but I want to write a failing test first17:51
fwereadejcw4, so it should be impossible for the DocMissing to fire17:51
jcw4so something that would perturb the transaction :)17:52
fwereadejcw4, ok, so set a txn hook that makes the unit Dead in its Before17:52
jcw4fwereade: doh~!  tx!!17:52
fwereadejcw4, you'll want to call preventUnitDestroyRemove() before you Destroy, otherwise it'll fast-forward straight through to removed (which you'll also want to test, but you can't make it Dead unless you do that, Destroy, EnsureDead17:53
jcw4fwereade: ah.. ok.  I already did the Destroy / EnsureDead for another test, but didn't call preventUnitDestroyRemove() first...17:54
jcw4test seemed to work as I expected though... prolly just lucky17:54
fwereadejcw4, I'm sure it *was* a valid test, just not the one you thought you were writing ;)17:55
jcw4lol17:55
perrito666fwereade: I was going for WatchAPIInstances not sure if that is what you meant with the naming18:12
jcastrohttp://askubuntu.com/questions/448444/juju-security-model-issues18:18
jcastroCan someone from core check out that question? I've tacked a bonus 200 point bounty!18:19
sinzuiperrito666, the ha-backup-restore test is queued. I can enable it when you land.18:21
natefinchjcastro: I can answer it, but they might not like the answer :)18:22
jcastrothat's fine18:22
jcastronatefinch, towards the end of the answer encourage him to post to the list if he wants to follow up18:22
natefinchahh good idea18:23
jcastroIt'd be interesting to get real details on what he's planning on doing, etc.18:23
fwereadeperrito666, let's say WatchStateServerInstances?18:26
=== vladk|offline is now known as vladk
=== vladk is now known as vladk|offline
natefinchjcastro: responded, btw18:43
=== vladk|offline is now known as vladk
jcw4using mgo txn.Assert... how can I see which Assertion failed?19:38
jcw4mgo seems to only return ErrAbort if something fails19:38
natefinchsorry, no idea19:44
fwereadejcw4, you can't19:45
fwereadejcw4, that's one of the big reasons for the loop structure19:45
fwereadejcw4, go back to the top, start building txn again, checking for sanity against latest known state19:45
fwereadejcw4, assuming your in-memory checks map correctly to your assertions, you'll fail out appropriately19:46
jcw4Boom19:46
jcw4I see now19:46
jcw4:)19:46
fwereadejcw4, sweet19:47
jcw4with enough repetition even granite will crack19:47
fwereadejcw4, not at all, you have taken less instruction than most -- it's really not a familiar way of working for almost anyone19:48
mbruzekHello juju-devs, I am running juju local, and all my systems are in "pending" state.  I remember a similar problem when I had an incomplete image.  Can someone refresh my memory where juju stores the local images?19:48
jcw4fwereade: thx... I'm loving the 'go' way of thinking, so this has been a fun project19:49
fwereadejcw4, awesome19:49
fwereadembruzek, I will poke around but might have to go in a sec, someone else who knows for sure should certainly answer if they can19:49
mbruzekhttp://pastebin.ubuntu.com/7494454/19:50
mbruzekThat is the symptom, all my machines are in pending.19:50
mbruzekI am looking in /var/lib/containers/ but I don't know what I am looking for.19:51
natefinchmbruzek: check ps -A | grep lxc  - sometimes my lxc gets stuck and there will be a half dozen lxc processes started but not doing anything... I end up having to reboot to fix it.19:51
fwereadembruzek, it's /var/lib/juju/containers FWIW19:52
mbruzeknatefinch, I see nothing when running ps -A | grep lxc19:52
fwereadembruzek, it might be worth checking the logs for "juju.container.lxc" messages19:53
mbruzekfwereade, the logs in ~/.juju/local/log/  have no such messages,19:55
mbruzekI screwed something up here, I can tell19:55
fwereadembruzek, well, it might have been us19:56
fwereadembruzek, how about "provisioner" messages?19:56
mbruzekIt was running earlier today19:56
mbruzek/var/log/juju-mbruzek-local$ grep provisioner *19:57
mbruzekall-machines.log:machine-0: 2014-05-20 19:44:16 INFO juju.worker.singular singular.go:101 starting "environ-provisioner"19:57
mbruzekall-machines.log:machine-0: 2014-05-20 19:44:16 INFO juju.worker runner.go:260 start "environ-provisioner"19:57
fwereadembruzek, hmm, this exact environment was running before? or the "same" one, but destroyed and recreated?19:57
fwereadebrb19:58
mbruzekI destroyed the environment a few times today.  Had to control+C out of a bootstrap at one point.19:58
mbruzekprobably should not have done that (I realize)19:58
mbruzekAll looks well when I destroy-environment and bootstrap20:01
mbruzekhttp://pastebin.ubuntu.com/7494490/20:01
natefinchyeah, we try to handle control-C, but it's still not always 100%20:02
mbruzekBut when I try to deploy all machines stay in pending state and I get no unit logs.20:02
mbruzekfwereade, When you get back it is the "same" environment destroyed and recreated.20:07
natefinchmbruzek: what does sudo lxc-ls tell you?20:08
mbruzekI just destroyed the environment again natefinch, sudo lxc-ls reports nothing.20:09
mbruzekwould you like me to bootstrap and run it again?20:09
natefinchmbruzek: bootstrap, add a machine, wait 30 seconds, then run sudo lxc-ls20:10
mbruzeknatefinch,  http://pastebin.ubuntu.com/7494534/20:12
mbruzekStill nothing when I run a second sudo lxc-ls --fancy20:13
natefinchmbruzek: yeah, something's wonky, should look more like this: http://pastebin.ubuntu.com/7494535/20:13
mbruzekHow do I ask juju to re-download the image files?20:14
natefinchmbruzek: they should be in /var/lib/juju/containers   if they're not there.... lemme check, I'm not 100% sure20:16
mbruzekI see directories at that location juju-precise-template  juju-trusty-template  mbruzek-local-machine-120:16
mbruzekthey contain clout-init lxc.conf, container.log and console.log no binary image.20:17
natefinchmbruzek: same here20:23
mbruzekHow about your lock directory?20:23
mbruzekroot@workhorse:/var/lib/juju/locks# ls20:23
mbruzekjuju-precise-template20:23
natefinchno locks for me20:28
mbruzekI still have the lock when I have destroyed the environment.20:28
natefinchmbruzek: try rebooting. I know it's wacky, but it helps a lot of the time (unless you've already tried that)20:29
mbruzekCan I safely remove the /var/lib/juju/locks/juju-precise-template when the system is destroyed?20:29
mbruzeknatefinch, I have not rebooted, seems a bit windows-ish, but I am not against doing that.  As long as you are back here when I get back!20:30
natefinchmbruzek: I have no idea.  My knowledge of lxc is pretty limited, unfortunately.20:30
natefinchI'll be here for another half hour20:31
mbruzeklet me try removing the directory under locks so mine looks like yours firt20:31
mbruzekfirst20:31
sinzuinatefinch, I don't understand this bug. I don't think it is about virtual private clouds https://bugs.launchpad.net/juju-core/+bug/132144220:32
_mup_Bug #1321442: Juju does not support EC2 with no default VPC <juju-core:New> <https://launchpad.net/bugs/1321442>20:32
mbruzeknatefinch, fwereade deleting /var/lib/juju/locks/juju-precise-template looks like has done the trick.20:35
mbruzekI am able to get machines started now, and charms deployed!20:36
natefinchsinzui: we definitely don't require VPC20:36
natefinchmbruzek: awesome20:36
mbruzeknatefinch, Thanks for hanging in there with me.20:36
natefinchmbruzek: no problem... I've been there20:36
mbruzekI am sure fwereade would have too if he did not have to go.20:37
natefinchmbruzek: seems like our cleanup code probably needs a little more attention to make sure we don't get that lock file stuck there20:37
mbruzekyes that would be something to check.20:37
natefinchmbruzek: yeah, it's 9:30pm his time, sorta understandable20:37
mbruzekYes, well thanks for both of you walking me through it.  I am not blocked any longer.20:38
natefinchawesome20:39
bodie_if a charm's actions.yaml has no params defined for an action, should its Params be nil or empty?21:15
bodie_s/its/the Action's/21:15
bodie_I'm assuming empty, but I want to make sure21:15
waiganianyone know how to resolve a ghost in the ancestry of a bzr branch? (I feel like I'm playing a fantasy game)21:20
waiganiCould not determine revno for {jesse.meek@canonical.com-20140519235723-weky2oyq7yc20kqc} because its ancestry shows a ghost at {tarmac-20140413170514-ii8w6q2fht3eiizi}21:20
wwitzel3EOD for me21:22
jcw4bodie_: I vote for empty21:24
waiganicya wwitzel321:26
=== vladk is now known as vladk|offline
=== vladk|offline is now known as vladk
wallyworld_fwereade: did you have any followup comments to my followup comments to your comments? :-)21:29
jcw4wallyworld_: fwereade will probably followup with you on that ...21:32
wallyworld_:-)21:32
sinzuiwallyworld_, I would like your help triaging bug 132079421:44
_mup_Bug #1320794: After bootstrapping an OpenStack environment, juju tries to connect to the internal IP <addressability> <landscape> <openstack-provider> <juju-core:New> <https://launchpad.net/bugs/1320794>21:44
wallyworld_sinzui: ok, one sec otp21:44
=== vladk is now known as vladk|offline
sinzuiwallyworld_, I understand juju avoids public ips for internal communication, and that it (1.18.x) doesn't understand multiple networks. I think the issue may be fixed in 1.19.x and possibly related to bug 128386621:45
_mup_Bug #1283866: Openstack (>=grizzly) instanses can't accept floating IPs <addressability> <api> <days> <openstack-provider> <juju-core:Triaged> <https://launchpad.net/bugs/1283866>21:45
wallyworld_sinzui: in 1.19 (and possibly later 1.18 releases), work was done to make juju smarter about using the right network. it may be that the above bugs are the result of issues with the implementation. i'll talk to martin about it and update the bugs accordingly22:03
sinzuifab. Thank you wallyworld_22:03
wallyworld_sinzui: we need to talk about ppc, can i meet with you this time tomorrow, or about 30 minutes earlier?22:04
sinzuisure22:04
wallyworld_ok, i'll ping you22:04
* sinzui talked with dave and alexisb last hour about it22:05
wallyworld_yeah, i just got asked to get involved22:05
sinzuiwallyworld_, sure ping me when you are ready, caffeinated, and waring cozy slippers22:05
wallyworld_will do22:06
wallyworld_sinzui: also, i'm at a loss about the bzr failures, i'll need to talk to john or someone to try and understand why it's ding like that22:06
wallyworld_dying22:06
sinzuiwallyworld_, I just verified the new CI build scripts will build PPC debs and tools for testing each time we test a revision. I will put this change into operation tomorrow22:06
wallyworld_oh great. that's one of the things i wanted to talk abot22:07
sinzuiwallyworld_, I was pondering python version and bzr22:07
wallyworld_did that change?22:07
sinzuiwallyworld_, I don't know.  I am not firing on all cylinders. I deleted my home directory last night; I am still numb.22:08
wallyworld_:-(22:08
wallyworld_leave it with me, we can catch up about it tomorrow22:08
wallyworld_sinzui: i find a large glass of red helps in such situations :-)22:09
sinzuiAnne bought me cider :)22:10
wallyworld_\o/22:10
* wallyworld_ bbiab22:10
perrito666hello night shift22:53
rick_h_wallyworld_: ping when you get back22:54
davecheneylucky(~/src/launchpad.net/juju-core/state) % go test23:49
davecheney2014-05-20 23:46:31 INFO juju.testing mgo.go:453 reset successfully reset admin password23:49
davecheney2014-05-20 23:47:02 INFO juju.testing mgo.go:453 reset successfully reset admin password23:49
davecheney2014-05-20 23:47:25 INFO juju.testing mgo.go:453 reset successfully reset admin password23:49
davecheneyOK: 455 passed23:49
davecheney^ something leaking out the the tests23:49
davecheneyPASS23:49
davecheneyok      launchpad.net/juju-core/state   125.341s23:49
davecheneyi didn't used to leak this output23:49
wallyworld_rick_h_: g'day23:51
rick_h_wallyworld_: hey man, got time to catch up at some point tonight/today?23:52
wallyworld_sure, now?23:52
rick_h_wallyworld_: sure23:52
wallyworld_i'll start a hangout23:52
wallyworld_https://plus.google.com/hangouts/_/gwwgzrr4og3azmmxmywivftyxua?hl=en23:52

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