Safe Haskell | None |
---|---|
Language | Haskell98 |
- data Host = Host {}
- data Info = Info {}
- newtype Propellor p = Propellor {
- runWithHost :: RWST Host RunLog () IO p
- data Property = Property {}
- data RevertableProperty = RevertableProperty Property Property
- class IsProp p where
- type Desc = String
- data Result
- class ToResult t where
- class ActionResult a where
- getActionResult :: a -> (String, ColorIntensity, Color)
- data CmdLine
- = Run HostName
- | Spin [HostName] (Maybe HostName)
- | SimpleRun HostName
- | Set PrivDataField Context
- | Dump PrivDataField Context
- | Edit PrivDataField Context
- | ListFields
- | AddKey String
- | Merge
- | Serialized CmdLine
- | Continue CmdLine
- | Update (Maybe HostName)
- | DockerInit HostName
- | DockerChain HostName String
- | ChrootChain HostName FilePath Bool Bool
- | GitPush Fd Fd
- data PrivDataField
- type PrivData = String
- newtype Context = Context String
- anyContext :: Context
- data SshKeyType
- = SshRsa
- | SshDsa
- | SshEcdsa
- | SshEd25519
- data Val a
- fromVal :: Val a -> Maybe a
- type RunLog = [EndAction]
- data EndAction = EndAction Desc (Result -> Propellor Result)
- module Propellor.Types.OS
- module Propellor.Types.Dns
Documentation
Everything Propellor knows about a system: Its hostname, properties and other info.
Information about a host.
Info | |
|
Propellor's monad provides read-only access to info about the host it's running on, and a writer to accumulate logs about the run.
The core data type of Propellor, this represents a property that the system should have, and an action to ensure it has the property.
Property | |
|
data RevertableProperty Source
A property that can be reverted.
class ActionResult a where Source
Results of actions, with color.
getActionResult :: a -> (String, ColorIntensity, Color) Source
data PrivDataField Source
Note that removing or changing field names will break the serialized privdata files, so don't do that! It's fine to add new fields.
A context in which a PrivDataField is used.
Often this will be a domain name. For example, Context "www.example.com" could be used for the SSL cert for the web server serving that domain. Multiple hosts might use that privdata.
This appears in serlialized privdata files.
Use when a PrivDataField is not dependent on any paricular context.
data SshKeyType Source
An action that Propellor runs at the end, after trying to satisfy all properties. It's passed the combined Result of the entire Propellor run.
module Propellor.Types.OS
module Propellor.Types.Dns