jetbrains.buildServer.serverSide.agent
Interface SAgentFileManager


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
static interface SAgentFileManager.Callback
          The callback for firing the completion of an operation or the error.
 
Method Summary
 RemoteFileStructure requestDirectoryStructure(java.lang.String agentName, java.lang.String directoryName)
          Performs a synchronous request on agent agentName and returns the remote structure of the directory directoryName (or possibly a file).
 void requestForFile(java.lang.String agentName, java.lang.String fileName, boolean lookupInCache, SAgentFileManager.Callback callback)
          Performs asynchronous request to the agent agentName for a fileName file (or directory).
 

Method Detail

requestForFile

void requestForFile(@NotNull
                    java.lang.String agentName,
                    @NotNull
                    java.lang.String fileName,
                    boolean lookupInCache,
                    @NotNull
                    SAgentFileManager.Callback callback)
Performs asynchronous request to the agent agentName for a fileName file (or directory). The caller is notified about the result via callback. 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:

Current limitations:

By default all transferred data is encrypted.

Parameters:
agentName - the name of agent to request to
fileName - file (or directory) name in the format above
lookupInCache - if set to true, server will try to use cached data
callback - the callback

requestDirectoryStructure

@Nullable
RemoteFileStructure requestDirectoryStructure(@NotNull
                                                       java.lang.String agentName,
                                                       @NotNull
                                                       java.lang.String directoryName)
Performs a synchronous request on agent agentName and returns the remote structure of the directory directoryName (or possibly a file). Method returns null in case of error.

The directoryName format is the same as in requestForFile(String, String, boolean, Callback).

Parameters:
agentName - the name of agent to request to
directoryName - directory (or file) name
Returns:
the directory structure, or null