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