Skip to content
This repository has been archived by the owner on Dec 17, 2021. It is now read-only.

Commit

Permalink
fix: add fix for profile matching onetime IF-MIB walk
Browse files Browse the repository at this point in the history
  • Loading branch information
omrozowicz-splunk committed Oct 25, 2021
1 parent f722c2a commit 07c69ea
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 12 deletions.
24 changes: 14 additions & 10 deletions splunk_connect_for_snmp_poller/manager/poller.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,30 +128,34 @@ def __check_inventory(self):
if ir.profile == DYNAMIC_PROFILE:
self.delete_all_entries_per_host(ir.host)
self.add_device_for_profile_matching(ir)
self.check_if_new_host_was_added(entry_key, ir, new_enricher)
else:
logger.debug(
"[-] server_config['profiles']: %s",
self._server_config["profiles"],
)
if entry_key not in self._jobs_map:
ir_host = return_database_id(entry_key)
if self._old_enricher != {}:
logger.info(f"New host: {ir_host}")
self.add_enricher_to_a_host(
new_enricher, copy.deepcopy(ir), True
)
self.check_if_new_host_was_added(entry_key, ir, new_enricher)
self.process_new_job(entry_key, ir, profiles)
else:
self.update_schedule_for_changed_conf(entry_key, ir, profiles)

if server_config_modified:
if new_enricher != self._old_enricher:
self.run_enricher_check(
self.run_enricher_changed_check(
new_enricher, inventory_hosts_with_snmp_data
)
self.clean_job_inventory(inventory_entry_keys, inventory_hosts)

def run_enricher_check(self, new_enricher, inventory_hosts_with_snmp_data):
def check_if_new_host_was_added(self, host_key, inventory_record, new_enricher):
ir_host = return_database_id(host_key)
if self._old_enricher != {}:
logger.info(f"New host: {ir_host}")
self.__add_enricher_to_a_host(
new_enricher, copy.deepcopy(inventory_record), True
)

def run_enricher_changed_check(self, new_enricher, inventory_hosts_with_snmp_data):
logger.info(
f"Previous enricher: {self._old_enricher} \n New enricher: {new_enricher}"
)
Expand All @@ -161,12 +165,12 @@ def run_enricher_check(self, new_enricher, inventory_hosts_with_snmp_data):
self._old_enricher = {}
return
for inventory_host in inventory_hosts_with_snmp_data.keys():
self.add_enricher_to_a_host(
self.__add_enricher_to_a_host(
new_enricher, inventory_hosts_with_snmp_data[inventory_host]
)
self._old_enricher = new_enricher

def add_enricher_to_a_host(self, current_enricher, ir, new_host=False):
def __add_enricher_to_a_host(self, current_enricher, ir, new_host=False):
logger.info("Add enricher to a host")
old_enricher = {} if new_host else self._old_enricher
if current_enricher != {}:
Expand Down
4 changes: 2 additions & 2 deletions tests/test_poller.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@


class TestPollerUtilities(TestCase):
def test_run_enricher_check_when_enricher_is_deleted(self):
def test_run_enricher_changed_check_when_enricher_is_deleted(self):
server_config = {"mongo": ""}
with patch(
"splunk_connect_for_snmp_poller.mongo.WalkedHostsRepository.__init__"
Expand All @@ -42,5 +42,5 @@ def test_run_enricher_check_when_enricher_is_deleted(self):
with patch(
"splunk_connect_for_snmp_poller.mongo.WalkedHostsRepository.delete_all_static_data"
):
obj.run_enricher_check({}, {"127.0.0.1:161": MagicMock()})
obj.run_enricher_changed_check({}, {"127.0.0.1:161": MagicMock()})
self.assertEqual(obj._old_enricher, {})

0 comments on commit 07c69ea

Please sign in to comment.