/srv/irclogs.ubuntu.com/2014/09/23/#juju-dev.txt

thumperwaigani: the parseTag method is only used in the annotator00:02
thumperwaigani: and it is doing a doc exists check00:02
thumperso the id has to be the docID, not a local ID00:02
waigani_when I bootstrap and deply mysql with trunk I get the following in juju status: agent-state-info: 'hook failed: "install"'00:25
rick_h_waigani_: what did you deploy it with?00:26
rick_h_waigani_: the gui or cli?00:27
waigani_rick_h_: cli00:27
rick_h_waigani_: k, nvm then. There was a known gui bug00:27
waigani_okay, anyone else hit this with trunk or am I a special snowflake?00:28
rick_h_waigani_: knowing what's in the unit log would be helpful00:28
rick_h_waigani_: juju ssh mysql/0 and then check the end of /var/log/juju/unit-<tab>00:29
waigani_rick_h_: ugh I just destroyed the env. Let me repeat my steps and I'll check out the log00:29
rick_h_waigani_: rgr00:29
waigani_rick_h_: http://pastebin.ubuntu.com/8407234/00:35
rick_h_waigani_: what series is this?00:38
rick_h_waigani: curious what series that is?00:45
waiganirick_h_: https://bugs.launchpad.net/juju-core/+bug/137269900:47
mupBug #1372699: juju status reports: agent-state-info: 'hook failed: "install"' <juju-core:New> <https://launchpad.net/bugs/1372699>00:47
rick_h_waigani: gotcha, interesting.00:49
rick_h_waigani: last bit of info I'd include is where you were doing this at, lxc, ec2, etc00:49
waiganirick_h_: ah right, thanks00:49
rick_h_since the issue is around a package install wonder if there's some mirror thing going on there00:49
waiganirick_h_: Using trunk (daee198586afe412948b23d68f58592c625de08f) with LXC containers on my machine (amd64 14.04) ?00:52
rick_h_waigani: hmm, you know what. I wonder if this is any part of the apt-get upgrade by default stuff01:06
rick_h_waigani: is that env still up?01:07
waiganirick_h_: sorry, I moved on. I had to test a different branch.01:08
waiganirick_h_: what did you want me to check?01:09
rick_h_waigani: understood, still trying to get an lxc env up to test something out01:09
rick_h_waigani: so I'm wondering if you could manually apt-get install python-jinja201:09
rick_h_waigani: and if not, if an apt-get update && apt-get install python-jinja2 would work01:09
rick_h_waigani: just trying to figure out why that install would fail to run and pondering01:10
waiganirick_h_: Setting up python-jinja2 (2.7.2-2) ...01:10
rick_h_waigani: :/01:10
waiganiinstalled no problem01:10
waigania could flaky Internet connection have anything to do with it?01:11
rick_h_waigani: yes, if that apt-get install failed to work then it would die and cause the non-0 exit01:12
rick_h_waigani: in which case it would be a temp issue I'd imagine01:12
rick_h_assuming flaky means it works some of the time :)01:12
waiganirick_h_: right, my guess is that is it.01:13
rick_h_waigani: ah ok01:13
waiganirick_h_: begs the question, if there is a better way to handle this situation?01:14
rick_h_waigani: well the tough part is that the charm is doing it in the script. If it doesn't really check/handle that I'm not sure what juju can do.01:14
waiganiright, got ya01:14
rick_h_waigani: there is talk of juju proviing a way for defining package deps before the charm even gets going, which might help as juj then can watch/manage that01:15
waiganirick_h_: +1 from me01:15
rick_h_waigani: not sure where that is in the pain point list currently.01:15
rick_h_davechen1y: any idea? ^01:15
waiganitop of my list today ;)01:15
rick_h_looks like wallyworld is afk today01:16
davechen1yrick_h_: hold up,reading the backscroll01:18
rick_h_davechen1y: is there anything on the charms listing system deps as part of the charm vs in the hook itself on the pain point list for the nearish future?01:19
axwthumper: is there a topic doc for the sprint?01:20
davechen1yrick_h_: nothing01:20
rick_h_axw: one got started today01:20
davechen1yrick_h_: what is the context01:20
davechen1yie, what doesn't the install hook provide you that you need ?01:20
axwrick_h_: okey dokey, can you link me please?01:20
rick_h_davechen1y: k, sorry waigani.01:21
rick_h_axw: sent01:21
axwcheers01:21
rick_h_davechen1y: well the idea is that it would run pre-hook and in this case the charm doesn't do a good job of helping identity the issue when install failed01:21
rick_h_davechen1y: where as if it was something more juju controlled it could do better, make sure deps are there before the install hook (python deps used in the python based single hook), etc01:22
rick_h_davechen1y: so I know it was brought up but wasn't sure where it landed on plans/measure of pain01:22
davechen1yrick_h_: what is a pre-hook ?01:22
davechen1yrick_h_: i'm having trouble filtering out the bits you wish juju had from the problem you've hit01:22
rick_h_davechen1y: so one problem is the new single hook stuff. If it's a python script, and I need python deps (python-jinja2)01:23
rick_h_how can the install hook run?01:23
davechen1yrick_h_: is teh default hook stuff going in ?01:23
davechen1yi thought that it had many problems01:23
rick_h_davechen1y: or let's say my hook is py2 but utopic is py3 out of the box, I need to have py2 available available01:24
rick_h_davechen1y: my understanding is that it's waiting on charm feature flags in some form or other01:24
rick_h_davechen1y: and that's the only blockers01:24
davechen1yrick_h_: i strongly recommend always writing the install hook in shello01:24
davechen1y'cos you can't depend on anyting01:24
rick_h_davechen1y: right, well that's the point :)01:24
davechen1yrick_h_: default hook wasn't my suggestion01:24
davechen1yi think it sounds good in theory01:25
davechen1ybut fails in practice01:25
rick_h_davechen1y: ok, well anyway. I was just curious. It's come up as an idea but guess it didn't have as much traction as it seemed01:25
davechen1ydefault hook is a large hammer to solve very specific problem, no symlink support on windows01:25
davechen1ybut windows chamrs by definition are indepdent of unix charms01:25
davechen1yso they should adopt a different pattern01:26
davechen1yfor unix charms, you symlinks01:26
rick_h_well the other problem is that so many charms find a single script easier to write/maintain. That's regardless of platform01:26
rick_h_davechen1y: but all good, thanks for the sanity check on the idea01:26
thumperaxw: yep01:43
davechen1ywaigani: 137269901:59
davechen1ydo you still have this machine up ?01:59
davechen1yyou'd missing the crucial bit of the log01:59
davechen1yit appears above the python stack trace01:59
waiganidavechen1y: ah no, sorry02:00
waiganidavechen1y: I can try to reproduce, though I had a bad Internet connection at the time - pretty sure that was it02:00
rick_h_davechen1y: sorry, was going to update that. In chatting we assume a flaky network connection was to blame02:00
davechen1yrick_h_: waigani which provider ?02:00
davechen1ymy money is on another process holding the apt lock02:01
davechen1yor apt failing02:01
rick_h_davechen1y: lxc02:01
rick_h_davechen1y: a manual apt-get install worked in debugging after the fact02:01
davechen1ywaigani: rick_h_ yup, that matche sboth scenaruios02:02
davechen1yie, if the apt lock was held by another process running apt-get afterwards won't fail because the other process has finished02:02
davechen1yalso, if your network crapped out, same02:02
davechen1yantoher common charm bug is not running apt-get update in the install hook02:02
davechen1ybecause of 'reasons' the apt mirrors will 404 debs taht are not current02:03
davechen1yso if you have an old apt index on disk02:03
rick_h_davechen1y: ok, I couldn't dupe it locally in my lxc but also not running trunk but 1.20.702:03
davechen1yand go to apt-get install some pacakge, if that pacakge has been replaced by a newer one in the archive02:03
davechen1yyou get a 404 and apt returns status 102:03
davechen1yand then your day is ruined02:03
davechen1yrick_h_: i'd be very surprised if this was related to any version of juju02:03
davechen1ythis is most likely a charm bug02:04
davechen1ywell02:04
davechen1ythat isn't true02:04
davechen1yolder versions of juju would force apt-get update/upgrade on bootup02:04
davechen1ynow we don't do this02:04
rick_h_davechen1y: just stating the diff in my attempt to replicate vs reported bug02:04
davechen1yit shows up the charms that expect this to happen02:04
axwdoes anyone have time for a quick review? fixes a critical bug that I'd like to backport to 1.20 ASAP: http://reviews.vapour.ws/r/75/diff/#02:58
* thumper looks02:59
thumperaxw: done03:02
axwthanks thumper03:02
bradmanyone about who can help with a juju deploy --to question?  I want to have some charms deployed to lxc on a specific unit, as in openstack-ha/0 - I know you can do things like lxc:25, but is there a way to say lxc:openstack-ha/0 ?03:23
bradm(where openstack-ha is just a cs:ubuntu unit)03:23
bradmlooks like juju-deployer supposed lxc:openstack-ha=0 style of deployment, if I'm reading the docs right03:30
thumperbradm: no, I don't think you can say that03:35
bradmthumper: thats a pity, we're using it quite extensively03:36
thumpermenn0: got a minute for a hangout?03:51
menn0thumper: yep03:56
menn0thumper: where?03:56
thumperhere -> https://plus.google.com/hangouts/_/g2ozjdukkzbchwadejkjpa5e2ma?hl=en03:56
davechen1ywaigani: would you please find some time today to review http://reviews.vapour.ws/r/66/04:08
waiganidavechen1y: I'll try, probably this evening04:08
davechen1yta04:09
waiganimenn0, thumper: on trunk I get disconnected from the API if I upgrade AND specify  the version e.g: juju --show-log upgrade-juju -e local --version 1.21-alpha2 --upload-tools04:11
waiganimenn0: your script did not test with specifying the version04:12
waiganimenn0: could you run that upgrade step (with the version) from 1.20 to verify?04:13
menn0you mean the test case I used before04:13
menn0?04:13
waiganimenn0: yep04:13
waiganimenn0: so for me, on trunk this works: juju upgrade-juju --upload-tools04:14
waiganimenn0: this does not: juju --show-log upgrade-juju -e local --version 1.21-alpha2 --upload-tools04:14
waiganithe latter is taking from the original CI blocking bug04:14
waigani*taken04:15
menn0waigani: I'll try it out on my machine04:15
menn0waigani: works for me04:18
menn0waigani: with master04:19
menn0waigani: although I did see the "invalid entity name or password" error once04:19
menn0waigani: the next attempt at juju status worked04:19
waiganimenn0: yeah that's what I get04:19
menn0waigani: I suspect that could be before once of the DB migration steps has run04:19
waiganimenn0: that would be a bug woudn't it?04:20
menn0waigani: I don't think so04:20
waiganimenn0: I upgraded twice and got that error message both times04:20
menn0waigani: that's just because you're trying juju status before the upgrade steps have run04:21
menn0if you had waited slightly longer it would have been ok04:21
waiganimenn0: yeah I get that, but from the user's point of view it does not look like that04:21
waiganimenn0: it looks like it's broken04:21
menn0waigani: well we could try and add more hacks like the one I did04:21
menn0waigani: so that more stuff works even without the migration has run04:22
waiganimenn0: or change the message04:22
waigani"upgrade in progress"04:22
menn0except we want status to work during upgrades if possible04:23
waiganiand if not possible?04:24
menn0I guess if the login fails during an upgrade we could return "upgrade in progress"04:25
menn0that's probably a good idea04:25
menn0lets write up a ticket for that.04:25
waiganiokay04:25
menn0waigani: will you or should I?04:25
waiganimenn0: I've got to finish testing this branch so i can land it and you can use it04:26
menn0I'm already using it :)04:26
menn0but I'll write up that ticket04:26
waiganioh - right well then04:26
waiganiokay, I'm easy04:26
thumperaxw: slight problem with the lastest branches you have landed with upgrade steps04:31
thumperaxw: should have checked it earlier04:31
thumperI have waigani adding in upgrade steps for 1.21-alpha204:31
thumperwhich is where any upgrade steps should go since the lastest version was tagged04:31
thumperwill not impact anyone going from release to release04:32
waiganiah...04:32
thumperbut will if someone tries upgrading from 1.21-alpha1 to 1.21-alpha204:32
thumperwhich is supported but I'm not sure how formally04:32
axwthumper: I didn't think we bothered with that04:32
axwcan fix though, not a big deal04:32
thumperI think we should bother04:32
thumperaxw: very minor change, and can be done after waigani's branch lands04:33
thumpersmall tweak04:33
axwokey dokey, no problems04:33
thumpercheers04:33
menn0waigani: here's bug 137275204:33
mupBug #1372752: juju status fails with "invalid entity name or password" before DB migrations have run <juju-core:New for menno.smits> <https://launchpad.net/bugs/1372752>04:33
waiganimenn0: thanks :)04:33
waiganithumper: talking of which, completed live testing04:36
thumperand...04:36
waiganithumper: replied to your rb comment04:36
waiganiall good04:36
thumpercool04:36
menn0waigani: \o/04:37
* thumper feels ever so slight amount of terror getting this in04:37
thumperbut someone has to be first04:37
waiganihaha04:37
waiganilike a lamb to the slaughter04:37
thumperwaigani: done04:37
thumperwaigani: I suggest the machine collection next04:38
thumperwaigani: nothing like getting the big ones done first04:38
waiganithumper: yeah, sorry I took a wrong turn or two. I *think* I've got a pretty good idea how to do the rest now (famous last words)04:39
waiganithumper, right machinesC next? menn0 what are you doing?04:42
menn0waigani: units04:42
thumperwaigani: ack04:42
waiganiokay cool04:42
menn0thumper, waigani: I think we need to discuss these env UUID changes a little more on a hangout. now or tomorrow?04:48
axwthumper: won't the 1.21 upgrade steps always run in alpha versions? i.e. they'd run from 1.20 -> 1.21-alpha1, and also from 1.21alpha1->1.21-alpha2... up until 1.21 (non-alpha)04:49
menn0thumper, waigani: I'm seeing a lot of places where we need to worry about filtering and I'm thinking the "minimal change" approach we're going with is going to be the less safe approach04:50
axw(I can test, but if you know the answer...)04:50
thumpermenn0: now is fine04:50
waiganimenn0: yep04:50
thumperaxw: it collects all from where it is, to the version going to04:50
waiganihangout channel?04:50
menn0thumper, waigani: yep, hangout channel04:50
thumperaxw: so you are right for migrating from 1.20 to 1.2104:50
thumperit collects all the 1.21-alpha1 and 1.21-alpha2 steps along the way04:51
=== urulama-afk is now known as urulama
bradmugh, this cloud-tools ppa being pinned lower is causing me issues06:05
=== Spads_ is now known as Spads
dimiternfwereade, ping09:47
fwereadedimitern, pong09:47
dimiternfwereade, I've updated the firewaller PR: https://github.com/juju/juju/pull/799 and I'd appreciate if you have a look09:48
fwereadedimitern, will do09:48
dimiternfwereade, it turned out surprisingly hard to get to the unexported environTag inside *api.State from *apifirewaller.State09:49
fwereadedimitern, hmm, that's surprising, I could have sworn I'd seen a simple EnvironTag method09:54
fwereadedimitern, yeah, api.State.EnvironTag()09:55
dimiternfwereade, yes, in *api.State, but what you get in api/firewaller/New** is a base.FacadeCaller09:55
dimiternfwereade, so I added EnvironTag to the base.APICaller interface and exposed it as firewaller.State.EnvironTag by internally calling st.RawAPICaller().EnvironTag()09:56
fwereadedimitern, cool09:56
fwereadedimitern, sent a couple of quick responses to your responses, looking from the start again now09:56
dimiternfwereade, cheers09:57
dimiternjam, re exposing EnvironTag() from *api.State to facade callers ^^ I'd like to hear your thoughts as well09:57
jamdimitern: is there a Reviewboard version?09:58
dimiternjam, nope, when I proposed it, I forgot :/09:58
jamdimitern: well, you can always add it at any time :)09:58
jamI guess the discussion is already here09:58
dimiternjam, indeed, but it will loose a bit of context after some comments were added on the PR09:59
* jam really dislikes the "everything is State" because then it is confusing which foo.EnvironTag() you're actually calling.10:03
waiganidavechen1y: http://reviews.vapour.ws/r/66 reviewed as requested10:03
davechen1ywaigani: ta10:04
jamdimitern: so is Tag.Id() a tag-thing or an id "thing" ?10:06
jam(envTag.Id() returns environ-UUID or just UUID ?10:06
dimiternjam, envTag.Id() == UUID, envTag.String() == "environment-<UUID>"10:08
jamdimitern: k, because there are lines like: https://github.com/juju/juju/pull/799/files#diff-06b44def560ee3d858becda14c28ba17L20110:08
dimiternjam, that's one of rogpeppe's :) calling most facades *State or *API10:08
jamwhere it looks like it used to take something called a Tag, and it is now taking the UUID10:08
jamit may be that st.EnvironTag() returned the UUID, which was a bad name10:09
dimiternjam, yes it did - it was string10:09
jamdimitern: it was a string, but was it "environ-uuid" or "uuid" ?10:09
jamIn which case, you should be passing .String() and not .Id()10:09
rogpeppe /me hears his name taken in vain :-)10:10
dimitern:)10:10
rogpeppei don't understand the issue here10:10
dimiternjam, hmm, you're right in that case - it should be envTag.String(), I'll fix it (looking deeper the string is parsed as a tag in cacheChangedAPIInfo)10:10
* rogpeppe probably doesn't need to10:10
jamdimitern: k, it would appear we are lacking test coverage if you were able to change it without something breaking10:11
dimiternrogpeppe, it's about how naming a whole lot of things State in the api that's gets confusing10:11
jamstate.State, api.State, uniter.State10:11
dimiternjam, I haven't run the full test suite yet, but I'm doing it now to see if anything will break10:11
TheMueUnited States of Juju10:11
jamTheMue: :)10:12
rogpeppejam: given you've got always got the package prefix there, why is it confusing?10:12
jamdimitern: I'm going to need a bit longer to digest your proposal, I have to take my dog out before standup.10:12
jamrogpeppe: because you often don't have the package prefix10:12
jamlike in all the packages10:12
jamand when looking at a diff10:12
jamall you see is "State" objects10:12
jamand you have to carefully reread what file you're currently in10:12
rogpeppejam: but then you don't have the "State" name either, right?10:13
dimiternjam, sure, np10:13
jamrogpeppe: everything is just a State there10:13
rogpeppejam: oh i see, in the package itself10:13
jamrogpeppe: and the bigger shortcomming is that then everyone abreviates their variable as "st"10:13
rogpeppejam: but you should surely be aware of what file you're looking at?10:13
jamand you don't have a clue what "self.st" is10:14
jamrogpeppe: so the information is there, but it is 20 lines away past the line boundary (again, when looking at a diff)10:14
rogpeppejam: if you're just looking at a diff without surrounding context, i can see10:14
rogpeppejam: the idea behind it is that actually they're all windows onto the same underlying state.10:16
rogpeppejam: a given package is only going to be using a single facade throughout, right?10:16
dimiternfwereade, re https://github.com/juju/juju/pull/799#discussion_r17899691 - do you mean the api watcher should return 0:juju-public changes (not the state watcher - it should still return global keys as changes I think, and the api watcher will convert them)10:21
fwereadedimitern, no10:21
fwereadedimitern, globalKeys should not leak out of state10:21
fwereadedimitern, they're meant to be purely internal10:21
fwereadedimitern, so fix the state watcher soon10:21
fwereadedimitern, and one day we'll fix the api watchers by inserting an id->tag translation thingy in a consistent place/way10:22
dimiternfwereade, ideally, we should have a PortsWatcher instead of StringsWatcher, which returns changes like []{MachineId: 0, NetworkName: "juju-public"}10:22
fwereadedimitern, yeah, that'd probably be nicer10:23
dimiternfwereade, ok, I'll do a follow-up for that10:23
fwereadedimitern, great, thanks10:23
dimiternjam, i can't hear you btw10:45
jamdimitern: my browser crashed10:45
jamdimitern: and after restarting it... it crashed again, I think I have to reboot after the last updated, bbiab10:45
dimiternTheMue, standup?10:46
TheMuedimitern: omw10:47
jamfwereade: dimitern: so we should have a discussion about how we want to handle Agents in a MESS scenario10:54
jambecause so far, the MESS design was that the Environ was implicit to the connection10:54
fwereadejam, is this about the firewallers/provisioners for the various envs?10:55
jamIt may be that for Agent's we'll want them to be multi-environment aware, but that wasn't the MESS design (As I understand it), because Login takes the environ-uuid, and not the rest of the system.10:55
jamfwereade: so this is brought up in the context of Dimiter's changes, but I'd like us to have a plan for what we're going to be doing so that we can work towards consistency.10:56
fwereadejam, I *think* it's doable without conflict -- ok, an environ is implicit to a connection, because the agents are running in the initial environment; but I don't think that prevents us from explicitly using tags for other environs, for those environs' workers10:56
fwereadejam, at the moment we pull the environ uuid out of the connection10:57
fwereadejam, but we are explicitly referencing environs in api calls10:57
fwereadejam, and I think it's relatively simple to move that awareness down a level, directly into the workers, without mucking with the actual API10:57
fwereadejam, ie without mucking with the wire format10:58
fwereadejam, there will still be code changes ofc :)10:58
fwereadejam, any places where we depend on the implicit environment will be problems10:58
fwereadejam, but I hope there aren't many of them10:58
fwereadejam, I've tried to spot them and block them10:59
jamfwereade: so Dimiter is needing EnvironTag from his api.Client object in order to pass it back into the api.Networker facade10:59
jamwhich means changing api.FacadeCaller to also include EnvironTag, etc10:59
jamwhich is why his changes are large-ish10:59
jambut if you're getting your context from your context, it doesn't make a ton of sense.10:59
fwereadejam, well, yes, I think I have a comment along those lines -- that there's no need for explicit knowledge of environ tag at the firewaller level at the moment, because the client can put it into the calls directly11:00
fwereadejam, dimitern: I waffled on that comment though11:00
jamfwereade: some of it would be "do you want to run a multi-environment firewaller" as in, 1 Firewaller worker for N environs11:01
fwereadejam, I do not want to do that11:01
dimiternfwereade, we're finishing standup, will respond shortly11:01
fwereadejam, both provisioner and firewaller are bloated enough11:01
fwereadejam, layering multi-environment-icity on top will be horrible11:01
fwereadejam, isn't it "just" a matter of having a parent worker that keeps track of the list of environs, and starts appropriate workers for each?11:02
fwereadejam, a provisioner-deployer, if you will11:03
=== fabrice is now known as fabrice|lunch
jamfwereade: well the question is, do these things Login separately (and thus all have their own state connection), or is it all a shared connection and the Environ they are operating on needs to be explicit in the API11:03
jamI *thought* the plan was that the apiserver's State root object would know what environment you were working in.11:04
jamcertainly if you are then talking about some *other* environment you'd have a tag for it11:04
jamBut do we need the API to be "StartInstance(environTag, constraints, etc)"11:04
fwereadejam, different example please? StartInstance isn't our API ;p11:05
jamfwereade: AddMachine(environtag) ?11:05
jamthat is at the Client level, though11:05
fwereadejam, WatchPorts(environTag)?11:05
fwereadejam, yes, I think it should be11:05
fwereadejam, implicit args have seemed to cause us more trouble than they're worth11:06
jamfwereade: so, we just did Login(environTag) for that worker, right?11:06
fwereadejam, but I think there's no conflict in being connected to the initial environment, and asking about some hosted environment11:06
fwereadejam, yes11:07
jamfwereade: I don't view environments as things that can be nested. Do you mean connected to the initial state server?11:07
fwereadejam, where are the workers for the hosted envs running, if not in the initial env?11:08
fwereadejam, blast, brb, keep talking11:08
jama fair point. though the workers for the hosted environs could have their own connections11:11
jamfwereade: it feels like, if we want to be explicit about Environ, we pretty much need to add it to *every* request, which then means that we might as well make it common to every request11:11
jamand it should just go back to implicit11:11
fwereadejam, mmm, I'm not sure we really want N connections, one for each hosted env, from a single agent in a MESS11:13
fwereadejam, I think there's some additional distinction too but I'm having some trouble articulating it11:15
dimiternfwereade, jam, I'll make the environ tag argument to WatchOpenedPorts client-side firewaller facade implicit, but the server-side will still take Entities11:15
dimiternfwereade, jam, is that OK?11:15
fwereadejam, there's something worse about operate-on-nothing getting an implicit context than operate-on-something having it11:15
fwereadedimitern, yeah, that's what I'd favour here11:16
dimiternfwereade, cheers11:16
fwereadedimitern, with the expectation that we do add environ-awareness to FW and P at some point in the not-too-distant future11:16
fwereadedimitern, but that we don't want or need it this minute#11:16
* jam is making some coffee, but I feel this is probably hangout worthy11:16
fwereadedimitern, and that all we'd need to do to accommodate that is to tweak the client code on one side, and the auth on the other11:17
fwereadejam, just a sec, let me see11:17
jamfwereade: so if you are WatchPorts(environTag), then surely anything you then do because of that watch11:17
jamneeds to take an environTag11:17
dimiternfwereade, by "don't want or need it this minute" do you also mean making WatchOpenedPorts at server-side not taking Entities as well?11:17
jamYou can't do WatchPorts(envTag), => OpenPort()11:17
jamfwereade: and as for multiple "Conns", it could be as simple as a different logical connectiion, it wouldn't have to be a separate TLS /TCP session.11:18
fwereadejam, ha, yes, you're completely right11:19
fwereadedimitern, server-side we do want it11:19
fwereadedimitern, jam: I still *think* that this consideration is specific to provisioner/firewaller (maybe some others?)11:20
dimiternfwereade, ok11:20
fwereadejam, separating out logical connections would be nice, yeah11:20
jamfwereade: so I'm fine enough that we'll have some "things" that are actually aware of multiple environments (cross environ relationship manager), but I'd like to be cautious about adding EnvironTag to any API that isn't ever going to take 2 different ones11:20
fwereadejam, I'm still worried that every time we do a no-args thing we end up with problems11:21
jamfwereade: I think mixing noargs and args is going to be worse in the general case11:24
jamnow, if we actually went all the way to stateless... then you have always-args11:24
jamwhich I'm actually happy with, but hasn't been the design we went for11:24
fwereadejam, heh, I just realised OpenPort doesn't apply -- but asking which ports are open still does11:25
jamfwereade: well, there is an "actually implement this change in the Provider" which at this point may be just a direct callout, but the logical "if I have an API that takes an environTag, then whatever I call as a result of that first API call then also needs an environTag"11:27
jamand I feel like, 90% ? of what we are going to do needs to then take an EnvironTag, which is why we made it implicit in the first place11:28
fwereadejam, I guess that may be the main point of difference? I feel like the firewaller/provisioner are relatively rare and special11:31
jamfwereade: so I think there is a definite case for different "rings" of agents11:31
jamThere is the Client API for "juju"11:31
jamthere is the Agent API for machine-10/unit-mysql-511:31
jamand there is the EnvironmentManager API for Provisioner/Firewaller/etc.11:32
jamIt would be good to actually separate those out in code.11:32
fwereadejam, that does sound sane, yeah11:32
fwereadejam, certainly different forces apply to the different categories11:32
jam(and then there is the API server which is obviously underneath that)11:32
fwereadejam, I'm not wholly clear on how that separation would work though -- purely as an organisational thing?11:34
dimiternfwereade, re https://github.com/juju/juju/pull/799#discussion_r17900095 - do you think it's better to change "case changes ,ok := <-in:" to "case changes := <-in:" as it was?11:35
fwereadedimitern, no, I'd prefer to be explicit about checking for channel closes, they can happen11:36
dimiternfwereade, ok11:36
jamfwereade: right, just different directories (apiserver/RING0/provisioner)11:36
dimiterntasdomas, ping11:36
fwereadedimitern, it's the fact that MustErr can panic11:37
jamfwereade: given that is the whole point of Must, right?11:37
fwereadejam, sure11:37
fwereadejam, it's really the usage/existence of MustErr11:38
jamfwereade: I certainly think we would benefit from "Agent" vs "Client" apis, especially as we split up Client into many Facades11:38
dimiterntasdomas, re https://github.com/juju/juju/commit/7694614984932598535639e09129820f15b9d58d - changing dependencies.tsv to bump a revision of a versioned import path like gopkg.in/juju/charm.v3 instead of "releasing" a new version gopkg.in/juju/charm.v4 is BAD, let's not do that please11:38
fwereadejam, I feel like it should be more GiveMeSomeErrorIndicatingEitherTheWatcherErrOrTheFactThatThereIsntOne11:38
dimiterntasdomas, the whole point of having versioned import paths is to rely on "vX" meaning the same thing as the package evolves11:39
jamfwereade: EnsureErr ? (EnsureThatIHaveSomeSortOfError)11:40
fwereadejam, good idea11:40
jammost Must* mean panic11:40
fwereadejam, agree11:40
fwereadejam, and yes I think splitting the API up like that would be smart too11:40
jamfwereade: and in thinking about Client vs Agent, it does reveal that there are some meta-juju level APIs, but I'm not as sold that those are worth splitting out11:41
jamif we did, then where does Upgrader fit in, as it is also pretty "Meta"11:42
fwereadejam, it feels agenty to me but maybe I'm not thnking it through properly11:43
=== fabrice|lunch is now known as fabrice
jamfwereade: you could consider the division to be the point where things run on machine-0, but you could also consider it to be where the worker is doing things about Juju vs things for the user12:04
fwereadejam, I don't think machine-0 is quite right12:04
fwereadejam, (or even state0server)12:04
fwereadejam, only-on-state-server though I guess?12:05
jamfwereade: sure, I'm not saying explicitly 0, but potentially "things running on agents with JobManageEnviron" ?12:05
fwereadejam, yeah, that sounds good to me12:06
fwereadedimitern, fwiw, I kinda think we should be dropping unitData, my spidey sense says there's a big simplification waiting t oget out12:15
fwereadedimitern, but I'm not sure it's one for this CL12:16
dimiternfwereade, ok, so this seems the last blocking issue, I'll repropose for a final look shortly (did a live test just now to make sure it works ok)12:25
* fwereade lunch12:46
dimiternfwereade, final look at https://github.com/juju/juju/pull/799 before landing?12:50
natefinchericsnow: you around?12:59
dimiternfwereade, if you think it's ok, I'll queue it for landing, and I'm already working on 2 follow-ups - state opened ports watcher to report "0:juju-public" changes and environTag handling across the API facades13:05
* dimitern late lunch13:08
perrito666ill tell you this my friends, spanish kb layout is a torture for programming13:29
wwitzel3when ever I try to add an alternate KB layout my system hangs and I have to hard reset. So now i just type without the accents.13:31
perrito666wwitzel3: why would you use accents in english?13:32
wwitzel3perrito666: I wouldn't13:32
wwitzel3perrito666: it is for French13:33
perrito666ah hehe, I can write french with this layout but It is a bit like using emacs13:33
wwitzel3haha13:33
katcoperrito666: which is to say, awesome! right! right? guys?13:34
mgzcan I get a stamp on <http://reviews.vapour.ws/r/78/>? needs rebasing now but can do that as I land13:34
mgznatefinch: maybe plz? ^13:36
perrito666katco: I need a couple of extra fingers13:36
wwitzel3mgz: LGTM13:37
perrito666katco: but the issue is more in the fact that I dont recall where they keys are since I dont use them13:37
mgzwwitzel3: thanks!13:38
wwitzel3jam: ping, you still around?13:52
dimiternwwitzel3, it's perhaps a bit late for jam at this time13:52
wwitzel3I figured as much, sometimes he hangs around though :)13:53
perrito666dimitern: is not like many of us have lifes :p13:54
dimiternperrito666, :) well, some of us at least13:55
perrito666shame on you13:55
perrito666I actually am around while cooking dinner13:55
perrito666:p13:55
perrito666my washing machine is an excelent standing desktop13:55
ericsnownatefinch: you still need me?13:56
natefinchericsnow: yeah... rbt is being annoying13:58
ericsnownatefinch: what's up?13:59
natefinchrbt setup-repo keeps failing for me14:00
natefinchericsnow: we can talk in the standup14:01
ericsnownatefinch: k14:01
=== ChanServ changed the topic of #juju-dev to: https://juju.ubuntu.com | On-call reviewer: see calendar | Open critical bugs: 1372961
sinzuijam, natefinch can you get someone to look into bug 137296114:20
sinzuimgz, adeuring : just reported bug 1372961 and this is my investigation of the errors in CI https://docs.google.com/a/canonical.com/document/d/1HJozm1Yo_d3mC0QyQif9XfQXf5AxRtd86_aroMd1OpE/edit#14:22
=== alexlist is now known as alexlist`
natefinchsinzui: ok14:25
mgzsinzui: ace, I'll read that14:29
sinzuimgz, there are some failures I think are not juju, I can you read the two logs I included to 1862?14:30
sinzuiabentley, mgz, adeuring, jog: joyent very slow this week. tests fail because of timeouts, and we can see many tests fail during setup. We many need to take away their voting rights14:32
abentleysinzui: That's a shame.14:32
sinzuiabentley, mgz, adeuring http://juju-ci.vapour.ws:8080/view/Cloud%20Health/job/test-cloud-joyent/ doesn't show the extent of the problem14:34
wwitzel3anyone know off had any cmd client commands that have been refactored out of api/client and in to their own facade?14:34
wwitzel3I'd be interested looking at examples of how we did it previously14:35
fwereadeSHIT14:35
* fwereade just overfilled bath14:36
fwereadebbiab14:36
wwitzel3I will reserve my laughing for later after we've determined there is no serious damage14:36
fwereadewwitzel3, it'll be fine14:41
fwereadewwitzel3, all on tiles14:41
fwereadewwitzel3, any damage there may be will be as nothing compared to the 3 separate pipes that went a week or two ago14:41
fwereadewwitzel3, my illusion of competence is the real victim here14:42
wwitzel3that was too sad and self deprecating for me to laugh at all now14:43
* wwitzel3 kicks the dirt14:43
fwereadewwitzel3, ehh, I deserve at least a bit of pointing and laughing14:44
* fwereade really *needs* a bath now after mopping all that up, but may be out of towels :-/14:59
mbruzekHello juju developers.  I noticed that I can no longer view my own logs on juju local.  I need sudo to view them.  There was a recent change to the log rotate function.  Has anyone else experienced this problem?15:05
katcombruzek: hi there. this was actually an issue raised by our security reviewers. there is some sensitive information that we felt any user on the system shouldn't be able to read.15:06
katcombruzek: this changed back in... 1.18 i believe. does that help at all?15:06
mbruzekkatco: Thanks for the reply.  As a developer I regularly look at the logs to diagnose failures.  This seems more recent to me, I keep up-to-date on juju releases, this seems like a 1.21 change as I was able to view the logs last week.15:07
katcombruzek: interesting. this is what i am referring to: https://bugs.launchpad.net/juju-core/+bug/128651815:10
katcombruzek: which logs are you trying to read?15:10
mbruzekI am usually interested in the unit-<charm-name>-#.log files because all-machines or the machine logs are too noisy.15:11
mbruzekkatco: no this is not the problem I am seeing, I was able to view them as recently as last week.  They are indeed 600 permissions, but now they seem to be owned by syslog.15:12
mbruzek-rw------- 1 syslog syslog 25642 Sep 23 09:57 machine-0.log15:12
mbruzekwhich is != mbruzek, thus the need for sudo.15:12
katconatefinch: ping ^^^15:13
katcombruzek: does seem like a new issue. what's the path? in ~/.juju?15:13
natefinchkatco: in a meeting, but we did just change log rotation stuff... that may have changed things for local accidentally.15:14
katconatefinch: ok np, thanks for the response.15:15
katconatefinch: any dev i should ping?15:15
mbruzekkatco: I actually see the logs all owned by syslog, but in up to 3 groups (adm, syslog, and fuse)15:15
mbruzek-rw------- 1 syslog adm    26787 Sep 23 09:57 all-machines.log15:15
mbruzek-rw------- 1 syslog syslog 25642 Sep 23 09:57 machine-0.log15:15
mbruzek-rw------- 1 syslog fuse   44601 Sep 23 09:56 unit-mongodb-0.log15:15
katcombruzek: what's the path?15:15
natefinchkatco: wwitzel3 may know about the all-machines stuff15:15
katconatefinch: ty sir15:15
mbruzekkatco: the path I am looking at is /var/log/juju-mbruzek-local/  the one you referenced (~/.juju/local/log) is a symbolic link there.15:17
mbruzekkatco: your log location would be /var/log/juju-katco-local/ I suspect.15:17
katcombruzek: not quite, but close ;)15:18
* mbruzek does not know the username you use.15:18
katcombruzek: i'll have to defer to natefinch et. al. since they implemented the new log rotation. looking at my log directory, it looks like my permissions fix may have actually been undone in addition to the bug you're seeing15:18
katcombruzek: all of my stuff is world-readable and owned by root15:19
mbruzekkatco: my memory is not clear but I KNOW I was able to view the files as recently as last week.  What version is your juju.15:20
katcombruzek: i run tip15:20
mbruzekof course you do!15:20
katcombruzek: but i suppose it's possible that once the logs are created correctly, the code would never recreate them, so only new log files would have issues15:21
mbruzek$ juju version15:21
mbruzek1.21-alpha1-trusty-amd6415:21
katco1.21-alpha2-trusty-amd6415:21
mbruzekkatco: That is a possibility I often destroy-environment and my understanding is that wipes out the "local" directory.15:22
katcombruzek: but maybe not anything buried in var? it would be elucidating to manually remove the log files to see what juju creates15:23
mbruzekkatco: Let me do that now...15:24
mbruzekkatco: destroy-environment does not wipe out the log files, but it does remove ~/.juju/local directory.15:25
katcombruzek: how does juju create the log files if they don't exist?15:25
mbruzekthe ~/.juju/local directory only contained a symbolic link to /var/log/juju-mbruzek-local/15:26
katcombruzek: right; i'm wondering if you move/remove log files under /var how juju will recreate them. i.e.: are you seeing a ghost of a bug that is now fixed15:27
mbruzekkatco: ahh!  Let me try that15:28
=== fabrice is now known as fabrice|family
mbruzekkatco: http://pastebin.ubuntu.com/8411564/15:30
katcombruzek: interesting. yep, i think you need to talk to natefinch's team15:30
mbruzekI moved the old directory and the new one was created upon bootstrap15:30
mbruzekkatco: OK thanks for troubleshooting with me.15:31
katcowwitzel3: perrito666: ericsnow: ping ^^^15:31
katcombruzek: sorry i couldn't help more. i tuned in b/c i thought i had worked in the space you were describing.15:31
* mbruzek is glad someone tuned in.15:31
mbruzekwwitzel3, natefinch, perrito666, ericsnow if you are done with meeting please ping me.15:32
natefinchmbruzek: will ping once I'm out15:37
dimiternfwereade, here's the follow-up about the state.openedPortsWatcher http://reviews.vapour.ws/r/8515:46
dimiternnatefinch, ^^ as OCR, can you take a look as well please?15:47
natefinchdimitern: sure15:48
fwereadedimitern, LGTM with a trivial15:53
dimiternfwereade, cheers!15:53
jcw4rogpeppe: your review is much appreciated!  Will discuss and get your suggestions implemented15:55
rogpeppejcw4: np15:55
natefinchevilnickveitch: https://github.com/juju/docs/pull/17415:55
rogpeppejcw4: i'm not sure i've finished, but i'm taking a break from it for a while.15:55
rogpeppejcw4: i'd really like to see doc comments for everything15:56
jcw4rogpeppe: cool.  Some of your comments I can explain, but some of your suggestions (charminfo) make a lot of sense to me15:56
rogpeppejcw4: the last thing i was looking at was Cancel - i'm not sure quite how that's meant to work15:56
jcw4rogpeppe: Yeah, I should have added the doc comments like you suggested15:56
jcw4rogpeppe: I'll be updating today with those comments, etc.15:57
rogpeppejcw4: great, thanks15:57
* fwereade is really tired and taking a break, will be back in the evening sometime16:00
wwitzel3616:08
wwitzel3sure, why not16:08
wwitzel3mbruzek: the permission commit that katco referenced was on 2014-07-02, that is when that went in to master.16:11
mbruzekwwitzel3: Would you know why I was able to look at the logs last week and not this week?  The owner looks different between katco and my system.16:12
wwitzel3mbruzek: the only thing I can think of, I think was mentioned before, if the old logs were not cleaned up for some reason and had the old permissions.16:14
wwitzel3mbruzek: actually let me check when that commit was actually merged in .. the day it was commited and the day it was merged can be very different16:15
mbruzekwwitzel3: Please do, I think this is a big change that will make it harder for charm authors to diagnose problems when they are writing charms.16:15
wwitzel3mbruzek: https://github.com/juju/juju/pull/232 .. was merged in 02 Jul 2014. Not sure why you would of had access to the logs since then, if they had been newly created.16:20
mbruzekwwitzel3: ack.  Thanks.  I am kind of concerned about this change since it will be more difficult for authors to look at the log files of their own units to diagnose problems.  Was there anything in there anything about the owner changed?16:22
wwitzel3mbruzek: the original ticket is here, https://bugs.launchpad.net/juju-core/+bug/1286518 and has a comment that shares your concern, I'd recommend bumping that16:23
mupBug #1286518: juju log files should not be world readable <logging> <juju-core:Fix Released by cox-katherine-e> <https://launchpad.net/bugs/1286518>16:23
mbruzekwwitzel3: this link is likely why I have not seen it until this week. https://bugs.launchpad.net/juju-core/+bug/128651816:23
mbruzekIt looks like it was fix released on 09/1016:24
wwitzel3mbruzek: yep16:24
mbruzekthanks wwitzel3.16:27
wwitzel3mbruzek: yep, np16:27
katcowwitzel3: ah missed that point. i just assumed it had been released awhile ago16:28
katcowwitzel3: ty16:28
wwitzel3katco: np16:30
=== urulama is now known as urulama-afk
* katco needs to get her glasses adjusted again (sigh). bbiab.18:02
* natefinch did not realize glasses were something one got adjusted18:04
perrito666I am not sure if she speaks about the prescription or the nose thing18:05
perrito666I have to change the nose thinguies every 3 months18:05
perrito666although the ones I got last time lasted for the whole cycle :p18:06
perrito666ericsnow: ping18:13
ericsnowperrito666: hey18:14
perrito666ericsnow: I need your help swimming trough a sea of indirections18:14
ericsnowperrito666: k18:14
perrito666ericsnow: lets go priv18:14
=== Ursinha is now known as Ursinha-afk
natefinchturns out the answer is "yes" to the question "are the outdoor receptacles on the same circuit as my office?"18:33
natefinchnot that it was a question I had intended to ask today18:35
perrito666apparently your AP is not on that circuit18:36
perrito666:p18:36
perrito666I for once have the internet connection on a separate 6mm cable line along with the tv, the ps3 and the fridge18:37
perrito666because priorities18:37
natefinchhaha18:38
natefinchYEah, I'm currently actually running an ethernet cord from the other room to here.... I have an ethernet wall jack I need to install... but, well, it involves getting into the crawlspace under my office, and... priorities18:39
perrito666lol18:39
perrito666well when I moved here the house was under remodeling so I just passed special cables for the important stuff, a different circuit breaker line and walled the home theater cables so the satellite speakers look wireless18:40
natefinchnice18:40
natefinchEvidently Mark Shuttleworth is annoyed that HA is only a single command "ensure-availability" for both starting HA and recovering from a failed machine, so he wants us to change it.18:41
natefinchWhich is valid18:43
natefinchI wonder if this is my penance for actually documenting it :)  https://juju.ubuntu.com/docs/juju-ha.html18:43
ericsnownatefinch: no good turn goes unpunished :)18:44
natefinchNo, I kind of agree....  I just was ready to not look at HA for another 6 months at least :)18:44
=== Ursinha-afk is now known as Ursinha
natefinchericsnow, perrito666, wwitzel3: who wants to be in the meeting to talk about revamping HA?  I may be able to find the time to do it, but I might not... which means it might get delegated.19:09
katconatefinch: i just got this pair. they fit to your nose/ears differently and apparently you have to go through a few rounds of adjustments before they don't hurt your head19:10
ericsnownatefinch: I will if you need me to but would rather stay focused on backups19:10
perrito666katco: so how does that work, do they adjust your nose and ears?19:11
perrito666:p19:11
natefinchericsnow: yeah, good point... you'd disqualified19:11
natefinch(lucky ;)19:11
katcoperrito666: lol no they put the frames in this heat thing and bend them19:11
ericsnownatefinch: :)19:11
katcoperrito666: this is all new to me, but my wife is a veteran glass wearer lol19:11
natefinchkatco: ahh, I didn't realize that was necessary19:11
perrito666katco: ah yes, you can do that in your house with a cheap hair dryer19:11
natefinchhaving never had eyeglasses myself...19:12
katconatefinch: apparently so19:12
katconatefinch: i literrally got my first pair 4 days ago19:12
natefinchkatco: I naively assumed they were like sunglasses where you can just slap them on19:12
natefinchkatco: ahh19:12
perrito666natefinch: well after wearing a few days you can notice how they slide on your face19:12
katcobut now i can smugly say, "of _course_ you have to adjust them (gufaw)"19:12
perrito666and also the material settles and you might need to adjust a bit19:12
perrito666if the ear thinguies are not properly adjusted the nose ones will hurt your skin because of the weight and vice versa19:13
natefinchmaybe this is how they justify paying $200 for some wire and plastic19:13
katcolol19:13
perrito666natefinch: that is how they justify getting laser surgery19:14
natefinchhaha19:14
=== fabrice|family is now known as fabrice
natefinchericsnow: you around?19:55
ericsnownatefinch: yeah19:55
natefinchericsnow: actually, nevermind.  I had problems with rbt, but realized I don't actually need that code to get onto reviewboard anymore19:56
ericsnownatefinch: ok19:56
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
=== Ursinha is now known as Ursinha-afk
=== Ursinha-afk is now known as Ursinha
wwitzel3if I register a facade and put the import in all facades .. why am I still getting an ERROR unknown object type "RunCommand"21:33
katcowwitzel3: did you update your servers?21:33
katcoi.e. juju upgrade-juju --upload-tools21:34
wwitzel3katco: yep :/21:34
katcowwitzel3: hrm. that was my guess! :)21:34
cmarsthumper, time for a hangout?22:01
thumpercmars: aye, already there22:01
=== Ursinha is now known as Ursinha-afk
davecheneyhazmat: ping23:22
waiganimenn0: so there is a switch in state.parseTag. In the case for services I've set the id to DocID. You'll need to do the same for the unit case. The other place you'll have to do this is in allWatcherStateBacking.docID23:27
thumpercmars: review done23:27
cmarsthumper, thanks23:27
waiganimenn0: allWatcherStateBacking.docID is in the megawatcher, it's only used in the Changed function there.23:27
waiganimenn0, thumper, davecheney: if every watched entity was a tag (i.e. had a .Tag() method that returned a tag of the entity), then we could use state.parseTag(tag) whenever we needed to get the docID23:32
thumperwaigani: I don't think that is the case though23:33
thumperis it?23:33
thumperpretty sure we watch many things that are only losely linked to entities23:33
waiganithumper: note the *if*23:33
* thumper nods23:34
waiganijust an observation while working on that branch23:34
thumperalthough might be intersting to have something that goes from the shitty globalId() ('m#3' for machine-2) to a tag23:34
thumperwaigani: definitely worth leaving a note to think about23:34
waiganiso forget entities, basically if anything that is watched is a tag...23:35
wwitzel3since I have a fresh group .. if I register a facade and put the import in all facades .. why am I still getting an ERROR unknown object type "RunCommand"23:52

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