on 215e823 help sign in
2 files changed+14−2
since splitsnapshots
unifiedsplit
src/Docker/Client/Types.hs+6−2 tests/tests.hs+8
src/Docker/Client/Types.hs+6−2
@@ -520,7 +520,7 @@ data Container = Container
520520
521521instance FromJSON Container where
522522 parseJSON (JSON.Object v) =
523− Container <$> (v .: "Id")
523+ Container <$> (v .: "Id" >>= parseContainerID)
524524 <*> (v .: "Names")
525525 <*> (v .: "Image")
526526 <*> (v .: "ImageID")
@@ -535,17 +535,21 @@ instance FromJSON Container where
535535 parseNetworks (JSON.Object v) =
536536 (v .: "Networks") >>= parseJSON
537537 parseNetworks _ = fail "Container NetworkSettings: Not a JSON object."
538+ parseContainerID v = case (toContainerID v) of
539+ Nothing -> fail "bla"
540+ Just i -> return i
538541
539542 parseJSON _ = fail "Container: Not a JSON object."
540543
541544-- | Represents the status of the container life cycle.
542−data Status = Created | Restarting | Running | Paused | Exited | Dead
545+data Status = Created | Restarting | Running | Removing | Paused | Exited | Dead
543546 deriving (Eq, Show, Generic)
544547
545548instance FromJSON Status where
546549 parseJSON (JSON.String "running") = return Running
547550 parseJSON (JSON.String "created") = return Created -- Note: Guessing on the string values of these.
548551 parseJSON (JSON.String "restarting") = return Restarting
552+ parseJSON (JSON.String "removing") = return Removing
549553 parseJSON (JSON.String "paused") = return Paused
550554 parseJSON (JSON.String "exited") = return Exited
551555 parseJSON (JSON.String "dead") = return Dead
tests/tests.hs+8
@@ -69,6 +69,13 @@ testFindImage =
6969 where
7070 imageFullName = testImageName <> ":latest"
7171
72+testListContainers :: IO ()
73+testListContainers =
74+ runDocker $
75+ do res <- listContainers defaultListOpts
76+ liftIO $ print res
77+ lift $ assert $ isRight res
78+
7279testBuildFromDockerfile :: IO ()
7380testBuildFromDockerfile = do
7481 cur <- getCurrentDirectory
@@ -170,6 +177,7 @@ integrationTests =
170177 [ testCase "Get docker version" testDockerVersion
171178 , testCase "Build image from Dockerfile" testBuildFromDockerfile
172179 , testCase "Find image by name" testFindImage
180+ , testCase "List containers" testListContainers
173181 , testCase "Run a dummy container and read its log" testRunAndReadLog
174182 , testCase "Try to stop a container that doesn't exist" testStopNonexisting
175183 ]