Safe Haskell | None |
---|---|
Language | Haskell98 |
Propellor.Types
- 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.
Constructors
Info | |
Fields
|
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.
Constructors
Property | |
Fields
|
data RevertableProperty Source
A property that can be reverted.
Constructors
RevertableProperty Property Property |
Instances
Methods
describe :: p -> Desc -> p Source
Sets description.
toProp :: p -> Property Source
requires :: p -> Property -> p Source
Indicates that the first property can only be satisfied once the second one is.
Instances
Constructors
NoChange | |
MadeChange | |
FailedChange |
class ActionResult a where Source
Results of actions, with color.
Methods
getActionResult :: a -> (String, ColorIntensity, Color) Source
Instances
Constructors
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.
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.
Instances
module Propellor.Types.OS
module Propellor.Types.Dns