Fix #153 - Add exclude option for container state
This commit is contained in:
parent
4b2e9b0ac8
commit
4e580cfa51
|
@ -46,6 +46,7 @@ sub new {
|
|||
"cert-file:s" => { name => 'cert_file' },
|
||||
"key-file:s" => { name => 'key_file' },
|
||||
"cacert-file:s" => { name => 'cacert_file' },
|
||||
"exclude:s" => { name => 'exclude' },
|
||||
"timeout:s" => { name => 'timeout' },
|
||||
});
|
||||
|
||||
|
@ -65,6 +66,16 @@ sub check_options {
|
|||
$self->{http}->set_options(%{$self->{option_results}})
|
||||
}
|
||||
|
||||
sub check_exclude {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
if (defined($self->{option_results}->{exclude}) && $self->{option_results}->{exclude} =~ /(^|\s|,)${options{status}}(\s|,|$)/) {
|
||||
$self->{output}->output_add(long_msg => sprintf("Skipping ${options{status}} container."));
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub api_request {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
|
@ -84,20 +95,22 @@ sub api_request {
|
|||
}
|
||||
|
||||
foreach my $val (@$webcontent) {
|
||||
my $containerstate;
|
||||
if (($val->{Status} =~ m/^Up/) && ($val->{Status} =~ m/^(?:(?!Paused).)*$/)) {
|
||||
return if ($self->check_exclude(status => 'Running'));
|
||||
$containerstate = 'Running';
|
||||
} elsif ($val->{Status} =~ m/^Exited/) {
|
||||
return if ($self->check_exclude(status => 'Exited'));
|
||||
$containerstate = 'Exited';
|
||||
} elsif ($val->{Status} =~ m/\(Paused\)$/) {
|
||||
return if ($self->check_exclude(status => 'Paused'));
|
||||
$containerstate = 'Paused';
|
||||
}
|
||||
my $containername = $val->{Names}->[0];
|
||||
$containername =~ s/^\///;
|
||||
$self->{container_infos}->{$containername}->{id} = $val->{Id};
|
||||
$self->{container_infos}->{$containername}->{image} = $val->{Image};
|
||||
my $containerstate;
|
||||
if (($val->{Status} =~ m/^Up/) && ($val->{Status} =~ m/^(?:(?!Paused).)*$/)) {
|
||||
$containerstate = 'Running';
|
||||
} elsif ($val->{Status} =~ m/^Exited/) {
|
||||
$containerstate = 'Exited';
|
||||
} elsif ($val->{Status} =~ m/\(Paused\)$/) {
|
||||
$containerstate = 'Paused';
|
||||
}
|
||||
$self->{container_infos}->{$containername}->{state} = $containerstate;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -197,6 +210,10 @@ Specify key to send to the webserver
|
|||
|
||||
Specify root certificate to send to the webserver
|
||||
|
||||
=item B<--exlude>
|
||||
|
||||
Exclude specific container's state (comma seperated list) (Example: --exclude=Paused,Running)
|
||||
|
||||
=item B<--timeout>
|
||||
|
||||
Threshold for HTTP timeout (Default: 3)
|
||||
|
|
Loading…
Reference in New Issue