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

fix: change the way of creating host name which is an id in the database #104

Merged
merged 1 commit into from
Aug 24, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion splunk_connect_for_snmp_poller/manager/poller_utilities.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
from splunk_connect_for_snmp_poller.manager.realtime.real_time_data import (
should_redo_walk,
)
from splunk_connect_for_snmp_poller.manager.task_utilities import parse_port
from splunk_connect_for_snmp_poller.manager.tasks import snmp_polling
from splunk_connect_for_snmp_poller.manager.validator.inventory_validator import (
is_valid_inventory_line_from_dict,
Expand Down Expand Up @@ -132,7 +133,10 @@ def _update_mongo(
all_walked_hosts_collection, host, host_already_walked, current_sys_up_time
):
if not host_already_walked:
all_walked_hosts_collection.add_host(host)
_host, _port = parse_port(host)
host_to_add = f"{_host}:{_port}"
logger.info(f"Adding host: {host_to_add} into Mongo database")
all_walked_hosts_collection.add_host(host_to_add)
all_walked_hosts_collection.update_real_time_data_for(host, current_sys_up_time)


Expand Down
7 changes: 6 additions & 1 deletion splunk_connect_for_snmp_poller/mongo.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,16 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
import logging
import os

from pymongo import MongoClient, ReturnDocument
from pymongo.errors import ConnectionFailure

from splunk_connect_for_snmp_poller.manager.realtime.interface_mib import InterfaceMib

logger = logging.getLogger(__name__)

"""
In order to store some general data into Mongo we use the following structure.
Each WalkedHostsRepository can contain the following fields:
Expand Down Expand Up @@ -117,6 +120,9 @@ def real_time_data_for(self, host):

def static_data_for(self, host):
full_collection = self._walked_hosts.find_one({"_id": host})
if not full_collection:
logger.info(f"No id {host} in walked_host collection")
return None
if WalkedHostsRepository.MIB_STATIC_DATA in full_collection:
mib_static_data = full_collection[WalkedHostsRepository.MIB_STATIC_DATA]
if InterfaceMib.IF_MIB_DATA_MONGO_IDENTIFIER in mib_static_data:
Expand Down Expand Up @@ -147,6 +153,5 @@ def update_mib_static_data_for(self, host, if_mib_data):
self._walked_hosts.find_one_and_update(
{"_id": host},
{"$set": real_time_data_dictionary},
upsert=True,
return_document=ReturnDocument.AFTER,
)