propellor spin
This commit is contained in:
parent
d1dd4f44c4
commit
2be1255b89
|
@ -314,7 +314,7 @@ runningContainer :: ContainerId -> Image -> [RunParam] -> Property
|
|||
runningContainer cid@(ContainerId hn cn) image runps = containerDesc cid $ property "running" $ do
|
||||
l <- liftIO $ listContainers RunningContainers
|
||||
if cid `elem` l
|
||||
then checkident
|
||||
then checkident =<< liftIO (getrunningident simpleShClient)
|
||||
else ifM (liftIO $ elem cid <$> listContainers AllContainers)
|
||||
( do
|
||||
-- The container exists, but is not
|
||||
|
@ -322,7 +322,10 @@ runningContainer cid@(ContainerId hn cn) image runps = containerDesc cid $ prope
|
|||
-- changed, but we cannot tell without
|
||||
-- starting it up first.
|
||||
void $ liftIO $ startContainer cid
|
||||
checkident
|
||||
-- It can take a while for the container to
|
||||
-- start up enough to get its ident, so
|
||||
-- retry for up to 60 seconds.
|
||||
checkident =<< liftIO (getrunningident (simpleShClientRetry 60))
|
||||
, go image
|
||||
)
|
||||
where
|
||||
|
@ -331,11 +334,9 @@ runningContainer cid@(ContainerId hn cn) image runps = containerDesc cid $ prope
|
|||
-- Check if the ident has changed; if so the
|
||||
-- parameters of the container differ and it must
|
||||
-- be restarted.
|
||||
checkident = do
|
||||
runningident <- liftIO $ getrunningident
|
||||
if runningident == Just ident
|
||||
then noChange
|
||||
else do
|
||||
checkident runningident
|
||||
| runningident == Just ident = noChange
|
||||
| otherwise = do
|
||||
void $ liftIO $ stopContainer cid
|
||||
restartcontainer
|
||||
|
||||
|
@ -344,8 +345,7 @@ runningContainer cid@(ContainerId hn cn) image runps = containerDesc cid $ prope
|
|||
void $ liftIO $ removeContainer cid
|
||||
go oldimage
|
||||
|
||||
getrunningident :: IO (Maybe ContainerIdent)
|
||||
getrunningident = simpleShClient (namedPipe cid) "cat" [propellorIdent] $ \rs -> do
|
||||
getrunningident shclient = shclient (namedPipe cid) "cat" [propellorIdent] $ \rs -> do
|
||||
let !v = extractident rs
|
||||
return v
|
||||
|
||||
|
|
Loading…
Reference in New Issue