def setup_smart_profiles(request):
    trap_external_ip = request.config.getoption("trap_external_ip")
    logger.info("Integration test for fields smart profiles")
    profile = {
        "smart_profile_field": {
            "frequency": 3,
            "condition": {
                "type": "field",
                "field": "SNMPv2-MIB.sysDescr",
                "patterns": [".*zeus.*"],
            },
            "varBinds": [
                yaml_escape_list(sq("IP-MIB"), sq("icmpOutDestUnreachs"), 0),
                yaml_escape_list(sq("IP-MIB"), sq("icmpOutEchoReps"), 0),
            ],
        }
    }
    update_profiles(profile)
    upgrade_helm(["inventory.yaml", "profiles.yaml"])
    time.sleep(60)
    update_file([f"{trap_external_ip},,2c,public,,,600,,t,"], "inventory.yaml")
    upgrade_helm(["inventory.yaml", "profiles.yaml"])
    time.sleep(30)
    yield
    update_file([f"{trap_external_ip},,2c,public,,,600,,t,t"], "inventory.yaml")
    upgrade_helm(["inventory.yaml"])
    time.sleep(20)
def setup_profiles(request):
    trap_external_ip = request.config.getoption("trap_external_ip")
    profile = {
        "new_profile": {"frequency": 7, "varBinds": [yaml_escape_list(sq("IP-MIB"))]},
        "generic_switch": {
            "frequency": 5,
            "varBinds": [yaml_escape_list(sq("UDP-MIB"))],
        },
    }
    update_profiles(profile)
    upgrade_helm(["profiles.yaml"])
    time.sleep(60)
    update_file(
        [f"{trap_external_ip},,2c,public,,,600,new_profile;generic_switch,,"],
        "inventory.yaml",
    )
    upgrade_helm(["inventory.yaml", "profiles.yaml"])
    time.sleep(30)
    yield
    update_file(
        [f"{trap_external_ip},,2c,public,,,600,new_profile;generic_switch,,t"],
        "inventory.yaml",
    )
    upgrade_helm(["inventory.yaml"])
    time.sleep(20)
 def test_modify_frequency_field(self, request, setup_splunk):
     trap_external_ip = request.config.getoption("trap_external_ip")
     profile = {
         "test_modify": {
             "frequency": 7,
             "varBinds": [yaml_escape_list(sq("UDP-MIB"))],
         },
     }
     update_profiles(profile)
     update_file(
         [f"{trap_external_ip},,2c,public,,,600,test_modify,f,t"], "inventory.yaml"
     )
     upgrade_helm(["inventory.yaml", "profiles.yaml"])
     time.sleep(60)
     update_file(
         [f"{trap_external_ip},,2c,public,,,600,test_modify,f,"], "inventory.yaml"
     )
     upgrade_helm(["inventory.yaml", "profiles.yaml"])
     time.sleep(30)
     search_string = """| mpreview index=netmetrics earliest=-30s | search profiles=test_modify frequency=7 """
     result_count, metric_count = run_retried_single_search(
         setup_splunk, search_string, 8
     )
     assert result_count > 0
     assert metric_count > 0
 def test_modify_varBinds_field(self, request, setup_splunk):
     trap_external_ip = request.config.getoption("trap_external_ip")
     profile = {
         "test_modify": {
             "frequency": 7,
             "varBinds": [
                 yaml_escape_list(sq("TCP-MIB")),
                 yaml_escape_list(sq("IP-MIB"), sq("icmpOutDestUnreachs"), 0),
                 yaml_escape_list(sq("UCD-SNMP-MIB"), sq("laIndex")),
             ],
         },
     }
     update_profiles(profile)
     update_file(
         [f"{trap_external_ip},,2c,public,,,600,test_modify,f,t"], "inventory.yaml"
     )
     upgrade_helm(["inventory.yaml", "profiles.yaml"])
     time.sleep(60)
     update_file(
         [f"{trap_external_ip},,2c,public,,,600,test_modify,f,"], "inventory.yaml"
     )
     upgrade_helm(["inventory.yaml", "profiles.yaml"])
     time.sleep(20)
     search_string = """| mpreview index=netmetrics earliest=-15s | search profiles=test_modify TCP-MIB """
     result_count, metric_count = run_retried_single_search(
         setup_splunk, search_string, 3
     )
     assert result_count > 0
     assert metric_count > 0
     search_string = """| mpreview index=netmetrics  earliest=-15s | search profiles=test_modify | search icmpOutDestUnreachs """
     result_count, metric_count = run_retried_single_search(
         setup_splunk, search_string, 3
     )
     assert result_count > 0
     assert metric_count > 0
     search_string = """| mpreview index=netmetrics earliest=-20s | search  laIndex | dedup metric_name:sc4snmp.UCD-SNMP-MIB.laIndex """
     result_count, metric_count = run_retried_single_search(
         setup_splunk, search_string, 3
     )
     assert result_count == 3
     assert metric_count == 3
