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

=== wedgwood is now known as wedgwood_away
* thumper is back00:10
thumperdavecheney: I have an idea, but it is a little icky00:12
davecheneyshoot00:12
thumperdavecheney: I'll see if I can make it owrk00:12
thumperparameterise from above00:12
thumperif I can't use a dynamic way of getting the param, pass it in00:12
* thumper bangs on the keyboard for a bit00:14
* thumper sighs00:24
thumpertests in cmd depend on classes in ../worker00:27
thumperseems wrong IMO00:28
davecheneytest helpers ?00:28
davecheneycards on the table00:28
davecheneyi'm here to help make Juju better in any way that you think it should be00:28
davecheneybut I can't change the language00:29
davecheneyit isn't object oriented in the way that most of the textbooks say00:29
davecheneyso some things just won't work00:29
thumperdavecheney: more just testing other parts00:29
thumperI've got it working00:29
thumperisn't as fugly as some methods00:29
thumper:)00:29
thumperdavecheney: ok, question time...00:33
davecheneyshoot00:34
thumperif I have a composed element, and I want to provide specialised implementation of a function also defined by the composed element00:34
thumperand I want the derived function to call the composed function00:34
thumperwhat is the way to do it?00:34
* davecheney translates00:34
davecheneytwo secs, lemmie do a paste00:34
davecheneythumper: is this of any use ? http://play.golang.org/p/NbcP2zklaj00:38
* thumper clicks00:38
thumperb.A.Get()00:39
thumperyes00:39
davecheneyso, embedding A into B allows you to call B.A.Get as B.Get00:39
davecheneythe compiler doesn't actually create a forwarding method00:39
davecheneyie, there isn't a synthetic method on B called Get that returns B.A.Get()00:40
* thumper nods00:40
davecheney_but_ if you want to interpose in that00:40
thumperjust convenience00:40
davecheneyyou can00:40
thumpersweet sweet sugar00:40
davecheneyand sometimes it is necessary if you embed two types that have the same method sig00:40
davecheneyyou need to break the deadlock00:40
davecheneyTBH, go's application of syntactic sugar is inconsistent00:41
* thumper nods00:41
davecheneyautomatic pointer deferending for method dispatch +100:41
davecheneyno obvious type converstions -100:41
davecheneythere is a reason for all of it00:41
davecheneybut the reason is generally 'this is my opinion, - rob pike'00:41
thumper:)00:43
davecheneyas long as you can make peace with that fact, life can be good00:43
davecheneythumper: i am going to put the completion of commands back on the agenda for tonight00:44
davecheneyi (personally) do not feel I understand the work that is remaining00:44
thumperas in "which need to be done?"00:44
* thumper nods00:45
davecheneyand, without disrepect to your gap analysis, we now have yet another 80% complete document that doesn't capture actionable work00:45
davecheneypaying my strata fees 3 days early, like a boss00:47
thumperstrata?00:50
davecheneywhat we call the rates for the apartment block00:50
davecheneypays for the common area, power, cleaning , that shit00:50
thumperah00:50
* thumper nods00:50
thumperevery time I feel like I have a good grip on this, the stick becomes a slippery eel00:50
davecheneythe commands work ?00:51
thumpermaking help work nicely00:52
davecheneyoh00:52
davecheneyok00:52
thumperbecause ideally: juju deploy --help00:53
thumpershould be the same as: juju help deploy00:53
davecheneyyes00:53
thumperbut the mechanism for getting there are differrent00:53
=== _thumper_ is now known as thumper
thumperdavecheney: ok, I think I almost have this working properly now01:17
thumperjust some tests to fix, tests to write etc01:17
davecheneysweet01:18
davecheneynearly lunch time here (i can hear my SO stiring in the next room)01:18
thumperdavecheney: do you think people would complain that I've changed help output from stderr to stdout?01:18
davecheneyno idea about the others, but I would no object01:18
davecheneynot01:19
thumperok, lets see :)01:19
thumperI think it makes more sense to have help output on stdout01:19
thumpernot stderr01:19
thumperas it isn't an error01:19
davecheneythumper: can you describe your views on stdout/stderr ?01:19
thumpercall me pedantic01:19
thumperdavecheney: sure...01:19
davecheney(to see if they mesh with mine)01:19
thumperexpected output should go to stdout, which is "normal"01:20
thumperexceptional or error text should to to stderr01:20
davecheneyand if you ask for help, you should expect it on stdout01:20
davecheneymakes sense01:20
davecheneythumper: what about verbose or debug information ? stdout as well ?01:20
thumperthere are occasions where you want different information streams on stdout vs stderr, but they should really be rationalised01:20
thumperverbose output should go to stdout01:21
thumperbecause you asked for verbose01:21
thumperand it is output01:21
davecheneySGTM01:21
thumperdebug info is a fluffy situation01:21
thumpernormally I'd say stdout01:21
thumperunless you've configured your logging to go to stderr01:21
davecheneyone reason for the prediliction to stderr is, by default the Go log package sends everything to stderr01:21
thumperwhich should always be an option01:21
davecheneyso that default tends to drive other decisions01:21
thumpercommand output isn't logging01:22
thumpersending logging to stderr by default can be argued to allow 2>some_file01:22
davecheneyi guess it depends on what your program does01:22
davecheneyif it is piping data, that limits your options01:22
davecheneybut if it commincates on other fd's, ie, networking01:23
davecheneythen you have more choice01:23
thumpersure, but we're not01:23
thumperdavecheney: oh, don't suppose you want to add me to ~juju ?01:30
thumperdavecheney: you are an admin01:30
thumperdavecheney: one thing I'd like to change is "bufferString(ctx.Stdout)" -> "testing.Stdout(ctx)"01:33
thumperdavecheney: what do you think?01:33
thumperdavecheney: I think it reads a little better01:33
thumperobviously another one for "testing.Stderr(ctx)"01:33
thumperand then delete both instances of bufferString01:34
davecheneythumper: are you still not in that group01:35
davecheneytwo secs01:35
thumperdavecheney: not that one01:35
thumperadded to the gophers01:35
davecheneythumper: which group are you missing ?01:35
thumper~juju01:35
thumperhttps://launchpad.net/~juju01:35
davecheneythumper: done01:36
davecheneyre: "bufferString(ctx.Stdout)" -> "testing.Stdout(ctx)"01:36
davecheneysure01:36
thumperta01:36
davecheneymaybe do it as a separate branch01:36
davecheneysmaller branches == less latency01:36
thumperyep, agreed01:36
davecheneyI think i had a change that did exactly that01:36
davecheneybut it was blocked on a stack of prereqs that went nowhere01:36
davecheneyi tried to remerge it yesterday01:37
davecheneybut gave up as it was fucked01:37
thumper:(01:40
thumperinteresting that we think along very similar lines01:40
* thumper does the relocation dance01:41
thumperdavecheney: ping02:59
thumperwell that's dumb03:38
wallyworld_anyone know how/where to configure the mongo admin password so that juju state works after a bootstrap?04:15
davecheneywallyworld_: i have no idea how any of that works04:19
davecheneyi know it's a bit fragile04:19
wallyworld_thanks anyway, i'll look into it04:19
davecheneyi think all agents share a password, but they use a per client certificate04:20
wallyworld_all i did was "juju bootstrap" and then "jujustatus" and the status failed04:20
davecheneypaste04:20
davecheney?04:20
davecheneythat is seroius04:20
davecheneywhat does the log on the bootstrap node say ?04:21
wallyworld_i had to hack the stupid error code to get real info out of it04:21
wallyworld_i haven't logged into the bootstrap node04:21
wallyworld_i guess i can just ssh in04:21
wallyworld_but on my client, i get a screenfull of this04:22
wallyworld_2013/02/26 14:01:16 JUJU state: opening state; mongo addresses: ["15.185.100.10:37017"]; entity ""04:22
wallyworld_2013/02/26 14:01:16 JUJU state: connecting to 15.185.100.10:3701704:22
wallyworld_2013/02/26 14:01:17 JUJU state: connection established04:22
wallyworld_2013/02/26 14:01:17 JUJU state: opening state; mongo addresses: ["15.185.100.10:37017"]; entity ""04:22
wallyworld_2013/02/26 14:01:17 JUJU state: connecting to 15.185.100.10:3701704:22
wallyworld_2013/02/26 14:01:18 JUJU state: connection established04:22
wallyworld_2013/02/26 14:01:19 JUJU juju status command failed: cannot log in to admin database: auth fails04:22
wallyworld_error: cannot log in to admin database: auth fails04:22
wallyworld_it finally ends with an error04:22
davecheneywhat about on the bootstrap node ?04:22
davecheney/var/log/juju/*log04:22
davecheneyor /var/log/cloudinit-output.log04:22
wallyworld_before it just used to say "unauthorized access" without telling me what04:22
* wallyworld_ looks04:23
wallyworld_hmmm. nova list returns a few servers. i think some were running already before i did the juju bootstrap04:24
davecheneyi wonder if it picked up the wrong bootstrap node04:24
wallyworld_is "juju-hpcloud-machine-0" supposed to be the bootstrap node?04:25
wallyworld_there's also "juju hpcloud instance 0"04:25
wallyworld_i'll try and log into them04:25
davecheneywallyworld_: not sure, i've only been able to bootstrap ec2 nodes04:26
davecheneyso i'm used to their line noise names04:26
wallyworld_except ssh fails04:26
davecheneymaybe the machine is fucked04:26
davecheneyboot'd the wrong ami04:26
wallyworld_maybe i'll just kill them all and try again04:27
wallyworld_except it's a shared account so maybe not04:28
davecheneymeh, blow em away04:28
davecheneyand say it was a bug :)04:29
wallyworld_wcpgw04:29
wallyworld_davecheney: got ssh access finally. but nothing i can see in the juju log nor the clound-init log. will keep poking around04:47
davecheneyps aux04:48
davecheneyis jujud running ?04:48
davecheneysounds like it was stillborn04:48
wallyworld_jujud running04:49
wallyworld_i'll try it all again. i'd love to know where the admin password comes from04:50
davecheneyfrom what I understand it is generated on bootstrap and is essentially opaque04:53
davecheneyi'm not quite sure why we use both a password and tls client certs04:53
wallyworld_i have no idea either04:54
wallyworld_i realised one issue - i'm running Q and the image is i specified was for P. so perhaps there's an issue there04:54
davecheneythat will be a big problem04:55
wallyworld_cause i specified --upload-tools and so the tools would be wrong04:55
davecheneyif you use upload tools, it will always use the series of your machine04:55
davecheneythat was a battle I was unable to win04:55
davecheneywallyworld_: maybe add your question to the agenda, https://docs.google.com/a/canonical.com/document/d/19bpZCZNWDYuRMVGvq66YcPThpirQAz1MRYnOMV6QHxo/edit#heading=h.3hs0dshzcf8k04:55
wallyworld_but it calls them "..qantal....tar.gz" doesn't it04:55
wallyworld_and so findToold would fail04:55
wallyworld_findTools04:56
davecheneyyeah, pass --debug or -v for the gorey details04:56
wallyworld_doesn't explain why mongo login fail though04:56
davecheneyi think the ssl cert provides the tunnel, but you still need a username/password04:58
davecheneyfor mongo04:58
davecheneythe debug data should be on the bootstrap node in /var/log/juju/04:58
wallyworld_davecheney: yeah, -v or logs unhelpful, just lots of this05:08
wallyworld_2013/02/26 15:01:50 JUJU state: opening state; mongo addresses: ["15.185.101.250:37017"]; entity ""05:08
wallyworld_2013/02/26 15:01:50 JUJU state: connecting to 15.185.101.250:3701705:08
wallyworld_2013/02/26 15:01:50 JUJU state: connection established05:08
wallyworld_2013/02/26 15:01:51 JUJU juju status command failed: cannot log in to admin database: auth fails05:08
wallyworld_error: cannot log in to admin database: auth fails05:08
wallyworld_i'll dig further and see what i can find05:08
davecheneyok, that is fatal05:08
davecheneyonce that happens05:08
davecheneynobody has the password05:09
davecheneyand it's game over05:09
wallyworld_hmmm. the password ran away then. sneaky05:10
rogpeppemornin' lal07:16
rogpeppe"all" even!07:16
jamrogpeppe: I just found something even more interesting for the bootstrap case. It would appear that we are calling 'putFakeTools' which actually only uploads 1-2bytes of garbage data, but we *still* call go install to build jujud, even though we aren't actually uploading it. At least, that is what I get if I understand how to 'Tell()' on a file.07:50
rogpeppejam: putFakeTools only works for some cases07:50
jamrogpeppe: so for 'go test -gocheck.f BootstrapMultiple' it spends 5s in 'building stuff', and the .tgz is 2 bytes long07:51
rogpeppejam: putFakeTools won't work if someone calls Bootstrap with uploadTools=true07:52
jamrogpeppe: so I'm not sure if it is putFake or not, it doesn't really matter. The point is that it spends 2+s to end up with 2 bytes in a .tgz07:52
jamThough the fact that we are spending time in flate means I could be wrong, and I'm trying to sort those things out.07:53
rogpeppejam: actually, it ends up with all the tools in a tgz too07:53
rogpeppejam: the fake tools are put into the public bucket AFAIR07:53
jamrogpeppe: I'm just putting print statements into "buildTools" and see it takes 2.1s, however, statting the file shows far more space than 'Seek(1, 0)' did, because I had the order of parameters wrong07:54
jamI needed Seek(0, 1)07:54
jamanyway, there is more content, which at least means we have content.07:54
jamso that part is good07:54
jamWe aren't compiling and then not actually using it.07:54
rogpeppejam: you can use os.SEEK_END, BTW07:55
rogpeppejam: right07:55
rogpeppejam: well, we *aren't* actually using it, 'cos we never actually call the executable for real (actually, we do, in PutTools, but that's just a sanity check)07:56
jamrogpeppe: sure, but Seek takes ints, so you can do Seek(os.SEEK_END, 0) just as easily as Seek(2, ))07:56
rogpeppejam: nope.07:57
rogpeppejam: (try it)07:57
jamrogpeppe: interesting, I was thinking int was the typeless const, but I see it is the typed value. Is there a way to get untyped or you just have to use "const Foo = 1234"07:58
jam?07:58
rogpeppejam: yeah, an unadorned constant is untyped07:58
rogpeppejam: it still has some type-like information though (floats are different from ints are different from strings)07:59
rogpeppedimitern, mramm: meeting?08:03
jammgz doesn't seem to be here yet, though he mentioned he had to run on Chromebook which doesn't have an arm binary for Hangouts? So we probably shouldn't wait for him.08:03
davecheneyhttps://docs.google.com/a/canonical.com/spreadsheet/ccc?key=0AoQnpJ43nBkJdEFIZVg0dnN0SXNNREpTMTd6X1FMS1E#gid=108:14
wallyworld_FAIL: current_test.go:56: CurrentSuite.TestCurrentSeries08:42
wallyworld_current_test.go:65:08:42
wallyworld_    // If the command fails (for instance if we're running on some other08:42
wallyworld_    // platform) then CurrentSeries should be unknown.08:42
wallyworld_    c.Assert(s, Equals, "n/a")08:42
wallyworld_... obtained string =08:42
wallyworld_----------------------------------------------------------------------08:43
wallyworld_FAIL: current_test.go:56: CurrentSuite.TestCurrentSeries08:43
wallyworld_current_test.go:65:08:43
wallyworld_    // If the command fails (for instance if we're running on some other08:43
wallyworld_    // platform) then CurrentSeries should be unknown.08:43
wallyworld_    c.Assert(s, Equals, "n/a")08:43
wallyworld_... obtained string = "quantal"08:43
wallyworld_... expected string = "n/a"08:43
wallyworld_OOPS: 6 passed, 1 FAILED08:43
jamwallyworld_: what does "lsb_release" do, and "lsb_release -c" ?08:45
jamwallyworld_: it looks like the command 'lsb_release' is failing for you, but /etc/lsb-release has the right content so Juju knows what release it should be, and the test is faulty.08:46
wallyworld_jam:08:46
wallyworld_ian@wallyworld:~/juju/go/src/launchpad.net/juju-core$ lsb_release08:46
wallyworld_Traceback (most recent call last):08:46
wallyworld_  File "/usr/bin/lsb_release", line 26, in <module>08:46
wallyworld_    import lsb_release08:46
wallyworld_EOFError: EOF read where not expected08:46
wallyworld_so my system is screwed somehow08:46
jamwallyworld_: right, so that is why the test is failing (lsb_release is failing incorrectly), I don't know yet why 'import lsb_release' is failing08:47
wallyworld_ok, np.08:47
jamwallyworld_: ls /usr/lib/python2.7/dist-packages/lsb_release.py08:47
wallyworld_ian@wallyworld:~/juju/go/src/launchpad.net/juju-core$ ls -l /usr/lib/python2.7/dist-packages/lsb_release.py08:48
wallyworld_lrwxrwxrwx 1 root root 38 Oct 24 10:34 /usr/lib/python2.7/dist-packages/lsb_release.py -> ../../../share/pyshared/lsb_release.py08:48
wallyworld_ian@wallyworld:~/juju/go/src/launchpad.net/juju-core$08:48
wallyworld_jam:08:49
wallyworld_ian@wallyworld:~/juju/go/src/launchpad.net/juju-core$ python /usr/share/pyshared/lsb_release.py08:49
wallyworld_{'RELEASE': '12.10', 'CODENAME': 'quantal', 'ID': 'Ubuntu', 'DESCRIPTION': 'Ubuntu 12.10'}08:49
wallyworld_['core-2.0-amd64', 'core-2.0-noarch', 'core-3.0-amd64', 'core-3.0-noarch', 'core-3.1-amd64', 'core-3.1-noarch', 'core-3.2-amd64', 'core-3.2-noarch', 'core-4.0-amd64', 'core-4.0-noarch']08:49
wallyworld_so it sort of works08:49
wallyworld_i'm hungry and it's way past dinner time here, so let's chat later about it08:49
jamwallyworld_: np08:49
jammorning mgz08:51
mgzhey jam08:51
jammgz: so did you take the opportunity of not having G+ to sleep in, or were you outside feeding the chix?08:52
mgzboth :D08:52
mgzfour eggs this morning08:52
jamthat sounds small, but I don't know how many chix they have08:53
mgzfive, so only one was slacking08:54
jamthough if you think about it, having a body that produces a whole egg that often is pretty crazy08:55
fwereade__bbiab, popping over to dimiter's08:58
dimiternhey, fwereade is here, if anyone needs him09:15
mgzgive the guy an internet connection dimitern :)09:17
bacthanks for the review rogpeppe11:00
rogpeppebac: np. i should go back and look at the ones that happened when i was away. from my mobile phone they looked fine :-)11:01
rogpeppedimitern: if fwereade's with you, perhaps you could mention that it'd be much appreciated if he passed his canny eye over https://codereview.appspot.com/7398050/11:10
rogpeppeor reviews anyone else for that matter - it's a later-comer prereq for another CL11:11
bacrogpeppe: i've made the changes you requested.11:15
rogpeppebac: thanks11:15
* bac out for 1.5 hours or so11:15
rogpeppebac: replied11:18
* TheMue is at lunch11:19
* rogpeppe passes TheMue some slices of delicious ham.11:20
jammgz: we can hear you type, but not you talk11:35
mrammjam, mgz, TheMue, wallyworld_, thumper, rogpeppe, fwereade, dimitern:  Sorry I missed the meeting.  My laptop met an untimely end yesterday due to close contact with some coffee.11:39
fwereademramm, we heard... bad luck :(11:40
mrammjam, mgz, TheMue, wallyworld_, thumper, rogpeppe, fwereade, dimitern:  After which I spent about 8 hours getting things restored to an old machine, and then it was an hour before the meeting and I was going to stay up11:40
wallyworld_it could at least have been alcohol11:40
dimiternmramm: lol, that's bad11:40
rogpeppewallyworld_: well, no wasted booze at any rate. there's a silver lining to every cloud.11:40
wallyworld_true :-)11:41
mrammrogpeppe: wallyworld_: very true11:41
TheMuemramm: That sound hard. Coffee as pure energy for the developer is still bad for computers.Something's wrong here. ;)11:41
mrammyea11:41
TheMuerogpeppe: Thx for the ham, had put it on my flatbread.11:43
mrammso, I have my old mac working, and while I don't have dual boot on it yet I do at least have ubuntu on it in a VM with *almost* all my settings and documents back from git repo's11:43
mrammbut it made me realize that my backup strategy on ubuntu was a bit of manual kludgery11:43
mrammbut it worked mostly11:44
TheMuemramm: Not everything in the cloud? ;)11:46
mrammwell, it there was a bit of stuff in the cloud, a bit of stuff in git repositories, and then a "copy the home folder" to an external drive bit11:47
mrammall of which provided some "backup"11:47
mrammand all of which actually worked out fine11:47
mrammbut there were a lot of manual steps to restore11:47
TheMueYep11:48
mrammanyway, I'm back.11:49
mrammmy intention was to get everything fixed before the meeting and have no work related downtime because of the laptop death11:50
mrammbut my intention was foiled by a comfy chair in my office!11:50
* TheMue just tries to imagine this picture11:51
rogpeppefairly trivial CL if anyone wants to take a look:  https://codereview.appspot.com/739105111:56
rogpeppealso, i'm still looking for another review of https://codereview.appspot.com/7398050/ so i can propose the branch that uses it as a prereq11:56
TheMuerogpeppe: Will take a look at both.11:57
rogpeppeTheMue: thanks11:57
TheMuerogpeppe: First review done, now the next.12:02
fwereademgz, ping12:06
TheMuerogpeppe: 2nd one done too.12:06
rogpeppeTheMue: tyvm12:06
fwereademgz, am I right in thinking that the openstack metadata service does not expose instance-id until version 2012-08-10 ?12:07
mgzfwereade: folsom or later12:15
mgzso yup.12:15
fwereademgz, this seems to suggest otherwise: http://docs.openstack.org/essex/openstack-compute/install/apt/content/running-an-instance.html12:25
fwereademgz: cloud-setup: checking http://169.254.169.254/2009-04-04/meta-data/instance-id12:25
fwereademgz, I guess that's just a lie? :)12:25
mgzfwereade: that gives you the i-0000000 form, which is no good to man nor beast12:26
mgz(in the context of trying to do openstack operations)12:27
* dimitern lunch12:27
fwereademgz, wait, what's wrong with that? is that form not used in the API?12:28
mgzthere's no correlation between the uuid you need to do operations via the openstack api, and the integer id used the in ec2 compat api, and there's no api call to map between them, it's all hidden in the backend db12:28
fwereademgz, oh ffs12:28
fwereademgz, ok, thanks12:28
mgzfolsom adds openstack specific data to the metadata service, which we can use12:28
fwereademgz, so we currently can't work pre-folsom regardless?12:28
* fwereade lunches, thanks mgz12:30
TheMuefwereade: Enjoy.12:31
rogpeppecan someone other than me have a look at this CL please, so that Brad can submit: https://codereview.appspot.com/7384058/13:10
benjim_3: hi, I have a small branch charmhelpers branch up for review; I hear you are the guy to see about that: https://code.launchpad.net/~benji/charm-tools/bug-1130793-add-log-option-escaping/+merge/15044213:13
TheMuerogpeppe: Done13:18
rogpeppeTheMue: thanks13:18
niemeyerYo!13:54
mgzfwereade: whoops, missed the last question. so, gojuju doesn't work on pre-folsom currently, as the pyjuju code predates folsom, it has a cunning workaround, that gojuju could also adopt as needed (it stashes the uuid in storage)13:59
rogpeppeniemeyer: hiya!14:11
rogpeppeniemeyer: i've just run across a couple of weirdnesses in goyaml - i wonder if you can tell me if they're expected behaviour or bugs14:11
=== wedgwood_away is now known as wedgwood
rogpeppea fairly small review anyone? https://codereview.appspot.com/739905414:55
rogpeppefwereade: it contains two things that should please you14:56
fwereaderogpeppe, cool, need to kanban too14:59
rogpeppefwereade: just going there14:59
rogpeppemramm: kanban meeting?15:00
benjim_3: ping15:05
m_3benji: pong15:07
benjim_3: hi, I have a small branch charmhelpers branch up for review; I hear you are the guy to see about that: https://code.launchpad.net/~benji/charm-tools/bug-1130793-add-log-option-escaping/+merge/15044215:07
dimiternrogpeppe: reviewed15:07
niemeyerrogpeppe: Sure15:10
m_3benji: yikes... tomorrow's first chance for me (see juju-gui)... I'm prepping for two talks later today15:11
benjim_3: apparently you and Gary are discussing this in juju-gui, so nevermind15:11
m_3benji: ack.... ping me tomorrow if you haven't gotten it through15:15
niemeyerm_3: Way to go15:16
niemeyerm_3: The amount of activity around charms is looking great, btw15:17
rogpeppeniemeyer: i filed a bug report (that may or may not be spurious) https://bugs.launchpad.net/goyaml/+bug/113333715:17
_mup_Bug #1133337: unmarshalling map into *string has odd behaviour  <goyaml:New> < https://launchpad.net/bugs/1133337 >15:17
niemeyerrogpeppe: Thanks!15:17
m_3niemeyer: thanks!  we're doing a lot of talking :)... still need to do more charm cleaning though15:19
rogpeppeniemeyer: i encountered these issues when trying to deal with service configuration in a moderately sane way, BTW.15:20
niemeyerrogpeppe: Cool15:25
niemeyerrogpeppe: I'll put that in the queue and see what would be a reasonable answer15:26
rogpeppeniemeyer: thanks. for the time being, i'm just treating null as the string "null"15:26
niemeyerrogpeppe: What does that mean?15:26
niemeyerrogpeppe: This is certainly wrong, if it means what I think it menas15:27
niemeyerrogpeppe: People should be able to set a configuration value to the string "null"15:27
rogpeppeniemeyer: they can do that. they can't use null as to delete an attribute though.15:28
niemeyerrogpeppe: That's fine.. we don't have that semantic defined yet15:28
rogpeppeniemeyer: yeah. we chatted about it though, so i was considering doing it.15:29
rogpeppeniemeyer: i'm not sure what user expectations are tbh15:29
niemeyerrogpeppe: Sure, and I hope we can implement it15:31
niemeyerrogpeppe: I don't think that's a typical case people think about15:31
niemeyerrogpeppe: So much so that the whole fixup didn't come from a user request15:31
rogpeppeniemeyer: yeah. i suspect that deleting a attribute is a pretty rare operation, so i'm not too concerned15:31
rogpeppeniemeyer: ha, perhaps you were talking about goyaml semantics.15:34
niemeyerrogpeppe: No, the former15:38
rogpeppeTheMue: any chance of that promised review? https://codereview.appspot.com/7399054/15:55
TheMuerogpeppe: Will be in in a few seconds. Mostly LGTM, only one "feeling". ;)15:55
TheMuerogpeppe: It's in.15:58
rogpeppeTheMue: thanks!15:59
TheMuerogpeppe: yw15:59
=== otubo1 is now known as otubo
=== teknico is now known as teknico_mobile
=== teknico is now known as teknico_mobile
dimiterna small review anyone? https://codereview.appspot.com/740504917:56
rogpeppedimitern: looking18:07
dimiternrogpeppe: cheers18:13
rogpeppedimitern: reviewed18:15
dimiterni'm seeing an error running go test ./... on state/statecmd/ServiceGet18:15
dimiternrogpeppe: tyvm18:15
dimiternthat's the error I'm getting - running on just pulled trunk: https://codereview.appspot.com/740504918:16
dimiternoops - this is it - http://paste.ubuntu.com/5568327/18:17
dimiternso william proposed CLs which are a direct result of pair programming to need one LGTM18:28
dimiternwhat do you think about it?18:28
rogpeppedimitern: hmm, that looks bad. might be my fault, but i'm already running really late and have to go.18:40
dimiternrogpeppe: no worries18:41
rogpeppedimitern: it's a trivial fix if you wanna do it18:41
dimiternrogpeppe: sure?18:41
rogpeppedimitern: (in the test only, i think)18:41
dimiternrogpeppe: ok, I'll propose it later18:41
rogpeppedimitern, all: see ya tomorrow18:41
dimiternrogpeppe: g'night18:42
jcastrodavecheney: Is this a charm problem or a juju problem: http://paste.ubuntu.com/5569147/23:33
jcastrodavecheney: ah, does juju-log exist in the go version?23:58

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