register_worker({
phase
=>
'check'
},
sub
{
my
(
$job
,
$workerconf
) =
@_
;
my
$device
=
$job
->device;
return
Status->error(
'discover failed: unable to interpret device param'
)
unless
defined
$device
;
return
Status->error(
"discover failed: no device param (need -d ?)"
)
if
$device
->ip eq
'0.0.0.0'
;
return
$job
->cancel(
"fresh discover cancelled: $device already known"
)
if
$device
->in_storage
and (
$job
->subaction eq
'with-nodes'
and not
$job
->username);
return
Status->info(
"discover skipped: $device is not discoverable"
)
unless
is_discoverable_now(
$device
);
return
Status->done(
'Discover is able to run.'
);
});
true;