def setup_profile(request):
    trap_external_ip = request.config.getoption("trap_external_ip")
    profile = {
        "generic_switch": {
            "frequency": 5,
            "varBinds": [
                yaml_escape_list(sq("TCP-MIB")),
                yaml_escape_list(sq("IF-MIB"), sq("ifType"), 1),
            ],
        }
    }
    update_profiles(profile)
    upgrade_helm(["profiles.yaml"])
    time.sleep(60)
    update_file(
        [f"{trap_external_ip},,2c,public,,,600,generic_switch,,"], "inventory.yaml"
    )
    upgrade_helm(["inventory.yaml", "profiles.yaml"])
    time.sleep(30)
    yield
    upgrade_helm([f"{trap_external_ip},,2c,public,,,600,generic_switch,,t"])
    time.sleep(20)
def setup_small_walk(request):
    trap_external_ip = request.config.getoption("trap_external_ip")
    profile = {
        "walk1": {
            "condition": {"type": "walk"},
            "varBinds": [yaml_escape_list(sq("IP-MIB"))],
        },
    }
    update_profiles(profile)
    upgrade_helm(["inventory.yaml", "profiles.yaml"])
    time.sleep(60)
    update_file([f"{trap_external_ip},,2c,public,,,20,walk1,f,"], "inventory.yaml")
    upgrade_helm(["inventory.yaml", "profiles.yaml"])
    time.sleep(30)
    yield
    update_file([f"{trap_external_ip},,2c,public,,,20,walk1,f,t"], "inventory.yaml")
    upgrade_helm(["inventory.yaml"])
    time.sleep(20)
 def test_disable_one_profile_and_reload(self, request, setup_splunk):
     trap_external_ip = request.config.getoption("trap_external_ip")
     logger.info("Integration test for deleting one profile and reloading")
     profile = {
         "new_profile": {
             "frequency": 7,
             "varBinds": [yaml_escape_list(sq("IP-MIB"))],
         }
     }
     update_profiles(profile)
     update_file(
         [f"{trap_external_ip},,2c,public,,,600,new_profile,,"], "inventory.yaml"
     )
     upgrade_helm(["inventory.yaml", "profiles.yaml"])
     time.sleep(70)
     search_string = """| mpreview index=netmetrics| spath profiles | search profiles=generic_switch earliest=-20s """
     result_count, metric_count = run_retried_single_search(
         setup_splunk, search_string, 3
     )
     assert result_count == 0
     assert metric_count == 0
def setup_modify_profile(request):
    trap_external_ip = request.config.getoption("trap_external_ip")
    profile = {
        "test_modify": {
            "frequency": 5,
            "varBinds": [yaml_escape_list(sq("UDP-MIB"))],
        },
    }
    update_profiles(profile)
    upgrade_helm(["inventory.yaml", "profiles.yaml"])
    time.sleep(60)
    update_file(
        [f"{trap_external_ip},,2c,public,,,600,test_modify,f,"], "inventory.yaml"
    )
    upgrade_helm(["inventory.yaml", "profiles.yaml"])
    time.sleep(30)
    yield
    update_file(
        [f"{trap_external_ip},,2c,public,,,600,test_modify,f,t"], "inventory.yaml"
    )
    upgrade_helm(["inventory.yaml"])
    time.sleep(20)