Interface SAgentFileManager
-
- All Known Implementing Classes:
AgentFileManagerImpl
public interface SAgentFileManager
Represents the high-level interface for agent file operations.The whole service consists of two parts: server and agent side. Server initiates the file transfer via XML-RPC call providing all necessary session and encryption data, agent replies back via HTTP call possibly archiving and encrypting the contents. The client is then notified of a completion.
- Since:
- 6.0
- Author:
- Maxim Podkolzine (maxim.podkolzine@jetbrains.com)
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
SAgentFileManager.Callback
The callback for firing the completion of an operation or the error.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description RemoteFileStructure
requestDirectoryStructure(String agentName, String directoryName)
Performs a synchronous request on agentagentName
and returns the remote structure of the directorydirectoryName
(or possibly a file).void
requestForFile(String agentName, String fileName, boolean lookupInCache, SAgentFileManager.Callback callback)
Performs asynchronous request to the agentagentName
for afileName
file (or directory).
-
-
-
Method Detail
-
requestForFile
void requestForFile(@NotNull String agentName, @NotNull String fileName, boolean lookupInCache, @NotNull SAgentFileManager.Callback callback)
Performs asynchronous request to the agentagentName
for afileName
file (or directory). The caller is notified about the result viacallback
. In case of success the caller is provided with the local copy of the requested file.The
fileName
supports several useful macros:"#home"
,"#work"
,"#temp"
,"#logs"
,"#plugins"
,"#lib"
,"#update"
,"#conf"
, and"#cache"
, each referring to a specific agent directory. These macros are to be used to specify the root of the requested file (or directory).Examples:
-
"#logs"
- full logs directory -
"#work/directory.map"
- a "directory.map" file inside agent working directory -
"#plugins/ant/lib"
- full "lib" directory of the Ant plugin
Current limitations:
- you can use only slash separator (
'/'
instead of'\'
) - wildcards
"?"
and"*"
are not supported
By default all transferred data is encrypted.
- Parameters:
agentName
- the name of agent to request tofileName
- file (or directory) name in the format abovelookupInCache
- if set totrue
, server will try to use cached datacallback
- the callback
-
-
requestDirectoryStructure
@Nullable RemoteFileStructure requestDirectoryStructure(@NotNull String agentName, @NotNull String directoryName)
Performs a synchronous request on agentagentName
and returns the remote structure of the directorydirectoryName
(or possibly a file). Method returnsnull
in case of error.The
directoryName
format is the same as inrequestForFile(String, String, boolean, Callback)
.- Parameters:
agentName
- the name of agent to request todirectoryName
- directory (or file) name- Returns:
- the directory structure, or null
-
-