remove psql code from netdisco-do and fix detection of misspelled action

This commit is contained in:
Oliver Gorwits
2017-09-06 21:01:37 +01:00
parent 411918e3f8
commit 707fc82b99

View File

@@ -173,49 +173,9 @@ unless ($action) {
return ('done', sprintf 'Renumbered device %s to %s (%s).', return ('done', sprintf 'Renumbered device %s to %s (%s).',
$device->ip, $new_ip, ($device->dns || '')); $device->ip, $new_ip, ($device->dns || ''));
} }
sub psql {
my ($self, $job) = @_;
my ($device, $port, $extra) = map {$job->$_} qw/device port extra/;
my $name = ($ENV{NETDISCO_DBNAME} || setting('database')->{name} || 'netdisco');
my $host = setting('database')->{host};
my $user = setting('database')->{user};
my $pass = setting('database')->{pass};
my $portnum = undef;
if ($host and $host =~ m/([^;]+);port=(\d+)/) {
$host = $1;
$portnum = $2;
}
$ENV{PGHOST} = $host if $host;
$ENV{PGPORT} = $portnum if defined $portnum;
$ENV{PGDATABASE} = $name;
$ENV{PGUSER} = $user;
$ENV{PGPASSWORD} = $pass;
$ENV{PGCLIENTENCODING} = 'UTF8';
if ($extra) {
system('psql', '-c', $extra);
}
else {
system('psql');
}
return ('done', "psql session closed.");
}
} }
my $worker = MyWorker->new(); my $worker = MyWorker->new();
# belt and braces check before we go ahead
if (not $worker->can( $action )) {
pod2usage(
-msg => (sprintf 'error: %s is not a valid action', $action),
-verbose => 2,
-exitval => 3,
);
}
my $net = NetAddr::IP->new($device); my $net = NetAddr::IP->new($device);
if ($device and (!$net or $net->num == 0 or $net->addr eq '0.0.0.0')) { if ($device and (!$net or $net->num == 0 or $net->addr eq '0.0.0.0')) {
info sprintf '%s: error - Bad host, IP or prefix: %s', $action, $device; info sprintf '%s: error - Bad host, IP or prefix: %s', $action, $device;
@@ -257,6 +217,14 @@ foreach my $host (@hostlist) {
$job->log("error running job: $_"); $job->log("error running job: $_");
}; };
if ($job->log eq 'no worker for this action was successful') {
pod2usage(
-msg => (sprintf 'error: %s is not a valid action', $action),
-verbose => 2,
-exitval => 3,
);
}
info sprintf '%s: finished at %s', $action, scalar localtime; info sprintf '%s: finished at %s', $action, scalar localtime;
info sprintf '%s: status %s: %s', $action, $job->status, $job->log; info sprintf '%s: status %s: %s', $action, $job->status, $job->log;
$exitstatus = 1 if !$exitstatus and $job->status ne 'done'; $exitstatus = 1 if !$exitstatus and $job->status ne 'done';