split out info types
This commit is contained in:
parent
04ea987075
commit
6c92f1034f
|
@ -113,8 +113,10 @@ Library
|
||||||
Propellor.Engine
|
Propellor.Engine
|
||||||
Propellor.Exception
|
Propellor.Exception
|
||||||
Propellor.Types
|
Propellor.Types
|
||||||
Propellor.Types.OS
|
Propellor.Types.Chroot
|
||||||
|
Propellor.Types.Docker
|
||||||
Propellor.Types.Dns
|
Propellor.Types.Dns
|
||||||
|
Propellor.Types.OS
|
||||||
Propellor.Types.PrivData
|
Propellor.Types.PrivData
|
||||||
Other-Modules:
|
Other-Modules:
|
||||||
Propellor.Git
|
Propellor.Git
|
||||||
|
|
|
@ -10,6 +10,7 @@ module Propellor.Property.Chroot (
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Propellor
|
import Propellor
|
||||||
|
import Propellor.Types.Chroot
|
||||||
import qualified Propellor.Property.Debootstrap as Debootstrap
|
import qualified Propellor.Property.Debootstrap as Debootstrap
|
||||||
import qualified Propellor.Property.Systemd.Core as Systemd
|
import qualified Propellor.Property.Systemd.Core as Systemd
|
||||||
import qualified Propellor.Shim as Shim
|
import qualified Propellor.Shim as Shim
|
||||||
|
|
|
@ -39,6 +39,7 @@ module Propellor.Property.Docker (
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Propellor hiding (init)
|
import Propellor hiding (init)
|
||||||
|
import Propellor.Types.Docker
|
||||||
import qualified Propellor.Property.File as File
|
import qualified Propellor.Property.File as File
|
||||||
import qualified Propellor.Property.Apt as Apt
|
import qualified Propellor.Property.Apt as Apt
|
||||||
import qualified Propellor.Shim as Shim
|
import qualified Propellor.Shim as Shim
|
||||||
|
@ -523,7 +524,7 @@ genProp :: String -> (HostName -> RunParam) -> Property
|
||||||
genProp field mkval = pureInfoProperty field $ dockerInfo $
|
genProp field mkval = pureInfoProperty field $ dockerInfo $
|
||||||
mempty { _dockerRunParams = [DockerRunParam (\hn -> "--"++field++"=" ++ mkval hn)] }
|
mempty { _dockerRunParams = [DockerRunParam (\hn -> "--"++field++"=" ++ mkval hn)] }
|
||||||
|
|
||||||
dockerInfo :: DockerInfo -> Info
|
dockerInfo :: DockerInfo Host -> Info
|
||||||
dockerInfo i = mempty { _dockerinfo = i }
|
dockerInfo i = mempty { _dockerinfo = i }
|
||||||
|
|
||||||
-- | The ContainerIdent of a container is written to
|
-- | The ContainerIdent of a container is written to
|
||||||
|
|
|
@ -23,9 +23,6 @@ module Propellor.Types
|
||||||
, SshKeyType(..)
|
, SshKeyType(..)
|
||||||
, Val(..)
|
, Val(..)
|
||||||
, fromVal
|
, fromVal
|
||||||
, DockerInfo(..)
|
|
||||||
, DockerRunParam(..)
|
|
||||||
, ChrootInfo(..)
|
|
||||||
, module Propellor.Types.OS
|
, module Propellor.Types.OS
|
||||||
, module Propellor.Types.Dns
|
, module Propellor.Types.Dns
|
||||||
) where
|
) where
|
||||||
|
@ -37,11 +34,12 @@ import System.Posix.Types
|
||||||
import "mtl" Control.Monad.Reader
|
import "mtl" Control.Monad.Reader
|
||||||
import "MonadCatchIO-transformers" Control.Monad.CatchIO
|
import "MonadCatchIO-transformers" Control.Monad.CatchIO
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import qualified Data.Map as M
|
|
||||||
import qualified Propellor.Types.Dns as Dns
|
import qualified Propellor.Types.Dns as Dns
|
||||||
|
|
||||||
import Propellor.Types.OS
|
import Propellor.Types.OS
|
||||||
|
import Propellor.Types.Chroot
|
||||||
import Propellor.Types.Dns
|
import Propellor.Types.Dns
|
||||||
|
import Propellor.Types.Docker
|
||||||
import Propellor.Types.PrivData
|
import Propellor.Types.PrivData
|
||||||
|
|
||||||
-- | Everything Propellor knows about a system: Its hostname,
|
-- | Everything Propellor knows about a system: Its hostname,
|
||||||
|
@ -167,8 +165,8 @@ data Info = Info
|
||||||
, _aliases :: S.Set HostName
|
, _aliases :: S.Set HostName
|
||||||
, _dns :: S.Set Dns.Record
|
, _dns :: S.Set Dns.Record
|
||||||
, _namedconf :: Dns.NamedConfMap
|
, _namedconf :: Dns.NamedConfMap
|
||||||
, _dockerinfo :: DockerInfo
|
, _dockerinfo :: DockerInfo Host
|
||||||
, _chrootinfo :: ChrootInfo
|
, _chrootinfo :: ChrootInfo Host
|
||||||
}
|
}
|
||||||
deriving (Show)
|
deriving (Show)
|
||||||
|
|
||||||
|
@ -197,32 +195,3 @@ instance Monoid (Val a) where
|
||||||
fromVal :: Val a -> Maybe a
|
fromVal :: Val a -> Maybe a
|
||||||
fromVal (Val a) = Just a
|
fromVal (Val a) = Just a
|
||||||
fromVal NoVal = Nothing
|
fromVal NoVal = Nothing
|
||||||
|
|
||||||
data DockerInfo = DockerInfo
|
|
||||||
{ _dockerRunParams :: [DockerRunParam]
|
|
||||||
, _dockerContainers :: M.Map String Host
|
|
||||||
}
|
|
||||||
deriving (Show)
|
|
||||||
|
|
||||||
instance Monoid DockerInfo where
|
|
||||||
mempty = DockerInfo mempty mempty
|
|
||||||
mappend old new = DockerInfo
|
|
||||||
{ _dockerRunParams = _dockerRunParams old <> _dockerRunParams new
|
|
||||||
, _dockerContainers = M.union (_dockerContainers old) (_dockerContainers new)
|
|
||||||
}
|
|
||||||
|
|
||||||
newtype DockerRunParam = DockerRunParam (HostName -> String)
|
|
||||||
|
|
||||||
instance Show DockerRunParam where
|
|
||||||
show (DockerRunParam a) = a ""
|
|
||||||
|
|
||||||
data ChrootInfo = ChrootInfo
|
|
||||||
{ _chroots :: M.Map FilePath Host
|
|
||||||
}
|
|
||||||
deriving (Show)
|
|
||||||
|
|
||||||
instance Monoid ChrootInfo where
|
|
||||||
mempty = ChrootInfo mempty
|
|
||||||
mappend old new = ChrootInfo
|
|
||||||
{ _chroots = M.union (_chroots old) (_chroots new)
|
|
||||||
}
|
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
module Propellor.Types.Chroot where
|
||||||
|
|
||||||
|
import Data.Monoid
|
||||||
|
import qualified Data.Map as M
|
||||||
|
|
||||||
|
data ChrootInfo h = ChrootInfo
|
||||||
|
{ _chroots :: M.Map FilePath h
|
||||||
|
}
|
||||||
|
deriving (Show)
|
||||||
|
|
||||||
|
instance Monoid (ChrootInfo h) where
|
||||||
|
mempty = ChrootInfo mempty
|
||||||
|
mappend old new = ChrootInfo
|
||||||
|
{ _chroots = M.union (_chroots old) (_chroots new)
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
module Propellor.Types.Docker where
|
||||||
|
|
||||||
|
import Propellor.Types.OS
|
||||||
|
|
||||||
|
import Data.Monoid
|
||||||
|
import qualified Data.Map as M
|
||||||
|
|
||||||
|
data DockerInfo h = DockerInfo
|
||||||
|
{ _dockerRunParams :: [DockerRunParam]
|
||||||
|
, _dockerContainers :: M.Map String h
|
||||||
|
}
|
||||||
|
deriving (Show)
|
||||||
|
|
||||||
|
instance Monoid (DockerInfo h) where
|
||||||
|
mempty = DockerInfo mempty mempty
|
||||||
|
mappend old new = DockerInfo
|
||||||
|
{ _dockerRunParams = _dockerRunParams old <> _dockerRunParams new
|
||||||
|
, _dockerContainers = M.union (_dockerContainers old) (_dockerContainers new)
|
||||||
|
}
|
||||||
|
|
||||||
|
newtype DockerRunParam = DockerRunParam (HostName -> String)
|
||||||
|
|
||||||
|
instance Show DockerRunParam where
|
||||||
|
show (DockerRunParam a) = a ""
|
Loading…
Reference in New Issue