support action::namespace for netdisco-do
This commit is contained in:
@@ -109,7 +109,7 @@ my $exitstatus = 0;
|
|||||||
|
|
||||||
foreach my $host (@hostlist) {
|
foreach my $host (@hostlist) {
|
||||||
my $dev = $host ? get_device($host->addr) : undef;
|
my $dev = $host ? get_device($host->addr) : undef;
|
||||||
if ($dev and not (blessed $dev and $dev->in_storage) and $action ne 'discover') {
|
if ($dev and not (blessed $dev and $dev->in_storage) and $action !~ m/^discover/) {
|
||||||
info sprintf "%s: error - Don't know device: %s", $action, $host->addr;
|
info sprintf "%s: error - Don't know device: %s", $action, $host->addr;
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
@@ -139,7 +139,7 @@ foreach my $host (@hostlist) {
|
|||||||
$job->log("error running job: $_");
|
$job->log("error running job: $_");
|
||||||
};
|
};
|
||||||
|
|
||||||
if ($job->log eq 'failed to report from any worker!') {
|
if ($job->log eq 'failed to report from any worker!' and not $job->only_namespace) {
|
||||||
pod2usage(
|
pod2usage(
|
||||||
-msg => (sprintf 'error: %s is not a valid action', $action),
|
-msg => (sprintf 'error: %s is not a valid action', $action),
|
||||||
-verbose => 2,
|
-verbose => 2,
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ foreach my $slot (qw/
|
|||||||
device
|
device
|
||||||
port
|
port
|
||||||
action
|
action
|
||||||
|
only_namespace
|
||||||
subaction
|
subaction
|
||||||
status
|
status
|
||||||
username
|
username
|
||||||
@@ -36,6 +37,15 @@ has '_statuslist' => (
|
|||||||
default => sub { [] },
|
default => sub { [] },
|
||||||
);
|
);
|
||||||
|
|
||||||
|
sub BUILD {
|
||||||
|
my ($job, $args) = @_;
|
||||||
|
|
||||||
|
if ($job->action =~ m/^(\w+)::(\w+)$/i) {
|
||||||
|
$job->action($1);
|
||||||
|
$job->only_namespace($2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
=head1 METHODS
|
=head1 METHODS
|
||||||
|
|
||||||
=head2 summary
|
=head2 summary
|
||||||
|
|||||||
@@ -36,6 +36,13 @@ register 'register_worker' => sub {
|
|||||||
# check to see if this namespace has already passed at higher priority
|
# check to see if this namespace has already passed at higher priority
|
||||||
return if $job->namespace_passed($workerconf);
|
return if $job->namespace_passed($workerconf);
|
||||||
|
|
||||||
|
# support part-actions via action::namespace
|
||||||
|
if ($job->only_namespace and $workerconf->{phase} ne 'check') {
|
||||||
|
return unless $workerconf->{namespace} eq lc( $job->only_namespace )
|
||||||
|
or (($workerconf->{phase} eq 'early')
|
||||||
|
and ($job->device and not $job->device->in_storage));
|
||||||
|
}
|
||||||
|
|
||||||
my @newuserconf = ();
|
my @newuserconf = ();
|
||||||
my @userconf = @{ setting('device_auth') || [] };
|
my @userconf = @{ setting('device_auth') || [] };
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user