summaryrefslogtreecommitdiff
path: root/src/Propellor/Engine.hs
AgeCommit message (Collapse)Author
2015-01-19split out types to improve haddock for Propellor.TypesJoey Hess
2015-01-18Property treeJoey Hess
Properties now form a tree, instead of the flat list used before. This simplifies propigation of Info from the Properties used inside a container to the outer host; the Property that docks the container on the host can just have as child properties all the inner Properties, and their Info can then be gathered recursively. (Although in practice it still needs to be filtered, since not all Info should propigate out of a container.) Note that there is no change to how Properties are actually satisfied. Just because a Property lists some child properties, this does not mean they always have their propertySatisfy actions run. It's still up to the parent property to run those actions. That's necessary so that a container's properties can be satisfied inside it, not outside. It also allows property combinators to add the combined Properties to their childProperties list, even if, like onChange, they don't always run the child properties at all. Testing: I tested that the exact same Info is calculated before and after this change, for every Host in my config file.
2015-01-04sshPubKey is renamed to Ssh.pubKeyJoey Hess
2014-12-21Revert ensureProperty warning message, too many false positives in places ↵Joey Hess
where Info is correctly propigated. Better approach needed.
2014-12-21propellor spinJoey Hess
2014-12-07Display a warning when ensureProperty is used on a property which has Info ↵Joey Hess
and is so prevented from propigating it. Would much rather a type-based fixed, but this is all I have for now.
2014-12-07docuemnt info propigtion problemJoey Hess
2014-12-06Reboot.atEndJoey Hess
2014-12-06endAction can be used to register an action to run once propellor has ↵Joey Hess
successfully run on a host.
2014-11-27added more debuggingJoey Hess
2014-11-27propellor spinJoey Hess
2014-11-22propellor spinJoey Hess
2014-11-21avoid setting title when not at consoleJoey Hess
2014-11-21show last line if it cannot be parsed as a serialized ResultJoey Hess
2014-11-20propellor spinJoey Hess
2014-11-20propellor spinJoey Hess
2014-11-19prevent multiple concurrent provisioning inside docker containerJoey Hess
Lock a lock file while provisioning inside, otherwise propellor could be running to init the container when the system has just booted, or the container was just started from being stopped, and at the same time, propellor run outside the container chains into it to provision. Previously, simplesh prevented this in a different way.
2014-07-23propellor spinJoey Hess
2014-07-23propellor spinJoey Hess
2014-07-23propellor spinJoey Hess
2014-06-09Attr is renamed to Info.Joey Hess
2014-05-31simplified record accessorsJoey Hess
2014-05-31got rid of the Attr -> Attr SetAttr hack, and use monoids for AttrJoey Hess
The SetAttr hack used to be needed because the hostname was part of the Attr, and was required to be present. Now that it's moved to Host, let's get rid of that, since it tended to waste CPU.
2014-05-31propellor spinJoey Hess
2014-05-31propellor spinJoey Hess
2014-05-31remove now redundant _hostname field of AttrJoey Hess
Now that Host includes _hostName, it's redundant to also keep it in Attr. This requires changing the reader monad to operate on the whole Host.
2014-05-14moved source code to srcJoey Hess
This is to work around OSX's brain-damange regarding filename case insensitivity. Avoided moving config.hs, because it's a config file. Put in a symlink to make build work.