add VerifiedCopy data type
There should be no behavior changes in this commit, it just adds a more expressive data type and adjusts code that had been passing around a [UUID] or sometimes a Maybe Remote to instead use [VerifiedCopy]. Although, since some functions were taking two different [UUID] lists, there's some potential for me to have gotten it horribly wrong.
This commit is contained in:
parent
b1abe59193
commit
90f7c4b6a2
16 changed files with 107 additions and 60 deletions
|
@ -15,11 +15,12 @@ import Assistant.DaemonStatus
|
|||
import Annex.Drop (handleDropsFrom, Reason)
|
||||
import Logs.Location
|
||||
import CmdLine.Action
|
||||
import Types.NumCopies
|
||||
|
||||
{- Drop from local and/or remote when allowed by the preferred content and
|
||||
- numcopies settings. -}
|
||||
handleDrops :: Reason -> Bool -> Key -> AssociatedFile -> Maybe Remote -> Assistant ()
|
||||
handleDrops reason fromhere key f knownpresentremote = do
|
||||
handleDrops :: Reason -> Bool -> Key -> AssociatedFile -> [VerifiedCopy] -> Assistant ()
|
||||
handleDrops reason fromhere key f preverified = do
|
||||
syncrs <- syncDataRemotes <$> getDaemonStatus
|
||||
locs <- liftAnnex $ loggedLocations key
|
||||
liftAnnex $ handleDropsFrom locs syncrs reason fromhere key f knownpresentremote callCommandAction
|
||||
liftAnnex $ handleDropsFrom locs syncrs reason fromhere key f preverified callCommandAction
|
||||
|
|
|
@ -479,7 +479,7 @@ checkChangeContent change@(Change { changeInfo = i }) =
|
|||
void $ if present
|
||||
then queueTransfers "new file created" Next k (Just f) Upload
|
||||
else queueTransfers "new or renamed file wanted" Next k (Just f) Download
|
||||
handleDrops "file renamed" present k (Just f) Nothing
|
||||
handleDrops "file renamed" present k (Just f) []
|
||||
where
|
||||
f = changeFile change
|
||||
checkChangeContent _ = noop
|
||||
|
|
|
@ -191,7 +191,7 @@ dailyCheck urlrenderer = do
|
|||
void $ liftAnnex $ setUnusedKeys unused
|
||||
forM_ unused $ \k -> do
|
||||
unlessM (queueTransfers "unused" Later k Nothing Upload) $
|
||||
handleDrops "unused" True k Nothing Nothing
|
||||
handleDrops "unused" True k Nothing []
|
||||
|
||||
return True
|
||||
where
|
||||
|
|
|
@ -157,7 +157,7 @@ expensiveScan urlrenderer rs = batch <~> do
|
|||
present <- liftAnnex $ inAnnex key
|
||||
liftAnnex $ handleDropsFrom locs syncrs
|
||||
"expensive scan found too many copies of object"
|
||||
present key (Just f) Nothing callCommandAction
|
||||
present key (Just f) [] callCommandAction
|
||||
liftAnnex $ do
|
||||
let slocs = S.fromList locs
|
||||
let use a = return $ mapMaybe (a key slocs) syncrs
|
||||
|
|
|
@ -30,6 +30,7 @@ import Annex.Content
|
|||
import Annex.Wanted
|
||||
import Annex.Path
|
||||
import Utility.Batch
|
||||
import Types.NumCopies
|
||||
|
||||
import qualified Data.Map as M
|
||||
import qualified Control.Exception as E
|
||||
|
@ -160,7 +161,7 @@ genTransfer t info = case transferRemote info of
|
|||
("object uploaded to " ++ show remote)
|
||||
True (transferKey t)
|
||||
(associatedFile info)
|
||||
(Just remote)
|
||||
[VerifiedCopy (Remote.uuid remote)]
|
||||
void recordCommit
|
||||
, whenM (liftAnnex $ isNothing <$> checkTransfer t) $
|
||||
void $ removeTransfer t
|
||||
|
@ -225,7 +226,7 @@ finishedTransfer t (Just info)
|
|||
where
|
||||
dodrops fromhere = handleDrops
|
||||
("drop wanted after " ++ describeTransfer t info)
|
||||
fromhere (transferKey t) (associatedFile info) Nothing
|
||||
fromhere (transferKey t) (associatedFile info) []
|
||||
finishedTransfer _ _ = noop
|
||||
|
||||
{- Pause a running transfer. -}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue