Search in sources :

Example 1 with IFileSystemOperations

use of com.axway.ats.core.filesystem.model.IFileSystemOperations in project ats-framework by Axway.

the class FileSystemOperations method findNewTextInFile.

/**
     * Searches some texts in file and it remembers where the search stopped.
     * The following search starts from the point where the last search stopped<br/>
     *
     * This method is appropriate for growing text files(for example some kind of a log file)
     *
     * @param filePath the file to work with
     * @param searchTexts the texts to search for. At least one should match.
     * @param isRegex if the searchText is regular expression, otherwise the text must
     * simply be contained by the file line
     * @return {@link FileMatchInfo} object
     */
@PublicAtsApi
public FileMatchInfo findNewTextInFile(@Validate(name = "filePath", type = ValidationType.STRING_NOT_EMPTY) String filePath, @Validate(name = "searchTexts", type = ValidationType.NOT_NULL) String[] searchTexts, boolean isRegex) {
    // validate input parameters
    new Validator().validateMethodParameters(new Object[] { filePath, searchTexts, isRegex });
    // execute action
    IFileSystemOperations operations = getOperationsImplementationFor(atsAgent);
    long searchFromPosition = 0l;
    int lastReadLineNumber = 0;
    FileMatchInfo fileInfo = this.savedFileMatchDetails.get(filePath);
    if (fileInfo != null) {
        searchFromPosition = fileInfo.lastReadByte;
        lastReadLineNumber = fileInfo.lastReadLineNumber;
    }
    fileInfo = operations.findTextInFileAfterGivenPosition(filePath, searchTexts, isRegex, searchFromPosition, lastReadLineNumber);
    this.savedFileMatchDetails.put(filePath, fileInfo);
    return fileInfo;
}
Also used : IFileSystemOperations(com.axway.ats.core.filesystem.model.IFileSystemOperations) FileMatchInfo(com.axway.ats.common.filesystem.FileMatchInfo) Validator(com.axway.ats.core.validation.Validator) PublicAtsApi(com.axway.ats.common.PublicAtsApi)

Example 2 with IFileSystemOperations

use of com.axway.ats.core.filesystem.model.IFileSystemOperations in project ats-framework by Axway.

the class FileSystemOperations method copyRemoteDirectory.

/**
     * Copies the contents of a directory located on a remote host to another remote host
     *
     * @param fromHost the address of the ATS agent on the source host
     * @param fromDirectory the source file to copy
     * @param toHost the address of the  ATS agent on the destination host
     * @param toDirectory the destination file to copy to
     * @param isRecursive whether to copy recursively or not
     */
@PublicAtsApi
public void copyRemoteDirectory(@Validate(name = "fromHost", type = ValidationType.STRING_SERVER_WITH_PORT) String fromHost, @Validate(name = "fromDirectory", type = ValidationType.STRING_NOT_EMPTY) String fromDirectory, @Validate(name = "toHost", type = ValidationType.STRING_SERVER_WITH_PORT) String toHost, @Validate(name = "toDirectory", type = ValidationType.STRING_NOT_EMPTY) String toDirectory, @Validate(name = "isRecursive", type = ValidationType.NONE) boolean isRecursive) {
    // replace to pass validation
    if (fromHost == null) {
        fromHost = LOCAL_HOST_NAME_AND_PORT;
    }
    if (toHost == null) {
        toHost = LOCAL_HOST_NAME_AND_PORT;
    }
    // validate input parameters
    fromHost = HostUtils.getAtsAgentIpAndPort(fromHost);
    toHost = HostUtils.getAtsAgentIpAndPort(toHost);
    new Validator().validateMethodParameters(new Object[] { fromHost, fromDirectory, toHost, toDirectory, isRecursive });
    // execute action
    IFileSystemOperations fromHostOperations = getOperationsImplementationFor(fromHost);
    if (fromHostOperations instanceof LocalFileSystemOperations) {
        IFileSystemOperations toHostOperations = getOperationsImplementationFor(toHost);
        if (toHostOperations instanceof LocalFileSystemOperations) {
            ((LocalFileSystemOperations) toHostOperations).copyDirectory(fromDirectory, toDirectory, isRecursive, this.failOnError);
            log.info("Successfully copied directory " + fromDirectory + " to " + toDirectory);
        } else {
            ((RemoteFileSystemOperations) toHostOperations).copyDirectory(fromDirectory, toDirectory, isRecursive, this.failOnError);
            log.info("Successfully copied directory " + fromDirectory + " from local host to " + toDirectory + " on " + toHost);
        }
    } else {
        IFileSystemOperations toHostOperations = getOperationsImplementationFor(toHost);
        if (toHostOperations instanceof LocalFileSystemOperations) {
            ((RemoteFileSystemOperations) fromHostOperations).copyDirectoryFrom(fromDirectory, toDirectory, isRecursive, this.failOnError);
            log.info("Successfully copied directory " + fromDirectory + " from " + fromHost + " to " + toDirectory + " on the local host");
        } else {
            if (fromHost.equalsIgnoreCase(toHost)) {
                // source and target hosts are remote, but they are same host indeed
                ((RemoteFileSystemOperations) fromHostOperations).copyDirectoryLocally(fromDirectory, toDirectory, isRecursive, this.failOnError);
            } else {
                ((RemoteFileSystemOperations) fromHostOperations).copyDirectoryTo(fromDirectory, toHost, toDirectory, isRecursive, this.failOnError);
            }
            log.info("Successfully copied directory " + fromDirectory + " from " + fromHost + " to " + toDirectory + " on " + toHost);
        }
    }
}
Also used : LocalFileSystemOperations(com.axway.ats.core.filesystem.LocalFileSystemOperations) IFileSystemOperations(com.axway.ats.core.filesystem.model.IFileSystemOperations) Validator(com.axway.ats.core.validation.Validator) PublicAtsApi(com.axway.ats.common.PublicAtsApi)

Example 3 with IFileSystemOperations

use of com.axway.ats.core.filesystem.model.IFileSystemOperations in project ats-framework by Axway.

the class FileSystemOperations method findFiles.

/**
     * Searches for files and/or directories on the file system and returns the
     * path of the matched ones. </br>
     * <b>Note: </b>When path points to a directory, it ends with host's file path separator "/" or "\"
     *
     * @param startLocation the folder where search starts
     * @param searchName the name of the searched files or folders
     * @param isRegex whether we search the names by RegEx or a static name
     * @param acceptDirectories if we will include matching directories as well
     * @param recursiveSearch if will search in sub-directories
     * @return the array of matched files and directories
     */
@PublicAtsApi
public String[] findFiles(@Validate(name = "startLocation", type = ValidationType.STRING_NOT_EMPTY) String startLocation, @Validate(name = "searchName", type = ValidationType.STRING_NOT_EMPTY) String searchName, @Validate(name = "isRegex", type = ValidationType.NONE) boolean isRegex, @Validate(name = "acceptDirectories", type = ValidationType.NONE) boolean acceptDirectories, @Validate(name = "recursiveSearch", type = ValidationType.NONE) boolean recursiveSearch) {
    // validate input parameters
    new Validator().validateMethodParameters(new Object[] { startLocation, searchName, isRegex, acceptDirectories, recursiveSearch });
    // execute action
    IFileSystemOperations operations = getOperationsImplementationFor(atsAgent);
    return operations.findFiles(startLocation, searchName, isRegex, acceptDirectories, recursiveSearch);
}
Also used : IFileSystemOperations(com.axway.ats.core.filesystem.model.IFileSystemOperations) Validator(com.axway.ats.core.validation.Validator) PublicAtsApi(com.axway.ats.common.PublicAtsApi)

Example 4 with IFileSystemOperations

use of com.axway.ats.core.filesystem.model.IFileSystemOperations in project ats-framework by Axway.

the class FileSystemOperations method copyFileTo.

/**
     * Copies the contents of a file from the local host to a new file on the atsAgent host
     *
     * @param fromFile the source file to copy
     * @param toFile the destination file to copy to
     */
@PublicAtsApi
public void copyFileTo(@Validate(name = "fromFile", type = ValidationType.STRING_NOT_EMPTY) String fromFile, @Validate(name = "toFile", type = ValidationType.STRING_NOT_EMPTY) String toFile) {
    // validate input parameters
    new Validator().validateMethodParameters(new Object[] { fromFile, toFile });
    // execute action
    IFileSystemOperations operations = getOperationsImplementationFor(atsAgent);
    if (operations instanceof LocalFileSystemOperations) {
        ((LocalFileSystemOperations) operations).copyFile(fromFile, toFile, this.failOnError);
        log.info("Successfully copied " + fromFile + " to " + toFile);
    } else {
        ((RemoteFileSystemOperations) operations).copyFile(fromFile, toFile, this.failOnError);
        log.info("Successfully copied " + fromFile + " from local host to file " + toFile + " on " + atsAgent);
    }
}
Also used : LocalFileSystemOperations(com.axway.ats.core.filesystem.LocalFileSystemOperations) IFileSystemOperations(com.axway.ats.core.filesystem.model.IFileSystemOperations) Validator(com.axway.ats.core.validation.Validator) PublicAtsApi(com.axway.ats.common.PublicAtsApi)

Example 5 with IFileSystemOperations

use of com.axway.ats.core.filesystem.model.IFileSystemOperations in project ats-framework by Axway.

the class FileSystemOperations method copyFileFrom.

/**
     * Copies the contents of a file from atsAgent host to a new file on the local host. <br/>
     * <b>Note:</b> If no atsAgent is used or it is local, then the source files is searched on the local host
     *
     * @param fromFile the source file
     * @param toFile the local destination file
     */
@PublicAtsApi
public void copyFileFrom(@Validate(name = "fromFile", type = ValidationType.STRING_NOT_EMPTY) String fromFile, @Validate(name = "toFile", type = ValidationType.STRING_NOT_EMPTY) String toFile) {
    // validate input parameters
    new Validator().validateMethodParameters(new Object[] { fromFile, toFile });
    // execute action
    IFileSystemOperations operations = getOperationsImplementationFor(atsAgent);
    if (operations instanceof LocalFileSystemOperations) {
        ((LocalFileSystemOperations) operations).copyFile(fromFile, toFile, this.failOnError);
        log.info("Successfully copied " + fromFile + " to " + toFile);
    } else {
        ((RemoteFileSystemOperations) operations).copyFileFrom(fromFile, toFile, this.failOnError);
        log.info("Successfully copied " + fromFile + " from " + atsAgent + " to file " + toFile + " on the localhost");
    }
}
Also used : LocalFileSystemOperations(com.axway.ats.core.filesystem.LocalFileSystemOperations) IFileSystemOperations(com.axway.ats.core.filesystem.model.IFileSystemOperations) Validator(com.axway.ats.core.validation.Validator) PublicAtsApi(com.axway.ats.common.PublicAtsApi)

Aggregations

IFileSystemOperations (com.axway.ats.core.filesystem.model.IFileSystemOperations)46 Validator (com.axway.ats.core.validation.Validator)45 PublicAtsApi (com.axway.ats.common.PublicAtsApi)44 LocalFileSystemOperations (com.axway.ats.core.filesystem.LocalFileSystemOperations)6 FileMatchInfo (com.axway.ats.common.filesystem.FileMatchInfo)1 IProcessExecutor (com.axway.ats.core.process.model.IProcessExecutor)1 MobileOperationException (com.axway.ats.uiengine.exceptions.MobileOperationException)1 NotSupportedOperationException (com.axway.ats.uiengine.exceptions.NotSupportedOperationException)1 ArrayList (java.util.ArrayList)1 Matcher (java.util.regex.Matcher)1