multi worker actions need not return done from all workers
This commit is contained in:
@@ -25,7 +25,7 @@ register_worker({ stage => 'check' }, sub {
|
|||||||
return Status->defer("arpnip deferred: $device is not arpnipable")
|
return Status->defer("arpnip deferred: $device is not arpnipable")
|
||||||
unless is_arpnipable_now($device);
|
unless is_arpnipable_now($device);
|
||||||
|
|
||||||
return Status->done('Arpnip is able to run');
|
return Status->done('arpnip is able to run');
|
||||||
});
|
});
|
||||||
|
|
||||||
true;
|
true;
|
||||||
|
|||||||
@@ -22,12 +22,10 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
|
|||||||
# TODO: IPv6 subnets
|
# TODO: IPv6 subnets
|
||||||
|
|
||||||
my $now = 'to_timestamp('. (join '.', gettimeofday) .')';
|
my $now = 'to_timestamp('. (join '.', gettimeofday) .')';
|
||||||
|
|
||||||
store_subnet($_, $now) for @subnets;
|
store_subnet($_, $now) for @subnets;
|
||||||
debug sprintf ' [%s] arpnip - processed %s Subnet entries',
|
|
||||||
$device->ip, scalar @subnets;
|
|
||||||
|
|
||||||
return Status->done("Ended arpnip for $device");
|
return Status->noop(sprintf ' [%s] arpnip - processed %s Subnet entries',
|
||||||
|
$device->ip, scalar @subnets);
|
||||||
});
|
});
|
||||||
|
|
||||||
# gathers device subnets
|
# gathers device subnets
|
||||||
|
|||||||
@@ -59,8 +59,7 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
|
|||||||
} # ALIAS
|
} # ALIAS
|
||||||
}
|
}
|
||||||
|
|
||||||
return Status->done("Ended discover for $device")
|
return true if $new_ip eq $old_ip;
|
||||||
if $new_ip eq $old_ip;
|
|
||||||
|
|
||||||
schema('netdisco')->txn_do(sub {
|
schema('netdisco')->txn_do(sub {
|
||||||
# delete target device with the same vendor and serial number
|
# delete target device with the same vendor and serial number
|
||||||
@@ -72,11 +71,9 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
|
|||||||
$device->renumber($new_ip)
|
$device->renumber($new_ip)
|
||||||
or die "cannot renumber to: $new_ip"; # rollback
|
or die "cannot renumber to: $new_ip"; # rollback
|
||||||
|
|
||||||
debug sprintf ' [%s] device - changed IP to %s (%s)',
|
return Status->noop(sprintf ' [%s] device - changed IP to %s (%s)',
|
||||||
$old_ip, $device->ip, ($device->dns || '');
|
$old_ip, $device->ip, ($device->dns || ''));
|
||||||
});
|
});
|
||||||
|
|
||||||
return Status->done("Ended discover for $device");
|
|
||||||
});
|
});
|
||||||
|
|
||||||
true;
|
true;
|
||||||
|
|||||||
@@ -40,11 +40,9 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
debug
|
return Status->noop(
|
||||||
sprintf ' [%s] modules - 0 chassis components (added one pseudo for chassis)',
|
sprintf ' [%s] modules - 0 chassis components (added one pseudo for chassis)',
|
||||||
$device->ip;
|
$device->ip);
|
||||||
|
|
||||||
return Status->done("Ended discover for $device");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
my $e_descr = $snmp->e_descr;
|
my $e_descr = $snmp->e_descr;
|
||||||
@@ -86,11 +84,10 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
|
|||||||
debug sprintf ' [%s] modules - removed %d chassis modules',
|
debug sprintf ' [%s] modules - removed %d chassis modules',
|
||||||
$device->ip, $gone;
|
$device->ip, $gone;
|
||||||
$device->modules->populate(\@modules);
|
$device->modules->populate(\@modules);
|
||||||
debug sprintf ' [%s] modules - added %d new chassis modules',
|
|
||||||
$device->ip, scalar @modules;
|
|
||||||
});
|
|
||||||
|
|
||||||
return Status->done("Ended discover for $device");
|
return Status->noop(sprintf ' [%s] modules - added %d new chassis modules',
|
||||||
|
$device->ip, scalar @modules);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
true;
|
true;
|
||||||
|
|||||||
@@ -141,11 +141,10 @@ register_worker({ stage => 'early', driver => 'snmp' }, sub {
|
|||||||
$device->ip, $gone;
|
$device->ip, $gone;
|
||||||
$device->update_or_insert(undef, {for => 'update'});
|
$device->update_or_insert(undef, {for => 'update'});
|
||||||
$device->ports->populate([values %interfaces]);
|
$device->ports->populate([values %interfaces]);
|
||||||
debug sprintf ' [%s] interfaces - added %d new interfaces',
|
|
||||||
$device->ip, scalar values %interfaces;
|
|
||||||
});
|
|
||||||
|
|
||||||
return Status->done("Ended discover for $device");
|
return Status->noop(sprintf ' [%s] interfaces - added %d new interfaces',
|
||||||
|
$device->ip, scalar values %interfaces);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
true;
|
true;
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return Status->done("Ended discover for $device");
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
=head2 store_neighbors( $device )
|
=head2 store_neighbors( $device )
|
||||||
|
|||||||
@@ -18,8 +18,7 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
|
|||||||
my $p_status = $snmp->peth_power_status;
|
my $p_status = $snmp->peth_power_status;
|
||||||
|
|
||||||
if (!defined $p_watts) {
|
if (!defined $p_watts) {
|
||||||
debug sprintf ' [%s] power - 0 power modules', $device->ip;
|
return Status->noop(sprintf ' [%s] power - 0 power modules', $device->ip);
|
||||||
return Status->done("Ended discover for $device");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# build device module power info suitable for DBIC
|
# build device module power info suitable for DBIC
|
||||||
@@ -72,11 +71,10 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
|
|||||||
debug sprintf ' [%s] power - removed %d PoE capable ports',
|
debug sprintf ' [%s] power - removed %d PoE capable ports',
|
||||||
$device->ip, $gone;
|
$device->ip, $gone;
|
||||||
$device->powered_ports->populate(\@portpower);
|
$device->powered_ports->populate(\@portpower);
|
||||||
debug sprintf ' [%s] power - added %d new PoE capable ports',
|
|
||||||
$device->ip, scalar @portpower;
|
|
||||||
});
|
|
||||||
|
|
||||||
return Status->done("Ended discover for $device");
|
return Status->noop(sprintf ' [%s] power - added %d new PoE capable ports',
|
||||||
|
$device->ip, scalar @portpower);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
true;
|
true;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ use Dancer::Plugin::DBIC 'schema';
|
|||||||
use NetAddr::IP::Lite ':lower';
|
use NetAddr::IP::Lite ':lower';
|
||||||
use Encode;
|
use Encode;
|
||||||
|
|
||||||
register_worker({ stage => 'check', driver => 'snmp' }, sub {
|
register_worker({ stage => 'main', driver => 'snmp' }, sub {
|
||||||
my ($job, $workerconf) = @_;
|
my ($job, $workerconf) = @_;
|
||||||
|
|
||||||
my $device = $job->device;
|
my $device = $job->device;
|
||||||
|
|||||||
@@ -85,11 +85,10 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
|
|||||||
debug sprintf ' [%s] vlans - removed %d port VLANs',
|
debug sprintf ' [%s] vlans - removed %d port VLANs',
|
||||||
$device->ip, $gone;
|
$device->ip, $gone;
|
||||||
$device->port_vlans->populate(\@portvlans);
|
$device->port_vlans->populate(\@portvlans);
|
||||||
debug sprintf ' [%s] vlans - added %d new port VLANs',
|
|
||||||
$device->ip, scalar @portvlans;
|
|
||||||
});
|
|
||||||
|
|
||||||
return Status->done("Ended discover for $device");
|
return Status->noop(sprintf ' [%s] vlans - added %d new port VLANs',
|
||||||
|
$device->ip, scalar @portvlans);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
true;
|
true;
|
||||||
|
|||||||
@@ -15,8 +15,7 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
|
|||||||
or return Status->defer("discover failed: could not SNMP connect to $device");
|
or return Status->defer("discover failed: could not SNMP connect to $device");
|
||||||
|
|
||||||
my $ssidlist = $snmp->i_ssidlist;
|
my $ssidlist = $snmp->i_ssidlist;
|
||||||
return Status->done("Ended discover for $device")
|
return true unless scalar keys %$ssidlist;
|
||||||
unless scalar keys %$ssidlist;
|
|
||||||
|
|
||||||
my $interfaces = $snmp->interfaces;
|
my $interfaces = $snmp->interfaces;
|
||||||
my $ssidbcast = $snmp->i_ssidbcast;
|
my $ssidbcast = $snmp->i_ssidbcast;
|
||||||
@@ -76,11 +75,10 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
|
|||||||
debug sprintf ' [%s] wireless - removed %d wireless channels',
|
debug sprintf ' [%s] wireless - removed %d wireless channels',
|
||||||
$device->ip, $gone;
|
$device->ip, $gone;
|
||||||
$device->wireless_ports->populate(\@channels);
|
$device->wireless_ports->populate(\@channels);
|
||||||
debug sprintf ' [%s] wireless - added %d new wireless channels',
|
|
||||||
$device->ip, scalar @channels;
|
|
||||||
});
|
|
||||||
|
|
||||||
return Status->done("Ended discover for $device");
|
return Status->noop(sprintf ' [%s] wireless - added %d new wireless channels',
|
||||||
|
$device->ip, scalar @channels);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
true;
|
true;
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ register_worker({ stage => 'main' }, sub {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return Status->done("Ended discover for $device");
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
true;
|
true;
|
||||||
|
|||||||
@@ -18,17 +18,15 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
|
|||||||
my $now = 'to_timestamp('. (join '.', gettimeofday) .')';
|
my $now = 'to_timestamp('. (join '.', gettimeofday) .')';
|
||||||
|
|
||||||
my $cd11_txrate = $snmp->cd11_txrate;
|
my $cd11_txrate = $snmp->cd11_txrate;
|
||||||
return Status->done("Ended macsuck for $device")
|
return true unless $cd11_txrate and scalar keys %$cd11_txrate;
|
||||||
unless $cd11_txrate and scalar keys %$cd11_txrate;
|
|
||||||
|
|
||||||
if (setting('store_wireless_clients')) {
|
if (setting('store_wireless_clients')) {
|
||||||
debug sprintf ' [%s] macsuck - gathering wireless client info',
|
debug sprintf ' [%s] macsuck - gathering wireless client info',
|
||||||
$device->ip;
|
$device->ip;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
debug sprintf ' [%s] macsuck - dot11 info available but skipped due to config',
|
return Status->noop(sprintf ' [%s] macsuck - dot11 info available but skipped due to config',
|
||||||
$device->ip;
|
$device->ip);
|
||||||
return Status->done("Ended macsuck for $device");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
my $cd11_rateset = $snmp->cd11_rateset();
|
my $cd11_rateset = $snmp->cd11_rateset();
|
||||||
@@ -80,7 +78,7 @@ register_worker({ stage => 'main', driver => 'snmp' }, sub {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return Status->done("Ended macsuck for $device");
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
true;
|
true;
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ use aliased 'App::Netdisco::Worker::Status';
|
|||||||
use App::Netdisco::Util::NodeMonitor ();
|
use App::Netdisco::Util::NodeMonitor ();
|
||||||
|
|
||||||
register_worker({ stage => 'main' }, sub {
|
register_worker({ stage => 'main' }, sub {
|
||||||
my ($job, $workerconf) = @_;
|
|
||||||
App::Netdisco::Util::NodeMonitor::monitor();
|
App::Netdisco::Util::NodeMonitor::monitor();
|
||||||
return Status->done('Generated monitor data');
|
return Status->done('Generated monitor data');
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user