First commit and first version of the add-on

This commit is contained in:
zxBCN Gallego_Izquierdo
2024-05-31 14:07:19 +02:00
commit 1094b4458d
423 changed files with 130141 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
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__)