/srv/irclogs.ubuntu.com/2013/10/09/#juju-dev.txt

sinzuiwallyworld, Yes, I think that would be lovely and "sign-tools" is clear00:25
wallyworldack00:25
wallyworldwill do that today after some other work - i'm making so that sync-tools always uploads to old /tools location until 1.16 is released00:26
wallyworldshould hopefully address maas issue where no public tools are available. i was really hoping that public repository would be done so that this would not have been necessary00:28
davecheneyhttps://bugs.launchpad.net/juju-core/+bug/123666200:35
_mup_Bug #1236662: environs/ec2: if the bootstrap node is restarted, all the agents in the environment cannot reconnect <juju-core:New> <https://launchpad.net/bugs/1236662>00:35
davecheneyhttps://bugs.launchpad.net/juju-core/+bug/123715100:46
_mup_Bug #1237151: set rpc logging to TRACE and agents back to DEBUG by default <papercut> <juju-core:Triaged by thumper> <https://launchpad.net/bugs/1237151>00:46
davecheneyhttps://bugs.launchpad.net/juju-core/+bug/123716301:28
_mup_Bug #1237163: juju deploys wrong machine when no machine matching constraints is available <juju-core:New> <https://launchpad.net/bugs/1237163>01:28
davecheneysidnei: ping03:26
wallyworldjam: i just kicked the landing bot in the bollocks. it seems that it had not run from about 08-10-13 15:20 UTC. i deleted the flock file in ~tarmac. what is a little confusing is that the lock file was dated jul 29.05:59
jam wallyworld: it isn't created, what is happening is a test run left a process running that has the file open06:00
wallyworldwhy 29th july?06:00
jamwallyworld: most of the time it is a rogue mongodb process06:00
jamwallyworld: because we don't ever delete the file06:01
jamit is just used with flock06:01
wallyworldsure. but i would have thought it would have been dated around 8th oct or whatever06:01
jamwallyworld: the "flock" model is that you open a file handle, and then flock it, and then all children that are spawned from that process have the file handle in their process06:01
jamso until they all die06:01
jamthe lock is held06:01
jamwallyworld: and when the process dies06:02
jamit doesn't *delete* the file06:02
jamwe just keep using the same file06:02
jamwallyworld: it isn't open(O_EXCLUSIVE)06:02
jamit is flock(EXISTING_FILE)06:02
jamthough that file will be created if it doesn't exist06:02
wallyworldok06:03
jamwallyworld: anyway, the *actual* fix is to kill 16262 whicth is a mongod process that has been running for over 6hours cpu time06:03
wallyworldah ok06:03
jamwallyworld: so if the bot looks stalled, I generally bring up top, and look for a stale process06:03
wallyworldok, will do that next time06:03
dimiternmornin' all06:44
fwereadedimitern, heyhey06:45
fwereadewallyworld, jam, axw: mornings06:45
wallyworldhello06:45
jammorning fwereade06:46
rogpeppefwereade, axw, jam, wallyworld, dimitern: mornin' all06:48
fwereaderogpeppe, heyhey06:48
wallyworldwhat he said06:49
axwmorning all :)06:54
dimiternit's very jolly this morning it seems :)06:55
* fwereade was just looking at the constraints matching logic as referenced by davecheney, and What The Fuck06:57
fwereadeit looks like we ignore the heuristics to begin with06:57
fwereadeso ofc they don't get used06:57
fwereadeand if we fail we *then* just apply the heuristic and give them, eh, some shit, whatever, who cares06:57
fwereadecertainly nothing that matches the constraints though06:58
jamfwereade: so I think the only heuristics we give are for mem, right? So you could argue we could check if there is a mem constraint, and if not set it.06:59
fwereadeyeah07:00
jamfwereade: though what *should* we do if we can't find a match?07:00
fwereadethat's what we did when I wrote it07:00
jamjust fail, I guess07:00
fwereadewe should apply the heuristics *first*07:00
fwereadetry to get something matching user requests + our own preferences07:00
fwereade(if there's no conflict)07:00
fwereadeif that doesn't work, just use the user requirements alone07:00
fwereadeif that doesn't work, FAIL07:00
axwfwereade: so I just noticed today that the 1.16 release milestone is set for <24h from now07:10
axwif you didn't realise, null provider is pretty hobbled at the moment07:10
axwjust proposing the last fix now, but I guess it's too late to get it in (as well as get the others approved)07:11
fwereadeaxw, ok, can you give me the really high-level version please?07:15
axwfwereade: sure, I'll just get the bug numbers to reference07:16
axwfwereade: when bootstrapping the null provider, the prompt for "ssh sudo ..."  is hidden (https://bugs.launchpad.net/juju-core/+bug/1235716)07:18
_mup_Bug #1235716: sshstorage does not display sudo prompt <juju-core:In Progress by axwalk> <https://launchpad.net/bugs/1235716>07:18
axwfwereade: when bootstrapping into a machine that already has tools, bootstrap fails completely (https://bugs.launchpad.net/juju-core/+bug/1235717)07:19
_mup_Bug #1235717: null provider bootstrap fails with error about sftp scheme <juju-core:In Progress by axwalk> <https://launchpad.net/bugs/1235717>07:19
axwfwereade: if you try to bootstrap a machine whose series doesn't match default-series, it thinks it can't find tools (https://bugs.launchpad.net/juju-core/+bug/1236691)07:19
_mup_Bug #1236691: null provider bootstrap fails if default-series does not match target <juju-core:In Progress by axwalk> <https://launchpad.net/bugs/1236691>07:19
axwthe sudo one is easy to fix easily, but maybe not if ctx.Stdin/Stdout etc. have to be threaded through juju07:20
axwthe others have fixes but are a bit more involved07:20
axwfwereade: they all have workarounds, so they're not crippling, but do lead to poor user experience07:21
fwereadeaxw, tbh I am not inclined to make those part of 1.16 -- we've still got the null provider documented as experimental, right?07:22
fwereadeaxw, so if they have workarounds I really don't want to take the instability risk today07:23
axwfwereade: we do, though that doc is still pending approval..07:23
axwfwereade: fair call07:23
fwereadeaxw, is that into juju-core/docs? sorry, I haven't really been following reviews there07:24
axwfwereade: tho the sudo one is good risk/reward ratio I think07:24
axwfwereade: yeah07:24
axwfwereade: https://code.launchpad.net/~axwalk/juju-core/manual-provisioning-docs/+merge/18850107:24
fwereadeaxw, for doc reviews that languish, it would probably be best to lean on evilnickveitch, marcoceppi_, or jcastro07:25
axwfwereade: okey dokey, ta07:25
fwereadewallyworld, I see you have signing ones up, I'm about to take a look at those (also need breakfast... :/) -- any joy re sync-tools to old location? or should I get someone else to take a look? must be late for you now07:26
* fwereade hears that a wonderful person has made him toast, goes and eats it, bbs07:26
evilnickveitchaxw, fwereade it is in the queue! there is some other complicated stuff landing at the moment07:27
axwcool, thanks evilnickveitch07:27
axwsync-tools is reviewed, fwereade07:27
fwereadeaxw, sorry, which one? sync-tools-to-old-location-in-1.16?07:34
fwereadeaxw, wallyworld: that looks like it's not fixed07:34
fwereadeaxw, all I see is an MP for juju-core07:34
fwereadewallyworld, ^07:34
axwfwereade: ah sorry, just in juju-core07:34
fwereadeaxw, wallyworld: nothing for juju-core/1.1607:35
fwereadeaxw, wallyworld: that should surely *not* be in trunk at all, should it?07:35
axwgood point07:36
fwereadeaxw, wallyworld: trunk is just for code >= 1.17, and 1.16 is the last time we need that code07:36
fwereadewallyworld, can we back that out and retarget it please?07:42
wallyworldfwereade: i thought trunk was still for 1.1607:47
wallyworldhave we branched07:47
fwereadewallyworld, we branched from 1.15.1 to the 1.16 series07:47
wallyworldoh ok. i didn't realise. was there an email07:47
fwereadewallyworld, probably not, I'd thought it was already "normal" :(07:48
wallyworldi would have thought we only branch when 1.16 is cut07:48
wallyworldi guess there's two opinions on when to branch - before or after release07:49
fwereadewallyworld, I'd prefer to keep putative releases isolated from the hurly-burly of trunk07:49
axwwallyworld: I think 1.15.1 is kinda like 1.16.0 rc107:49
wallyworldfair enough. can be argued either way :-)07:50
fwereadewallyworld, yeah, what axw said07:50
wallyworldbranching early means more work. branching later means more care needed07:50
fwereadewallyworld, axw: (if we had a mechanism that allowed for things like "RC1" it would be great, wouldn't it)07:51
axw;)07:51
wallyworldfwereade: so all my 4 or so branches i have up - i now need to land in two places :-(07:51
wallyworldwell, all except the one above07:51
axwfwereade: I thought I had the 1.16.0 tests fixed, but apparently they fail on precise .. still looking into it07:51
fwereadeaxw, yeah, I was looking at that and I'm afraid I... just don't really understand wtf is going on there07:52
axwfwereade: something to do with the metadata, I don't know where it's coming from tho. anyway, just letting you know I'm still looking at it07:52
fwereadeaxw, I see no evidence that what we're doing makes any sense in the first place in either dev or releasemode07:53
axwfwereade: yeah... quite a burden for what we get out of it07:53
fwereadeaxw, wallyworld: any idea why we have two changes to upload, called at different times depending on the provider kind (which the command should not know anyway)?07:54
fwereades/changes/chances/07:54
wallyworldwhere is this in the code?07:54
fwereadewallyworld, cmd/juju/bootstrap07:54
axwfwereade: you mean how "local" always forces upload?07:54
fwereade.go07:54
fwereadeaxw, yeah, that is crack for a start07:54
fwereadeaxw, and then later there's stuff to auto-upload *anyway*07:55
fwereadeaxw, so it's not just a massive layering violation, it's also completely unnecessary07:55
fwereadeI *think*07:55
wallyworldfwereade: the local provider hack was done by tim for a reason i can;t recall, but i think it had to do with making tools available for the lxc container07:56
wallyworldmaybe because we "know" there are never tools available for the local provider?07:56
wallyworldso we need to force an upload?07:57
fwereadewallyworld, it was done by tim because oscon, and never tidied up because I wasn't able to convince him it was crack until iom, at which point more things were on our plate07:57
fwereadewallyworld, but it's not even upload-tools07:57
fwereadewallyworld, he completely changed the meaning of upload-tools07:57
fwereadewallyworld, so now upload-tools and sync-tools are just kinda different ways to do the same thing07:57
wallyworldupload tools calls sync tools07:57
wallyworldbecause sync tools knows how to deal with the metadata etc07:58
fwereadewallyworld, right, but it's not actually syncing -- and while they used to be separate they arenow so entangled that I have no idea wtf to do about them08:00
wallyworldi need to look at the code in more detail to re-grok it08:01
fwereadewallyworld, anyway, I don't mean to whine at you, you have been a powerful force for sanity08:04
davecheneywhat is the add-machine syntax to make a new lxc continaer ?08:04
TheMuemorning08:06
rogpeppedavecheney: lxc:1 ?08:07
davecheneyrogpeppe: muchas gracias08:08
wallyworldfwereade: no problem, feel free to vent :-)08:08
* fwereade breathes deeply for a moment ;)08:09
fwereadewallyworld, ok, so, I will be reviewing your branches for both trunk and 1.16 I think08:10
wallyworldfwereade: yeah, everything that's up now is intended for 1.1608:10
wallyworldfwereade: i'm also doing the plugin juju_env one for davecheney08:11
fwereadewallyworld, can you back the sync-tools fix out of trunk and get it into 1.16 now while I focus on those for a bit?08:11
wallyworldsure. just about to have dinner though, so after that08:11
wallyworldfwereade: i assume the bot handles proposals against 1.16 ?08:11
fwereadewallyworld, yeah, it did for me yesterday anyhow ;p08:11
wallyworldcool :-)08:12
davecheney% juju add-machine 008:14
davecheneyerror: malformed container argument "0"08:14
davecheneyWHUT ?08:14
fwereadewallyworld, https://codereview.appspot.com/14524043/ reviewed08:16
fwereadedavecheney, add-machine lxc:008:16
fwereadedavecheney, "0" already exists, can't be added again08:16
wallyworldfwereade: the empty key is moot because it won't be used cause there's no signed tools metadata08:16
wallyworldfwereade: and i plan to get the key off curtis or ben howard tonight (i hope)08:17
fwereadewallyworld, ha, ofc -- do we have one incoming from sinzui?08:17
fwereadewallyworld, ok, cool08:17
fwereadewallyworld, LGTM for both then08:18
wallyworld\o/ thanks :-)08:18
wallyworldi'll let you mark them as such and i'll land to trunk and 1.16 after dinner08:19
fwereadeaxw, https://code.launchpad.net/%7Eaxwalk/juju-core/lp1235717-refactor-simplestreams-writemetadata/+merge/189767 is for one of the bugs you linked above, right? I'll be ignoring it for a bit then08:19
axwfwereade: yes indeed08:19
fwereadewallyworld, likewise https://codereview.appspot.com/14530043/ -- very clean, ty08:21
jamdavecheney: https://bugs.launchpad.net/bugs/1237151 thumper is away this week08:30
_mup_Bug #1237151: set rpc logging to TRACE and agents back to DEBUG by default <papercut> <juju-core:Triaged by thumper> <https://launchpad.net/bugs/1237151>08:30
axwfwereade: I've been leaving this https://codereview.appspot.com/14218044/ until I rework according to your comment08:33
axwnot necessary for 1.16.0 right?08:33
fwereadeaxw, I don't think it is, AFAIK everything works since we took the daily streams out of azure08:34
axwfwereade: yeah azure is fine. it's just a potential surprise for private cloud users08:35
axwno wait..08:35
axwit's fine for htem at the moment08:35
axwnever mind08:35
fwereadeaxw, I *think* it's fine, yeah08:35
fwereadeaxw, hmm, what do we need admin-secret and ca-private-key locally for?08:36
davecheneyjam: i wanted to take a crack this arvo08:37
davecheneybut got pulled into support08:37
jamfwereade: we need admin-secret in order to connect to mgo for the client, don't we ?08:37
axwfwereade: yeah, just for the cli08:38
jamdavecheney: had to look it up: http://www.urbandictionary.com/define.php?term=arvo08:38
jam:)08:38
axws/davecheney/davo/08:39
fwereadeaxw, given that we've connected already, can we not get away without them?08:42
axwfwereade: heh, that would make sense :)    I only put it in there because it was failing... I'll take a closer look at why08:42
davecheneyjam:  i'm sorry, it must be my accent08:48
davecheneyoh crap08:48
davecheneyadd-machine lxc:1 created a new container, the juju didn't use it !!08:49
jamdavecheney: is it a constraint issue?08:49
jam(not enough mem in the instance, etc)08:49
axwfwereade: 1.16.0 tests should be fixed now, do you want to review the CL before I land on 1.16 as well? https://codereview.appspot.com/14521054/08:54
fwereadeaxw, I think I need you to explain how the change works, and what happens in dev vs release mode08:55
axwfwereade: documented here https://bugs.launchpad.net/juju-core/+bug/1237123/comments/108:56
_mup_Bug #1237123: cannot set version to 1.16 <juju-core:In Progress by axwalk> <https://launchpad.net/bugs/1237123>08:56
fwereadeaxw, all I know is that I don't like or trust what we do today and so I'm suspcious of tweaks to it ;)08:56
axwif that doesn't explain it, lemme know08:56
fwereadeaxw, ah great, I will try to understand :)08:56
TheMueshit08:58
TheMuewife just detected that a wheel of the car is flat :(08:59
fwereadeaxw, // If Dev is already true, leave it alone. seems to be conditional on dev being *false*-- am I just misreading or something?08:59
fwereadeaxw, ohwait I see09:00
axwfwereade: sorry, did I add to the subtlety? :)09:00
axwfwereade: you're completely right about admin-secret not being needed there. my test broke because I took admin-secret out of my environments.yaml... but that branch doesn't have the change needed to Prepare admin-secret09:01
fwereadeaxw, I guess I still don't get what MinorVersion being set implies about devness09:01
fwereadeaxw, ok,but Prepare should be completely irrelevant here, right? nothing fails without admin-secret exxceptbootstrap AFAIK09:02
axwfwereade: yeah, my bootstrap command was failing because admin-secret was blank.09:03
axwhmm09:03
axwbut why not when I copied it.. wtf09:03
axwfwereade: umm, yeah not really sure why re the MinorVersion either tbh09:03
axwthat is the same as before09:04
fwereadeaxw, yeah, I can't figure it out either, and that's what scares me about the whole business09:07
fwereadeaxw, changing things without fully understanding them09:08
fwereadeaxw, SyncContext looks like it's got altogether too many magical meanings for the different fields09:09
fwereadeTheMue, I don't suppose you can shed any light on this? (on your return, I guess...)09:10
axwfwereade: I'll have a look thru the log to see if I can figure anything out...09:11
fwereadeaxw, thanks09:11
axwfwereade: wallyworld changed this at r180709:13
axwwallyworld: ... any hints on the rationale for tying SyncTools.Dev to MinorVersion?09:14
axwfwereade: I think I must've had a stale .jenv file when I was testing the prechecker stuff09:16
axwone with a admin-secret in it09:16
axwso yeah... that code can/will go09:16
TheMuefwereade: eh, sorry, didn't follow. now have to wait for a technician, so I can continue here.09:19
TheMuefwereade: what's the problem I shall investigate?09:19
fwereadeTheMue, we don't really know what's going on with SyncContext and wondered if you knew about it09:25
fwereadeTheMue, https://codereview.appspot.com/14521054/patch/5001/6004 -- "syncContext.MinorVersion != -1"09:26
jamwallyworld: I just feel pretty strongly after some time that juju-metadata *shouldn't* be a plugin09:27
rogpeppefwereade: i responded to your review here: https://codereview.appspot.com/1439504309:27
TheMuefwereade: off the cuff not, but will take a look09:27
wallyworldjam: i agree. i never wanted it as a plugin in the first place09:28
rogpeppejam: i agree too.09:28
rogpeppejam: i never really understood the "too many commands" rationale for making it a plugin09:28
wallyworldaxw: let me think - i can't recall off hand09:28
jamrogpeppe: especially given it is installed by default, so we still have those command09:28
jams09:28
rogpeppejam: ha, yes09:29
wallyworldjam: i think juju help commands was the reason09:29
wallyworldpeople didn;t want the list of commands to be tool large09:29
jamwallyworld: we could easily hide commands in help commands if we wanted to09:29
jamseems a better fix09:29
rogpeppewallyworld: how do you mean?09:29
jamrogpeppe: didn't want to overload people looking for help with X with too many commands that might be useful perhaps09:29
rogpeppejam: why would we want to hide it? it's a perfectly good command.09:29
jamI think that falls into "juju help" being opinionated09:29
wallyworldrogpeppe: well, juju help commands shows a list of all commands, and people didn't want that list to be too large09:29
jamand "juju help commands" giving everything09:30
wallyworldrogpeppe: i don't buy that argument. i was "forced" to make it a plugin09:30
wallyworldaxw: it had to do with the legacy tools search functionality and the change to exact minor version matching09:31
wallyworldfrom memory09:31
wallyworldso, the old functionality searched for all tools with major version = 1 (say)09:31
wallyworldand this excluded dev versions i think09:32
jamaxw: MinorVersion == odd means it is a dev version09:32
jamthat has been the internal case for a long time09:32
jamlong before wallyworld came along (IIRC)09:32
wallyworldand with the minor version matching, if we wanted a match for 1.13 (say), we needed to set dev = true09:32
axwjam: the code is just checking MinorVersion != -1 (i.e. minor specified)09:32
jamthe build > 0 was a newer thing, but it was intended for "--upload-tools" to always generate a Dev version (vs oficial release)09:33
axwwallyworld: ok, I think I understand that09:33
jamaxw: ah, see wallyworld's comment.09:33
axwwallyworld: perhaps it should be checking if it's -1 and odd then.09:33
jamif you want to match exact minor version, and you're running dev you have to search dev09:33
axw!=-109:33
jamaxw: -1 is always odd, right?  :)09:34
axwerr yeah :)09:34
wallyworld-1 is the default09:34
wallyworldarg value09:34
axwright, so -1 is special09:34
wallyworldto distiguish from 009:34
axwfwereade: answer is ^^09:35
wallyworldcause someone could search for major.minor = 2.0 (say)09:35
fwereadewallyworld, ah,I didn't see where -1was the default -- I saw a SyncContext somewhere that didn'tseemto set them,but then I see there's sometransformation thereof above09:36
fwereadewallyworld, axw: but, OK, I think I'm convinced by wallyworld's LGTM09:37
wallyworldfwereade: i did a LTGM on inspection only. it seems ok. but the proof is does it fix the bug and not cause regressions.09:38
fwereadewallyworld, axw: I think there's some call for a tech-debt bug around bootstrap at least though, it shouldn't be this hard to follow09:38
wallyworld+100009:38
wallyworldfwereade: it has all sort of "evolved" incrementally into a mess09:38
fwereadewallyworld, yeah, I know how that happens ;)09:38
wallyworldit needs to be properly refactored09:38
fwereadewallyworld, and, hey, we got value from the tech debt, but we should pay it down before it cripples us09:39
* fwereade does a bit more deep breathing09:39
jamaxw: bug 1237295, are there prechecker tests that could actually become stale in the current system? Stuff like not supporting LXC won't change without a code change anyway09:39
_mup_Bug #1237295: state.Prechecker/Environment in machine-agent may become stale <juju-core:Triaged> <https://launchpad.net/bugs/1237295>09:39
wallyworldyep. the short term focus was saucy and simplestreams working09:39
axwjam: no09:39
wallyworldaxw: i'd love it if the change were tested manually to make sure it all hangs together09:39
axwnot currently a problem09:39
fwereadeaxw, jam: Prechecker isn't merged yet is it?09:39
axwfwereade: no09:40
axwthat's in preparation for my repropose09:40
fwereadeaxw, jam: it *would* be nice to get that into 1.16 actually, because someone already got confused creating a container on ec209:40
axwwallyworld: I have done a brief test, I'll do some more in a bit09:40
fwereadeaxw, jam: for some reason I am a little bit scared of it, but I can't figure out why09:40
fwereadeaxw, thanks, +10009:41
jamfwereade: it does feel a bit like something that could screw up and not let you do something that you *should* be able to do09:41
axwfwereade: probably because it hunkers down into state ;)09:41
jamso I'm reasonably ok giving it some more ongoing testing in a 1.17 series09:41
axwit does seem a bit late to put it in imho09:42
jamfwereade: so here's a destroy-environment issue09:42
fwereadejam, oh yes...09:43
jam"juju bootsrap" tries to create a private bucket, fills in that detail into the .jenv. But you're on a private cloud so you have to upload your own image metadata09:43
jamso you shove it in your private bucket09:43
jamand then bootstrap again09:43
jambut bootstrap doesn't work because of the empty provider-state file left around the first time09:43
jamso you "juju destroy-environment"09:43
jambut now it lost what private bucket you were using09:43
jamso bootstrap can't work09:43
fwereadeTheMue, ahh, here's dstroppa, would you have a word with him about the OS X build? and how practical it actually is to run non-statey provider tests on non-ubuntu?09:44
jambecause it won't be able to find the metadata you just uploaded to your private bucket09:44
davecheneyfwereade: juju deploy --to lxc:1 mysql just did this too me09:44
davecheneyhttp://paste.ubuntu.com/6213065/09:44
davecheneybut I cannot reproduce the problem09:44
davecheneyfwereade: can you think how this is possible09:44
davecheneyand if I should09:44
davecheneya. raise an issue09:44
davecheneyb. pretend it didn't happen09:45
jamdavecheney: the syntax "--to lxc:1" means to create a new LXC on machine 1 and deploy to it09:45
jamdavecheney: "--to 1/lxc/1" is the way to deploy to the first LXC container on machine 109:45
jamsorry09:45
jam1/lxc/009:45
jamdavecheney: so *as designed*09:45
jamthough confusing, I understand09:46
davecheneyjam: explain this09:46
davecheneyhttp://paste.ubuntu.com/6213071/09:46
jam"lxc:1" is always "a new LXC on 1"09:46
davecheney^ destoryed env09:46
davecheneyran it again09:46
davecheneygot this09:46
davecheneynoce 1/lxc/009:46
davecheneynote09:46
jamdavecheney: local provider?09:46
davecheneyjam: hells no09:46
davecheneyec209:46
jambug #123725909:46
_mup_Bug #1237259: juju status reports 'missing' instance-state when not run as root <juju-core:New> <https://launchpad.net/bugs/1237259>09:46
davecheneyjam: false09:46
jamah, should have been clear about the ec2* addresses09:46
davecheneyjam: look at the machine id's09:47
jamdavecheney: "juju-machine-1" ?09:47
davecheney      mysql/0:09:47
davecheney        agent-state: pending09:47
davecheney        machine: 1/lxc/009:47
jamdavecheney: that is what it is supposed to be09:47
davecheneyyes, but the first time it wasn't09:47
jam1/lxc/0 is the first LXC instance on macihne 109:47
davecheneyhttp://paste.ubuntu.com/6213065/09:47
jamdavecheney: so the first time you did "juju add-machine lxc:1" which means create a new LXC on machine 1 and add it09:48
jamdavecheney: then you did "juju deploy --to lxc:1"09:48
jamwhich means "create *another* lxc and deploy to it"09:48
fwereadedavecheney, so if you ran exactly the same commands and got those different results there is surely a problem -- but what exactly did you run?09:48
jamif you did "juju deploy --to 1/lxc/0" it would have used the existing container09:48
davecheneyfwereade:09:48
davecheneyjuju bootstrap09:49
davecheneyjuju add-machine09:49
davecheneyjuju deploy --to lxc:109:49
davecheneyjuju deploy --to lxc:1 mysql09:49
davecheneyjuju status09:49
davecheneyit's like sometimes juju doesn't find the container it expected09:49
davecheneyand creates another one09:49
fwereadedavecheney,  `--to lxc:1` always means "create a new container"09:50
davecheneyfwereade: yes, so mysql/0 should have been created on 1/lxc/009:50
davecheneybut sometimes machine 1 gets a second container, 1/lxc/109:50
fwereadedavecheney, you were talking about doing explicit `add-machine lxc:1` at one stage,I thought?09:51
davecheneyfwereade: i'm trying to reconfirm tat09:51
davecheneyin which case09:51
davecheneyadd-machine lxc:1 and deploy --to lxc:1 mean _different_ things ?09:51
jamdavecheney: they *both* mean create a new LXC and use it for this operation09:52
jamcreate a *new* LXC09:52
fwereadedavecheney, they mean exactly the same thing -- create a new lxc container on machine 109:52
jamis key here09:52
davecheneyoh09:52
davecheneyriht09:52
davecheneyi understand now09:52
davecheneylxc:machine-number09:52
davecheneynot lxc:container-number09:52
fwereadedavecheney, yeah09:52
davecheneyright09:52
davecheneysorry for the noise09:52
davecheneyam trying to trace a problem that jpds hit deploying mysql into a container09:53
TheMuesorry guys, i'm off due to the defect for some time, will continue later :(09:53
davecheneygot sidetracked09:53
fwereadedavecheney, it's the specific form of a more general <pseudo-provider>:<location> syntax09:53
fwereadedavecheney, that should always imply new machine creation09:53
davecheneyfwereade: right09:54
davecheneythanks09:54
fwereadedavecheney, np, it's nice to find things that aren't bugs ;)09:54
* davecheney goes back to tracing real bugs09:56
jamwallyworld: fetchToolsHash assumes it can just http.Get any URL, it doesn't go via any of the DataSource objects09:56
* wallyworld looks09:56
jamso it (a) breaks with ssl-hostname-verification: false and (b) will fail if we don't have readable stuff, but I guess tools always need readable stuff09:56
rogpeppejam: axw is on the road to fixing that09:57
jamrogpeppe: fixing what part ?09:57
rogpeppejam: the fact that SyncTools uses http.Get at all09:57
wallyworldjam: it was assumed that tools as used for calculating the hash would always come from public urls09:57
axwrogpeppe: there's a CL up for that btw09:57
wallyworldthat was previously the case also with sync tools i think09:57
rogpeppeaxw: oh cool09:57
jamwallyworld: right, even in "private-bucket" we have to set it up as world-readable so that any system can read the tools09:57
jam*but*09:57
jamwhen you have to set ssl-hostname-verification: false09:58
jamthat breaks your http.Get09:58
wallyworldoh09:58
jamwallyworld: if you used the DataSource associated with the URL I've configured it to have the right settings09:58
rogpeppewallyworld: i don't think that can ever have been the case - the fetchToolsHash logic sometimes works on the target bucket which could always have been private09:58
jamrogpeppe: it can't09:58
wallyworldjam: with private bucket, we don't need world readable as storage URL() is used which gives a world readable url09:58
rogpeppeaxw: link09:58
jamrogpeppe: because you always have to be able to download the tools for a machine that doesn't have any creds yet09:58
axwrogpeppe: un moment09:59
jamwallyworld: not on openstack09:59
jambecause openstack09:59
rogpeppewallyworld: it doesn't for the local provider09:59
jamdoesn't have signed urls09:59
axwrogpeppe: https://codereview.appspot.com/14527043/09:59
jamwallyworld: because TemporaryURL isn't by-default enabled on all the Openstack instances we know of09:59
wallyworldjam: yes, but private bucket is not intended to be used that way for openstack09:59
rogpeppewallyworld: SyncTools should not use URL09:59
jamwallyworld: inspect the code, private-bucket is always made world readable for openstack09:59
axwrogpeppe: this doesn't change the SyncTools bits (much, yet)09:59
wallyworldjam: oh yeah09:59
rogpeppeaxw: looking09:59
jamif you use "--upload-tools" it must be09:59
jambecause that's where we write them, IIRC10:00
wallyworldrogpeppe: why? sync tools can get tools from a local directory if it wants10:00
rogpeppewallyworld: because it's got the Storage with a Get method - URL is intended for sending across networks, which we're not doing here.10:01
wallyworldthe data can come across a network10:01
wallyworldbut if we have a storage abstraction, then we can use that10:02
jamrogpeppe: so we know that we will eventually need to get the data via URL10:03
jambecause we do "wget" in cloud-init10:03
rogpeppejam: that's not an issue for SyncTools though10:04
rogpeppejam: and in particular for the target storage of the null provider, we don't have any url10:05
davecheneyyou know, if the cloud images came with lxc and the precise template already downloaded10:07
davecheneythings would bootup a lot faster10:07
rogpeppedavecheney: +110:08
wallyworldfwereade: this one will make davecheney happy https://codereview.appspot.com/1449904410:09
jamdavecheney: well we don't actually support lxc on ec2 today anyway... :)10:10
davecheneyjam: you cna make machines10:11
davecheneythat bit works10:11
axwdavecheney: not for long :)10:11
davecheneywallyworld: that *does* make me happy10:11
davecheneyaxw: you poo10:11
jamdavecheney: axw is subitting a patch to disable it10:11
davecheneyhang on10:11
jamsince we can't make them routable yet10:11
davecheneystarting lxc conatiners on precise is ultra fail10:12
fwereadewallyworld, LGTM10:12
davecheneyi don't know why I'm even trying10:12
jamdavecheney: 12.04.03 + cloud-tools should create nice LXC instances, I believe10:12
wallyworldfwereade: that was for 1.16 as well as trunk10:12
davecheneyjam: creating hem works fine10:12
jamdavecheney: and the ec2 images have been updated for 12.04.03 (which defaults to the raring HWE kernel)10:12
davecheneydealig with the kernel oopses is the tricky part10:12
axwfwereade, wallyworld: sync-tools and --upload-tools both work fine in my testing10:12
fwereadewallyworld, so I assumed :)10:12
davecheneyjam: ORLEY ?10:12
wallyworldaxw: awesome!10:13
axwgood to merge into 1.16.0?10:13
jamdavecheney: 12.04.03 defaults to the raring HWE kernel from reports of other people10:13
fwereadeaxw, go for it10:13
davecheneyjam: testing10:13
axwjam: indeed it does10:13
axwI installed the other day10:13
axwfwereade: ta10:13
davecheneyGOD DANMING10:13
* wallyworld has about 4 branches to merge into 1.16 and trunk, and another to back out of trunk and put into 1.16. sigh10:13
davecheneyEC2 iS SO FUCKING SLOW10:13
davecheneyWHY IS EVERYTHING SLW10:14
fwereadeaxw, jam: about Prechecker... how bad would it be to merge a 1.16-only hack that just blocks containers in non-maas environments only? in the addMachine gubbins somewhere?10:14
davecheneyi feel my life draining away every day I use this product10:14
fwereadeaxw, jam: heavily flagged as crazy and dangerous, and *not* merged into trunk?10:14
davecheneyjam: axw10:14
davecheneyi call bullsht10:14
davecheneyubuntu@ip-10-248-78-68:~$ uname -a10:14
davecheneyLinux ip-10-248-78-68 3.2.0-54-virtual #82-Ubuntu SMP Tue Sep 10 20:31:18 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux10:14
wallyworlddavecheney: could be worse, azure sucks balls10:14
* bigjools giggles10:14
davecheneywallyworld: true, the universe can always invent a slower mousetrap10:14
jamwallyworld: is that a bad thing?10:14
jamI guess it depends what you are looking for from your provider10:15
wallyworldjam: depends if you like having your balls sucked10:15
fwereadedavecheney, *we* can invent slower mousetraps any time you like! sometimes without even trying10:15
wallyworldbigjools does10:15
bigjoolsnom10:15
jamfwereade: it seems like the whole reason Prechecker was created was to handle the container issue, not landing it just to land a hackish version of it doesn't sound great.10:15
fwereadejam, it's bigger than that10:16
davecheneyanywa, axw, you're full of crap10:16
jamwallyworld: which is why bigjools worked on the azure provider. It all fits together in the end.10:16
davecheneyno HWE kernel10:16
wallyworldlol10:16
axwdavecheney: eh.. I'm sure it did10:16
jamdavecheney: it is possible that raw installs do, but EC2 doesn't10:16
fwereadejam, PrecheckInstance is at least as important, I think, even if we haven't got much in the way ofimplementations for it10:16
jamas in, they updated the image but only for tools and not for the kernel10:16
davecheneyjam: as I understand it an AMI is the root disk10:17
fwereadejam, but if people read about containers and want to experiment with them, we currently accept anything and fail late10:17
axwsorry fwereade family just came home... reading back10:17
davecheneythere is a separate file with the kernel10:17
davecheneynot sure what it is called, AKI or something10:17
davecheneywe don't get to control that10:17
jamfwereade: sure, but if we have code to do it in a reasonably nice way, it seems a bit silly to dump it for a hack because we aren't sure if the nice way is fully vetted. It feels like the hack will be *even less* vetted. Though perhaps focused enough to make the trade off worthwile.10:18
davecheneywhy does every container run 6 gettys ?10:18
fwereadedavecheney, I though an AMI implied an AKI but you could swap it out if you knew what you were doing? could be wrong10:18
davecheneyexactly which virtual console are people going to connect ot ?10:18
davecheneyfwereade: I think you can10:18
axwfwereade: umm, if we were going to put in anything, I'd say what's already there10:18
davecheneybut looks like it hasn't been done10:18
axwbut... we've gone without it for this long...?10:19
fwereadeaxw, jam: well, the trouble is that what's already there is still kinda off -- the Prechecker looks like it's working better than it necessarily is, and when people come across that code they'll assume it works properly10:19
fwereadeaxw, jam: eg they'll use the environ's config to determine request sanity10:20
fwereadeaxw, jam: despite that config being arbitrarily out of date10:20
jamfwereade: if it is a *code in the future* problem, then we should just land it. If it is a "code is slightly wrong right now" then we shouldn't10:20
axwfwereade: oh sorry, are you saying something to include something independent of prechecker?10:21
fwereadejam, I dunno, I feel that past lack of attention to code in the future has put us where we are today10:21
fwereadejam, axw: I teeter still10:22
jamfwereade: is axw actively improving this situation ? The bug he reported seems to be so, and it still seems better to land something that is being actively developed than something that we want to get rid of as soon as possible.10:22
fwereadejam, axw: and in particular, historically, "ok land it and fix it"  has come back to bite us because priorities shift and there's no time to fix10:22
jamso yes, be concerned about future code not getting enough attention, but do it by bringing it up and focusing on it in this case10:23
axwso, bzr/lp noob question: is this the right workflow for backporting a fix?    branch 1.16, merge in specific revnos, create MP and approve?10:23
axwjam: I have started on fixing that bug, but only just10:23
axwI'm somewhere between 0 and -1 on putting a precheck change into 1.16 at this stage10:24
fwereadeaxw, jam: I'm just concerned that the "containers work on maas" messaging is perilously close to "containers work"10:27
fwereadeaxw, jam: and a straight rejection is a much better UX10:27
fwereadeaxw, jam: disappointing, but not enraging10:27
axwfwereade: totally understand and agree with that10:27
axwjust slightly risky I think10:28
jamfwereade: so I agree, the disagreement is about "we have this stuff to do that, but we're going to punt it for the stable release and do a quick hack before we land the stuff we care about in the unstable release".10:28
jamIt may be that scope means we need to10:28
jambut it doesn't seem less risky then landing what we've been developing10:28
wallyworldjam: so i have a branch which diverged from trunk after 1.16 was branched. i naiively put up a mp of that same branch but targetted to 1.16. but the diff had extra stuff. so i think my only choice is to cherry pick my changes and do a new branch stacked on 1.16 and then a mp from there?10:29
jamwallyworld: yes10:30
wallyworldsigh10:30
jamwallyworld: "bzr branch lp:juju-core/1.16 .../my/local/path" bzr merge $EXISTING_BRANCH -r X..Y10:30
* wallyworld wishes we didn't branch 1.16 so soon :-(10:30
* wallyworld prefers to branch later10:31
wallyworldjam: yeah, i know how to cherry pick :-P10:31
axwjam: I'm doing a backport now too; do I just do that, then push to LP, create an MP and approve?10:31
fwereadewallyworld, it was only like 5 days ago ;p10:31
jamaxw: you need to target to the lp:juju-core/1.16 branch, you can do so with "lbox propose -for lp:juju-core/1.16"10:31
wallyworldfwereade: but there was still much to do for 1.1610:32
axwjam: ta10:32
fwereadewallyworld, most of that only became apparent in those 5 days10:32
fwereadewallyworld, and I'd rather have specific fixes against a known quantity than deal with unrelated changes in trunk10:32
wallyworldperhaps. it's a religious argument :-)10:33
wallyworldmy view is that you slow down trunk development and do testing in the week before10:33
wallyworldso you only commit to one branch and have goo qa and it's all still controlled10:34
fwereadethat's reasonable too, indeed10:34
fwereadelet's argue over beers in sfo :)10:34
wallyworldyep. i wouldnt be complaining if i didn;t have so many fucking branches to double land :-)10:34
wallyworldand i guess i sorta knew there was still much to do10:35
wallyworldeg signing metadata yada yada10:35
* fwereade ciggie before meeting10:38
axwwallyworld, fwereade: can you please review this for juju-core/1.16 -- https://codereview.appspot.com/1457904410:41
axwI'll bbl, going to have dinner10:41
wallyworldok10:43
fwereadeTheMue, standup?10:47
rogpeppe fwereade, jam: g+ is misbehaving on me10:48
jammgz: standup ?10:50
jamhttps://plus.google.com/hangouts/_/867e754a0a06dd4a7c52dc4e27457cd018da396010:51
jammgz: TheMue ^^10:51
jamwallyworld: was https://code.launchpad.net/~wallyworld/juju-core/plugin-env intended for 1.16 ?10:55
wallyworldyes, i have to do it in both10:55
wallyworlddoing trunk first10:56
jamk, I targetted it10:56
jamyour trunk is marked as merged10:56
wallyworldyes, i just merged it10:56
=== dstroppa_ is now known as dstroppa
=== teknico1 is now known as teknico
* dimitern => lunch12:09
natefinch-afkhow come babies only sleep *after* meetings are over? :/12:10
=== natefinch-afk is now known as natefinch
sidneidavecheney: pong12:11
* TheMue is back, and very happy *grmpflx* lost time and 120 bucks :(12:19
jamcan anyone do a quick review for landing in 1.16 branch: https://codereview.appspot.com/14494048/12:20
jamhi TheMue, welcome back12:20
TheMuejam: yeah, thanks12:20
TheMueat least now trying to solfe the os x troubles together with dstroppa12:21
TheMuesolve12:21
jammgz: are you looking back at the bot charm now, or are you finishing up stuff for 1.16 ?12:21
natefinchTheMue - I'd like to hear more about that, since the code cross compiles for OSX just fine (on trunk at least)12:22
TheMuenatefinch: yeah, here too, but not for dstroppa. that's wondering me12:23
TheMuenatefinch: where I have massive problems is to run the tests. 1st my mongo has no ssl built in, but the second one is regarding simplestreams12:23
mgzjam: planning on charm poking, unless something needs looking at for 1.1612:24
natefinchTheMue: I kinda doubt running the tests would work with cross compilation.12:25
jammgz: k, then if you can investigate http://dave.cheney.net/2013/07/09/an-introduction-to-cross-compilation-with-go-1-1 while you're at it12:25
jammgz: but if you want' you can review: https://codereview.appspot.com/14494048/12:25
natefinchjam: reviewed12:25
jamthanks natefinch12:26
mgzthat was fast :)12:26
jammgz: it is a <1 line change12:27
natefinchmgz: cross compilation is basically just "install go from source, run a script to build the tools for all GOOS and GOARCH, then use the correct tool for the target system"12:28
TheMuenatefinch: I'm compiling native here12:28
natefinchTheMue: ahh, ok.  Well, it's nice to know it compiles on native OSX, at least on someone's machine12:29
* natefinch is tempted to set up a hackintosh VM for testing12:29
TheMuenatefinch: already tried it a few weeks ago, w/o running the tests, but then installing our typical wordpress/mysql on ec212:30
TheMuenatefinch: e'thing fine12:30
natefinchTheMue: nice nice12:30
natefinchTheMue: I broke it when I made changes for Windows for 1.14.  unfortunately, no one noticed until 1.15 was out12:30
natefinchjam: ^^  we released 1.14 to OSX.... are we just releasing straight code for OSX, or binaries?   (I don't know how homebrew works)  Curious how it got released completely broken like that12:32
TheMuenatefinch: I don't know how homebrew works, never used it12:33
TheMuenatefinch: I've simply branched, gogetted ;) all 3rd party stuff and then go install12:34
natefinchTheMue: looks like homebrew is basically git to download zipped code that then runs ruby files to install stuff.  Which sounds handy, but incredibly dangerous.12:37
TheMuenatefinch: ic12:38
TheMuenatefinch: for missing unix software i'm using macports which also loads sources and builds them directly12:39
TheMuenatefinch: but imho the downloaded sources are from a special source code repository12:39
natefinchTheMue: yeah, homebrew seems to be touting itself as a macports alternative.12:39
natefinchTheMue: http://brew.sh/12:40
jamnatefinch: I'm pretty sure homebrew builds from a source file12:41
jambut I don't know it either12:41
* rogpeppe goes to lunch and a dentist's appointment12:44
TheMuerogpeppe: oh, had dentist early this morning too12:46
TheMuerogpeppe: thankfully only 5 min checkup12:46
TheMuerogpeppe: good luck12:46
axwfwereade: can I please get a review on https://codereview.appspot.com/14579044/ ? exactly same as the other one, but for 1.1612:53
fwereadeaxw, ah, sorry12:55
fwereadeaxw, ha, sorry, I even had a tab open already with an unpublished LGTM12:55
fwereadeaxw, done now12:55
axwfwereade: thanks :)12:55
wallyworldfwereade: rightio, my 5 branches have landed in trunk and 1.16 and i've reverted the legacy tools code in trunk. i just need to get the public key for tools metadata and commit that. let me know if anything else comes up13:07
sinzuiyou have been very busy wallyworld13:10
wallyworldyes13:10
wallyworldbe good when release is done13:10
wallyworldsinzui: if you get tip of 1.16, then you will have metadata signing support13:12
sinzuifaboo13:12
wallyworldi just need the public key now :-)13:12
sinzuime too13:12
wallyworldi hope we get it in time to make the release13:13
axwwallyworld: has the bot been merging your MPs for 1.16?13:34
axwmine's been sitting there approved for 37 minutes13:34
wallyworldaxw: yes :-)13:34
wallyworldaxw: did you propose against 1.16?13:35
axwwallyworld: yup13:35
axwwallyworld: https://code.launchpad.net/~axwalk/juju-core/1.16/+merge/19008513:35
wallyworldlink to mp?13:35
wallyworldi'll take a look, it may just be queued behinds others13:36
axwthanks13:36
wallyworldaxw: running now13:37
wallyworldalmost done13:37
axwwallyworld: cool, ta13:37
wallyworldweird branch name though :-)13:37
axwwallyworld: yeah I forgot to give it a useful name13:38
wallyworldfigured as much :-P13:38
axwluckily I only hae one to do ;)13:38
wallyworldso you think :-)13:39
* fwereade is seriously tempted to delete environs/instances and start afresh :(13:39
* axw runs13:39
axwthird system syndrome? :)13:39
fwereadeaxw, heh13:39
fwereadeaxw, just premature abstraction13:39
fwereadeaxw, it's got ec2-specific bits mixed all through13:40
fwereadeaxw, and it's completely broken13:40
axwfair enough, I was just being facetious :)13:40
fwereadeaxw, I know :)13:41
axwfwereade: I'd be keen to hear what things you don't like about it, maybe at SFO13:42
fwereadeaxw, mainly that if it can't find an instance type it just gives you whatever13:42
fwereadeaxw, which is just... broken13:42
axw? :(13:42
axwis that the constraints thing you were talking about before?13:43
wallyworldfwereade: i remember talking about that with you and as i recall we originally returned an error but i think we were told we had to return *something*13:43
wallyworldunless i'm mistaken13:43
fwereadewallyworld, I think you promised to fix it but we all got distracted, it was a stressful time, just before april ;p13:44
fwereadewallyworld, and I rationalized that since we had to have it on openstack animplementation that nostly worked for both beat one that only worked for ec213:45
wallyworldi can't properly recall now. i do recall that all the code was originally for ec213:45
wallyworldwe deal with provider specific attributes by allowing them to be nil13:47
fwereadewallyworld, and you (quite defensibly) really wanted to avoid copying logic -- so I'm not even sure it turned out *worse* than it would have done if you'd heeded my urging to keep them separate, we know well how that ends up usually13:47
fwereadewallyworld, I'm just grumpy because it's just come fully to my attention that it's been broken for 6 months13:47
hazmatfwereade, re bugs, if you have a moment, i'd like a moment to discuss https://bugs.launchpad.net/juju-core/+bug/1174610 which originally got marked opinion.13:47
_mup_Bug #1174610: unit ids should be unique <juju-core:New> <https://launchpad.net/bugs/1174610>13:47
hazmatit recently got expired automatically by lp, just wanted to get it back into the queue/hopper13:47
wallyworldi think the logic works ok - deal with a bunch of common attributes, and handle possibly nil ones13:48
fwereadewallyworld, and I'm having some difficulty seeing how to tease it apart13:48
wallyworldit get complicated because we have instances and instance types and they have to be smashed together13:48
wallyworldinstances come from simplestreams, instance types from flavours13:48
wallyworldi think we read the possible instances first, then look up the instances types, and then see what is compatible and also satifying constraints13:49
fwereadehazmat, ok, I see -- does it matter for services as well, or just for units?13:50
wallyworldif no constraints satisfied, it uses heuristics to just pick something13:50
fwereadewallyworld, no13:50
fwereadewallyworld, it skips the heuristics it's meant to use13:50
fwereadewallyworld, and then if it can't find a matching instance type it *then* uses the heuristics to pick something that *doesn't* match13:51
hazmatfwereade,  just for units really13:51
fwereadewallyworld, and all that stuff is tucked away inside a helper function13:51
fwereadewallyworld, when the falling backought to be top-level13:51
wallyworldthe heuristics are only used if a match cannot be found13:51
hazmatfwereade, the service case was explicitly stated as a desired overlap13:51
wallyworlda constraints based match shoudl always be used first surely?13:52
hazmatfwereade, ie.. if i delete wordpress svc, i can get the same db back on reconnect to mysql13:52
fwereadewallyworld, because we may get a list of matches from constraints-with-heuristics, but find that none has a matching image, and need to fall back to try again without13:52
hazmatfwereade, where as log aggregation, metrics against a unit is bad overlap.13:52
fwereadewallyworld, a constraints based match ignores the heuristics13:52
wallyworldyes, as it should?13:52
fwereadehazmat, ok, yes, I see13:52
fwereadewallyworld, no!13:52
wallyworldif i say i want xyz, then that's what i should get13:53
fwereadewallyworld, that's why we're getting 512M instances on canonistack13:53
fwereadewallyworld, and if you don't say anything, we shouldn't just give you useless heaps of rust because you didn't specify you wanted something useful ;p13:53
wallyworldthat's the argument i had at the time - i didn't want to do that13:53
fwereadehazmat, ok, I see your point there -- and I can see why it's unreasonable to expect people to use plain int ids (which don't themselves exist anyway)13:54
wallyworldbut i'm not getting why the system should not use my constraints if i provide them. maybe i'm just being thivk13:54
fwereadewallyworld, it should13:54
fwereadewallyworld, but it should also try to give you something that's likely to work *as well as* matching your constraints13:55
wallyworldwell, the user should know best13:55
fwereadewallyworld, if the only things that satisfy your constraints are piles of junk, well, fair enough13:55
wallyworldyes , that's my point13:55
fwereadewallyworld, and we fall back to the least worst of those13:55
wallyworldif constraints are satisfied, you get what you asked for13:56
wallyworldmaybe there was a requirements misunderstanding - none of this was documented as far as i know13:56
wallyworldit was all sorta verbal13:56
fwereadewallyworld, it's a pretty close match for python, which was documented actually -- but, yeah, the precise mechanismchanged13:57
wallyworldbut i do recall a disagreement on whether to return an error if a match could not be found. i sorta wish we did return an error instead of crap13:57
fwereadewallyworld, the main point is that your approach gives the user instances that do *not* match the constraints they asked for13:57
fwereadewallyworld, instead of returning an error13:58
wallyworldi did want to return an error13:58
wallyworldi could have sworn that i was not allowed to13:58
fwereadewallyworld, I must have just completely failed to communicate then13:58
fwereadewallyworld, I'm sorry13:58
wallyworldme too13:58
wallyworldi think the wires got crossed13:58
wallyworldi do recall not being sure at the time that what was done was ok or not13:59
fwereadewallyworld, yeah, I was not in a very good place at the time, and probably not being helpful13:59
wallyworldwell, we both are to blame :-)13:59
wallyworldi knew a lot less back then13:59
wallyworldsome would say not much has changed14:00
fwereadewallyworld, ehh, no worries, I'm a lot happier knowing you're not wedded to the approach14:00
wallyworldoh not at all14:00
wallyworldi just want it to work14:00
fwereadewallyworld, and, fwiw, I think you're great14:01
wallyworldbut i do think that having provider specific things as nillable values can work ok14:01
wallyworldit;s just the matching logic that needs tweaking14:01
wallyworldconstraints were implemented using the same approach14:02
fwereadewallyworld, yeah, I'm not really bothered by that side of it, except inasmuch as it's another thing to keep track of while unpacking it14:02
wallyworldyeah14:02
wallyworldmy view is the common logic and all the benefits there outweight the unpacking cost14:02
wallyworldso, we need to get this fixed for 1.16 i assume14:03
fwereadewallyworld, I kinda feellike we do, now I've looked at it14:03
wallyworldi'm quite tired now, but can pick it up after a few hours sleep14:03
fwereadewallyworld, but you're not allowed to do any more work today, get some sleep14:04
fwereadewallyworld, if I don't get something useful done myself I can hand over when you come back14:04
wallyworldok.i think the only thing i have to do next is commit the signing key14:04
wallyworldso hopefully this can be sorted out before the deadline.14:05
wallyworldfwereade: i think you would add the best value here by writing the correct tests and we then make those work. ie true TDD14:05
wallyworldclearly the tests cases are wrong14:06
wallyworldif stuff is broken14:06
wallyworldeven if the implmenation has to be patched together a bit to make 1.16, at least the tests will tell us things will be ok14:07
wallyworldand we can fix properly for 1.1814:07
wallyworldand the tests will document how it should work14:07
fwereadewallyworld, yeah, that's the plan :)14:08
wallyworld\o/14:08
=== gary_poster is now known as gary_poster|away
sinzuiwallyworld, check your email for the public key14:12
wallyworldsinzui: great, thanks14:13
* wallyworld will do a little branch to get that in14:13
=== gary_poster|away is now known as gary_poster
sinzuifwereade, jam (if you are about and care). I have a choice to make with the 1.16 series branch. I need to do a lot of merged, and if I want things to look perfect, do them in a different order to get the version fix, then inc the version, then merge everything else. I could merge everything else as a single branch. I could just re-fork 1.16 at the revision I want. At the moment, I don't see anything that has landed after 195414:44
sinzui that I don't want in the 1.16 branch14:44
fwereadesinzui, I couldn't swear to that... and I think we've also been merging to 1.16, haven't we?14:45
fwereadesinzui, what is there in trunk that's not in 1.16?14:45
wallyworldsinzui: both 1.16 and trunk now have public key. so if you have private key you should be able to sign tools metadata and juju should be able to use it14:46
sinzuifwereade, damn, I was supposed to be getting merge notification on this branch. My fault I am sure14:47
sinzuifwereade, wallyworld I will retry the inc 1.16 merge then and review the changes14:48
fwereadesinzui, so, just today, a constraints bug came up, that I *really* want to fix... but I think actually the right thing is to keep it out of 1.16, people have been putting up with it since forever14:53
sinzuifwereade, I have used the same thinking with some of the other issues saw yesterday. Regressions need fixing. Blockers to get to the new version need fixing. I don't think we need to delay a release for a fix that will come available in a few weeks with the next release14:56
fwereadesinzui, yeah15:00
fwereadesinzui, my desire to fix it is just based on personal upset/embarrassment15:00
sinzuifwereade, If the issue is fixed before we name the release revision, I am always happy to include15:01
sinzuiit15:01
sinzuifwereade, I do check for fix committed bugs and make sure they have a milestone, and I propose them in the stable release if I think they are safe15:03
* sinzui does just that for natefinch's lp:~natefinch/juju-core/019-osx-fix15:03
fwereadesinzui, I probably won;t get it done without rushing, I'm still feeling my way a bit15:05
sinzuiokay15:05
fwereadejam, rogpeppe: heh, did we actually assign that log-levels bug to someone?15:05
fwereadesinzui, when are you aiming to pull the trigger?15:06
rogpeppefwereade: the one we were talking about in the meeting?15:06
fwereaderogpeppe, yeah15:06
rogpeppefwereade: i don't think so15:06
rogpeppefwereade: i had a brief glance at fixing the RPC logging to avoid logging pings; it's not that easy, sadly.15:06
fwereaderogpeppe, bugger... and it sort of trailed off without consensus15:06
sinzuifwereade, I see 7 bugs for 1.16 and 1 doesn't appear to be started. I don't think I can start the release for 8 hours. I really think I will be in 24 hours15:07
rogpeppefwereade: because at that level we're writing reply messages but don't necessarily know what the call is that we're replying to15:07
fwereaderogpeppe, would you restate the objections to logging RPC at TRACE level?15:07
fwereaderogpeppe, ISTM that, today, we don't get them anyway15:07
fwereaderogpeppe, unless you change config15:07
fwereaderogpeppe, so that's pretty much moot15:08
rogpeppefwereade: for me, seeing the RPC messages in the machine log has been indispensible in diagnosing issues15:08
fwereaderogpeppe, understood -- but have you needed them when you haven't known you would? how often has there been a case you can't repro?15:09
rogpeppefwereade: almost always15:09
rogpeppefwereade: it's usually been when someone's had a problem and has pasted me the machine log15:09
fwereaderogpeppe, ok, but, that doesn't work today, right?15:10
rogpeppefwereade: i guess it's changed15:10
rogpeppefwereade: if you bootstrap --debug, do you see it now?15:10
fwereaderogpeppe, offhand, not sure15:11
fwereaderogpeppe, but I would expect so15:11
rogpeppefwereade: so when are people seeing the RPC messages now?15:12
fwereaderogpeppe, when they set DEBUG to look at the hook output, I think15:12
rogpeppefwereade: so can't they just set debug output for the hooks only?15:12
fwereaderogpeppe, heh, probably -- but the other side of it is that they generally *do* want hook output it seems15:13
rogpeppefwereade: we could log hook output at Info level15:13
fwereaderogpeppe, maybe the answer is just a slightly more sophisticated default config that includes DEBUG for ... whatever the uniter logger is called15:14
rogpeppefwereade: juju.worker.uniter15:14
rogpeppefwereade: i wonder whether we should have some logging modules that aren't named after juju packages15:15
rogpeppefwereade: oriented towards user logging requirements15:15
fwereaderogpeppe, I have no objection to such things in principle, for sure15:16
fwereaderogpeppe, at the moment we're only logging WARNING and above by default anyway15:17
rogpeppefwereade: then we could make sure that a given stream sees a set of coherent log messages, even if the messages happen to be generated in several different modules.15:18
rogpeppes/modules/packages/15:18
fwereaderogpeppe, indeed, as pointed out by hazmat in http://www.mail-archive.com/juju-dev@lists.ubuntu.com/msg00214.html15:18
rogpeppefwereade: we could actually *design* the log messages that we want the user to see.15:18
hazmatrogpeppe, there's a bug to adjust the root=DEBUG pinger=INFO15:19
hazmatwhich will address both issues, the default of INFO is too quiet15:19
hazmatwell it addresses some of the issues, the issues in that email are still relevant15:19
rogpeppehazmat: unfortunately there's no "pinger" log module15:19
rogpeppehazmat: all the rpc messages are logged at transport level15:20
hazmatrogpeppe, can that be changed?15:20
hazmatrogpeppe, the pinger messages cause the logs to fill up, and have almost zero value outside of an rpc dev.. and even then its questionable.15:20
rogpeppehazmat: it's the easiest place to do that (and reliable because we get to see the underlying representation), but it may be possible to do something more flexible15:21
rogpeppehazmat: yeah, i agree15:21
hazmatrogpeppe, the rpc messages are fine i think for debug transport, its just the pings, that obscfucate things.15:21
fwereadehazmat, looks like the root default is WARNING anyway which is *definitely* too quiet15:21
hazmatfwereade, rogpeppe for actual debug-log usage by end users the critical piece missing is both tagging log messages with their semantic location (unit id and machine id) instead of ip and then filtering capabilities at view time instead.. really adjusting the generation/collection to adjust the view is broken.15:24
rogpeppehazmat: what about the problem of filling up the log file?15:25
hazmatcause needs change, but if an env don't have the data then the user is hosed.15:25
rogpeppehazmat: or is writing to that file considered "viewing"?15:25
hazmatrogpeppe, writing to the log file is not viewings, its collection / aggregation. The pinger is the number one by far issue with that, and we should default to that off.. Moreoever its pretty damm common to use log rotation and compression here.15:25
rogpeppehazmat: if we're using compression then the pinger noise won't be an issue, will it?15:26
hazmatwhich in the absence of pinger, means we only have messages that matter for archival, ie related to changes.15:26
rogpeppehazmat: (not that i'm saying we shouldn't switch it off if we can do so reasonably)15:27
hazmatrogpeppe, yes.. its still an issue.. because its  A) not useful B) total obscures real info in viewing without filtering C) generates additional writes/exceess logs..15:27
hazmatrogpeppe, ie. just because its compressing, doesn't mean we should loop garbage into it.15:27
rogpeppehazmat: for semantic location, i'm thinking about a particular log module which relays messages related to particular units or machines, tagged in a consistent way15:28
fwereaderogpeppe, hazmat: OK, I am pretty convinced that (1) we don't want rpc traffic in there by default (2) we do want hook output in there by default (3) hook output as it stands is not so helpful because it's not usefully badged15:29
=== natefinch is now known as natefinch-afk
fwereaderogpeppe, hazmat: with an option on (4) FFS filter debug-log at server side15:31
rogpeppefwereade: as i've said, i think at this relatively unstable stage of juju development, having rpc traffic (not pings) in there by default adds considerable value.15:33
rogpeppefwereade: particular as we move towards doing more and more stuff via the API15:33
rogpeppefwereade: i've just realised that filtering out ping logs might not be as awkward as i thought15:34
hazmatrogpeppe, json encode the log records with multiple tags is the simplest way.. and what state of the art log aggregation typically does (heka/sensu/logstash)15:36
rogpeppehazmat: that's one option indeed15:37
hazmatfwereade, re 4 .. what's FFS filter?15:38
rogpeppefwereade: "for fuck's sake" :-)15:38
fwereadehazmat, For Something's Sake ;p15:38
rogpeppeahem, pardon my bad french translation15:39
fwereadesorry brb15:39
* hazmat learns something new15:39
fwereadeehh, I've been cussing and blinding all week,not sure why I got bashful about it there15:39
hazmatfwereade, re .. 4.. i don't think it really matters if its server or client.. in terms of delivering the feature. yes it would be more efficient server side, but that's a bit more infrastructure. the feature itself in conjunction with 3, makes 1 and 2 effectively go away (assuming we switch default to root=debug).15:42
hazmatbecause a user can then find what they care about.. ie. roughly similiar to what i stated later in that same thread. http://www.mail-archive.com/juju-dev@lists.ubuntu.com/msg00216.html15:42
hazmatits still worthwhile to kill 1 though just due to its lack of usefulness (effectively looped garbage)15:43
rogpeppehazmat: it's only the pings which are garbage15:44
hazmatrogpeppe, ah.. yes.. agreed.. i was specifically referencing the pings.. rpc traffic is useful.15:45
fwereaderogpeppe, hazmat: ok, true that it doesn't matter where that much, and I'm not *really* against rpc traffic15:46
fwereaderogpeppe, so do you have a clever plan for the pings? :)15:47
hazmatisn't  it just  a separate log channel in that module for transport pings or removing the log messages from them entirely?15:47
rogpeppefwereade: i'm still diving in there. it would be easier to log everything in the rpc package rather than in the codec, but unfortunately we've lost information at that stage (for instance we won't see extra unrecognised fields in request bodies)15:48
rogpeppeactually, i think i might have a cunning plan15:48
jcastroI get " ERROR storage-auth-key: expected string, got nothing" when trying to bootstrap with the null provider15:50
jcastrobut that key isn't mentioned in the pending docs15:50
fwereadejcastro, grar, I'll take a look quickly15:53
fwereadejcastro, yeah, looks like it should be, it's there in the boilerplate config as{{rand}}15:55
jcastroack, I can fix it in the docs15:56
fwereadejcastro, thanks15:56
* fwereade bbs again15:56
marcoceppi_jcastro: http://pad.ubuntu.com/7mf2jvKXNa15:58
fwereaderogpeppe, hazmat: ok, in terms of sheer usefulness (3) + (4) seem like the best way to spend my evening16:18
fwereaderogpeppe, if you have something clever for (1) go for it16:18
rogpeppefwereade: i'd go for 3)16:18
rogpeppefwereade: i'm still on it, trying not to muck up the whole interface for this case16:19
rogpeppefwereade: still on (1), i mean16:21
fwereaderogpeppe, understood :)16:22
jcastrofwereade, null provider is running but it doesn't appear to be working, where does it log?16:34
jcastrowhen trying to do a bootstrap16:34
jcastroit appears like it didn't create anything in /var/lib/ like the command said it should have16:35
jcastroalso, do I need password-less sudo access on the remote machine?16:35
fwereadejcastro, I think you do at the moment... that may be what you're hitting16:35
jcastrook16:35
jcastroyeah I saw the command flash up in top but it didn't execute anything, and I was wondering if it was sitting there remotely waiting for a sudo password16:36
TheMueyeah, one step further why os x tests fail16:36
fwereadejcastro, there are several bugs open re null provider bootstrap, it's worth taking a look at those16:36
TheMuestep by step, di damm, di damm16:36
jcastrofwereade, oh excellent, looking now16:36
smoser$ juju init -w16:37
smosererror: flag provided but not defined: -w16:37
smoseri'm following output of 'juju help local'16:37
smoserand it tells me that.16:37
smosershall i open a bug (juju 1.14.1-precise-amd64)16:37
jcastrohttps://bugs.launchpad.net/juju-core/+bug/1235716 is what I was running into16:38
_mup_Bug #1235716: sshstorage does not display sudo prompt <juju-core:In Progress by axwalk> <https://launchpad.net/bugs/1235716>16:38
jcastrofwereade, do you know if this is something that we'll shoot for 1.16 or is it point release material?16:40
smoserseems like its fixed in trunk16:40
smoserjcastro, did you say yesterday that 'juju bootstrap' on local provider does not need to be root ?16:41
jcastroit does need to be root16:41
fwereadejcastro, I would *love* to... I had thought sinzui was planning to start a bit earlier than he suggested, so I will try to get some of those reviewed in the hope that axw can land them tonight16:41
jcastrothe idea is that it won't need to be someday16:41
fwereadejcastro, I twitch a little re any changes now, but it does seem low-risk/high-value16:42
jcastrofwereade, yeah it's a silly bug, once I got passed it it totally is doing the awesomeness though16:42
fwereadejcastro, sweet16:42
jcastroI'll link to docs on passwordless sudo and keyauth in the docs though, that way people can have a cleaner experience16:44
TheMuefwereade: quick question. what do you think how simple it could be to use mongo w/o ssl in case of a test (depending on the os)?17:06
fwereadeTheMue, I doubt it'd be that hard, we set up mongo connections in relatively few places iirc17:07
TheMuefwereade: ok, will investigate in that direction17:07
TheMuefwereade: the two other changes that we would need to run the test on os x seem to be simple too17:08
TheMuefwereade: one is that strip when building jujud needs the additional arg -x and the second is that the series on os x is "unknown"17:09
fwereadeTheMue, that first one sounds trivial, the second one might take some thinking17:10
TheMuefwereade: btw, dstroppa can continue to work now, solved his troubles17:10
fwereadeTheMue, although a case could be made that it *shouldn't*, and anywhere it's causing trouble is evidence of poorly isolated testing17:10
fwereadeTheMue, you rock, tyvm17:10
TheMuefwereade: *blush*17:11
TheMuefwereade: your last sentence: it should not fail (the assert should be against the series returned on os x) or the returned series should not be "unknown"?17:19
TheMuegna, network left me17:47
TheMueok, good night17:56
rogpeppefwereade: i'm not going to manage the ping-muting tonight, i'm afraid17:57
fwereaderogpeppe, don't worry17:57
rogpeppefwereade: i think i know what to do, but it involves a bit of intricacy17:57
fwereaderogpeppe, I'm off and on but should manage something sane for the other bits, and hidden nastiness is better than obvious nastiness ;p17:58
rogpeppefwereade: so that the codec can know what request is being replied to - easy in principal, but a couple of types need reworking to keep things cleanish17:59
rogpeppeprinciple, dammit, i always get that wrong!17:59
rogpeppefwereade: g'night17:59
rogpeppeand g'night to all17:59
sinzuiI see https://bugs.launchpad.net/juju-core/+bug/1237219 only has a merge into 1.16. Doesn't it also need to merge into trunk?18:07
_mup_Bug #1237219: ssl-hostname-verification: false doesn't trigger if auth-URL is http:// <juju-core:In Progress by jameinel> <https://launchpad.net/bugs/1237219>18:07
=== natefinch-afk is now known as natefinch
fwereadesinzui, it surely does, well spotted18:52
sinzuifwereade, https://launchpad.net/juju-core/+milestone/1.16.0 is one bug away from being ready. I will talk to thumper about committing or deferring it18:53
fwereadesinzui, thumper's on holiday, I'm looking into it myself at the moment, it's a little bit more involved than it looks18:54
sinzuifwereade, thank you for taking the time18:55
fwereadesinzui, no worries, thank you :)18:55
natefinchfwereade: how do I get the bot to update goamz? Trying to merge in the ec2 rootdisk stuff, but the bot seems to have an outdated goamz19:16
fwereadenatefinch, is dependencies.tsv up to date?19:17
natefinchfwereade: yeah, lemme double check that the revision I specified is the right onw19:17
fwereadenatefinch, if it's not paying attention to that, I'm not sure, I'm afraid19:17
natefinchfwereade: yeah, it's correct.  So I guess the bot isn't paying attention, or has some other problem.19:18
natefinchwell boo19:18
sinzuimaybe we can update gobot to do the right thing. I think I have issue sorted out in my branch to create a tarball with the correct versions: https://codereview.appspot.com/14354043/19:21
natefinchsinzui: that looks pretty good.   Reminds me how much I hate bash scripts, though :)19:28
sinzuiI despise bash19:28
sinzuiI vowed to never write it again after working on the charmworld charm.19:28
hazmatso..maas tags aren't actually provider specific...19:31
natefinchhazmat: tags as a constraint are currently only supported on MaaS, but I know at least amazon has support for tags, though that's about all I know about amazon's tags19:34
hazmatnatefinch, tags mean something totally different there19:34
hazmatnatefinch, tags in aws are for resources not for classes19:34
hazmatin maas they reference an unallocated resource class.. in aws they reference an allocated group of resources19:36
natefinchhazmat: yeah, they're quite different.  In theory we might still be able to use them with juju, but it's certainly a different beast19:37
hazmatand it would be nice to validate user vocabulary..19:38
hazmater.. user supplied values19:38
natefinchhazmat: what do you mean by validating their values?19:38
hazmatnatefinch, what happens with an typo'd tag value?19:39
hazmatnatefinch, pending forever?19:39
natefinchhazmat: yep. That's pretty much how we handle all constraints that can't be fulfilled right now.  Not the best experience, for sure.19:39
hazmatnatefinch, except its not a constraint that can't be fulfilled... its a user input error19:41
natefinchhazmat: there's no real way for us to tell that.  If the user asks for an instance with 10T of disk space, is that a typo, or just the user asking us for something we can't fulfill?  Maybe the tag was typoed and the user spelled it right in juju...  the reason for the mismatch between the constraint and what's available doesn't matter.19:43
natefinchhazmat: regardless of why we can't fulfill the constraint... our current handling of it stinks.19:44
hazmatnatefinch, ignoring the generic constraints, these provider constraints are introspectable or static, and yes.. this was validation was previously done.19:44
natefinchhazmat: it'll get fixed eventually, I'm sure.  At least we *have* constraints by maas tags now19:49
hazmatagreed the reason doesn't matter, we just need to be better about reporting the mismatch as an unsolvable error upfront, rather then pending forever behavior19:49
natefinchhazmat: absolutely19:59
hazmatfiled a bug 123762620:00
_mup_Bug #1237626: constraints should be validated <juju:New> <https://launchpad.net/bugs/1237626>20:00
fwereadehazmat, fwiw constraint-prechecking is actually in progress but didn't make it in time20:15
fwereadehazmat, and it's not pending forever... it's a error, communicated back in status, and the machine is then amenable to destruction20:16
hazmat natefinch fwiw core's support of maas tags is at a bare minimum of the features available from tags or previously available, filed bug  https://bugs.launchpad.net/juju-core/+bug/1237634 i don't think it matters atm to the users.20:16
_mup_Bug #1237634: maas tags support should support full tag syntax <juju-core:New> <https://launchpad.net/bugs/1237634>20:16
hazmatfwereade, cool, async provider status makes those errors much better20:17
fwereadehazmat, python didn't do that, and last I heard nor did maas20:17
fwereadehazmat, python *accepted* &|etc20:17
hazmatfwereade, which part?20:17
hazmatfwereade, right those are valid maas tags syntax20:17
hazmatfwereade, core doesn't support that, it parses for a comma separated list only20:18
hazmathmm..20:18
fwereadehazmat, last time I looked at python it accepted but ignored them20:18
hazmatfwereade, it passed them through and validated the tag names20:19
hazmatfwereade, if maas doesn't support it.. that's quite surprising, else i can't think of why support and tests for that case would have been added.20:19
* hazmat pokes through maas src20:19
fwereadehazmat,     """Parser and validator for tags constraint expressions20:21
fwereade    Tag names are extracted and checked against the list of known tags20:21
fwereade    reported by the api.20:21
fwereade    Currently tag constraints consist of just comma and/or whitespace tag20:21
fwereade    names, all of are required for a match. Extending this to support full20:21
fwereade    boolean expressions would be possible, and some forward compatibility20:21
hazmatbut perhaps in which case its an invalid bug20:21
fwereade    is attempted.20:21
fwereade    """20:21
hazmatfwereade, hmm.. the logic in the method below explicitly strips of operators as it matches names20:22
natefinchhazmat: right, I don't think it was ever implement20:22
natefinched20:22
hazmatfwereade, natefinch yeah.. i don't see any support for boolean operators in the maas src unit tests.20:24
hazmati'll mark the bug invalid20:24
hazmatfwereade, but that brings up my original comment, if the maas tags support isn't a form of provider specific constraint, does that mean that supporting provider specific constraints is still blocked?20:25
natefinchhazmat: there was some talk about using tags as a way to hack provider specific support20:27
fwereadehazmat, not *exactly*, in that there is no technical obstacle to getting instance-type20:28
natefinchtags=instancetype:m1.small20:28
fwereadenatefinch, no, certainly not20:29
hazmatnatefinch, as opposed to instance-type=m1.small?20:29
natefinchfwereade: wouldn't be my first choice, no20:29
hazmatfwereade, but that's also in the spirit of just globally adding them as a constraint of all providers ?20:29
natefinchcertainly adding an instance-type constraint is pretty trivial code20:29
hazmatie do we also do ec2-zone that way?20:29
fwereadenatefinch, hazmat: instance-type and zone are not yet there -- but zone when implemented will not I think be a constraint20:30
fwereadehazmat, but rather a placement request20:30
hazmatie. this isn't really adding provider specific constraints, its just extending the global constraint vocabulary20:30
hazmatfwereade, really it wants both20:31
hazmatfwereade, the zone constraint because it does matter for various reasons (reserved instances, volume attach etc)20:31
fwereadehazmat, well, I think zone is the wrong level for constraints actually -- constraints make more sense at a higher level, eg distribute units for safety20:31
hazmatfwereade, the balance constraint/placement is good for ha as opposed to the current hot swap  on the constraint, but both are good20:31
hazmatfwereade, there is more than ha as a reason for the zone constraint20:32
fwereadehazmat, sure -- it's also good to put things near one another, but that is also IMO not best expressed as provider-specific zones20:33
hazmatfwereade, part of the issue with juju is not being flexible enough for the real world, while automated features are great, alot of whats been the focus for the last cycle is on the flexibility for the real world.20:33
hazmatfwereade, the zone constraint because it does matter for various reasons (reserved instances, volume location for attachment, global inbalance across zones (including non juju managed resources), etc)20:34
fwereadehazmat, are you saying zones are important (I would not disagree) or that they should be expressed as constraints (I'm not sure I would)20:34
fwereadeagree that is20:35
fwereadesorry english :/20:35
natefinchfwereade: I'm guessing he doesn't care about the terminology as long as he gets the end result he wants :)20:35
hazmatmy name is tron.. i speak for the users ;-)20:36
fwereadehazmat, the focus has been explicitly away from clever automation and towards the ability to explicitly specify placement20:36
fwereadehazmat, lxc:3 and ssh:user@host are the first steps there20:37
hazmatfwereade, constraint has been the only mechanism / vocabulary for that to date, if there's something else for placement that's great.. my concern is that such placement is policy not mechanism, and what's needed is mechanism.20:37
hazmatfwereade,  exactly.. the way to use those for work is via --to which is mechanism not policy.. constraints are an even better mechanism as their state captured.20:38
hazmatfwereade, i don't nesc. see why we should invent a new end user syntax for specifying service placement, when effectively constraints does the same20:39
hazmatie.. why invent --show-log  and deprecated  -v , when the latter is an established convention20:39
fwereadehazmat, the distinction there is between service-level properties and the details of individual machines (units)20:41
fwereadehazmat, and re show-log -- we would love to be able to draw a distinction between user output and logging, which are not at all the same thing, and part of that is trying to tease apart the way they've been glommed together20:43
hazmatfwereade, re service level properties, that's valid if placement would actualize differently to each instance, but i think that to an end user the distinction is rather academic and the exposed interface is roughly the same, ie your referencing an implementation detail, else we're just inventing a new set of commands for the same service level operations.20:44
hazmatfwereade, re logging.. again that's an implementation detail... to the end user we deprecated a rather standard unix cli option -v20:45
hazmatand replaced it with some idiosyncratic syntax20:45
fwereadehazmat, that *has* been the focus -- to have placement specified explicitly, without being clever or automatic20:47
fwereadehazmat, it's in the service of getting -v/-q that are actually meaningful20:49
hazmatfwereade, you mean not specified on the service per unit?20:49
hazmater.. not specified on the service but per unit for placement?20:49
fwereadehazmat, yes20:49
hazmatah add-unit as the vertex shader..20:50
hazmatfwereade, that still doesn't really invalidate the use of constraints here20:51
hazmatconstraints get captured at a unit level20:51
hazmathmm20:51
fwereadeconstraints get captured at a unit level but have never been specifed/able at a unit level20:52
hazmatfwereade, right, but is this really any different than that.. and how does this go back to the higher level automated policy of something like balanced?20:52
fwereadehazmat, the idea is to make the tools available first, and to allow for smart automation thereof later20:55
hazmatfwereade, the question i have is this really any different than specifying constraints with add-unit20:57
hazmatie. just an additional lookup level to the constraint amalgation20:57
fwereadehazmat, perspective question, I guess: there is no *technical* reason these things *couldn't* be expressed as constraints... but I think that constraints become less and less valuable, and more confusing, as they delve deeper into provider-specificity20:59
fwereadehazmat, as far as possible they should be specified in a juju-level language20:59
fwereadehazmat, this is sadly leaky ofc20:59
hazmatfwereade, well the start of this discussion was how to expose provider specific capabilties21:00
hazmatie. its not leaky.. its kinda of the point21:01
fwereadehazmat, no argument that we do need to expose provider-specific capabilities21:02
fwereadehazmat, just that those related directly to placement are so provider-specific that they don't fit well as constraints21:04
fwereadehazmat, tags as global constraints (rather than maas-specific ones) *are* rather designed to allow an alternative backdoor into provider-specificity21:05
hazmatfwereade, except i might want to specify them at a service level21:05
fwereadehazmat, I think the line between *what* you run and *where* you run it is pretty clean21:07
hazmattrue.. but that's potentially subtle21:08
hazmatfwereade, is specifying a spot instance a  where or what on21:09
hazmatas an example21:09
fwereadehazmat, spot instances are so far off they're over the horizon :/21:10
hazmatits a what on.. but the distinction i think is subtle.. and having a new syntax to express is a implementation purity leaking to the end user... ie is there harm in simplifying the expression to the end user by combining the two.21:10
fwereadehazmat, the potential harm is in defining a constraints vocabulary before we understand the set of use cases that people have and that we want to support21:11
hazmatfwereade, that harm exists regardless of the xpression form21:11
fwereadehazmat, a vocabulary for tactics doesn't restrict a future vocabulary for strategy, but defining a vocab for strategy today *does*21:13
hazmatfwereade, putting them in the same book, doesn't restrict the words to describe either21:13
hazmat that's a valid point though21:14
hazmatits just not clear that complex config here isn't something i wouldn't want specified at a higher level than add-unit, in which case its just as easily captured in an expanded notion of the constraint language21:15
fwereadehazmat, it opens up a bunch of opportunities for conflict between expressions of related ideas at different levels21:15
hazmatfwereade, not expressing as constraints opens up conflict opportunity even more21:15
hazmatas you have orthogonal lanes of expression21:16
fwereadehazmat, it's easier to explain that explicit placement directives override constraints -- just as --to does today -- than to enumerate how variousconstraints allplay together, especially when inherited constraints comeinto play21:17
natefinchhazmat: if you have instance-type=m1.small cpu-cores=4 ... what do you do?21:17
fwereadenatefinch, hazmat: heh, I think we do what we did in python and complain that those just don't play well together21:18
hazmatnatefinch, error to the user on conflicted constraint21:18
hazmatnatefinch, thats a case of always conflict21:19
hazmatfwereade, the different levels for constraint always get realized in a concrete and introspectable form that's self-consistent. placements aren't really overrides though, there additions to.21:19
hazmatfwereade, and really i'd want to be able to specify them at the service level as well21:19
fwereadehazmat, I think placements are end-runs around constraints21:20
fwereadehazmat, did jitsu deploy-to honour constraints? ;)21:20
hazmatfwereade, so as an end user.. it seems quite strange to specify effectively the same thing twice.. ie. what on and where.. are really just where do i want to run this workload21:21
hazmatfwereade, fair enough. although that tempts me to  resurrect all the discussion on why that's broken ;-)21:22
fwereadehaha21:22
hazmatthats an interesting perspective though21:22
hazmatfwereade, do you have any other examples of placement as an end run around constraint21:25
hazmati guess --to is enough by itself, but its quite specialized.21:25
hazmatinterestingly enough --to and manual placement are the basis for juju behaving like chef or puppet.21:25
hazmater.. manual provisioning21:25
hazmatfwereade, thanks for the discussion, happy to continue another day21:27
fwereadeyeah, it does definitely end up somewhere quite similar if you focus on those in particular, but I still see them as building blocks for more interesting stuff... we're just not doing it yet21:27
fwereadehazmat, cheers :)21:27
wallyworldfwereade: hey, where did you get to with the instance type selection?21:53
fwereadewallyworld, nowhere I'm afraid -- I got caught up in talk of logging, and decided that that's upsetting more people right now21:53
wallyworldfair enough21:54
wallyworldwe can target 1.18 then21:54
wallyworldi assume we are still on track for 1.16 today?21:55
natefinchfwereade: I have some code towards an instance-type constraint for ec2 btw21:57
fwereadewallyworld, yeah, I think so, I still hope to have something saner for the logging shortly21:58
fwereadenatefinch, cool -- we'll want it to work for openstack too, I think :)21:58
natefinchfwereade: btw, I'd really like to get the ec2 root disk stuff into 1.16, but with the bot not able to merge it, I'm kinda stuck.  Not sure what to do about that21:59
bachi sinzui, charmworld has a dependency on ppa:ce-orange-squad/experimental which does not yet have saucy packages.  would it be possible to update that ppa?21:59
wallyworldnatefinch: what's the issue with the bot?21:59
fwereadenatefinch, crap, sorry, I was not paying proper attention -- but wallyworld I think *does*know the bot22:00
* wallyworld knows a little22:00
natefinchwallyworld: it seems to not be updating a dependency in goamz that my branch needs22:00
sinzuibac: I think so22:00
wallyworldnatefinch: i can try and manually update the goamz tree22:00
fwereadeI at least ought to know where to find out about the bot though... wallyworld, so we have useful instructions anywhere? is it a matter of trawling though old emails?22:00
bacsinzui: that would be swell.  would allow 'make check' from a dev box that is saucified.22:00
wallyworldfwereade: i think so. there's an ip address that i ssh in to22:01
sinzuiah, I always build in precise so I haven't even used the raring22:01
wallyworldfwereade: 10.55.32.5222:01
wallyworldand from there you can su to the tarmac user etc22:01
wallyworldi find the ip address via nova list22:02
wallyworldusing the correct credentials for canonistack22:02
wallyworldnatefinch: so you just need goamz updated to tip?22:02
natefinchwallyworld: yeah22:02
sinzuibac: I am attempting a quick copy, but expect Lp to smack me22:02
wallyworldnatefinch: ok, give me a sec22:02
natefinchwallyworld: thanks for the help22:03
sinzuibac, do you need elasticsearch as well as charm-tools?22:03
wallyworldnatefinch: now on rev 4322:04
davecheneysidnei: ping22:04
wallyworldsee if that works22:04
natefinchwallyworld: awesome, thanks22:04
wallyworldnp :-)22:04
bacsinzui: i think just es-java22:04
sinzuilooks like this will work. I see a wait for publication22:05
baccool, thanks sinzui22:05
wallyworldnatefinch: looks like the dependencies.csv is not updated22:06
wallyworldit only says rev 4222:06
wallyworldso that is the issue i think, assuming folks have done the tarmac set up to look there for twhat revs to use22:06
wallyworldah, dependencies.tsv22:07
wallyworldnatefinch: so you should update that file in your current juju-core branch you are trying to land22:07
wallyworldbe sure to use the correct rev id also22:08
wallyworldnot just the rev number22:08
wallyworldyou can find the rev id using the --show-ids arg to bzr log22:09
sinzuibac: still waiting. I see the charm-tools has already arrived22:09
sinzuibac, I think everything is in saucy now22:17
natefinchwallyworld: dependencies.tsv is correct in my branch22:21
wallyworldok22:21
wallyworldmust not be used yet then i guess22:21
sinzuiwallyworld, natefinch I don't think it is used but gobot yet. I use it for release tarballs and packaging building22:27
wallyworldah ok22:28
sinzuiI believe jam and mgz  tinker when they see deps change22:28
wallyworldi updated goamz manually just before22:28
wallyworldi miss python :-(22:28
wallyworldi just don't get why Go folks bury their heads in the sand with dep management22:29
* sinzui is watching his new script build juju-core debs for 1.16.0 testing22:29
wallyworldyay22:29
sinzuiAnd I have22:31
sinzui8 minutes from the moment we think we have a rev, I can have a deb that I can install to build tools and test22:31
davecheney\o/!22:32
sinzuiwallyworld, in fact. I think fwereade believes this open bug is quite a bit of work: https://launchpad.net/juju-core/+milestone/1.16.022:32
wallyworldsinzui: the logging changes?22:33
davecheneyif it's to big22:34
davecheneythere is a simpler solution22:34
sinzuiwallyworld, davecheney: I can start testing tip of lp:juju-core/1.16 after dinner. I can know if tip is a viable rc candidate. Then we can decide if we want to include the logger fix.22:34
davecheneyfix the default logger so it uses this config22:34
wallyworldok22:34
davecheneyexport JUJU_LOGGING_CONFIG='juju=DEBUG;juju.rpc=INFO'22:34
davecheneyjob done22:34
sinzuiwallyworld, that bug is half-regression. We did mean to change it, but we need some behaviour put back22:34
wallyworldok, so davecheney's idea above may work?22:35
davecheneyit works22:35
davecheneyi use that line when deploying22:35
wallyworldi'm not sure where to set the default logging config, but i can look22:35
davecheneyso where the current default logging config just says 'juju=WARNING'22:36
davecheneyjust change it to22:36
davecheneyexport JUJU_LOGGING_CONFIG='juju=DEBUG;juju.rpc=INFO'22:36
davecheneyto get the old behavior22:36
wallyworldok22:36
bigjoolsnot sure why someone thought this was a good idea, but constraining by host name in maas requires a tag with the hostname.  WTF22:36
davecheney....22:36
wallyworldsinzui: i can do a branch for davecheney's change ready for after your dinner if you want22:37
sinzuiwallyworld, I appreciate your effort.22:37
wallyworldnp :-)22:37
* wallyworld creates a branch and sets to work22:38
natefinchbigjools: we added support for maas tags, that's all that's different from 1.14.22:38
sinzuiI am off to feed children, but I leave you with my rediscovery of an old commandL22:39
sinzuibzr cat -d lp:juju-core/1.16 dependencies.tsv -r -122:39
fwereadedavecheney, wallyworld: there is an even simpler solution if it comes to it -- just log at INFO level by default, that'll get you hook output22:40
bigjoolsnatefinch: ok, I was told that juju core expects tags matching the hostname for hostname constraining, which is a bit crackful.22:40
wallyworldfwereade: i'm not across it fully. it seems though that davecheney needs debug level in places?22:41
fwereadedavecheney, wallyworld: but the trouble is that we don't really want to drop the rpc logging22:41
fwereadedavecheney, wallyworld: and what we *really* need I think is the ability to filter debug-log a bit more sanely22:41
natefinchbigjools: I think that was my mistake... someone asked about making tags for hostnames in maas22:41
fwereadedavecheney, but I may be misunderstanding your particular use case22:41
wallyworldfwereade: won't using JUJU_LOGGING_CONFIG='juju=DEBUG;juju.rpc=INFO' as per dave's suggestion work? as a short term 1.16 fix? until get get it right for 1.18?22:42
bigjoolsnatefinch: yeah we're missing maas-name, or equivalent22:42
fwereadewallyworld, davecheney: jam and rogpeppe are in agreement that there are several bugs they would have had serious trouble with if they hadn't had the rpc spam to look at after the fact22:42
wallyworldah developer vs user friction :-)22:43
natefinchbigjools: yeah, we don't have that.  Someone asked me to do maas tags, so I did that.22:43
fwereadebigjools, natefinch: ehh, I thought we'd agreed to drop maas-name some time back22:43
wallyworldfwereade: tim has put in a way to dynamically change logging22:43
fwereadebigjools, natefinch: if we need it, I think it's a placement request22:43
wallyworldfwereade: why can't we default to sane values for user22:43
* natefinch ducks and lets fwereade and bigjools duke it out22:43
wallyworldand allow devs to change as necessary22:43
davecheneyfwereade: right, so at the moment you have no RPC logging data at all22:43
jpdsfwereade: Filing one now.22:44
davecheneyhow does your solution to #1237151 resolve jam and rogers concerms ?22:44
fwereadedavecheney, this is true22:44
bigjoolsfwereade: people are depending on placement using hostnames in the python app22:44
bigjoolsso this is a juju-core adoption blocker for them22:44
fwereadedavecheney, we log at DEBUG by default; badge unit log output with names; and make debug-log a little bit closer to python by implementing (at minimum) --include22:45
jpdsYeah, pyjuju did maas-name, and I'm filing a bug for maas-name in juju-core now.22:45
davecheneyfwereade: please clarify22:46
davecheneyyou would LIKE to log at DEBUG22:46
davecheneyor you think we currently log at DEBUG ?22:46
* wallyworld gets the popcorn22:46
fwereadedavecheney, there is some degree of upset that we don't, on the basis that debug logging of rpc has been repeatedly helpful in diagnosing problems via user-submitted logs22:47
davecheneyfwereade: please read https://bugs.launchpad.net/juju-core/+bug/123715122:47
davecheneythe deafult logging level was raised to WARNING for the agents22:47
davecheneythis caused me to table flip22:48
davecheneyi want it back where it was22:48
davecheneyi think you do as well22:48
fwereadedavecheney, I do, the problem is setting rpc logging to TRACE22:48
fwereadedavecheney, what debug output were you after in particular though?22:49
davecheneyfwereade: i don't want to workship solutions22:49
davecheneyI just want the 1.14.0 behavior back22:49
davecheneyit wasn't perfect22:49
davecheneybut everyone knows how to read the logs in that format22:49
davecheneyas of now22:49
davecheneywhen my environment fucks out22:49
davecheneyI have zero logging22:50
davecheneytim said he would fix it last week22:50
davecheneyhe forgot22:50
fwereadedavecheney, ok then, I agree, now is probably not the time to aim for perfect, let's just treat it as a regression and go back to DEBUG across the board for now?22:50
davecheneyfwereade: agreed22:50
wallyworlddavecheney: fwereade: so JUJU_LOGGING_CONFIG='juju=DEBUG;juju.rpc=INFO' then?22:51
wallyworldor debug everywhere?22:51
fwereadewallyworld, 'juju=DEBUG' please22:51
wallyworldok22:51
davecheneyfwereade: wallyworld thanks22:52
wallyworldnp22:53
fwereadebigjools, jpds: ok, so, maas-name is a bad constraint because it makes no sense at a service level22:55
bigjoolsI agree22:56
bigjoolsthere are almost certainly better ways22:56
fwereadebigjools, jpds: would you object to placement syntax? eg `juju deploy whatsit --to envname:hostname`?22:56
jpdsfwereade: Right, but I can do that to bootstrap?22:57
bigjoolsI think hostname constraints generally are weird in a cloud22:57
jpdsIt's not a cloud.22:57
jpdsIt's deploying a cloud on top of MAAS.22:57
fwereadejpds, if you could, would that suffice?22:57
bigjoolsMAAS gives you a cloud, so yeah, it is22:57
jpdsI want to be able to say, install mongodb on this little VM I prepared and don't touch my precious metal.22:58
jpdsfwereade: Yes.22:58
jpdss/mongodb/bootstrap node/22:59
fwereadejpds, ok, great, thanks; and if that were internally icky, how would you feel about putting it in environment config? say, `bootstrap-placement: hostname`23:00
jpdsfwereade: Well, it's not just the bootstrap I care about.23:00
davecheneyfwereade: it's more comlex than that23:00
davecheneyall the ceph nodes have to land on the machines with two luns23:01
wallyworldfwereade: i've not had much to do with logging set up - i can't find where to change the default logging level for juju from warning to debug23:01
davecheneyall the compute node have to NOT land on any of the machines with two luns23:01
jpdsfwereade: I know that I have servers with two disks, to I need to be able to deploy to those specifically.23:01
fwereadejpds, ok,sorry I misled, I was only fretting about the interaction between bootstrap and --to23:01
davecheneywallyworld: http://paste.ubuntu.com/6215921/23:01
davecheneythis is what I have so far23:01
jpdsFor things like cinder, swift, ceph like davecheney said.23:01
fwereadewallyworld, so at the moment it comes from loggo itself23:02
wallyworldoh really????23:02
wallyworldthe library????23:02
wallyworld:-(23:02
fwereadejpds, assuming `--to envname:hostname` works everywhere except bootstrap, would using env config for bootstrap hurt too badly?23:03
jpdsfwereade: I opened https://bugs.launchpad.net/juju-core/+bug/1237709 if you want to add your thoughts to it.23:03
fwereadejpds, thanks23:03
davecheneywallyworld: nah, that can't be it23:03
davecheneywe control the root logger in cmd/logging.go23:03
wallyworlddavecheney: so you are saying the by changing the cmd logging, when the agents have workers started, the correct logging will be used?23:03
jpdsfwereade: Shouldn't.23:03
fwereadewallyworld, davecheney: it so is. if it's not set there it falls all the way back to loggo's default, which is WARNING23:03
davecheneywallyworld: i don't understand what you said23:03
fwereadewallyworld, set-env logging-config="blahblahblah"23:04
fwereadewallyworld, will work after the fact23:04
davecheneyif you don't want to touch the code23:04
davecheneyadd an env var to the upstart scripts23:04
davecheneyok, that needs touching code and tests as well23:04
fwereadejpds, cheers23:04
fwereadedavecheney, no, please do *not* touch the upstart scripts23:05
fwereadedavecheney, wallyworld: there's an environment config setting23:05
wallyworlddavecheney: you said you wanted agents to use debug, so i was reasoning that your pastebin did that by changing cmd default logging level cause that's how agent workers are started23:05
fwereadedavecheney, wallyworld: that will work just fine23:05
wallyworldbut changning cmd logging also affects user cli commands23:06
wallyworlddoesn't it?23:06
wallyworldwhich we don't want23:06
wallyworldwhy can't we just have agent workers started with debug flag23:06
davecheneywallyworld: yes, it will probably revert some behavior23:06
wallyworldor, make the loggo api call to set the agent logger to use debug23:07
wallyworldie in agent.go we have var logger = loggo.GetLogger("juju.agent")23:08
davecheneysgtm23:08
wallyworldif i make that logger default to debug, that should fix it?23:08
davecheneywallyworld: my patch proposed above fixes the bug23:10
davecheneythe cli is not affected23:10
wallyworlddavecheney: so it's effectively these 2 lines23:11
wallyworld+// quick fix for LP #123715123:11
wallyworld+level := loggo.INFO23:11
wallyworldbut that's info, not debug?23:12
wallyworldand it will affect cli commands as well23:12
davecheneyit does affect them23:13
davecheneybut is invisible without -v23:13
davecheneywhich sets the logging level to debug anyway23:13
wallyworldmaybe we need to change jujud23:13
wallyworld-v is deprecated23:13
wallyworldi think jujud is the correct approach isn't it, since that is used to launch the agent workers23:14
wallyworldso cli not affected23:14
fwereadewallyworld, agents run a logger worker that takes it from environment config23:14
fwereadewallyworld, that's where it needs to be set23:14
wallyworldso jujud registers these commands23:15
wallyworldjujud.Register(&BootstrapCommand{})23:15
wallyworldjujud.Register(&MachineAgent{})23:15
wallyworldjujud.Register(&UnitAgent{})23:15
wallyworldjujud.Register(&cmd.VersionCommand{})23:15
wallyworldif we can find a way to set up logging for those as we want, i think that seems best? and isolated from other things?23:16
fwereadewallyworld, environs/config/config.go:10723:16
fwereadewallyworld, that's where we take it from loggo if not otherwise set23:17
wallyworldfwereade: so if i change jujud to set the env variable?23:17
fwereadewallyworld, it won;t work23:17
fwereadewallyworld, the logger worker will overwrite it with what's in env config23:17
wallyworldor poke it into logging-config23:17
wallyworldi am -1 on doing something that also affects the cli23:18
davecheneywallyworld: it doesn't affect the cli23:18
davecheneyit is masked/reset/something but other forces23:18
davecheneyhttps://codereview.appspot.com/1459504323:19
davecheneyuse it or throw it out the window23:19
wallyworlddavecheney: it looks like your change will have the cli use debug instead of warning by default23:21
fwereadedavecheney, wallyworld: except, fuck *that* looks like it's affected by what's been set up in cmd/logging.go, by means of spooky action at a distance23:21
wallyworldthe cli was changed so that it only showed warning, unless showlog was epcified, then it showed info23:22
davecheneywallyworld: lucky(~) % juju status23:22
davecheneyenvironment: ap-southeast-223:22
davecheneymachines:23:22
davecheney  "0":23:22
davecheney    agent-state: started23:22
davecheney    agent-version: 1.17.0.123:22
davecheney    dns-name: ec2-54-253-151-61.ap-southeast-2.compute.amazonaws.com23:22
davecheney    instance-id: i-8646ffba23:22
davecheney    instance-state: running23:22
davecheney    series: precise23:22
davecheney    hardware: arch=amd64 cpu-cores=1 cpu-power=100 mem=1740M root-disk=8192M23:22
davecheneyservices: {}23:22
davecheneyyet surprisingly, it didn't23:22
wallyworldthe above is with your change?23:23
davecheneyyup23:23
davecheneylucky(~) % juju deploy mysql23:23
davecheneylucky(~) %23:23
davecheneysilent, as the grave23:23
wallyworldthat's because show log was not specified23:24
wallyworldif you specify show log, then you get debug23:24
wallyworldbut you don't want that, you want info23:24
wallyworldunless debug is asked for23:24
wallyworldso, the behaviour is:23:25
wallyworldanything >= warning, print to stderr23:25
wallyworldinfo only show if showlog = true23:25
wallyworldor, if debug is specified, show that if showlog = true23:26
wallyworldyour change makes it so that debug is the default rather than info for the case when show log is asked for23:26
davecheneyit sure does23:27
wallyworldso we need for confine the changes to only stuff running on the nodes ie launcged by jujud23:27
davecheneyok, lets to fwereade 's ida23:27
davecheneyida23:27
davecheneyidea23:27
wallyworldwe don't want debug for cli23:27
wallyworldby default23:27
fwereadedavecheney, wallyworld: if we could reliably tell when the logging config was the loggo default, I think we could just handle it in config.go where I pointed you23:28
wallyworldsounds ok i think. i was just trying to justify why i was -1 on the changes being done in cmd/logging23:29
wallyworldfwereade: we could add a default schema value for "logging-config" ie <root>=WARNING;juju.agent=DEBUG;juju.rpc=DEBUG23:35
davecheneywallyworld: lets try that23:36
fwereadewallyworld, I'd prefer <root>=DEBUG, I don;t think that affects the CLI, doesit?23:36
wallyworldcause line 107 for config.go - by default loggo ignore loggers with unspecified levels23:36
wallyworldfwereade: not sure. probably not actually23:37
fwereadewallyworld, so the problem with a default is that we want to take it from the env if it's set23:37
wallyworldfwereade: we will do23:37
wallyworldi think23:37
wallyworldah no23:37
fwereadewallyworld, it can be done but will take work and testing, I think23:37
fwereadewallyworld, well everything will, but it's not entirely trivial, I mean23:37
wallyworldso order of precedence is: 1. ENV, 2. yaml ?23:38
wallyworldyaml = logging-config23:38
wallyworldin which case i can flip the check in config23:38
fwereadewallyworld, I *think* that we expect bootstrap's --logging-config > yaml > env23:38
fwereadewallyworld, and the problem is that the path from bootstrap into envconfig is via loggo rather than passed directly23:39
wallyworldfwereade: so - in jujud, why can't i just set the env when the commands are launcged23:39
wallyworldso logging-config still takes precedence23:40
fwereadewallyworld, because the logger worker will go and get the real value out of env config and set it23:40
fwereadewallyworld, ha23:40
fwereadewallyworld, you know what we could do, I think23:40
wallyworldbut logging-config will be "" by default no?23:40
wallyworldso won't my method work because of that?23:41
fwereadewallyworld, the config will be whatever cameout of loggo in the absence of other instructions23:41
fwereadewallyworld, ie <root>=WARNING23:42
wallyworldah. i thought it would be empty because loggers by default have level=unspecified23:42
wallyworldbut maybe it sets root regardless23:42
fwereadewallyworld, the root logger starts out as WARNING23:42
wallyworldwould it be too dirty to check for that?23:43
fwereadewallyworld, I'm starting to feel tempted :(23:43
wallyworldyeah :-(23:43
* natefinch contemplates raid 0 w/ 3 SSDs just to speed up his tests23:45
fwereadewallyworld, ok, I think it's *slightly* less bad than the alternative, which would be to add *more* spooky action at a distance so config.go could tell whether any logging had been set explicitly23:46
fwereadewallyworld, ok, do it, and assign thumper a bug to unfuck it when he comes back23:47
wallyworldfwereade:  ok. so i'll dick with config.go to leave logging-config env setting "" if loggo info comes back as "root=<WARNING>" (or whatever)23:48
wallyworldand then i need to change jujud to set logging config in env to juju=DEBUG23:48
natefinchWhen someone gets a chance - constraint to specify ec2 instance types by name: https://codereview.appspot.com/14523052/23:55
* natefinch is well past EOD23:56
natefinchg'night all23:56
fwereadewallyworld, do not touch jujud23:57
wallyworldyeah, just figured that out23:57
wallyworldi'm changing config.go23:57
fwereadewallyworld, if loggo info comes back as default set something less crazy in logging-cnfog23:57
wallyworldif c.asString("logging-config") == "" {23:57
wallyworldif environmentValue := os.Getenv(osenv.JujuLoggingConfig); environmentValue != "" {23:57
wallyworldc.m["logging-config"] = environmentValue23:57
wallyworld} else {23:57
wallyworldloggoConfig := loggo.LoggerInfo()23:57
wallyworldif loggoConfig != "<root>=WARNING" {23:57
fwereadeer, you know what I mean23:57
wallyworldc.m["logging-config"] = loggoConfig23:57
wallyworld} else {23:57
wallyworldc.m["logging-config"] = "<root>=DEBUG"23:57
wallyworld}23:57
wallyworld}23:57
wallyworld}23:57
wallyworlddoes the above look ok?23:57
fwereadeyeah, sounds good23:57
wallyworldi'll add todo and bug # etc23:58
fwereadewallyworld, perfect, you anticipate my clumsy typing :)23:58

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