device_ignore table to track devices to skip in polling

This commit is contained in:
Oliver Gorwits
2017-05-21 14:52:33 +01:00
parent 47a5f40efe
commit ed193356f8
6 changed files with 65 additions and 8 deletions

View File

@@ -114,4 +114,17 @@ between the date stamp and time stamp. That is:
sub finished_stamp { return (shift)->get_column('finished_stamp') }
=head1 RELATIONSHIPS
=head2 ignored
Retuns the set of C<device_ignore> entries which may apply to this job. They
match the device IP and job action, and may refer to one or more backends.
=cut
__PACKAGE__->has_many( ignored => 'App::Netdisco::DB::Result::DeviceIgnore',
{ 'foreign.device' => 'self.device', 'foreign.action' => 'self.action' },
);
1;

View File

@@ -0,0 +1,23 @@
use utf8;
package App::Netdisco::DB::Result::DeviceIgnore;
use strict;
use warnings;
use base 'DBIx::Class::Core';
__PACKAGE__->table("device_ignore");
__PACKAGE__->add_columns(
"backend",
{ data_type => "text", is_nullable => 0 },
"device",
{ data_type => "inet", is_nullable => 0 },
"action",
{ data_type => "text", is_nullable => 0 },
"failures",
{ data_type => "integer", is_nullable => 1, default_value => '0' },
"ignore",
{ data_type => "boolean", is_nullable => 1, default_value => \'false' },
);
__PACKAGE__->set_primary_key("backend", "device", "action");
1;

View File

@@ -5,8 +5,11 @@ use warnings;
use base 'DBIx::Class::ResultSet';
__PACKAGE__->load_components(
qw{Helper::ResultSet::SetOperations Helper::ResultSet::Shortcut});
__PACKAGE__->load_components(qw/
Helper::ResultSet::SetOperations
Helper::ResultSet::Shortcut
Helper::ResultSet::CorrelateRelationship
/);
=head1 ADDITIONAL METHODS