| Age | Commit message (Collapse) | Author |
|
|
|
|
|
I doubt anyone is going to use propellor on windows..
|
|
repository url normally implicitly set when using --spin.
|
|
|
|
|
|
This adds a dependency on Text, but I don't mind propellor depending on it
and am somewhat surprised it doesn't already.
Using Text also lets this use encodeUtf8 instead of the nasty hack it was
using to go from String -> ByteString.
|
|
|
|
I had 2 MVars both involved in the same lock, and it seemed intractable to
avoid deadlocks with them. STM makes it easy.
At this point, the concurrent process stuff seems to work pretty well, but
I'm not 100% sure it's not got some bugs.
|
|
|
|
Found a reasonable clean way to make Utility.Process use
execProcessConcurrent, while still allowing copying updates to it from
git-annex.
|
|
* Various property combinators that combined a RevertableProperty
with a non-revertable property used to yield a RevertableProperty.
This was a bug, because the combined property could not be fully
reverted in many cases. Fixed by making the combined property
instead be a Property HasInfo.
* combineWith now takes an addional parameter to control how revert
actions are combined (API change).
|
|
Note that no output multiplexing is currently done.
|
|
|
|
|
|
Propellor.Property.Conductor.
Wow, really.. So, this gets back to having properties that are added to
hosts to say what they conduct. I think that
conducts webservers `before` conducts dnsserver is an important thing to be
able to express.
Untested except for eyeballing the resulting Host data.
|
|
very different Propellor.Property.ControlHeir.
Rethought it because it turned out that propigating the PrivData rendered
the loop detection pointless, because when there was a loop, each host
included the other's PrivData, which in turn lead to a loop. And, it was
not possible to break that loop.
So, changed from adding properties to hosts to a top-down hierarchy
that makes changes as needed when applied to the hosts.
Which makes it easy to detect and break loops.
Aka: The Ur Quan know what they're up to.
|
|
controller of other hosts.
The hard part of this is avoiding loops of controllers. To make that work,
a ControllerChain is passed to the host that's spun, and is added to the
Info of the host being spun, where the controller property can check it
to detect an avoid a loop.
That needed an expansion of the CmdLine data type. I made the new
ControlledRun only be used when there is a ControllerChain provided.
This avoids breaking backwards compatability with old propellor
deployments, as --spin still uses SimpleRun.
Note: Making an old propellor deployment be controlled by a controller
won't work until it's been updated to this commit, so it knows about
the ControlledRun parameter.
(Untested)
|
|
|
|
This involved some code changes, including some renaming of instance
methods. (ABI change)
|
|
Signed-off-by: Félix Sipma <felix.sipma@no-log.org>
|
|
|
|
|
|
|
|
|
|
|
|
Signed-off-by: Félix Sipma <felix.sipma@no-log.org>
|
|
Signed-off-by: Félix Sipma <felix.sipma@no-log.org>
|
|
Convert Info to use Data.Dynamic, so properties can export and consume
info of any type that is Typeable and a Monoid, including data types
private to a module. (API change)
Thanks to Joachim Breitner for the idea.
|
|
|
|
|
|
|
|
Used Data.Map.Strict, so bumped versions.
Don't want to support the ghc in debian oldstable..
(cherry picked from commit e413bed2c1cb15dcb8ce721a2801021e39f3ba86)
|
|
Including support for formatting partitions of a disk image file.
|
|
|
|
|
|
|
|
|
|
|
|
plus scaffolding for other generic conf file properties
(cherry picked from commit 86b077b7a21efd5484dfaeee3c31fc5f3c151f6c)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|