External special remote protocol now includes commands for setting and getting the urls associated with a key.
This commit is contained in:
parent
689acbca99
commit
8093008ef4
6 changed files with 30 additions and 3 deletions
|
@ -19,6 +19,7 @@ import Utility.Metered
|
|||
import Logs.Transfer
|
||||
import Logs.PreferredContent.Raw
|
||||
import Logs.RemoteState
|
||||
import Logs.Web
|
||||
import Config.Cost
|
||||
import Annex.UUID
|
||||
import Creds
|
||||
|
@ -215,6 +216,11 @@ handleRequest' lck external req mp responsehandler
|
|||
state <- fromMaybe ""
|
||||
<$> getRemoteState (externalUUID external) key
|
||||
send $ VALUE state
|
||||
handleRemoteRequest (SETURLPRESENT key url) = setUrlPresent key url
|
||||
handleRemoteRequest (SETURLMISSING key url) = setUrlMissing key url
|
||||
handleRemoteRequest (GETURLS key prefix) = do
|
||||
mapM_ (send . VALUE) =<< getUrlsWithPrefix key prefix
|
||||
send (VALUE "") -- end of list
|
||||
handleRemoteRequest (DEBUG msg) = liftIO $ debugM "external" msg
|
||||
handleRemoteRequest (VERSION _) =
|
||||
sendMessage lck external $ ERROR "too late to send VERSION"
|
||||
|
|
6
Remote/External/Types.hs
vendored
6
Remote/External/Types.hs
vendored
|
@ -165,6 +165,9 @@ data RemoteRequest
|
|||
| GETWANTED
|
||||
| SETSTATE Key String
|
||||
| GETSTATE Key
|
||||
| SETURLPRESENT Key String
|
||||
| SETURLMISSING Key String
|
||||
| GETURLS Key String
|
||||
| DEBUG String
|
||||
deriving (Show)
|
||||
|
||||
|
@ -182,6 +185,9 @@ instance Proto.Receivable RemoteRequest where
|
|||
parseCommand "GETWANTED" = Proto.parse0 GETWANTED
|
||||
parseCommand "SETSTATE" = Proto.parse2 SETSTATE
|
||||
parseCommand "GETSTATE" = Proto.parse1 GETSTATE
|
||||
parseCommand "SETURLPRESENT" = Proto.parse2 SETURLPRESENT
|
||||
parseCommand "SETURLMISSING" = Proto.parse2 SETURLMISSING
|
||||
parseCommand "GETURLS" = Proto.parse2 GETURLS
|
||||
parseCommand "DEBUG" = Proto.parse1 DEBUG
|
||||
parseCommand _ = Proto.parseFail
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue