Rex
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
{
return 1;
}
elsif ( exists $CONNECTION_STACK[-1]->{server}->{auth}->{sudo}
&& $CONNECTION_STACK[-1]->{server}->{auth}->{sudo} == 0 )
{
return 0;
}
if ($GLOBAL_SUDO) { return 1; }
if ( $CONNECTION_STACK[-1] ) {
return $CONNECTION_STACK[-1]->{conn}->get_current_use_sudo;
}
return 0;
}
sub global_sudo {
my ($on) = @_;
$GLOBAL_SUDO = $on;
# turn cache on
Rex::Config->set_use_cache(1);
}
=head2 get_sftp
Returns the sftp object for the current ssh connection.
=cut
sub get_sftp {
if ( $CONNECTION_STACK[-1] ) {
return $CONNECTION_STACK[-1]->{"conn"}->get_fs_connection_object();
}
return 0;
}
sub get_cache {
if ( $CONNECTION_STACK[-1] ) {
return $CONNECTION_STACK[-1]->{"cache"};
}
return Rex::Interface::Cache->create();
}
=head2 connect
Use this function to create a connection if you use Rex as a library.
use Rex;
use Rex::Commands::Run;
use Rex::Commands::Fs;
Rex::connect(
server => "remotehost",
user => "root",
password => "f00b4r",
private_key => "/path/to/private/key/file",
public_key => "/path/to/public/key/file",
);
if(is_file("/foo/bar")) {
print "Do something...\n";
}
my $output = run("uptime");
=cut
sub connect {
my ($param) = {@_};
my $server = $param->{server};
my $port = $param->{port} || 22;
my $timeout = $param->{timeout} || 5;
my $user = $param->{"user"};
my $pass = $param->{"password"};
my $cached_conn = $param->{"cached_connection"};
if ( !$cached_conn ) {
my $conn =
Rex::Interface::Connection->create(Rex::Config::get_connection_type);
$conn->connect(
user => $user,
password => $pass,
server => $server,
port => $port,
timeout => $timeout,
%{$param},
);
unless ( $conn->is_connected ) {
die("Connection error or refused.");
}
# push a remote connection
my $rex_conn = Rex::push_connection(
{
conn => $conn,
ssh => $conn->get_connection_object,
server => $server,
cache => Rex::Interface::Cache->create(),
reporter => Rex::Report->create( Rex::Config->get_report_type ),
notify => Rex::Notify->new(),
}
);
# auth unsuccessfull
unless ( $conn->is_authenticated ) {
Rex::Logger::info( "Wrong username or password. Or wrong key.", "warn" );
# after jobs
die("Wrong username or password. Or wrong key.");
}
view all matches for this distributionview release on metacpan - search on metacpan
( run in 1.039 second using v1.00-cache-2.02-grep-82fe00e-cpan-1925d2aa809 )