/srv/irclogs.ubuntu.com/2011/11/25/#juju.txt

george_eSpamapS: Can I put another script in the hooks folder that isn't actually a hook script?01:24
george_eI want to reuse some code between hooks.01:24
james_wgeorge_e, you can01:56
james_wyour hooks are executed with the PWD being the root of your branch01:57
james_wso you can load the code with01:57
james_w. ./hooks/shared01:57
james_w(assuming you are using shell)01:57
george_ejames_w: Okay, thanks.02:30
fwereadehazmat: ONLY if this is an easy question you already know the answer to without hunting through the source (I can do that myself if necessary...):12:19
fwereadehazmat: what nodes are created by the unit agent?12:20
hazmatfwereade, its presence node its relation settings and presence nodes13:57
fwereadehazmat, cheers14:10
fwereadehazmat, I'll double-check which of those could have barfed a NodeExists at me, but haven't managed to repro it, so not to worry :)14:11
hazmatfwereade, i've got a branch which pushes the path into the exception of txzk.. i haven't felt a 100% comfortable with it.. but its useful for debugging these sorts of things14:20
hazmatfwereade, its https://code.launchpad.net/~hazmat/txzookeeper/errors-with-path/+merge/7725414:20
fwereadehazmat, thanks, that's awesome; I'll grab it if I screw things up in the same way again :)14:21
jcastrom_3: thinkup charm needs another round o' review15:29
hazmatm_3, thanks again for setting up the reconnoiter ppa15:31
fwereadehazmat, I appear to be unable to recreate the unit agent presence node when the unit was previously "kill -9"ed (NodeExistsException, despite the fact that it was created ephemeral)15:40
fwereadehazmat, please confirm that I am smoking crack15:40
hazmatfwereade, the session is still alive15:41
hazmatfwereade, the agent need to store their session id, and reconnect with that only creating a new session if the previous is expired15:41
fwereadehazmat, awesome, the universe still works, I'm just ignorant15:42
* fwereade sighs with relief15:42
hazmatfwereade, we all gotta start somewhere.. for example if you put a sleep(10) in there it would just work ;-)15:42
hazmatfwereade, so i'd setup the base agent to store the client_id after connect to file on disk, and utilize that path if it exists when connecting for the session id15:43
hazmatif it doesn't work (sessionexpired) just reconnect sans the id15:43
fwereadehazmat, cool, on the plus side the unit agent does appear to work if it's killed normally :)15:43
hazmatfwereade, nice15:43
hazmatfwereade, yeah.. i was going through the workflow api.. you had it right.. transition_state is optimistic, fire_transition was pessimisitc15:44
fwereadehazmat, cool, that bit is changing a little in the current work anyway15:44
hazmatfwereade, what's current? which branch is this?15:44
hazmatfwereade, ie. are these changes to what's in the queue?15:45
fwereadehazmat, it's work on top of it, I probably should have written a bug for it15:45
hazmatfwereade, no worries, lbox makes us lazy ;-)15:45
fwereadehazmat, it's the distinction between "uses upstart" and "actually works properly in certain circumstances"15:46
hazmatfwereade, cool, i'm going to delay the session expiration work to build on the upstart stuff your doing, else we have to introduce additional primitives regarding stop/restart doing hook execution, vs stopping activity15:47
fwereadehazmat, yeah, figuring out just what should happen if we suddenly die mid-hook is beyond my understanding at the moment15:47
hazmatjust doing a suicide on expiration seems like it would be easier than introducing additional paths for stop 'only activity'15:47
fwereadehazmat, that sounds good though15:48
hazmatfwereade, that's fine, when we save the queue state to disk, it should re-execute the hook15:48
hazmatfwereade, we're going for the at least once guarantee15:48
fwereadehazmat, cool15:48
hazmatinstead of the at most once15:48
hazmatthe latter has the potent to miss an exec15:49
* hazmat grabs some coffee15:49
marcoceppiHey guys, any idea on this: http://askubuntu.com/questions/82632/juju-bootstrap-problem15:59
hazmatmarcoceppi, in process on answering it now16:22
hazmatmarcoceppi, hmm.. actually that's not what i thought it was16:25
marcoceppiAnything I can ask him to get more info>16:25
hazmatmarcoceppi, not sure, i posted something, it looks like he might have another dns server on that machine16:28
hazmatperhaps a local caching proxy16:28
marcoceppiah, thanks hazmat16:28
hazmatmarcoceppi, i thought i'd setup a subscription to juju questions, but i don't every seem to get notified about new questions16:29
marcoceppihazmat How did you subscribe?16:30
hazmatmarcoceppi, via the web on the tag16:30
marcoceppiAh, that only highlights questions in the main feed, IIRC16:30
marcoceppihum, maybe not.16:31
hazmatmarcoceppi, i don't get it.. it doesn't notify me of all new questions w/ the tag.. that question is in the rss feed16:31
hazmatmarcoceppi, hmm.. seems like there are multiple interfaces for subscription management..16:32
hazmattrying out the stackexchange one from my profile now16:33
marcoceppihazmat Check out your profile's email preferences, make sure the checkbox to receive emails is selected. http://askubuntu.com/users/preferences/2853216:33
marcoceppiIt doesn't appear you do. Kind of seems like a bug.16:33
marcoceppiYou can also change the frequency of emails. It defaults to a daily digest, IIRC16:34
hazmatmarcoceppi, that seems to me the trick thanks16:35
hazmats/me/be16:35
marcoceppinp16:35
amithkkNice cozy juju room :) Hi guys16:49
hazmatamithkk, greetings16:52
amithkkhi hazmat16:53
hazmatbcsaller, jimbaker you guys in today?16:59
* SpamapS tosses amithkk a beverage17:03
SpamapSwelcome!17:03
hazmatfwereade, up for a standup?17:03
hazmatbcsaller, jimbaker, fwereade invites out.. low attendance expected ;-)17:03
amithkkhi17:03
fwereadehazmat, ah yeah17:04
* amithkk drinks beverage17:04
* SpamapS cries out "NO WAIT!"17:07
mainerrorWhat is a standup?17:15
hazmatmainerror, its a very short meeting17:17
mainerrorI see.17:17
hazmatmainerror, we just do a quick roundtable on dev tasks17:17
hazmatless than 5m17:18
hazmatmainerror, http://en.wikipedia.org/wiki/Stand-up_meeting17:18
m_3looks like the latest charm-tools package has a broken link...  I'll try it on another machine to verify17:23
hazmatm_3, is that reconnoiter ppa a daily build recipe attached to the imported branch?17:29
hazmatm_3, looking at the imported branch recipes.. i just see https://code.launchpad.net/reconnoiter/+recipes17:29
m_3SpamapS: but if he knew that you knew that he knew which vial was poisoned...17:30
m_3no, I didn't use the recipe, just built the daily from the other day17:30
m_3hazmat: ^17:30
m_3hazmat: figured if it worked, then we could use the recipe to do a daily build.  I had to update debian/control to add deps to get it to build, so we'll have to add that to the recipe17:32
fwereadehappy weekends all :)17:32
hazmatfwereade, cheers, have a good one17:32
m_3fwereade: you too17:32
hazmatm_3, cool we should probably send a control diff upstream as well, it was just the protobuf dep?17:33
m_3yup17:33
hazmatm_3, cool17:33
* hazmat lunches17:33
jcastrohazmat: bout how much longer after a charm is accepted does it take to show up in your charm browser thing?18:23
hazmatjcastro, 15m after its pushed to lp18:23
hazmatjcastro, it won't appear if the charm has structural errors18:24
hazmatjcastro, which one where you thinking of?18:24
jcastrothinkup18:24
hazmatjcastro, thinkup is there already18:24
jcastroROCK.18:24
hazmatjcastro, its in a ppa, so you need to find via search18:24
hazmatunless its in the official distrib18:24
hazmathttp://charms.kapilt.com/~george-edison55/oneiric/thinkup18:25
jcastroright so in the bug report mmims +1'ed it, I guess the next step is to 'promote' it or whatever we do?18:25
jcastrobut then he found a bug in the charm tool or something18:25
hazmatjcastro, yup18:25
hazmatjcastro, per the spec its actually posisble for a ppa charm to be the official one, but the charm browser and practice seems to be moving it to ~charmers ownership18:26
jcastrooh ok, so basically we move it18:29
jcastroand then tell him to just propose fixes from then on?18:29
marcoceppiit needs to be promogulated, right?18:31
rogcan we rely on the fact that we've always got cloud-init? or can that be provider-dependent?18:31
marcoceppipromulgated*18:32
roghazmat: ^18:32
hazmatrog, we use cloud-init everywhere but local provider18:32
hazmatrog, bcsaller and i  debated using it there, but opted to pass on it to keep local fast18:33
jcastrowe suck for naming it "promulgate" by the way, when "charm bless" or "charm sugar" would have been awesomer.18:33
hazmatjcastro, or just give him r/w access to it18:33
hazmatmarcoceppi, i think m_3 and SpamapS know the procedure.. i'd have to look it up18:34
roghazmat: darn. ok, thanks.18:34
marcoceppihazmat: I've done it once before if they're pre-occupied18:34
hazmatrog, why? whats up?18:34
m_3yeah, I can promulgate... just chasing down what's wrong with charm-tools18:34
hazmatrog, its generally a pretty reasonable assumption18:34
hazmatm_3, need another set of eyes?18:34
roghazmat: just wondering what code can be factored out of providers18:34
m_3also didn't know if acceptance meant it should be promulgated to lp:charm or stay in a ppa18:35
roghazmat: in Go the decision has to be a bit more clear-cut than in python.18:35
hazmatrog, well the cloud init stuff is factored out of the provider implementations, individual provider implementations will by default get a common impl of the provider that uses cloud-init18:35
jcastrom_3: what's the difference from the deployment point of view of where the charm is?18:35
m_3hazmat: I'm still trying to figure out how the packaging process works for charm-tools... the latest version just isn't installing enough stuff18:35
jcastrom_3: either way I need to charm get right?18:36
roghazmat: yeah, i saw that, but hadn't seen that local didn't use the common implementation18:36
hazmatjcastro, yeah.. charms are always fetched locally, even with a store18:36
m_3jcastro: yeah, it'll just be a different url18:36
hazmater. deployed from local18:36
jcastrook so from the end user perspective, they don't need to do anything different?18:36
hazmatthe store just automates the fetch to local and deploy to env18:36
jcastroin other words, is this our problem or a user-visible problem?18:36
hazmatrog, it does use the base class, it just overrides that behavior18:37
hazmatby implementing its own start machine method18:37
m_3jcastro: so that's the difference... right now 'charm get thinkup' says it doesn't exist in the official charm store18:37
hazmatrog, the local provider is a bit of abberation in several respects, besides the lack of cloud-init, there is no provisioning agent18:37
m_3so I'll promulgate it18:37
hazmatrog, in the local provider case there is only one machine the host18:38
hazmatso cloud init never runs, we treat the containers as containers instead of machines18:38
hazmatthe notion being that if where a new machine, we would indeed run cloud-init18:38
roghazmat: yeah, it's an exception that seems like to be making things a bit harder, cos it makes everything less regular18:39
hazmatrog, it is actually pretty regular the delta is that its an environment with exactly one machine18:39
roghazmat: it's things like no provisioning agent, etc18:40
hazmatrog, and that we have multiple units with isolation on it.. the original impl that SpamapS did had modeled containers as machines18:40
hazmatrog, there is only one machine in the env, so what does the provisioning agent do?18:40
roghazmat: was that too slow?18:40
hazmatrog, no just that niemeyer didn't like the model that way18:40
roghazmat: i'd model containers as machines...18:40
roghazmat: fair enough18:40
hazmatrog, there was a long discussion on list about this18:40
hazmatrog, the problems with networking still haven't been addressed unfortunately18:41
roghazmat: depends how you think of the local provider, i guess - as a test for the system, or as a thing to do useful work with18:41
hazmatwrt to pushing lxc everywhere18:41
hazmatrog, the goal of getting lxc everywhere is better served by the current impl (machines deploying units in containers), but lacking an appros solution for the networking, its a bit moot18:42
rogfor LXC everywhere, i guess it'd make sense to treat containers as machines and have a provider on every real machine18:42
hazmatrog, not really18:42
hazmatrog, providers model real billable resources, container ares not18:42
hazmats/ares/are18:42
rogoops18:42
rogi didn't mean provider, i meant provisioning agent18:43
rogtotally different thing18:43
hazmatrog, same thing, providers are actualized by a provisioning agent18:43
hazmatthere is no provider api for creating a container, the provider is abstraction to external resource interaction18:43
roginteresting.18:44
hazmatfor the provisioning of compute resources, lxc are are just logical subdivisions of those resources imposed by juju for units18:44
rogif there *was* a provider api for creating a container, might that make things easier?18:44
rogbecause then creating a container would be very similar to allocating a new machine18:45
rogonce you've got multiple levels of provider, spanning across multiple billable providers might become easier. but i'm speaking off the top of my head here, obviously :-)18:46
roghazmat: what are the problems with the networking, BTW?18:47
hazmatrog, i don't think a container provider api helps at all, its a different level of the conceptual stack18:47
hazmatrog, your trying to posit the provider agent living on every machine.. why thats what the machine agent is there for18:48
hazmatrog, the networking problem is what i outlined on the mailing list, namely that because we're using dynamic port allocation for units, which itself is a less than 0.1% problem, instead of static port allocation in metadata, we  lose the ability at deploy time to determine conflict/optimal placement of units when machines have multiple units18:49
marcoceppiWhat is the "peers" metadata config section for?18:49
rogi guess in the end, it doesn't matter what agent does provisioning, just as long as it follows the right zk state18:49
hazmatmeaning that we can never have more than one unit on a machine without a soft network overlay18:50
hazmatmarcoceppi, its for a special type of relation used to talk within a service among its service units.. like cassandra, or riak, mongodb replica set..18:50
hazmatthe units of those services need to be aware of the other members of the service and to talk to them, for things like setting up token rings for sharding or replication, or leader election18:51
hazmatrog, indeed18:51
marcoceppihazmat: Cool, thanks18:51
roghazmat: i wondered about peer relations as well. how exactly do they differ from provides/requires relations?18:52
hazmatrog, provides/requires are to model client/server relations across services, peers model intra service relations18:52
hazmatinter vs intra service relations.. for the one liner ;-)18:53
roghazmat: so a peer relation is always established?18:53
hazmatrog, it is, but that's a convenience of the deploy cli impl, the rel impl is the same at the declaration and actualization layer as a client/server.. the main impl difference is in the watch mechanism feeding into hook execution18:55
roghazmat: is hook execution any different for peer relations?18:57
hazmatrog, no18:57
hazmatrog, the structural layout of the relation is  slightly different leading to slightly different related unit watching, instead of watching the units of the opposite end's service, it watches the units of the same service.. that feeds into a hook scheduler, which queues hook exec, the actual hook impl/semantics are the same18:59
roghazmat: thanks19:00
hazmati think i wrote most of that in a mad crazy code cycle this time last year19:01
roghazmat: it's all in the machine agent, presumably19:03
hazmatrog, not at all19:03
hazmatrog, the machine agent has no responsibilities outside of deploying units19:03
hazmatand removing them if unassigned from the machine19:03
roghazmat: ah, i thought the machine agent executed hooks19:03
hazmatrog, the unit agent does all unit management19:04
hazmatrog, most of this is abstracted into a unit workflow/lifecycle that the unit agent just starts19:04
roghazmat: so it does, i've just seen19:04
roghazmat: hmm, so... is there one machine agent per machine?19:05
hazmatrog, yes19:05
roghazmat: but currently a machine maps exactly one to one with a unit, right? so what does the machine agent actually do?19:05
* rog should just go and read the damn code!19:05
rogok, yes, it doesn't do much19:06
hazmatrog, none of the agents do very much, they activate semantic logic protocols in their process, but the agent code is always pretty minimal19:07
hazmatrog, the provisioning agent has been an exception to that, but not for long (expose-refactor pushes the firewall stuff out)19:08
hazmatrog, at the risk of repeat myself... machine agents only manage unit deployments19:09
hazmattheir not one to one with a local provider19:10
hazmattheir only one to one elsewhere due to the network issues as above, either a soft overlay network or static ports would resolve that19:11
rogi'd vote for static ports, otherwise you get addressing issues.19:11
hazmatyeah.. me too19:12
hazmatencapsulating units into lxc everywhere also solves the issue of the charm scribbling on a machine's root fs which makes machine reuse problematic19:12
roggotta go19:13
rogthanks for the discussion19:13
hazmatrog, cheers have a good weekend19:13
rogand you19:13
jcastrojames_w: fyi, your graphite and txstatsd charms got an initial review19:13
james_wyeah, thanks19:19
james_wimportant fixes needed, I just need to find the time now19:20
jcastrom_3: AWWW YEAH20:21
jcastrothinkup is working20:21
jcastrohttp://pad.ubuntu.com/thinkup20:21
jcastroare the commands I used.20:21
m_3jcastro: phpmyadmin is reported as blocked BTW20:28
m_3awesome!!20:28
m_3^ re: thinkup20:28
jcastrohttp://cloud.ubuntu.com/2011/11/deploying-thinkup-to-the-cloud-with-juju/21:05
m_3jcastro: gotta do a charm get mysql too21:22
m_3(in the article you reference above)21:24
jcastrowhoops!21:27
SpamapScharm-tools should be fixed shortly btw21:55
m_3SpamapS: thanks!22:00
marcoceppiSpamapS I hope it wasn't anything I did22:16
SpamapSno22:16
SpamapSdefinitely me22:16
SpamapSrushing things before throwing the turkey in the oven yesterday ;)22:16
SpamapScan you guys try updating charm-tools on 11.10?22:19
SpamapSm_3: ^^22:23
SpamapSmarcoceppi: ^^22:23
marcoceppiHas it been packaged?22:23
SpamapSit just updated22:24
* marcoceppi wishes he can edit messages in IRC22:24
SpamapSthe PPA claims it is published22:24
marcoceppiLooks like it: 0.2+bzr85-4~oneiric122:24
m_3SpamapS: will check now22:27
m_3SpamapS: look fine22:30
SpamapSm_3: cool. thanks for the heads up22:31
m_3thanks for not making me learn about recipes tonight :)22:31
marcoceppiWhat are the restrictions of names for charms? Just alphas?23:10
hazmatmarcoceppi, alpha num not leading alpha, and '-'23:17
hazmater. leading alpha23:17
marcoceppithanks23:31

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