|
Brooklyn | |||||||
FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectbrooklyn.location.basic.AbstractLocation
brooklyn.location.basic.SshMachineLocation
public class SshMachineLocation extends AbstractLocation
Operations on a machine that is accessible via ssh.
We expose two ways of running scripts. One (execCommands) passes lines to bash, that is lightweight but fragile. Another (execScript) creates a script on the remote machine, more portable but heavier.
Additionally there are routines to copyTo, copyFrom; and installTo (which tries a curl, and falls back to copyTo in event the source is accessible by the caller only).
Field Summary | |
---|---|
static ConfigKey |
ALLOCATE_PTY
|
static java.util.Set |
ALL_SSH_CONFIG_KEYS
|
static java.util.Set |
ALL_SSH_CONFIG_KEY_NAMES
|
static ConfigKey |
LOCAL_TEMP_DIR
|
static Logger |
LOG
|
static ConfigKey |
LOG_PREFIX
|
static ConfigKey |
NO_STDERR_LOGGING
|
static ConfigKey |
NO_STDOUT_LOGGING
|
static ConfigKey |
PASSWORD
|
static ConfigKey |
PRIVATE_KEY_DATA
|
static ConfigKey |
PRIVATE_KEY_FILE
|
static ConfigKey |
PRIVATE_KEY_PASSPHRASE
|
static java.util.Set |
REUSABLE_SSH_PROPS
|
static ConfigKey |
SCP_EXECUTABLE
|
static ConfigKey |
SCRIPT_DIR
|
static java.lang.String |
SSHCONFIG_PREFIX
any property that should be passed as ssh config (connection-time) can be prefixed with this and . and will be passed through (with the prefix removed), e.g. |
static ConfigKey |
SSH_ENV_MAP
|
static ConfigKey |
SSH_EXECUTABLE
|
static ConfigKey |
SSH_HOST
|
static ConfigKey |
SSH_PORT
|
static ConfigKey |
STDERR
|
static ConfigKey |
STDOUT
|
static Logger |
logSsh
|
protected boolean |
previouslyConnected
|
Fields inherited from class AbstractLocation | |
---|---|
LOG, PARENT_LOCATION, hostGeoInfo, name |
Constructor Summary | |
SshMachineLocation()
|
|
SshMachineLocation(java.util.Map properties)
|
Method Summary | |
---|---|
void
|
acquireMutex(java.lang.String mutexId, java.lang.String description)
|
void
|
addConfig(java.util.Map vals)
@deprecated temporary Beta method introduced in 0.5.0; configure(Map) does roughly the same, and more, supporting ConfigKey inputs etc |
void
|
close()
|
void
|
configure(java.util.Map properties)
|
protected SshTool
|
connectSsh()
|
protected SshTool
|
connectSsh(java.util.Map props)
|
int
|
copyFrom(java.lang.String remote, java.lang.String local)
|
int
|
copyFrom(java.util.Map props, java.lang.String remote, java.lang.String local)
|
int
|
copyTo(java.io.File src, java.io.File destination)
|
int
|
copyTo(java.util.Map props, java.io.File src, java.io.File destination)
|
int
|
copyTo(java.io.File src, java.lang.String destination)
|
int
|
copyTo(java.util.Map props, java.io.File src, java.lang.String destination)
|
int
|
copyTo(java.io.Reader src, java.lang.String destination)
|
int
|
copyTo(java.util.Map props, java.io.Reader src, java.lang.String destination)
|
int
|
copyTo(java.io.InputStream src, java.lang.String destination)
|
int
|
copyTo(java.io.InputStream src, long filesize, java.lang.String destination)
|
int
|
copyTo(java.util.Map props, java.io.InputStream src, long filesize, java.lang.String destination)
|
int
|
copyTo(java.util.Map props, java.io.InputStream src, java.lang.String destination)
|
int
|
exec(java.util.List commands)
Convenience for running commands using ssh {@literal exec} mode. |
int
|
exec(java.util.Map props, java.util.List commands)
|
int
|
exec(java.util.List commands, java.util.Map env)
|
int
|
exec(java.util.Map props, java.util.List commands, java.util.Map env)
|
int
|
execCommands(java.lang.String summaryForLogging, java.util.List commands)
|
int
|
execCommands(java.util.Map props, java.lang.String summaryForLogging, java.util.List commands)
|
int
|
execCommands(java.lang.String summaryForLogging, java.util.List commands, java.util.Map env)
|
int
|
execCommands(java.util.Map props, java.lang.String summaryForLogging, java.util.List commands, java.util.Map env)
|
int
|
execScript(java.lang.String summaryForLogging, java.util.List commands)
|
int
|
execScript(java.util.Map props, java.lang.String summaryForLogging, java.util.List commands)
|
int
|
execScript(java.lang.String summaryForLogging, java.util.List commands, java.util.Map env)
|
int
|
execScript(java.util.Map props, java.lang.String summaryForLogging, java.util.List commands, java.util.Map env)
|
protected java.lang.Object
|
execSsh(java.util.Map props, Function task)
|
protected int
|
execWithLogging(java.util.Map props, java.lang.String summaryForLogging, java.util.List commands, java.util.Map env, groovy.lang.Closure execCommand)
|
protected void
|
finalize()
|
java.security.KeyPair
|
findKeyPair()
|
java.lang.String
|
findPassword()
|
java.net.InetAddress
|
getAddress()
|
OsDetails
|
getOsDetails()
|
int
|
getPort()
port for SSHing |
HostAndPort
|
getSshHostAndPort()
|
java.lang.String
|
getUser()
|
boolean
|
hasMutex(java.lang.String mutexId)
|
int
|
installTo(ResourceUtils loader, java.lang.String url, java.lang.String destination)
|
boolean
|
isSshable()
|
protected ExecWithLoggingHelpers
|
newExecWithLoggingHelpers()
|
protected WithMutexes
|
newMutexSupport()
|
int
|
obtainPort(PortRange range)
|
boolean
|
obtainSpecificPort(int portNumber)
|
void
|
releaseMutex(java.lang.String mutexId)
|
void
|
releasePort(int portNumber)
|
int
|
run(java.lang.String command)
|
int
|
run(java.util.Map props, java.lang.String command)
|
int
|
run(java.lang.String command, java.util.Map env)
|
int
|
run(java.util.Map props, java.lang.String command, java.util.Map env)
|
int
|
run(java.util.List commands)
|
int
|
run(java.util.Map props, java.util.List commands)
|
int
|
run(java.util.List commands, java.util.Map env)
|
int
|
run(java.util.Map props, java.util.List commands, java.util.Map env)
|
java.lang.String
|
toString()
@see #obtainPort(PortRange) |
java.lang.String
|
toVerboseString()
|
boolean
|
tryAcquireMutex(java.lang.String mutexId, java.lang.String description)
returns the un-passphrased key-pair info if a key is being used, or else null |
Field Detail |
---|
public static final ConfigKey ALLOCATE_PTY
public static final java.util.Set ALL_SSH_CONFIG_KEYS
public static final java.util.Set ALL_SSH_CONFIG_KEY_NAMES
public static final ConfigKey LOCAL_TEMP_DIR
public static final Logger LOG
public static final ConfigKey LOG_PREFIX
public static final ConfigKey NO_STDERR_LOGGING
public static final ConfigKey NO_STDOUT_LOGGING
public static final ConfigKey PASSWORD
public static final ConfigKey PRIVATE_KEY_DATA
public static final ConfigKey PRIVATE_KEY_FILE
public static final ConfigKey PRIVATE_KEY_PASSPHRASE
public static final java.util.Set REUSABLE_SSH_PROPS
public static final ConfigKey SCP_EXECUTABLE
public static final ConfigKey SCRIPT_DIR
@Deprecated public static final java.lang.String SSHCONFIG_PREFIX
public static final ConfigKey SSH_ENV_MAP
public static final ConfigKey SSH_EXECUTABLE
public static final ConfigKey SSH_HOST
public static final ConfigKey SSH_PORT
public static final ConfigKey STDERR
public static final ConfigKey STDOUT
public static final Logger logSsh
protected boolean previouslyConnected
Constructor Detail |
---|
public SshMachineLocation()
public SshMachineLocation(java.util.Map properties)
Method Detail |
---|
public void acquireMutex(java.lang.String mutexId, java.lang.String description)
public void addConfig(java.util.Map vals)
protected void finalize() throws Throwable { public void close()
public void configure(java.util.Map properties)
protected SshTool connectSsh()
protected SshTool connectSsh(java.util.Map props)
public int copyFrom(java.lang.String remote, java.lang.String local)
public int copyFrom(java.util.Map props, java.lang.String remote, java.lang.String local)
public int copyTo(java.io.File src, java.io.File destination)
public int copyTo(java.util.Map props, java.io.File src, java.io.File destination)
public int copyTo(java.io.File src, java.lang.String destination)
public int copyTo(java.util.Map props, java.io.File src, java.lang.String destination)
public int copyTo(java.io.Reader src, java.lang.String destination)
public int copyTo(java.util.Map props, java.io.Reader src, java.lang.String destination)
public int copyTo(java.io.InputStream src, java.lang.String destination)
public int copyTo(java.io.InputStream src, long filesize, java.lang.String destination)
public int copyTo(java.util.Map props, java.io.InputStream src, long filesize, java.lang.String destination)
public int copyTo(java.util.Map props, java.io.InputStream src, java.lang.String destination)
public int exec(java.util.List commands)
public int exec(java.util.Map props, java.util.List commands)
public int exec(java.util.List commands, java.util.Map env)
public int exec(java.util.Map props, java.util.List commands, java.util.Map env)
public int execCommands(java.lang.String summaryForLogging, java.util.List commands)
public int execCommands(java.util.Map props, java.lang.String summaryForLogging, java.util.List commands)
public int execCommands(java.lang.String summaryForLogging, java.util.List commands, java.util.Map env)
public int execCommands(java.util.Map props, java.lang.String summaryForLogging, java.util.List commands, java.util.Map env)
public int execScript(java.lang.String summaryForLogging, java.util.List commands)
public int execScript(java.util.Map props, java.lang.String summaryForLogging, java.util.List commands)
public int execScript(java.lang.String summaryForLogging, java.util.List commands, java.util.Map env)
public int execScript(java.util.Map props, java.lang.String summaryForLogging, java.util.List commands, java.util.Map env)
protected java.lang.Object execSsh(java.util.Map props, Function task)
protected int execWithLogging(java.util.Map props, java.lang.String summaryForLogging, java.util.List commands, java.util.Map env, groovy.lang.Closure execCommand)
return address; protected void finalize()
public java.security.KeyPair findKeyPair()
public java.lang.String findPassword()
public java.net.InetAddress getAddress()
@Override public OsDetails getOsDetails()
retur public int getPort()
public HostAndPort getSshHostAndPort()
public java.lang.String getUser()
return SecureKeys.readPem(r.getResourceFromUrl("~/.ssh/id_dsa"), getConfig(SshTool.PROP_PRIVATE_KEY_PASSPHRASE)); public boolean hasMutex(java.lang.String mutexId)
public int installTo(ResourceUtils loader, java.lang.String url, java.lang.String destination)
public boolean isSshable()
protected ExecWithLoggingHelpers newExecWithLoggingHelpers()
protected WithMutexes newMutexSupport()
public int obtainPort(PortRange range)
public boolean obtainSpecificPort(int portNumber)
return null; public void releaseMutex(java.lang.String mutexId)
public void releasePort(int portNumber)
public int run(java.lang.String command)
public int run(java.util.Map props, java.lang.String command)
public int run(java.lang.String command, java.util.Map env)
public int run(java.util.Map props, java.lang.String command, java.util.Map env)
public int run(java.util.List commands)
public int run(java.util.Map props, java.util.List commands)
public int run(java.util.List commands, java.util.Map env)
public int run(java.util.Map props, java.util.List commands, java.util.Map env)
} else { public java.lang.String toString()
} public java.lang.String toVerboseString()
if (fn!=null) return SecureKeys.readPem(r.getResourceFromUrl(fn), getConfig(SshTool.PROP_PRIVATE_KEY_PASSPHRASE)); public boolean tryAcquireMutex(java.lang.String mutexId, java.lang.String description)
Brooklyn Multi-Cloud Application Management Platform
brooklyncentral.github.com. Apache License. © 2012.