Interface SAgentFileManager
-
- All Known Implementing Classes:
AgentFileManagerImpl
public interface SAgentFileManagerRepresents 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 interfaceSAgentFileManager.CallbackThe callback for firing the completion of an operation or the error.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description RemoteFileStructurerequestDirectoryStructure(String agentName, String directoryName)Performs a synchronous request on agentagentNameand returns the remote structure of the directorydirectoryName(or possibly a file).voidrequestForFile(String agentName, String fileName, boolean lookupInCache, SAgentFileManager.Callback callback)Performs asynchronous request to the agentagentNamefor afileNamefile (or directory).
-
-
-
Method Detail
-
requestForFile
void requestForFile(@NotNull String agentName, @NotNull String fileName, boolean lookupInCache, @NotNull SAgentFileManager.Callback callback)Performs asynchronous request to the agentagentNamefor afileNamefile (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
fileNamesupports 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 agentagentNameand returns the remote structure of the directorydirectoryName(or possibly a file). Method returnsnullin case of error.The
directoryNameformat 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
-
-