From 5f4337bf864b0fa794a928225d54084918452484 Mon Sep 17 00:00:00 2001 From: Artem Rys Date: Wed, 18 Aug 2021 09:46:01 +0200 Subject: [PATCH 1/2] refactor: move file-based modular alert default conf settings There is no reason to keep those settings in the file and read file every time we need to create modular alerts. This PR refactors it the way configuration is now stored in the Python code which should simplify the development and testing. --- .licenserc.yaml | 1 - .../alert_actions_conf_default_settings.json | 5 ----- .../build_core/alert_actions_conf_gen.py | 16 ++++++---------- tests/unit/test_alert_actions_conf_gen.py | 5 ----- tests/unit/test_alert_actions_html_gen.py | 5 ----- tests/unit/test_alert_actions_py_gen.py | 5 ----- 6 files changed, 6 insertions(+), 31 deletions(-) delete mode 100644 splunk_add_on_ucc_framework/modular_alert_builder/build_core/alert_actions_conf_default_settings.json diff --git a/.licenserc.yaml b/.licenserc.yaml index f79f46d6a..1295babb7 100644 --- a/.licenserc.yaml +++ b/.licenserc.yaml @@ -33,7 +33,6 @@ header: - "splunk_add_on_ucc_framework/templates/*" - "splunk_add_on_ucc_framework/arf_dir_templates/modular_alert_package.settings" - "splunk_add_on_ucc_framework/modular_alert_builder/build_core/arf_template/**" - - "splunk_add_on_ucc_framework/modular_alert_builder/build_core/alert_actions_conf_default_settings.json" - "tests/**" - ".*" diff --git a/splunk_add_on_ucc_framework/modular_alert_builder/build_core/alert_actions_conf_default_settings.json b/splunk_add_on_ucc_framework/modular_alert_builder/build_core/alert_actions_conf_default_settings.json deleted file mode 100644 index d7d34a725..000000000 --- a/splunk_add_on_ucc_framework/modular_alert_builder/build_core/alert_actions_conf_default_settings.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "python.version": "python3", - "is_custom": 1, - "payload_format": "json" -} \ No newline at end of file diff --git a/splunk_add_on_ucc_framework/modular_alert_builder/build_core/alert_actions_conf_gen.py b/splunk_add_on_ucc_framework/modular_alert_builder/build_core/alert_actions_conf_gen.py index 3777d39dc..8b726cb8d 100644 --- a/splunk_add_on_ucc_framework/modular_alert_builder/build_core/alert_actions_conf_gen.py +++ b/splunk_add_on_ucc_framework/modular_alert_builder/build_core/alert_actions_conf_gen.py @@ -17,7 +17,6 @@ import json import os -from json import loads as jloads from os import linesep from os import path as op @@ -98,7 +97,6 @@ def get_icon_path(self, alert, create_dir_path=True): class AlertActionsConfGeneration(AlertActionsConfBase): DEFAULT_CONF_TEMPLATE = "alert_actions.conf.template" DEFAULT_SPEC_TEMPLATE = "alert_actions.conf.spec.template" - DEFAULT_SETTINGS_FILE = "alert_actions_conf_default_settings.json" DEFAULT_EVENTTYPES_TEMPLATE = "eventtypes.conf.template" DEFAULT_TAGS_TEMPLATE = "tags.conf.template" @@ -126,10 +124,11 @@ def __init__( ac.PARAMETERS, ] self._remove_fields = [ac.SHORT_NAME] + self._html_fields - self._default_settings_file = default_settings_file or op.join( - op.dirname(op.abspath(__file__)), - AlertActionsConfGeneration.DEFAULT_SETTINGS_FILE, - ) + self._default_conf_settings = { + "python.version": "python3", + "is_custom": 1, + "payload_format": "json", + } self._output = {} def generate_conf(self): @@ -300,13 +299,10 @@ def handle(self): self.generate_tags() def add_default_settings(self): - with open(self._default_settings_file) as df: - default_settings = jloads(df.read()) - for alert in self._alert_settings: if ac.ALERT_PROPS not in list(alert.keys()): alert[ac.ALERT_PROPS] = {} - for k, v in list(default_settings.items()): + for k, v in list(self._default_conf_settings.items()): if k in list(alert[ac.ALERT_PROPS].keys()): continue diff --git a/tests/unit/test_alert_actions_conf_gen.py b/tests/unit/test_alert_actions_conf_gen.py index c0cc013a4..295363359 100644 --- a/tests/unit/test_alert_actions_conf_gen.py +++ b/tests/unit/test_alert_actions_conf_gen.py @@ -107,11 +107,6 @@ def test_generate_alert_action(self): }, }, ], - "alert_props": { - "python.version": "python3", - "is_custom": 1, - "payload_format": "json", - }, } ], }, diff --git a/tests/unit/test_alert_actions_html_gen.py b/tests/unit/test_alert_actions_html_gen.py index 62d2b4b13..3f8a85401 100644 --- a/tests/unit/test_alert_actions_html_gen.py +++ b/tests/unit/test_alert_actions_html_gen.py @@ -114,11 +114,6 @@ def test_generate_alert_action(self): }, }, ], - "alert_props": { - "python.version": "python3", - "is_custom": 1, - "payload_format": "json", - }, } ], }, diff --git a/tests/unit/test_alert_actions_py_gen.py b/tests/unit/test_alert_actions_py_gen.py index 9d34be277..dbc8b28ff 100644 --- a/tests/unit/test_alert_actions_py_gen.py +++ b/tests/unit/test_alert_actions_py_gen.py @@ -107,11 +107,6 @@ def test_generate_alert_action(self): }, }, ], - "alert_props": { - "python.version": "python3", - "is_custom": 1, - "payload_format": "json", - }, } ], }, From 9419c95a4a41fe7928f1a862e0c6587b6109426e Mon Sep 17 00:00:00 2001 From: Artem Rys Date: Wed, 18 Aug 2021 10:45:45 +0200 Subject: [PATCH 2/2] fix: add icon_path to each modular alert conf --- .../modular_alert_builder/build_core/alert_actions_conf_gen.py | 1 + tests/data/test_ucc_generate.py | 1 + .../Splunk_TA_UCCExample/default/alert_actions.conf | 1 + tests/unit/testdata/alert_actions.conf.generated | 1 + 4 files changed, 4 insertions(+) diff --git a/splunk_add_on_ucc_framework/modular_alert_builder/build_core/alert_actions_conf_gen.py b/splunk_add_on_ucc_framework/modular_alert_builder/build_core/alert_actions_conf_gen.py index 8b726cb8d..87becfbc5 100644 --- a/splunk_add_on_ucc_framework/modular_alert_builder/build_core/alert_actions_conf_gen.py +++ b/splunk_add_on_ucc_framework/modular_alert_builder/build_core/alert_actions_conf_gen.py @@ -128,6 +128,7 @@ def __init__( "python.version": "python3", "is_custom": 1, "payload_format": "json", + "icon_path": "alerticon.png", } self._output = {} diff --git a/tests/data/test_ucc_generate.py b/tests/data/test_ucc_generate.py index e6415c7ee..acadbcfc1 100644 --- a/tests/data/test_ucc_generate.py +++ b/tests/data/test_ucc_generate.py @@ -38,6 +38,7 @@ def test_ucc_generate_with_inputs_configuration_alerts(self): # Expected add-on package folder does not have "lib" in it. files_to_be_equal = [ ("README.txt",), + ("default", "alert_actions.conf"), ("default", "eventtypes.conf"), ("default", "inputs.conf"), ("default", "restmap.conf"), diff --git a/tests/expected_output_global_config_inputs_configuration_alerts/Splunk_TA_UCCExample/default/alert_actions.conf b/tests/expected_output_global_config_inputs_configuration_alerts/Splunk_TA_UCCExample/default/alert_actions.conf index 19e1230d1..8e17c30bc 100644 --- a/tests/expected_output_global_config_inputs_configuration_alerts/Splunk_TA_UCCExample/default/alert_actions.conf +++ b/tests/expected_output_global_config_inputs_configuration_alerts/Splunk_TA_UCCExample/default/alert_actions.conf @@ -5,6 +5,7 @@ param._cam = {"task": ["Create", "Update"], "subject": ["endpoint"], "category": python.version = python3 is_custom = 1 payload_format = json +icon_path = alerticon.png param.name = xyz param.all_incidents = param.table_list = problem diff --git a/tests/unit/testdata/alert_actions.conf.generated b/tests/unit/testdata/alert_actions.conf.generated index f1e51f2ad..49c91c119 100644 --- a/tests/unit/testdata/alert_actions.conf.generated +++ b/tests/unit/testdata/alert_actions.conf.generated @@ -5,6 +5,7 @@ param._cam = {"task": ["Create", "Update"], "subject": ["endpoint"], "category": python.version = python3 is_custom = 1 payload_format = json +icon_path = alerticon.png param.name = xyz param.all_incidents = param.table_list = problem