fab-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Fab-user] Beta 1 out


From: Jeff Forcier
Subject: Re: [Fab-user] Beta 1 out
Date: Sun, 12 Jul 2009 12:47:31 -0400

2009/7/10 Niklas Lindström <address@hidden>:

> Will this: "Updating e989277..dc65d87" give you a clue of when this
> behaviour changed? (I should help you dig if you can't reproduce this,
> if I get/take the time..)

Yes, that helps significantly! I'm afraid the commit that probably
broke this for you is 7e7fd8a6bd75cc46c857b77954e297d2bb685c93 ("Fix
race condition in run/sudo"). Can you do me a big favor and confirm
that your code worked before this commit, and breaks after it?

I was afraid that changing the main IO loop would introduce other bugs
while fixing the one mentioned in the commit, and it looks like you
may be running into that. Won't know till you confirm it, and then we
need to figure out what's different in your situation and the one Evan
ran into (and which I was able to confirm.)

This is why I really want to overhaul that code to use something
callback-based, if that's possible without moving away from Paramiko
or adding some extra dependency like Twisted :( Thinking coroutines or
something. Very sick of tweaking that damned while loop.

> So
> perhaps it'd be nice to determine host list as late as possible?

It would be nice, but as I mentioned, this is a core area of how Fab
works and needs to be approached gingerly. The two execution modes
(task-per-host vs operation-per-host) are, as far as I recall, pretty
mutually exclusive, so some features will work on one and not the
other, and vice-versa.

So, as with a number of other things, this needs sitting down and
figuring out, and may change further when we address the
possibly-even-hairier problem of parallel execution.

By this I mean that I definitely want to make things more flexible
than they are now (especially re: dependencies) but it's not something
that can be easily done off the bat. I hope that I can work something
out for 1.0, since that's not the sort of change that works well in a
backwards compatible minor release like 1.1 :)

> (It would also be kinda cool if
> @roles("*") or similar worked, but of course I can supply the (3)
> roles I have explicitly.)

This would be pretty easy to do, and again ties into something I have
plans to extend -- host management. I've added a TODO item for this
specific desire.

> (That said, I still like the "test" solution a
> bit, especially since you can base an "isdir" on that as well. But
> that's just a suggestion. ;) )

'test' is definitely more flexible than using 'ls', and I totally hear
you re: isdir/isfile/etc. It's a tool I hope to use more in the
future. Most of the contrib stuff is "first draft" quality material
and could definitely be smartened up some, in this manner :)

-Jeff




reply via email to

[Prev in Thread] Current Thread [Next in Thread]