Footprintless::Tunnel

- NAME
- VERSION
- SYNOPSIS
- DESCRIPTION
- ENTITIES
- CONSTRUCTORS
  - new($entity, $coordinate, %options)
- METHODS
  - close()
  - get_local_hostname()
  - get_local_port()
  - is_open()
  - open([%options])
- AUTHOR
- COPYRIGHT AND LICENSE
- SEE ALSO

# NAME

Footprintless::Tunnel - Provides tunneling over ssh

# VERSION

version 1.29

# SYNOPSIS

        # Standard way of creating tunnels
        use Footprintless;
        my $tunnel = Footprintless->new()->tunnel($coordinate);

        eval {
            $tunnel->open();
            my $local_hostname = $tunnel->get_local_hostname();
            my $port = $tunnel->get_local_port();

            # do stuff with tunnel
        }
        my $error = $@;
        eval {$tunnel->close()};
        die($error) if ($error);

# DESCRIPTION

This module provides tunneling over ssh

# ENTITIES

        tunnel => {
            ssh => 'ssh -q',
            local_hostname => 'foo',
            local_port => 1234,
            tunnel_hostname => 'bar',
            tunnel_usename => 'fred',
            destination_hostname => 'baz',
            destination_port => 5678,
            control_socket_dir => '/home/me/.ssh/control_socket',
            tries => 10,
            wait_seconds => 1,
        }

# CONSTRUCTORS

## new($entity, $coordinate, %options)

Creates a new tunnel configured by `$entities`.

# METHODS

## close()

Closes the tunnel.

## get_local_hostname()

Returns the hostname used to access the tunnel.

## get_local_port()

Returns the port used to access the tunnel.

## is_open()

Returns a truthy value if the tunnel is open.

## open([%options])

Opens the tunnel. The available options are:

tries <COUNT>

  Number of times to check if the connection is open before giving up. Defaults to 10.

wait_seconds <SECONDS>

  Number of seconds to wait between each check to see if the connection is open. Defaults to 1.

# AUTHOR

Lucas Theisen <lucastheisen@pastdev.com>

# COPYRIGHT AND LICENSE

This software is copyright (c) 2016 by Lucas Theisen.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

# SEE ALSO

Please see those modules/websites for more information related to this module.

- Footprintless
- Config::Entities
- Footprintless