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)
    • Method Detail

      • requestForFile

        void requestForFile​(@NotNull
                            String agentName,
                            @NotNull
                            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:

        • "#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 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
                                                      String agentName,
                                                      @NotNull
                                                      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