on master help sign in
add 'docker rm' call, with all options
9846c82Sebastian Meric de Bellefon
Network/Docker.hs+9
@@ -49,6 +49,8 @@ _dockerPostQuery endpoint clientOpts postObject = post (fullUrl clientOpts endpo
49emptyPost = "" :: String
49emptyPost = "" :: String
50_dockerEmptyPostQuery endpoint clientOpts = post (fullUrl clientOpts endpoint) (toJSON emptyPost)
50_dockerEmptyPostQuery endpoint clientOpts = post (fullUrl clientOpts endpoint) (toJSON emptyPost)
51
51
52+_dockerEmptyDeleteQuery endpoint clientOpts = delete (fullUrl clientOpts endpoint)
53+
52getDockerVersion :: DockerClientOpts -> IO (Maybe DockerVersion)
54getDockerVersion :: DockerClientOpts -> IO (Maybe DockerVersion)
53getDockerVersion = decodeResponse . _dockerGetQuery "/version"
55getDockerVersion = decodeResponse . _dockerGetQuery "/version"
54
56
@@ -79,6 +81,13 @@ pauseContainer clientOpts containerId = (^. responseStatus) <$> _dockerEmptyPos
79unpauseContainer :: DockerClientOpts -> String -> IO (Status)
81unpauseContainer :: DockerClientOpts -> String -> IO (Status)
80unpauseContainer clientOpts containerId = (^. responseStatus) <$> _dockerEmptyPostQuery (printf "/containers/%s/unpause" containerId) clientOpts
82unpauseContainer clientOpts containerId = (^. responseStatus) <$> _dockerEmptyPostQuery (printf "/containers/%s/unpause" containerId) clientOpts
81
83
84+deleteContainer :: DockerClientOpts -> String -> IO (Status)
85+deleteContainer = deleteContainerWithOpts defaultDeleteOpts
86+
87+deleteContainerWithOpts :: DeleteOpts -> DockerClientOpts -> String -> IO (Status)
88+deleteContainerWithOpts (DeleteOpts removeVolumes force) clientOpts containerId = (^. responseStatus) <$> _dockerEmptyDeleteQuery req clientOpts
89+ where req = printf "/containers/%s?v=%s;force=%s" containerId (show removeVolumes) (show force)
90+
82getContainerLogsStream :: DockerClientOpts -> String -> IO ()
91getContainerLogsStream :: DockerClientOpts -> String -> IO ()
83getContainerLogsStream clientOpts containerId = do
92getContainerLogsStream clientOpts containerId = do
84 req <- PH.parseUrl (fullUrl clientOpts url)
93 req <- PH.parseUrl (fullUrl clientOpts url)
Network/Docker/Types.hs+8
@@ -6,6 +6,7 @@
6
6
7module Network.Docker.Types where
7module Network.Docker.Types where
8
8
9+import Prelude hiding(id)
9import Control.Applicative
10import Control.Applicative
10import Control.Lens.TH
11import Control.Lens.TH
11import Control.Lens.TH
12import Control.Lens.TH
@@ -68,6 +69,13 @@ data PortMap = PortMap
68 , _type :: PortType
69 , _type :: PortType
69 } deriving (Show, Eq)
70 } deriving (Show, Eq)
70
71
72+data DeleteOpts = DeleteOpts
73+ { removeVolumes :: Bool
74+ , force :: Bool
75+ }
76+
77+defaultDeleteOpts = DeleteOpts False False
78+
71
79
72data DockerContainer = DockerContainer
80data DockerContainer = DockerContainer
73 { _containerId :: ResourceId
81 { _containerId :: ResourceId