DESCRIPTION
The Task Object. Typically you only need this class if you want to manipulate tasks after their initial creation.SYNOPSIS
use Rex::Task;
# create a new task
my $task = Rex::Task->new(name => "testtask");
$task->set_server("remoteserver");
$task->set_code(sub { say "Hello"; });
$task->modify("no_ssh", 1);
# retrieve an existing task
use Rex::TaskList;
my $existing_task = Rex::TaskList->get_task('my_task');
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, opts => {key1 => val1, key2 => val2, ...}, args => [arg1, arg2, ...], );
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.is_https
Returns true (1) if the task gets executed over https protocol.is_openssh
Returns true (1) if the task gets executed with openssh.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 below:
- SSH: connect to the remote server using Net::SSH2
- OpenSSH: connect to the remote server using Net::OpenSSH
- Local: runs locally (without any connections)
- HTTP: uses experimental HTTP connection
- HTTPS: uses experimental HTTPS connection
-
Fake: populate the connection properties, but do not connect
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.rethink_connection
Deletes current connection object.user
Returns the username the task will use.set_user($user)
Set the username 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.get_sudo_password
Returns the sudo password.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.get_data
Dump task data.run($server, %options)
Run the task on $server, with %options.modify_task($task, $key => $value)
Modify $task, by setting $key to $value.is_task
Returns true(1) if the passed object is a task.get_tasks
Returns list of tasks.get_desc
Returns description of task.exit_on_connect_fail
Returns true if rex should exit on connect failure.set_exit_on_connect_fail
Sets if rex should exit on connect failure.get_args
Returns arguments of task.get_opts
Returns options of task.set_args
Sets arguments for task.set_opt
Sets an option for task.set_opts
Sets options for task.clone
Clones a task.