61 lines
2.0 KiB
Python
61 lines
2.0 KiB
Python
import json
|
|
import os
|
|
import sys
|
|
import time
|
|
from menmice_query import MenMiceQuery
|
|
import logging
|
|
|
|
splunkhome = os.environ['SPLUNK_HOME']
|
|
sys.path.append(os.path.join(splunkhome, 'etc', 'apps', 'Snet_check_addon', 'lib'))
|
|
from splunklib.searchcommands import dispatch, GeneratingCommand, Configuration, Option, validators
|
|
from solnlib import conf_manager, log
|
|
|
|
ADDON_NAME = "Snet_check_addon"
|
|
|
|
def get_account_api_key(session_key: str, account_name: str):
|
|
cfm = conf_manager.ConfManager(
|
|
session_key,
|
|
ADDON_NAME,
|
|
realm=f"__REST_CREDENTIAL__#{ADDON_NAME}#configs/conf-snet_check_addon_account",
|
|
)
|
|
account_conf_file = cfm.get_conf("snet_check_addon_account")
|
|
username = account_conf_file.get(account_name).get("username")
|
|
password = account_conf_file.get(account_name).get("password")
|
|
logging.info(f"User is {username}")
|
|
return username, password
|
|
|
|
|
|
@Configuration()
|
|
class GenerateQueryCommand(GeneratingCommand):
|
|
ip = Option(require=True)
|
|
|
|
def run_query(self):
|
|
try:
|
|
self.logger.info("starting run_query menmice...")
|
|
session_key = self.service.token
|
|
self.logger.info("getting configuration menmice")
|
|
username, password = get_account_api_key(session_key, "MenMice")
|
|
self.logger.info("Configuration succesful menmice")
|
|
except Exception as e:
|
|
self.logger.debug(e, exc_info=1)
|
|
menmice = MenMiceQuery()
|
|
response = menmice.run_query(username, password, self.ip)
|
|
return response
|
|
|
|
|
|
def generate(self):
|
|
r_json = self.run_query()
|
|
snet = r_json['result']['range']['customProperties']['Usage']
|
|
if snet == "SNET":
|
|
snet = True
|
|
else:
|
|
snet = False
|
|
logging.info(f"Result of the SNET is {snet}")
|
|
result = {
|
|
"result": snet
|
|
}
|
|
result.update({'_time': time.time(), '_raw': json.dumps(result)})
|
|
yield result
|
|
|
|
|
|
dispatch(GenerateQueryCommand, sys.argv, sys.stdin, sys.stdout, __name__) |