on master help sign in
src/Docker/Client/Api.hs+4−4
since splitsnapshots
unifiedsplit
@@ -34,7 +34,7 @@ import Control.Monad.Reader (ask, lift)
34import Data.Aeson (FromJSON, eitherDecode')
34import Data.Aeson (FromJSON, eitherDecode')
35import qualified Data.ByteString as BS
35import qualified Data.ByteString as BS
36import qualified Data.ByteString.Lazy as BSL
36import qualified Data.ByteString.Lazy as BSL
37−import Data.Conduit (Sink, (.|))
37+import Data.Conduit (Sink)
38import qualified Data.Conduit.Binary as Conduit
38import qualified Data.Conduit.Binary as Conduit
39import qualified Data.Text as T
39import qualified Data.Text as T
40import qualified Data.Text as Text
40import qualified Data.Text as Text
@@ -172,7 +172,7 @@ inspectContainer cid = requestHelper GET (InspectContainerEndpoint cid) >>= pars
172-- __NOTE__: It's recommended to use one of the other 'LogDriverType's available (like
172-- __NOTE__: It's recommended to use one of the other 'LogDriverType's available (like
173-- syslog) for creating your containers.
173-- syslog) for creating your containers.
174getContainerLogs :: forall m. (MonadIO m, MonadMask m) => LogOpts -> ContainerID -> DockerT m (Either DockerError BSL.ByteString)
174getContainerLogs :: forall m. (MonadIO m, MonadMask m) => LogOpts -> ContainerID -> DockerT m (Either DockerError BSL.ByteString)
175−getContainerLogs logopts cid = getContainerLogsStream logopts cid Conduit.sinkLbs
175+getContainerLogs logopts cid = requestHelper GET (ContainerLogsEndpoint logopts False cid)
176
176
177{-| Continuously gets the container's logs as a stream. Uses conduit.
177{-| Continuously gets the container's logs as a stream. Uses conduit.
178
178
@@ -189,8 +189,7 @@ __Example__:
189
189
190-}
190-}
191getContainerLogsStream :: forall m b . (MonadIO m, MonadMask m) => LogOpts -> ContainerID -> Sink BS.ByteString m b -> DockerT m (Either DockerError b)
191getContainerLogsStream :: forall m b . (MonadIO m, MonadMask m) => LogOpts -> ContainerID -> Sink BS.ByteString m b -> DockerT m (Either DockerError b)
192−getContainerLogsStream logopts cid sink =
193− requestHelper' GET (ContainerLogsEndpoint logopts True cid) (processLog .| sink)
192+getContainerLogsStream logopts cid = requestHelper' GET (ContainerLogsEndpoint logopts True cid)
194-- JP: Should the second (follow) argument be True? XXX
193-- JP: Should the second (follow) argument be True? XXX
195
194
196-- | Build an Image from a Dockerfile
195-- | Build an Image from a Dockerfile
@@ -225,3 +224,4 @@ createNetwork opts = requestHelper POST (CreateNetworkEndpoint opts) >>= parseR
225-- | Removes a network
224-- | Removes a network
226removeNetwork :: forall m. (MonadIO m, MonadMask m) => NetworkID -> DockerT m (Either DockerError ())
225removeNetwork :: forall m. (MonadIO m, MonadMask m) => NetworkID -> DockerT m (Either DockerError ())
227removeNetwork nid = requestUnit DELETE $ RemoveNetworkEndpoint nid
226removeNetwork nid = requestUnit DELETE $ RemoveNetworkEndpoint nid
227+
src/Docker/Client/Internal.hs+1
@@ -105,3 +105,4 @@ getEndpointRequestBody (RemoveNetworkEndpoint _) = Nothing
105getEndpointContentType :: Endpoint -> BSC.ByteString
105getEndpointContentType :: Endpoint -> BSC.ByteString
106getEndpointContentType (BuildImageEndpoint _ _) = BSC.pack "application/tar"
106getEndpointContentType (BuildImageEndpoint _ _) = BSC.pack "application/tar"
107getEndpointContentType _ = BSC.pack "application/json; charset=utf-8"
107getEndpointContentType _ = BSC.pack "application/json; charset=utf-8"
108+
src/Docker/Client/Utils.hs−17
@@ -9,11 +9,7 @@ import qualified Codec.Archive.Tar as Tar
9import qualified Codec.Compression.GZip as GZip
9import qualified Codec.Compression.GZip as GZip
10import Control.Monad (filterM, liftM, unless)
10import Control.Monad (filterM, liftM, unless)
11import Control.Monad.IO.Class
11import Control.Monad.IO.Class
12−import Data.Bits
13import qualified Data.ByteString.Lazy as BS
12import qualified Data.ByteString.Lazy as BS
14−import qualified Data.ByteString as BSS
15−import Data.Conduit (ConduitM, yield)
16−import qualified Data.Conduit.Binary as CB
17import Data.Monoid ((<>))
13import Data.Monoid ((<>))
18import qualified Data.Text as T
14import qualified Data.Text as T
19import qualified Data.Text.IO as TIO
15import qualified Data.Text.IO as TIO
@@ -133,16 +129,3 @@ exclusionCheck f ps = any id (map (\(ExclusionPattern p) -> f ~~ T.unpack p) ps)
133inclusionCheck :: FilePath -> [InclusionPattern] -> Bool
129inclusionCheck :: FilePath -> [InclusionPattern] -> Bool
134inclusionCheck f ps = any id (map (\(InclusionPattern p) -> f ~~ T.unpack p) ps)
130inclusionCheck f ps = any id (map (\(InclusionPattern p) -> f ~~ T.unpack p) ps)
135
131
136−
137−processLog :: Monad m => ConduitM BSS.ByteString BSS.ByteString m ()
138−processLog = do
139− -- metadata (is the next string stdout or stderr)
140− _ <- CB.take 4
141− len' <- CB.take 4
142− let len = BS.foldl (\i w -> shiftL i 8 .|. fromIntegral w) 0 len'
143− case len of
144− 0 -> return ()
145− n -> do
146− chunk <- CB.take n
147− yield . BS.toStrict $ chunk
148− processLog