From 8a24df7223d4a563dedf6fe9bad1c575c96f3b63 Mon Sep 17 00:00:00 2001 From: James Rouzier Date: Mon, 6 Jan 2025 16:34:33 +0000 Subject: [PATCH] Only update things with value --- lib/pf/fingerbank.pm | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/pf/fingerbank.pm b/lib/pf/fingerbank.pm index 49904bb0f693..e84cd0ae2662 100644 --- a/lib/pf/fingerbank.pm +++ b/lib/pf/fingerbank.pm @@ -198,15 +198,16 @@ Given a MAC address, the endpoint attributes (from the collector) and the Finger sub record_result { my ($mac, $attributes, $query_result) = @_; my $timer = pf::StatsD::Timer->new({level => 7}); + my %set = ( + 'device_type' => $query_result->{'device'}{'name'}, + 'device_class' => $query_result->{device_class}, + 'device_version' => $query_result->{'version'}, + 'device_score' => $query_result->{'score'}, + 'device_manufacturer' => $query_result->{'manufacturer'}->{'name'} // "", + map { $RECORD_RESULT_ATTR_MAP{$_} => $attributes->{$_} } grep { my $v = $attributes->{$_}; defined $v && length($v) } keys(%RECORD_RESULT_ATTR_MAP), + ); pf::dal::node->update_items( - -set => { - 'device_type' => $query_result->{'device'}{'name'}, - 'device_class' => $query_result->{device_class}, - 'device_version' => $query_result->{'version'}, - 'device_score' => $query_result->{'score'}, - 'device_manufacturer' => $query_result->{'manufacturer'}->{'name'} // "", - map { $RECORD_RESULT_ATTR_MAP{$_} => $attributes->{$_} } keys(%RECORD_RESULT_ATTR_MAP), - }, + -set => \%set, -where => { mac => $mac, },