on master help sign in
Merge branch 'master' of github.com:denibertovic/docker-hs
0bd6632Deni Bertovic
Network/Docker.hs+3−3
@@ -5,7 +5,7 @@ module Network.Docker where
5import Control.Applicative ((<$>), (<*>))
5import Control.Applicative ((<$>), (<*>))
6import Control.Lens
6import Control.Lens
7import Data.Aeson (FromJSON, ToJSON, decode, eitherDecode,
7import Data.Aeson (FromJSON, ToJSON, decode, eitherDecode,
8− encode)
8+ toJSON)
9import Data.Aeson.Lens (key, _String)
9import Data.Aeson.Lens (key, _String)
10import Data.Aeson.TH
10import Data.Aeson.TH
11import qualified Data.ByteString.Lazy as L
11import qualified Data.ByteString.Lazy as L
@@ -44,10 +44,10 @@ _dockerGetQuery :: Endpoint -> DockerClientOpts -> IO(Response L.ByteString)
44_dockerGetQuery endpoint clientOpts = get (fullUrl clientOpts endpoint)
44_dockerGetQuery endpoint clientOpts = get (fullUrl clientOpts endpoint)
45
45
46_dockerPostQuery :: ToJSON a => Endpoint -> DockerClientOpts -> a -> IO (Response L.ByteString)
46_dockerPostQuery :: ToJSON a => Endpoint -> DockerClientOpts -> a -> IO (Response L.ByteString)
47−_dockerPostQuery endpoint clientOpts postObject = post (fullUrl clientOpts endpoint) (encode postObject)
47+_dockerPostQuery endpoint clientOpts postObject = post (fullUrl clientOpts endpoint) (toJSON postObject)
48
48
49emptyPost = "" :: String
49emptyPost = "" :: String
50−_dockerEmptyPostQuery endpoint clientOpts = post (fullUrl clientOpts endpoint) (encode emptyPost)
50+_dockerEmptyPostQuery endpoint clientOpts = post (fullUrl clientOpts endpoint) (toJSON emptyPost)
51
51
52getDockerVersion :: DockerClientOpts -> IO (Maybe DockerVersion)
52getDockerVersion :: DockerClientOpts -> IO (Maybe DockerVersion)
53getDockerVersion = decodeResponse . _dockerGetQuery "/version"
53getDockerVersion = decodeResponse . _dockerGetQuery "/version"
Network/Docker/Types.hs+2−2
@@ -156,7 +156,7 @@ data StartContainerOpts = StartContainerOpts
156 { _Binds :: [T.Text]
156 { _Binds :: [T.Text]
157 , _Links :: [T.Text]
157 , _Links :: [T.Text]
158 , _LxcConf :: [(T.Text, T.Text)]
158 , _LxcConf :: [(T.Text, T.Text)]
159− , _PortBindings :: [(T.Text, [(T.Text, T.Text)])]
159+ , _PortBindings :: [((Int,T.Text),Int)]
160 , _PublishAllPorts :: Bool
160 , _PublishAllPorts :: Bool
161 , _Privileged :: Bool
161 , _Privileged :: Bool
162 , _Dns :: [T.Text]
162 , _Dns :: [T.Text]
@@ -179,7 +179,7 @@ instance ToJSON StartContainerOpts where
179 [ "Binds" .= _Binds
179 [ "Binds" .= _Binds
180 , "Links" .= _Links
180 , "Links" .= _Links
181 , "LxcConf" .= _LxcConf
181 , "LxcConf" .= _LxcConf
182− , "PortBindings" .= _PortBindings
182+ , "PortBindings" .= object (map (\((h,p),c)->T.concat [T.pack (show h),"/",p] .= [object ["HostPort" .= show c]]) _PortBindings)
183 , "PublishAllPorts" .= _PublishAllPorts
183 , "PublishAllPorts" .= _PublishAllPorts
184 , "Privileged" .= _Privileged
184 , "Privileged" .= _Privileged
185 , "Dns" .= _Dns
185 , "Dns" .= _Dns
docker.cabal+1−1
@@ -2,7 +2,7 @@
2-- documentation, see http://haskell.org/cabal/users-guide/
2-- documentation, see http://haskell.org/cabal/users-guide/
3
3
4name: docker
4name: docker
5−version: 0.1.0.1
5+version: 0.2.0.0
6synopsis: Haskell wrapper for Docker Remote API
6synopsis: Haskell wrapper for Docker Remote API
7-- description:
7-- description:
8homepage: https://github.com/denibertovic/docker-hs
8homepage: https://github.com/denibertovic/docker-hs