@@ -7,9 +7,9 @@ module Network.Docker where
77import Control.Applicative ((<$>), (<*>))
88import Control.Lens
99import Control.Monad.Free
10−import Data.Aeson (FromJSON, ToJSON, Value, decode,
11− eitherDecode, toJSON)
12−import Data.Aeson.Lens (key, _String)
10+import Data.Aeson (FromJSON, ToJSON, Value, decode,
11+ eitherDecode, toJSON)
12+import Data.Aeson.Lens (key, _String)
1313import Data.Aeson.TH
1414import qualified Data.ByteString.Lazy as L
1515import Data.Char
@@ -28,7 +28,6 @@ import Text.Printf (printf)
2828
2929emptyPost = "" :: String
3030
31−<<<<<<< b865ecd79f55927c7265efcacc45692df148aa4a
3231defaultClientOpts :: DockerClientOpts
3332defaultClientOpts = DockerClientOpts
3433 { apiVersion = "v1.12"
@@ -51,21 +50,6 @@ getElemFromResponse k r = (^? responseBody . key k . _String) r
5150
5251getResponseStatusCode r = (^. responseStatus) r
5352
54−getEndpoint :: Endpoint -> String
55−getEndpoint VersionEndpoint = "/version"
56−getEndpoint ListContainersEndpoint = "/containers/json"
57−getEndpoint ListImagesEndpoint = "/images/json"
58−getEndpoint CreateContainerEndpoint = "/containers/create"
59−getEndpoint (StartContainerEndpoint cid) = printf "/containers/%s/start" cid
60−getEndpoint (StopContainerEndpoint cid) = printf "/containers/%s/stop" cid
61−getEndpoint (KillContainerEndpoint cid) = printf "/containers/%s/kill" cid
62−getEndpoint (RestartContainerEndpoint cid) = printf "/containers/%s/restart" cid
63−getEndpoint (PauseContainerEndpoint cid) = printf "/containers/%s/pause" cid
64−getEndpoint (UnpauseContainerEndpoint cid) = printf "/containers/%s/unpause" cid
65−getEndpoint (ContainerLogsEndpoint cid) = printf "/containers/%s/logs" cid
66−
67−fullUrl :: DockerClientOpts -> Endpoint -> URL
68−fullUrl clientOpts endpoint = constructUrl (baseUrl clientOpts) (apiVersion clientOpts) (getEndpoint endpoint)
6953
7054setupSSLCtx :: SSLOptions -> IO SSLContext
7155setupSSLCtx (SSLOptions key cert) = do
@@ -105,8 +89,6 @@ _dockerEmptyPostQuery :: DockerClientOpts -> Endpoint -> HttpRequestM Endpoint
10589_dockerEmptyPostQuery clientOpts@DockerClientOpts{ssl = NoSSL} endpoint = Free (Post (fullUrl clientOpts endpoint) (toJSON emptyPost))
10690_dockerEmptyPostQuery clientOpts@DockerClientOpts{ssl = SSL sslOpts} endpoint = Free (PostSSL sslOpts (fullUrl clientOpts endpoint) (toJSON emptyPost))
10791
108−getDockerVersionM :: DockerClientOpts -> HttpRequestM Endpoint
109−getDockerVersionM clientOpts = _dockerGetQuery clientOpts VersionEndpoint
11092
11193_dockerEmptyDeleteQuery endpoint clientOpts = delete (fullUrl clientOpts endpoint)
11294
@@ -125,10 +107,6 @@ getDockerVersion clientOpts = decodeResponse <$> run (getDockerVersionM clientOp
125107-- startContainer :: DockerClientOpts -> String -> StartContainerOpts -> IO(Status)
126108-- startContainer clientOpts containerId startOpts = (^. responseStatus) <$> _dockerPostQuery (printf "/containers/%s/start" containerId) clientOpts startOpts
127109
128−stopContainerM :: DockerClientOpts -> Endpoint -> HttpRequestM Endpoint
129−stopContainerM clientOpts e = _dockerEmptyPostQuery clientOpts e
130−
131−
132110stopContainer :: DockerClientOpts -> String -> IO (Status)
133111stopContainer clientOpts cid = (^. responseStatus) <$> run (stopContainerM clientOpts (StopContainerEndpoint cid))
134112