From 0b0c6a595591bb9f3963a4b25141ddff0a73c124 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Wed, 28 Jul 2010 10:50:08 +0200 Subject: Move extra status.dat parsing into separate function --- .gitignore | 1 + bin/icli | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..84c048a --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/build/ diff --git a/bin/icli b/bin/icli index 3f52193..e5277a6 100755 --- a/bin/icli +++ b/bin/icli @@ -54,9 +54,6 @@ sub read_status_line { } when('servicestatus') { push(@{$data->{services}->{$cache->{host_name}}}, $cache); - if ($cache->{current_state} != 0) { - $extra->{$cache->{host_name}}->{service_problem} = 1; - } } when('contactstatus') { push(@{$data->{contacts}}, $cache); @@ -78,6 +75,17 @@ sub read_status { close($fh); } +sub enhance_status { + HOST: for my $h (keys %{$data->{services}}) { + for my $s (@{$data->{services}->{$h}}) { + if ($s->{current_state} != 0) { + $extra->{$h}->{service_problem} = 1; + next HOST; + } + } + } +} + sub service_state { my ($digit) = @_; given ($digit) { @@ -166,6 +174,7 @@ GetOptions( ); read_status(); +enhance_status(); if ($for_host) { if (have_host($for_host)) { -- cgit v1.2.3