SYNOPSIS

use ClusterSSH::Host;

my $host = ClusterSSH::Host->new({
    hostname => 'hostname',
});
my $host = ClusterSSH::Host->parse_host_string('username@hostname:1234');

DESCRIPTION

Object representing a host. Include details to contact the host such as hostname/ipaddress, username and port.

METHODS

$host=ClusterSSH::Host->new ({ hostname => 'hostname' })

Create a new host object. 'hostname' is a required arg, 'username' and 'port' are optional. Raises exception if an error occurs.

$host->get_hostname
$host->get_username
$host->get_port
$host->get_master
$host->get_geometry
$host->get_type

Return specific details about the host

$host->set_username
$host->set_port
$host->set_master
$host->set_geometry
$host->set_type

Set specific details about the host after its been created.

get_realname

If the server name provided is not an IP address (either IPv4 or IPv6) attempt to resolve it and return the discovered names.

get_givenname

Alias to get_hostname, for use when get_realname might return something different

parse_host_string

Given a host string, returns a host object. Parses hosts such as

check_ssh_hostname

Check the objects hostname to see whether or not it may be configured within the users $HOME/.ssh/config configuration file

read_ssh_file

Method to ease reading in ssh configuration files. Used for grabbing hostnames for validation when used in clusters

host
192.168.0.1
user@host
user@192.168.0.1
host:port
[1234:1234:1234::4567]:port
1234:1234:1234::4567

and so on. Cope with IPv4 and IPv6 addresses - raises a warning if the IPv6 address is ambiguous (i.e. in the last example, is the 4567 part of the IPv6 address or a port definition?) and assumes it is part of address. Use brackets to avoid seeing warning.