Provided by: rex_1.3.3-1_all
NAME
Rex::Task - The Task Object
DESCRIPTION
The Task Object. Typically you only need this class if you want to manipulate tasks after their initial creation.
SYNOPSIS
use Rex::Task my $task = Rex::Task->new(name => "testtask"); $task->set_server("remoteserver"); $task->set_code(sub { say "Hello"; }); $task->modify("no_ssh", 1);
METHODS
new This is the constructor. $task = Rex::Task->new( func => sub { some_code_here }, server => [ @server ], desc => $description, no_ssh => $no_ssh, hidden => $hidden, auth => { user => $user, password => $password, private_key => $private_key, public_key => $public_key, }, before => [sub {}, sub {}, ...], after => [sub {}, sub {}, ...], around => [sub {}, sub {}, ...], before_task_start => [sub {}, sub {}, ...], after_task_finished => [sub {}, sub {}, ...], name => $task_name, executor => Rex::Interface::Executor->create, ); connection Returns the current connection object. executor Returns the current executor object. hidden Returns true if the task is hidden. (Should not be displayed on ,,rex -T''.) server Returns the servers on which the task should be executed as an ArrayRef. set_server(@server) With this method you can set new servers on which the task should be executed on. delete_server Delete every server registered to the task. current_server Returns the current server on which the tasks gets executed right now. desc Returns the description of a task. set_desc($description) Set the description of a task. is_remote Returns true (1) if the task will be executed remotely. is_local Returns true (1) if the task gets executed on the local host. is_http Returns true (1) if the task gets executed over http protocol. want_connect Returns true (1) if the task will establish a connection to a remote system. get_connection_type This method tries to guess the right connection type for the task and returns it. Current return values are SSH, Fake and Local. SSH - will create a ssh connection to the remote server Local - will not create any connections Fake - will not create any connections. But it populates the connection properties so you can use this type to iterate over a list of remote hosts but don't let rex build a connection. For example if you want to use Sys::Virt or other modules. modify($key, $value) With this method you can modify values of the task. user Returns the current user the task will use. set_user($user) Set the user of a task. password Returns the password that will be used. set_password($password) Set the password of the task. name Returns the name of the task. code Returns the code of the task. set_code(\&code_ref) Set the code of the task. run_hook($server, $hook) This method is used internally to execute the specified hooks. set_auth($key, $value) Set the authentication of the task. $task->set_auth("user", "foo"); $task->set_auth("password", "bar"); merge_auth($server) Merges the authentication information from $server into the task. Tasks authentication information have precedence. parallelism Get the parallelism count of a task. set_parallelism($count) Set the parallelism of the task. connect($server) Initiate the connection to $server. disconnect Disconnect from the current connection. run($server, %options) Run the task on $server. exit_on_connect_fail() Returns true if rex should exit on connect failure.