/srv/irclogs.ubuntu.com/2013/12/18/#juju-dev.txt

thumperaxw: hey there00:48
thumperaxw: sinzui_ is having issues with your hp fix branch, seems to have a bad import00:49
axwthumper: reading the email now00:52
axweh wtf00:53
axwaw crap, I think I enabled goimports and it mucked about with the imports00:54
thumperheh00:55
thumperaxw: so, after talking with fwereade this morning, I'm going to implement a system ssh key right now00:55
axwthumper: excellent00:55
* axw feels vindicated00:56
axw;)00:56
thumperdavecheney: I don't suppose your ssh go stuff has keygen?00:56
axwthumper: AFAIK they00:59
axware just PEM keys00:59
thumperaxw: I'm not entirely sure what that means01:00
axwthumper: same format used by the private keys we generate already01:01
axwfor mongo01:01
thumperoh?01:01
thumperhmm...01:01
axwthumper: in fact, we could perhaps just use the same one01:02
thumperaxw: maybe...01:02
axwnot sure what the requirements are for SSH01:02
thumperyeah, well luckily I have another machine here I can ssh to to test01:02
davecheneythumper: it wouldn't be hard to write01:03
thumperdavecheney: yeah, axw said as much01:04
thumperI think what I'd like is a function in utils/ssh called "GenerateKey" (surprise)01:04
thumperthat generates to byte arrays,01:04
thumperone private key and one public key01:05
thumperequivalents of "id_rsa" and "id_rsa.pub"01:05
thumpergiven the core go team's affinity for crypto01:05
thumperchances are all I need is glue01:05
davecheneyyup01:06
davecheneylemmie look in the ssh package tests01:06
davecheneywe probably have some code01:06
thumperdavecheney: awesome sauce01:07
* thumper channels fwereade01:07
thumperdavecheney: found any? I've found some docs as to the file format, so could hack something up01:31
thumperdavecheney: but you sould probably be saving me time01:31
davecheneythumper: yup01:36
davecheneylooking after lunch01:36
thumperok01:43
thumperta01:43
axwthumper: I'm just looking to see if we can reuse the existing private key we have01:47
axwthere's code in go.crypto/ssh to generate an authorized_keys line from an RSA public key01:47
axwthumper: https://gist.github.com/axw/801612301:55
thumperaxw: what about the identity file that you can hand off to ssh?01:56
axwthumper: I just fed in the key we give to mongo, added the output of that program to ~/.ssh/authorized_keys, and used ssh -i local-private-key.pem01:57
axwthumper: it's just the key file01:57
thumperaxw: and that works?01:57
axwyup01:57
thumperawesome!01:57
thumperaxw: let me poke around in the code and see if I can get this working nicely...01:58
thumperaxw: I think perhaps we should default to use the system key for 'juju ssh'01:59
thumperaxw: that would make the windows code work nicer01:59
thumperaxw: you are doing the ssh util work for windows yes?01:59
axwthumper: I'm not so sure we should be passing that key around in the .jenv though, should we?02:01
axwthat would make it difficult to revoke access02:01
thumperaxw: oh, interesting point02:01
axwthumper: I will be working on making it work for windows, yes02:01
thumperhmm...02:02
thumperaxw: so, what are your thoughts on that?02:02
thumperwe want a system identity02:03
thumperand if we can use the same that we have for mongo, then that should be fine02:03
thumperbut we still need something to watch bootstrap with02:03
thumperperhaps that is a different id?02:03
axwthumper: sure, I just don't think we should carry it around outside the system; ideally we should dispose of it after bootstrap02:03
axwfrom the client I mean02:04
thumperwe want something that will work out of the box with windows users02:04
thumperaxw: but I think we should create a default user key...02:04
thumperor...02:04
thumperperhaps we just create the default user key if there is no local one found02:05
thumperand that is a separate issue02:05
thumperfrom the bootstrap issue02:05
axwthumper: yeah I see your point. I guess we do want another one02:05
axwwe want the system one to be different to the default one used by the CLI02:05
thumperok, my branch will work to make this system identiy02:05
thumperwork02:05
axwbecause of revocation02:05
axwsounds good02:06
thumperaxw: yes agree to that last statement02:06
axwthumper: I think bootstrap can just create another key if it doesn't have one02:07
axwfor the CLI02:07
* thumper nods02:07
thumperaxw: that is a separate bit of work though02:07
axwthumper: yes, I can do that later02:07
thumperlets go with the system identity, and using that for the bootstrap02:07
thumper...02:07
axwthumper: what about CLI users other than the bootstrapper?02:15
thumpernot sure yet02:16
thumperI'm actually trying to find the code where it loads the authorized keys02:16
thumperthe code I'm reading seems to indicate that it doesn't bother02:16
thumperunless I set them explicitly02:16
thumperbut I know this is wrong...02:16
thumperugh02:18
thumperan OR02:18
axwthumper: maybe just updated environs.BootstrapContext to add the key to whatever's computed?02:19
thumperaxw: is the ca-private-key the thing we use to talk to mongo?02:30
thumperaxw: if so, that is in the .jenv file in the bootstrap config02:30
thumperso perhaps we do want a different identity?02:30
thumpersomething that gets generated and written to cloud init, but not on the client side02:30
axwthumper: it is in there, but I think fwereade wants it out02:30
axwthumper: and yes that's what we use for mongo02:31
thumperah, fair call02:31
* thumper goes to make coffee02:31
thumperthis takes more thinking than I thought :)02:31
thumperthe identity stuff that is02:31
thumpernot the making coffee02:31
axwhehe02:31
axwnot enough coffee makes making coffee more difficult02:32
* axw -> lunch03:39
hazmatwrt to put charm api, it appears to be unconditionally setting the scheme to local, deploy cli landing should resolve03:48
thumperaxw: are you good with me updating our go.crypto to tip?04:28
thumperalso, how do I find the full hash of an hg tip revision?04:29
thumperaxw: in the end, I have gone with a ssh.GenerateKey function04:51
thumperaxw: I'm going to poke things tomorrow and test04:51
thumperbut for today, I'm done04:51
thumpernight all04:51
=== axw_ is now known as axw
axwjam: I *think* the streams.canonical.com URL it's going to is correct, but what's there at the moment is in the wrong place07:33
jamaxw: that's sort of what I expect as well, and we don't really want to be using it anyway07:34
axwthat's the impression I got from wallyworld07:34
jamthe bigger question is what else did we try (and fail) and why07:34
axwyep07:34
jamand they don't want to use --debug because of security purposes, but that's where we dump all the URLs we try07:34
axwIt'd be good to see that in "verbose output" (that never got landed did it?)07:35
axwthumper's stuff07:35
jamverbose was never intended to dump step-by-step stuff,(I think) I think it was meant to stay in --debug, we just dump other useful but-maybe-dangerous stuff there.07:36
axwwhen I'm bootstrapping without --debug, it can sit there doing image/tools stuff for a fair while without any feedback07:36
jam--verbose is more about user info about what we're doing07:36
axwyeah I suppose that is a bit too much info for general consumption07:37
jamI think we also have a bug that we don't write the debug information for the one that actually worked :)07:38
axwheh07:39
rogpeppe1mornin' all07:40
axwhey rogpeppe107:40
rogpeppe1axw: sorry i didn't manage to do your review yesterday - am looking at it now07:41
axwrogpeppe1: nps, thanks. actually it gave me time to make it a bit nicer :)07:41
rogpeppe1axw: my first thought when i looked at it was that it could probably be factored out into a separate little type07:41
dimiternrogpeppe1, jam, https://codereview.appspot.com/38540044/ if you can please08:06
rogpeppe1dimitern: will do08:12
dimiternta!08:12
axwrogpeppe1: do we need go.crypto pinned at the rev it's at?08:17
axwrogpeppe1: thumper's doing some SSH key stuff and was wondering if we can move to the tip08:17
rogpeppe1axw: not as far as i'm aware08:18
rogpeppe1axw: it would be good to try tip08:18
axwok08:18
rogpeppe1axw: but it may not be possible08:18
rogpeppe1axw: it might have some go1.2 deps08:18
axwyeah ok, will have to check that08:18
axwthanks08:18
jamaxw: so... do you know why we need a juju-run process to be running if we are just ssh'ing into each machine anyway?08:18
axwjam: I was under the impression it was not long running08:19
* axw re-reads thumper's email08:19
jamaxw: tim's statement was that it couldn't be the existing code because the existing stuff wasn't long lived08:19
jamat least, I thought I remembered seeing that08:19
axwjam: are you referrng to this statement? `"juju run" is really syntactic sugar around "juju ssh" and the server08:20
axwcomponent "juju-run" that does the execution inside a hook context.`08:20
jamaxw: so I know Tim has a Runner object that sits on a port and lets hooks fire queries into it (the way the current one does, but apparently somehow different)08:21
jamit might be that we "juju ssh" into each machine, fire up that juju-run process, and then have it (or something else) spawn of clients that run the script you wrote.08:22
jamI'm not sure how it actually all ties together.08:22
jamit sounded ilke you ssh in to poke the juju-run process08:22
jambut it might be that you are doing "juju ssh juju-run myscript.bash"08:22
jamwell08:22
jamfor i in ???; do juju ssh $i juju ssh /usr/bin/juju-run myscript.bash; done08:23
rogpeppe1jam: are there some design docs for juju-run somewhere?08:23
axwjam: sorry, I haven't actually looked at the code yet - not entirely sure. that's not how I thought it worked. what I thought was that you ssh'd in, then ran "juju-run <hook> <command>", and <command> was executed within the hook context08:23
* axw looks at code08:24
axwjam: so, I have only taken a very brief look, but it looks to me that the runner/socket is just for that process08:25
axwit's just reusing the existing jujuc code08:25
axwhrm, or maybe not08:26
jamaxw: related code, but definitely a different object08:29
jamcan anyone look at: https://codereview.appspot.com/40670043/ its been sitting for a week now08:30
axwjam: I see; in that case, I'm not sure why SSH is required here.08:31
axwthere's still the machine case, but that's a bit different anyway08:31
axwjam: I'll take a look08:31
axwjam: re the juju-run stuff: how else would you do it? you'd need to put something in state, right? and then record the results there?08:34
dimiternrogpeppe1, is it good to land?08:42
rogpeppe1dimitern: sorry, still reviewing axw's08:42
dimiternrogpeppe1, ok08:43
jamaxw: so it depends what you want as a result. If you're meant to just trigger a script to run, yes. If you're meant to end up in an interactive session on the remote machine, then you'd have to ssh08:53
jamaxw: an open question, is this intended to run sequentially on all machines, or would all machines fire up at the same time08:54
jamif parallel, then interactive session (or even printing to the screen) is pretty useless08:54
jamif sequential, then this really scales poorly when you have 100s of machines08:54
axwjam: my understanding is it's meant to be parallel and non-interactive, but I'm not 100% sure08:55
axwfwereade: hah, good point about the nonces08:55
axwfwereade: yes, pretty certain it was always "manual:..."08:56
axwI will double check before basing anything on that tho08:56
fwereadeaxw, cool, thanks08:56
fwereadeaxw, I'm just on destroy-environment at last, sorry delay08:56
axwfwereade: cool08:57
jamaxw: if non-interactive, then it seems like you *don't* want to ssh into each one. (you don't really want to fire off 100 ssh connections all at once, either)08:58
jambtw, hi fwereade09:00
fwereadejam, heyhey09:00
rogpeppe1axw: you have a review09:01
axwrogpeppe1: thanks09:01
fwereadejam, axw: `juju run` is non-interactive, there's juju ssh for direct interactivity09:02
axwright09:02
fwereadejam, axw: the actual degree of parallelism required has not been specified, but a number of ideas have been floated around the concept09:03
jamfwereade: so some review questions... Do we want to have 'remove-machine' in a 1.16 branch? It has been approved, but it is more of a do-we-want-this-policy09:03
fwereadejam, axw: round-robin has been mentioned; parallel has been mentioned; parallel with horrid hacked-on interactivity has ever come up09:04
fwereadejam, what do we gain from a new 1.16 with that in?09:05
jamfwereade: or it could be driven from the db without ssh at all?09:05
jamfwereade: compatibility, especially with docs09:05
jamthough you still have "you must have newer than X"09:05
jambut it would make "remove-machine" available in a stable release09:06
axwjam: the only thing I see being an issue with going through the db is that there's no ephemeral node support to handle the edge cases around client termination09:07
axwjam: it's not interactive, but there's still a session to maintain09:07
axwrogpeppe1: "This should probably allow itself to be stopped when closed.j"  -- do you mean use an additional select with a time.After?09:09
rogpeppe1axw: yeah09:09
axwthanks09:09
jamaxw: I don't quite see how it is different from how we fire hooks normally, it is just a custom script instead of a charm hook09:10
rogpeppe1dimitern: reviewed09:10
dimiternrogpeppe1, thank09:10
dimiterns09:10
axwjam: the main difference is that the result needs to live somewhere. who owns that?09:10
fwereadejam, sorry, I missed the context on remove-machine09:12
fwereadejam, did you have any thoughts re the more human vocabulary I handwaved around in that thread yesterday?09:13
jamaxw: seems easy enough to put it into the DB as a result of running the request09:13
fwereadejam, axw: questions of how much we store and for how long become interesting09:14
jamfwereade: so, there was a discussion that we should use "remove-*" for stuff instead of "destroy-*" and it is easy to add those aliases into a 1.16 release. I have a fairly trivial patch up, just waiting on whether we *want* to do it. Its approved, but I wanted to run it by you.09:14
fwereadejam, so, indeed, I think I am now up to speed on it09:14
jamfwereade: as for your natural language stuff, I think you had interesting points, but part of that is what we can evolve into, and we can have a consistent lower level terminology09:14
jamfwereade: for juju-run, if you aggregate the results somewhere (like the DB) then you do need a way to see it (is the suggestion that normally it just prints to your console via ssh?) that still seems like a whole lot of spam unless you very carefully craft the script to give enough context so you can figure out which machine actually "failed"09:15
jamso either, there isn't much result, so it doesn't matter, or there is some result, but you'd really rather have that logged and aggregated09:16
jamyou *can* do "juju run foo.sh >aggregate.this.txt"09:16
rogpeppe1jam, fwereade: is there a design doc for juju-run? i'd like to contribute to the discussion, but i don't actually know what the goals are.09:42
axwrogpeppe1: updated10:23
rogpeppe1axw: re: "shouldn't this use the mutex?"10:26
rogpeppe1axw: it looks to me as if inst.InstanceId is inside the embedded ec2.Instance10:26
rogpeppe1axw: and hence should be protected by the same mutex10:26
axwrogpeppe1: gah, so it is10:26
axwrogpeppe1: sorry, will fix it now10:27
rogpeppe1axw: thanks10:27
jamrogpeppe1: I don't know of one, but tim is the one driving it10:29
axwrogpeppe1: updated again, sorry about that10:38
rogpeppe1axw: np10:38
axwbbl10:41
jamrogpeppe1: axw, mgz_: standup10:45
jamhttps://plus.google.com/hangouts/_/calendar/am9obi5tZWluZWxAY2Fub25pY2FsLmNvbQ.mf0d8r5pfb44m16v9b2n5i29ig10:45
jamfwereade: poke about where to put worker/provisioner/authentication.go12:38
fwereadejam, how do you feel about environs?12:41
jamfwereade: so "NewAPIAuthenticator" doesn't feel like it should be in environs12:42
jamand NewEnvironAuthenticator feels ok there12:42
jamthe issue is that they both want to share the actual underlying implementation12:43
fwereadejam, well, it's about giving access to a <handwave> environ12:43
jamwhich just has a way to get a StateInfo and then populate it with its final machine password stuff12:43
fwereadejam, I'm at least halfway inclined to just give it its own package somewhere12:43
fwereadejam, the only thing I'm sure of is that it's not exclusive to worker/provisioner, but it is something to do with setting up instances12:44
jamfwereade: arguably the simpleAuth code should be exposed in state/ and the others lay on top of that?12:44
fwereadejam, state doesn't seem very correct, in every case but bootstrap I think it's api-ey really12:44
jamwell, the api server uses it internally12:47
jamwhich is why NewEnviron* is still necessary12:47
fwereadenatefinch, https://codereview.appspot.com/36290043/patch/190001/200015 is going to collide with you, isn't it?12:57
natefinchfwereade, ish.  Shouldn't be a big deal.13:05
=== gary_poster|away is now known as gary_poster
mattywfwereade, jam I still can't reproduce the problem in https://code.launchpad.net/~mattyw/juju-core/add-owner-to-service/+merge/191192. I sometimes see Error: Test left sockets in a dirty state but no other errors (although that happens on trunk as well - has done for a while)13:18
mattyw^^ any idea what might be going wrong?13:19
jammattyw: we've had some issues with flaky tests, I just wanted to know if this was caused by your change. As it doesn't seem related, I'll just submit again.13:19
jamfwereade: when are we running mongo without ssl?13:20
mattywjam, ok thanks - I'll keep an eye on it13:20
natefinchman, this USB ethernet adapter crashing my laptop is not cool (especially given there is no ethernet plug on the laptop).....14:01
natefinchanyway, I have to go snowblow my driveway, which will probably  take me a couple hours all told.14:02
natefinchjam, rogpeppe1: I verified that the test failure I'm having definitely is only happening with mongo 2.2, and not 2.4.  Not sure exactly why yet, but now that I can A/B test easily, I should be able to figure it out.14:03
=== natefinch is now known as n8f-snowblow
fwereadejam, sorry I missed you -- it's for the store... but I am suddenly suspicious of the Right Thing to do there14:06
fwereadejam, I think it's probably better to factor out the existing store test harness and use that14:06
fwereadejam, than to introduce a fresh entanglement between the two14:07
rogpeppe1wow, my internet is super flaky today14:20
rogpeppe1can anyone see this?14:20
mattywrogpeppe1, I can14:28
rogpeppe1mattyw: ok, that's something at least :-)14:29
mattywrogpeppe1, also - I'm getting a "x509: certificate is valid for *" error when trying to connect to the core api on 17070 (it seems to happend in my call to websocket.Dial)14:29
mattywis there a particular version of websocket I should be using do you think?14:30
rogpeppe1mattyw: could you paste the code that you're using to dial?14:30
rogpeppe1mattyw: in general, you should be using the state/api package to connect to the API14:30
rogpeppe1mattyw: (assuming you're using Go)14:30
mattywrogpeppe1, I am, I was just kinda messing around with connecting to the websocket in go14:31
rogpeppe1mattyw: you can connect if you use InsecureSkipVerify14:32
mattywrogpeppe1, ws, err := websocket.Dial("wss:/adr:17070", "", "http://localhost")14:32
mattywah, I'm not doing any tls at all14:33
rogpeppe1mattyw: otherwise your client won't know about the root CA cert that's used for the server14:33
rogpeppe1mattyw: you *are* doing tls14:33
rogpeppe1mattyw: that's the "wss:" thing14:33
mattywrogpeppe1, but I'm not setting up any tls config14:33
rogpeppe1mattyw: ah yes.14:34
mattyw(which is what I meant in my head at least :))14:34
rogpeppe1mattyw: look at how it's done in state/api/apiclient.go:/Open14:34
mattywrogpeppe1, will do, thanks again14:34
axwrogpeppe1: https://codereview.appspot.com/43650045 exercises the Addresses/Refresh code in provider/ec214:35
rogpeppe1axw: looking14:35
axwrogpeppe1: I updated provider/ec2 again, there was a bug14:35
mattywrogpeppe1, thanks for the acme-friendly shortcut ;)14:35
rogpeppe1mattyw: are you using acme now?14:36
rogpeppe1axw: what was the bug?14:38
axwrogpeppe1: Addresses was holding the lock around refresh(), which called inst.Id() and took the lock14:40
axwwell, tried to14:40
axwso, deadlock14:41
rogpeppe1axw: ah, good thing i suggested the test then :-)14:41
axwvery14:41
rogpeppe1axw: i still think we should use AddScripts rather than AddFile - someone might change AddFile to use the cloudinit write_files feature, which would then potentially break the nonce.txt logic14:43
axwrogpeppe1: fair point14:43
axwok, I'll change it14:43
rogpeppe1axw: thanks14:43
* rogpeppe1 goes for lunch14:43
jamespagehazmat, re mongodb build without scripting - which scons option are you referring to?  I can toggle between v8 and spidermonkey in our current source package (2.4.8) but I can't figure out how to disable it completely14:55
axwrogpeppe1: can you please approve the ec2test MP when you're back? I'm not in the group14:55
hazmatjamespage, usev814:56
axwrogpeppe1: and/or merge it if there's no bot14:56
hazmatjamespage, https://github.com/mongodb/mongo/blob/master/SConstruct#L45214:56
hazmatjamespage, it comes up a few times.. agreed its not clear if its  toggle for spidermonkey or disable14:57
jamespagehazmat, it certainly was14:57
jamespagebut upstream don't ship spidermonkey any longer14:57
jamespage"--usesm"14:57
hazmatjamespage, so reaching out to upstream sounds like the thing to do.. i don't see the usesm option in trunk scons.14:59
hazmateither that or trying a build without the v8 option14:59
jamespagehazmat, no its gone14:59
jamespagehazmat, if you don't specify it default to v814:59
jamespageI'll poke at it a bit14:59
* hazmat fires up a build on a spare server14:59
dimiternjam, rogpeppe1, https://codereview.appspot.com/43860043 AddCharm via the API15:30
axwfwereade: the nonce for manual bootstrap nodes does not start with "manual:". do you think it's still okay to use it, documenting that?15:35
rogpeppe1niemeyer: does this look reasonable to you? https://codereview.appspot.com/43650045/15:36
axwfwereade: that case *could* be detected by checking that id == "0" && extracting the provider type from EnvironConfig, but that's pretty heavy handed15:37
fwereadeaxw, hmm, possibly, I don't suppose that one has any useful distinguishing features?15:37
axwfwereade: not that I've thought of so far15:37
niemeyerrogpeppe1: What happens in practice?15:37
niemeyerrogpeppe1: I mean, what is the real EC2 doing about this?15:37
rogpeppe1niemeyer: the DNS name appears some time after the instance has been started15:37
axwfwereade: its instance-id is "manual:", but we've established that's not good enough to rely on15:38
rogpeppe1niemeyer: so any realistic client will need to poll it15:38
niemeyerrogpeppe1: Sounds good then15:38
rogpeppe1niemeyer: cool, thanks15:38
niemeyerrogpeppe1: np, thanks for asking15:38
rogpeppe1axw: will submit now15:39
fwereadeaxw, you know, I'm not so bothered by the weight as I am by the correctness15:39
fwereadeaxw, it's not a cost we'll be paying often enough to worry about, I think15:39
axwrogpeppe1: thanks15:39
axwfwereade: true15:40
axwfwereade: in fact, I won't even be passing it in in my case, because I don't check manager machines15:40
=== mgz_ is now known as mgz
fwereadeaxw, thought that might be the case15:40
axwfwereade: so, now might be a good time to change the provider name from "null" to "manual"15:41
fwereadeaxw, please still test that behaviour in case we do ever end up with demoted machine 0s ;)15:41
axwcertainly15:41
fwereadeaxw, most certainly, but I suspect that may take some finessing around upgrades15:41
fwereadeaxw, *maybe* you could get away with registering the same provider twice under different names..?15:42
axwhmm maybe, will have to see. I can make this code check for either "null" or "manual" for now15:43
rogpeppe1axw: FYI i just got this error when bootstrapping:15:47
rogpeppe1Connection to ec2-54-196-224-38.compute-1.amazonaws.com closed.15:47
rogpeppe1error: cannot open state: cannot create log collection: unauthorized mongo access: unauthorized15:47
rogpeppe1axw: i haven't looked into it but i suspect something is trying to talk to mongo before it's ready15:47
axwrogpeppe1: hmm, there's no changes regarding mongo communications in synchronous bootstrap15:49
axwrogpeppe1: are you on trunk?15:50
rogpeppe1axw: yeah15:50
axwrogpeppe1: with my just-merged branch?15:51
axwI'll test it again15:51
rogpeppe1axw: hmm, not sure15:51
axwrogpeppe1: shouldn't actually matter, just curious15:51
rogpeppe1axw: it's the kind of thing that wouldn't happen very often, if it's what i suspect15:51
rogpeppe1axw: i'll see if it happens again15:52
rogpeppe1axw: your goamz branch is now merged15:53
axwrogpeppe1: great, thanks15:53
axwrogpeppe1: ah, I should've updated dependencies.tsv... will do that now15:54
rogpeppe1axw: good point15:54
rogpeppe1axw: revno 4415:54
axwthanks15:54
=== n8f-snowblow is now known as natefinch
rogpeppe1axw: ah, it's not bootstrap's fault at all15:56
rogpeppe1axw: i just wasn't printing enough log messages15:56
axwrogpeppe1: thanks for checking15:57
* rogpeppe1 reboots15:59
axwnight all16:10
dimiternnatefinch, ping16:14
dimiternnatefinch, can you take a look at this please? since roger is not around. https://codereview.appspot.com/4386004316:14
natefinchdimitern, sure16:22
=== BradCrittenden is now known as bac
mattywfwereade, I guess we should have a chat about the next stage of the juju id stuff16:47
natefinchdimitern, can we put Info in the charm.Repository interface? I'd much prefer that than doing some casting to anonymous interfaces to access that method.17:14
dimiternnatefinch, actually, I wasn't sure about using Info() or maybe just lazy not to calculate the sha256 from the already downloaded file17:19
dimiternnatefinch, i'll change that to use only Get and read and calculate the hash from the downloaded charm17:20
natefinchthat also works17:21
=== alexlist` is now known as alexlist
rogpeppedimitern: you've got a review18:36
rogpeppenatefinch, dimitern: i made an alternative suggestion18:36
rogpeppenatefinch, dimitern: which hopefully works out a bit simpler than calculating the hash yourself18:36
* rogpeppe is done for the day19:01
rogpeppedarn juju-restore is destroying its own re-bootstrapped machine19:04
rogpeppeg'night all19:04
natefinchthumper, morning19:29
thumpero/ natefinch19:29
* thumper trawls through the overnight emails19:29
natefinchthumper, how's your knowledge of mongo?20:26
thumpernatefinch: virtually non-existent20:27
natefinchthumper, heh.  My HA tests are failing on 2.2 but passing on 2.4.... and I can't figure out why.20:27
thumperhmm... trying to bootstrap ec2 failed with an error around simple streams20:40
thumperWARNING no tools available, attempting to retrieve from https://streams.canonical.com/juju20:40
thumperERROR bootstrap failed: cannot find bootstrap tools: XML syntax error on line 9: element <hr> closed by </body>20:40
natefinchthumper sounds like you might be getting a 404 not found page instead of the XML you're supposed to get, and it's trying to parse the page's HTML20:56
thumpernatefinch: that's what I thought too20:56
thumperbut since I actually needed to upload tools20:56
thumperit was a convenient error20:56
natefinchheh20:57
natefinchthumper, it does worry me that we're not checking the http error code before trying to parse what's returned, though20:57
thumperheh20:58
thumperyeah20:58
thumpershould file a bug20:59
thumperI'm now confused...20:59
thumperwith my work20:59
thumperWTF!21:01
thumpernatefinch: hangout?21:01
thumperit might help if I talk this through21:01
natefinchsure... one sec21:03
thumpernatefinch: I worked it out :)21:05
natefinchthumper, ha, ok, cool21:05
thumperdumb permissions...21:05
natefinchthumper, heh, something like that happened when I was building mongo from source yesterday.  30 minute build, fails at the very end with a permissions issue.21:06
thumperI have code that now creates a juju system ssh identity file and adds to the authorized keys21:06
thumperand it works for ec2 and local21:06
thumperso probably everything21:07
thumperalthough care should be taken with manual21:07
=== hatch_ is now known as hatch
=== gary_poster is now known as gary_poster|away
thumperwallyworld_: o/22:42
wallyworld_heloooo22:43
thumperwallyworld_: good break?22:43
wallyworld_so many emails22:43
thumper:)22:43
wallyworld_yeah, no internet22:43
wallyworld_great result in the cricket :-D22:43
thumperwallyworld_: I'm heading off to the gym shortly, but we have a scheduled call in just over 2 hours22:43
wallyworld_yep22:43
thumperso we can chat then22:43
wallyworld_ok22:43

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