| Age | Commit message (Collapse) | Author |
|
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)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Property has been converted to a GADT, and will be Property NoInfo
or Property HasInfo.
This was done to make sure that ensureProperty is only used on
properties that do not have Info.
Transition guide:
- Change all "Property" to "Property NoInfo" or "Property WithInfo"
(The compiler can tell you if you got it wrong!)
- To construct a RevertableProperty, it is useful to use the new
(<!>) operator
- Constructing a list of properties can be problimatic, since
Property NoInto and Property WithInfo are different types and cannot
appear in the same list. To deal with this, "props" has been added,
and can built up a list of properties of different types,
using the same (&) and (!) operators that are used to build
up a host's properties.
|
|
|
|
|
|
|
|
This is more general; it doesn't need to contain a Host.
It would, for example, be possible to make Property itself be an instance
of PropAccum.
|
|
|
|
|
|
|