make removeKey throw exceptions
This commit is contained in:
parent
b5ee97f32a
commit
4be94c67c7
28 changed files with 134 additions and 111 deletions
|
@ -131,7 +131,11 @@ performRemote key afile numcopies remote = do
|
|||
, "proof:"
|
||||
, show proof
|
||||
]
|
||||
ok <- Remote.removeKey remote key
|
||||
ok <- tryNonAsync (Remote.removeKey remote key) >>= \case
|
||||
Right () -> return True
|
||||
Left e -> do
|
||||
warning (show e)
|
||||
return False
|
||||
next $ cleanupRemote key remote ok
|
||||
, stop
|
||||
)
|
||||
|
|
|
@ -539,14 +539,14 @@ badContentRemote remote localcopy key = do
|
|||
)
|
||||
)
|
||||
|
||||
dropped <- Remote.removeKey remote key
|
||||
when dropped $
|
||||
dropped <- tryNonAsync (Remote.removeKey remote key)
|
||||
when (isRight dropped) $
|
||||
Remote.logStatus remote key InfoMissing
|
||||
return $ case (movedbad, dropped) of
|
||||
(True, True) -> "moved from " ++ Remote.name remote ++
|
||||
(True, Right ()) -> "moved from " ++ Remote.name remote ++
|
||||
" to " ++ destbad
|
||||
(False, True) -> "dropped from " ++ Remote.name remote
|
||||
(_, False) -> "failed to drop from" ++ Remote.name remote
|
||||
(False, Right ()) -> "dropped from " ++ Remote.name remote
|
||||
(_, Left e) -> "failed to drop from" ++ Remote.name remote ++ ": " ++ show e
|
||||
|
||||
runFsck :: Incremental -> ActionItem -> Key -> Annex Bool -> CommandStart
|
||||
runFsck inc ai key a = stopUnless (needFsck inc key) $
|
||||
|
|
|
@ -232,7 +232,11 @@ fromPerform src removewhen key afile = do
|
|||
, show src
|
||||
, "(" ++ reason ++ ")"
|
||||
]
|
||||
ok <- Remote.removeKey src key
|
||||
ok <- tryNonAsync (Remote.removeKey src key) >>= \case
|
||||
Right () -> return True
|
||||
Left e -> do
|
||||
warning (show e)
|
||||
return False
|
||||
next $ Command.Drop.cleanupRemote key src ok
|
||||
faileddropremote = do
|
||||
showLongNote "(Use --force to override this check, or adjust numcopies.)"
|
||||
|
|
|
@ -214,7 +214,7 @@ mkTestTrees runannex mkrs mkunavailr mkexportr mkks = concat $
|
|||
test :: RunAnnex -> Annex (Maybe Remote) -> Annex Key -> [TestTree]
|
||||
test runannex mkr mkk =
|
||||
[ check "removeKey when not present" $ \r k ->
|
||||
whenwritable r $ remove r k
|
||||
whenwritable r $ isRight <$> tryNonAsync (remove r k)
|
||||
, check ("present " ++ show False) $ \r k ->
|
||||
whenwritable r $ present r k False
|
||||
, check "storeKey" $ \r k ->
|
||||
|
@ -252,7 +252,7 @@ test runannex mkr mkk =
|
|||
get r k
|
||||
, check "fsck downloaded object" fsck
|
||||
, check "removeKey when present" $ \r k ->
|
||||
whenwritable r $ remove r k
|
||||
whenwritable r $ isRight <$> tryNonAsync (remove r k)
|
||||
, check ("present " ++ show False) $ \r k ->
|
||||
whenwritable r $ present r k False
|
||||
]
|
||||
|
@ -341,7 +341,7 @@ testExportTree runannex mkr mkk1 mkk2 =
|
|||
|
||||
testUnavailable :: RunAnnex -> Annex (Maybe Remote) -> Annex Key -> [TestTree]
|
||||
testUnavailable runannex mkr mkk =
|
||||
[ check (== Right False) "removeKey" $ \r k ->
|
||||
[ check isLeft "removeKey" $ \r k ->
|
||||
Remote.removeKey r k
|
||||
, check isLeft "storeKey" $ \r k ->
|
||||
Remote.storeKey r k (AssociatedFile Nothing) nullMeterUpdate
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue