|
NAMERex::Task - The Task Object DESCRIPTIONThe 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->create->get_task('my_task');
METHODSnewThis 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, ...],
);
connectionReturns the current connection object. executorReturns the current executor object. hiddenReturns true if the task is hidden. (Should not be displayed on ,,rex -T''.) serverReturns 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_serverDelete every server registered to the task. current_serverReturns the current server on which the tasks gets executed right now. descReturns the description of a task. set_desc($description)Set the description of a task. is_remoteReturns true (1) if the task will be executed remotely. is_localReturns true (1) if the task gets executed on the local host. is_httpReturns true (1) if the task gets executed over http protocol. is_httpsReturns true (1) if the task gets executed over https protocol. is_opensshReturns true (1) if the task gets executed with openssh. want_connectReturns true (1) if the task will establish a connection to a remote system. get_connection_typeThis method tries to guess the right connection type for the task and returns it. Current return values are below:
modify($key, $value)With this method you can modify values of the task. rethink_connectionDeletes current connection object. userReturns the username the task will use. set_user($user)Set the username of a task. passwordReturns the password that will be used. set_password($password)Set the password of the task. nameReturns the name of the task. codeReturns 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_passwordReturns the sudo password. parallelismGet the parallelism count of a task. set_parallelism($count)Set the parallelism of the task. connect($server)Initiate the connection to $server. disconnectDisconnect from the current connection. get_dataDump 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_taskReturns true(1) if the passed object is a task. get_tasksReturns list of tasks. get_descReturns description of task. exit_on_connect_failReturns true if rex should exit on connect failure. set_exit_on_connect_failSets if rex should exit on connect failure. get_argsReturns arguments of task. get_optsReturns options of task. set_argsSets arguments for task. set_optSets an option for task. set_optsSets options for task. cloneClones a task.
|