implement remove-before
The reason to use removeBeforeRemoteEndTime is twofold. First, removeBefore sends two protocol commands. Currently, the HTTP protocol runner only supports sending a single command per invocation. Secondly, the http server gets a monotonic timestamp from the client. So translating back to a POSIXTime would be annoying. The timestamp flow with a proxy will be: - client gets timestamp, which gets the monotonic timestamp from the proxied remote via the proxy. The timestamp is currently not proxied when there is a single proxy. - client calls remove-before - http server calls removeBeforeRemoteEndTime which sends REMOVE-BEFORE to the proxied remote.
This commit is contained in:
parent
e9cba0a580
commit
7c588a5791
4 changed files with 65 additions and 38 deletions
|
@ -437,15 +437,18 @@ removeBefore endtime key = do
|
|||
let remoteendtime = remotetime + timeleft'
|
||||
if timeleft <= 0
|
||||
then return (Right False, Nothing)
|
||||
else do
|
||||
net $ sendMessage $
|
||||
REMOVE_BEFORE remoteendtime key
|
||||
checkSuccessFailurePlus
|
||||
else removeBeforeRemoteEndTime remoteendtime key
|
||||
Just (ERROR err) -> return (Left err, Nothing)
|
||||
_ -> do
|
||||
net $ sendMessage (ERROR "expected TIMESTAMP")
|
||||
return (Right False, Nothing)
|
||||
|
||||
removeBeforeRemoteEndTime :: MonotonicTimestamp -> Key -> Proto (Either String Bool, Maybe [UUID])
|
||||
removeBeforeRemoteEndTime remoteendtime key = do
|
||||
net $ sendMessage $
|
||||
REMOVE_BEFORE remoteendtime key
|
||||
checkSuccessFailurePlus
|
||||
|
||||
get :: FilePath -> Key -> Maybe IncrementalVerifier -> AssociatedFile -> Meter -> MeterUpdate -> Proto (Bool, Verification)
|
||||
get dest key iv af m p =
|
||||
receiveContent (Just m) p sizer storer $ \offset ->
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue