Class BaseFileCopier
- java.lang.Object
-
- com.dtolabs.rundeck.core.execution.impl.common.BaseFileCopier
-
- Direct Known Subclasses:
LocalFileCopier
public class BaseFileCopier extends java.lang.Object
BaseFileCopier provides utility methods for a FileCopier class.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
DEFAULT_UNIX_FILE_EXT
static java.lang.String
DEFAULT_WINDOWS_FILE_EXT
static java.lang.String
FILE_COPY_DESTINATION_DIR
static java.lang.String
FRAMEWORK_FILE_COPY_DESTINATION_DIR
static java.lang.String
PROJECT_FILE_COPY_DESTINATION_DIR
-
Constructor Summary
Constructors Constructor Description BaseFileCopier()
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static java.lang.String
appendRemoteFileExtension(java.lang.String filepath, java.lang.String fileext)
static java.lang.String
defaultRemoteFileExtensionForNode(INodeEntry node)
static java.lang.String
generateRemoteFilepathForNode(INodeEntry node, IRundeckProject project, IFramework framework, java.lang.String scriptfileName, java.lang.String fileExtension, java.lang.String identity)
Return a temporary filepath for a file to be copied to the node, given the input filename (without directory path)static java.lang.String
generateRemoteFilepathForNode(INodeEntry node, java.lang.String scriptfileName)
Return a temporary filepath for a file to be copied to the node, given the input filename (without directory path)static java.lang.String
generateRemoteFilepathForNode(INodeEntry node, java.lang.String scriptfileName, java.lang.String fileExtension)
Return a temporary filepath for a file to be copied to the node, given the input filename (without directory path)static java.lang.String
generateRemoteFilepathForNode(INodeEntry node, java.lang.String scriptfileName, java.lang.String fileExtension, java.lang.String identity)
static java.lang.String
getRemoteDirForNode(INodeEntry node)
Return a remote destination temp dir path for the given node.static java.lang.String
getRemoteDirForNode(INodeEntry node, IRundeckProject project, IFramework framework)
Return a remote destination temp dir path for the given node.protected static java.io.File
writeLocalFile(java.io.File original, java.io.InputStream input, java.lang.String script, java.io.File destinationFile)
static java.io.File
writeTempFile(ExecutionContext context, java.io.File original, java.io.InputStream input, java.lang.String script)
Write the file, stream, or text to a local temp file and return the file
-
-
-
Field Detail
-
FILE_COPY_DESTINATION_DIR
public static final java.lang.String FILE_COPY_DESTINATION_DIR
- See Also:
- Constant Field Values
-
FRAMEWORK_FILE_COPY_DESTINATION_DIR
public static final java.lang.String FRAMEWORK_FILE_COPY_DESTINATION_DIR
- See Also:
- Constant Field Values
-
PROJECT_FILE_COPY_DESTINATION_DIR
public static final java.lang.String PROJECT_FILE_COPY_DESTINATION_DIR
- See Also:
- Constant Field Values
-
DEFAULT_WINDOWS_FILE_EXT
public static final java.lang.String DEFAULT_WINDOWS_FILE_EXT
- See Also:
- Constant Field Values
-
DEFAULT_UNIX_FILE_EXT
public static final java.lang.String DEFAULT_UNIX_FILE_EXT
- See Also:
- Constant Field Values
-
-
Method Detail
-
defaultRemoteFileExtensionForNode
public static java.lang.String defaultRemoteFileExtensionForNode(INodeEntry node)
- Parameters:
node
- node- Returns:
- the default file extension for a temp file based on the type of node
-
appendRemoteFileExtension
public static java.lang.String appendRemoteFileExtension(java.lang.String filepath, java.lang.String fileext)
- Parameters:
filepath
- the file path stringfileext
- the file extension, if it does not start with a "." one will be prepended first. If null, the unmodified filepath will be returned.- Returns:
- a string with a file extension appended if it is not already on the file path provided.
-
getRemoteDirForNode
public static java.lang.String getRemoteDirForNode(INodeEntry node)
Return a remote destination temp dir path for the given node. If specified, the node attribute named "file-copy-destination-dir" is used, otherwise a temp directory appropriate for the os-family of the node is returned.- Parameters:
node
- the node entry- Returns:
- a path to destination dir for the node
-
getRemoteDirForNode
public static java.lang.String getRemoteDirForNode(INodeEntry node, IRundeckProject project, IFramework framework)
Return a remote destination temp dir path for the given node. If specified, the node attribute named "file-copy-destination-dir" is used, otherwise a temp directory appropriate for the os-family of the node is returned.- Parameters:
node
- the node entryproject
- projectframework
- framework- Returns:
- a path to destination dir for the node
-
generateRemoteFilepathForNode
public static java.lang.String generateRemoteFilepathForNode(INodeEntry node, java.lang.String scriptfileName)
Return a temporary filepath for a file to be copied to the node, given the input filename (without directory path)- Parameters:
node
- the destination nodescriptfileName
- the name of the file to copy- Returns:
- a filepath specifying destination of the file to copy that should be unique for the node and current date.
-
generateRemoteFilepathForNode
public static java.lang.String generateRemoteFilepathForNode(INodeEntry node, java.lang.String scriptfileName, java.lang.String fileExtension)
Return a temporary filepath for a file to be copied to the node, given the input filename (without directory path)- Parameters:
node
- the destination nodescriptfileName
- the name of the file to copyfileExtension
- optional extension to use for the temp file, or null for default- Returns:
- a filepath specifying destination of the file to copy that should be unique
-
generateRemoteFilepathForNode
public static java.lang.String generateRemoteFilepathForNode(INodeEntry node, java.lang.String scriptfileName, java.lang.String fileExtension, java.lang.String identity)
Return a temporary filepath for a file to be copied to the node, given the input filename (without directory path)- Parameters:
node
- the destination nodescriptfileName
- the name of the file to copyfileExtension
- optional extension to use for the temp file, or null for defaultidentity
- unique identifier, or null to include a random string- Returns:
- a filepath specifying destination of the file to copy that should be unique
-
generateRemoteFilepathForNode
public static java.lang.String generateRemoteFilepathForNode(INodeEntry node, IRundeckProject project, IFramework framework, java.lang.String scriptfileName, java.lang.String fileExtension, java.lang.String identity)
Return a temporary filepath for a file to be copied to the node, given the input filename (without directory path)- Parameters:
node
- the destination nodeproject
- projectframework
- frameworkscriptfileName
- the name of the file to copyfileExtension
- optional extension to use for the temp file, or null for defaultidentity
- unique identifier, or null to include a random string- Returns:
- a filepath specifying destination of the file to copy that should be unique
-
writeTempFile
public static java.io.File writeTempFile(ExecutionContext context, java.io.File original, java.io.InputStream input, java.lang.String script) throws FileCopierException
Write the file, stream, or text to a local temp file and return the file- Parameters:
context
- contextoriginal
- source file, or nullinput
- source inputstream or nullscript
- source text, or null- Returns:
- temp file, this file should later be cleaned up by calling
ScriptfileUtils.releaseTempFile(java.io.File)
- Throws:
FileCopierException
- if IOException occurs
-
writeLocalFile
protected static java.io.File writeLocalFile(java.io.File original, java.io.InputStream input, java.lang.String script, java.io.File destinationFile) throws FileCopierException
- Parameters:
original
- source fileinput
- source streamscript
- source stringdestinationFile
- destination- Returns:
- local file
- Throws:
FileCopierException
- on error
-
-