Class AgentFileManagerImpl
- java.lang.Object
-
- jetbrains.buildServer.serverSide.impl.agent.AgentFileManagerImpl
-
- All Implemented Interfaces:
AgentFileManagerCallback
,SAgentFileManager
public class AgentFileManagerImpl extends Object implements SAgentFileManager, AgentFileManagerCallback
- Author:
- Maxim Podkolzine (maxim.podkolzine@jetbrains.com)
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface jetbrains.buildServer.serverSide.agent.SAgentFileManager
SAgentFileManager.Callback
-
-
Constructor Summary
Constructors Constructor Description AgentFileManagerImpl(BuildAgentManager buildAgentManager, AgentFileManagerCache cache, XStreamHolder xStreamHolder)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
error(String sessionId, String error)
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).void
success(String sessionId, org.springframework.web.multipart.MultipartFile data, boolean archived)
-
-
-
Constructor Detail
-
AgentFileManagerImpl
public AgentFileManagerImpl(@NotNull BuildAgentManager buildAgentManager, @NotNull AgentFileManagerCache cache, @NotNull XStreamHolder xStreamHolder)
-
-
Method Detail
-
requestForFile
public void requestForFile(@NotNull String agentName, @NotNull String fileName, boolean lookupInCache, @NotNull SAgentFileManager.Callback callback)
Description copied from interface:SAgentFileManager
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.
- Specified by:
requestForFile
in interfaceSAgentFileManager
- 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
-
-
error
public void error(@NotNull String sessionId, @NotNull String error)
- Specified by:
error
in interfaceAgentFileManagerCallback
-
success
public void success(@NotNull String sessionId, @NotNull org.springframework.web.multipart.MultipartFile data, boolean archived)
- Specified by:
success
in interfaceAgentFileManagerCallback
-
requestDirectoryStructure
@Nullable public RemoteFileStructure requestDirectoryStructure(@NotNull String agentName, @NotNull String directoryName)
Description copied from interface:SAgentFileManager
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 inSAgentFileManager.requestForFile(String, String, boolean, Callback)
.- Specified by:
requestDirectoryStructure
in interfaceSAgentFileManager
- Parameters:
agentName
- the name of agent to request todirectoryName
- directory (or file) name- Returns:
- the directory structure, or null
-
-