# import json
# import os
# import sys
#
# sys.path.append(
#     os.path.dirname(
#         os.path.realpath(__file__)
#     )
# )
# if "libs" not in sys.path:
#     sys.path.append(f'../libs')
#
# from controller.controller_1x.controller import ProfileUtility
# from controller.controller_2x.controller import UProfileUtility
# from controller.controller_3x.controller import CController
# import time
# from lanforge.lf_tools import ChamberView
# import pytest
# import allure
#
#
# @pytest.fixture(scope="session")
# def instantiate_profile(request):
#     if request.config.getoption("1.x"):
#         yield ProfileUtility
#     elif request.config.getoption("cc.1"):
#         yield CController
#     else:
#         yield UProfileUtility
#
#
# @pytest.fixture(scope="session")
# def create_lanforge_chamberview(lf_tools):
#     scenario_object, scenario_name = lf_tools.Chamber_View()
#     return scenario_name
#
#
# @pytest.fixture(scope="session")
# def create_lanforge_chamberview_dut(lf_tools, run_lf):
#     if not run_lf:
#         dut_object, dut_name = lf_tools.Create_Dut()
#         return dut_name
#     return ""
#
#
# @pytest.fixture(scope="class")
# def setup_configuration(request, setup_controller, testbed, get_equipment_ref, fixtures_ver, reset_scenario_lf,
#                    instantiate_profile, get_markers, create_lanforge_chamberview_dut, lf_tools, run_lf,
#                    get_security_flags, get_configuration, radius_info, get_apnos, radius_accounting_info, cc_1):
#     param = dict(request.param)
#
#     # VLAN Setup
#     if request.param["mode"] == "VLAN":
#
#         vlan_list = list()
#         refactored_vlan_list = list()
#         ssid_modes = request.param["ssid_modes"].keys()
#         for mode in ssid_modes:
#             for ssid in range(len(request.param["ssid_modes"][mode])):
#                 if "vlan" in request.param["ssid_modes"][mode][ssid]:
#                     vlan_list.append(request.param["ssid_modes"][mode][ssid]["vlan"])
#                 else:
#                     pass
#         if vlan_list:
#             [refactored_vlan_list.append(x) for x in vlan_list if x not in refactored_vlan_list]
#             vlan_list = refactored_vlan_list
#             for i in range(len(vlan_list)):
#                 if vlan_list[i] > 4095 or vlan_list[i] < 1:
#                     vlan_list.pop(i)
#     if request.param["mode"] == "VLAN":
#         lf_tools.reset_scenario()
#         lf_tools.add_vlan(vlan_ids=vlan_list)
#
#     # call this, if 1.x
#     print("fixture version ", fixtures_ver)
#     if cc_1:
#         return_var = fixtures_ver.setup_configuration(request, param, run_lf, instantiate_profile, get_configuration, get_markers, lf_tools)
#     else:
#         return_var = fixtures_ver.setup_configuration(request, param, setup_controller, testbed, get_equipment_ref,
#                                              instantiate_profile,
#                                              get_markers, create_lanforge_chamberview_dut, lf_tools,
#                                              get_security_flags, get_configuration, radius_info, get_apnos,
#                                              radius_accounting_info, run_lf=run_lf)
#
#     yield return_var
#
#
# @pytest.fixture(scope="session")
# def station_names_twog(request, get_configuration):
#     station_names = []
#     for i in range(0, int(request.config.getini("num_stations"))):
#         station_names.append(get_configuration["traffic_generator"]["details"]["2.4G-Station-Name"] + "0" + str(i))
#     yield station_names
#
#
# @pytest.fixture(scope="session")
# def station_names_fiveg(request, get_configuration):
#     station_names = []
#     for i in range(0, int(request.config.getini("num_stations"))):
#         station_names.append(get_configuration["traffic_generator"]["details"]["5G-Station-Name"] + "0" + str(i))
#     yield station_names
#
#
# @pytest.fixture(scope="session")
# def station_names_ax(request, get_configuration):
#     station_names = []
#     for i in range(0, int(request.config.getini("num_stations"))):
#         station_names.append(get_configuration["traffic_generator"]["details"]["AX-Station-Name"] + "0" + str(i))
#     yield station_names
#
#
# @pytest.fixture(scope="session")
# def num_stations(request):
#     num_sta = int(request.config.getini("num_stations"))
#     yield num_sta
#
#
# @pytest.fixture(scope="class")
# def get_vif_state(get_apnos, get_configuration, request, lf_tools, run_lf):
#     if request.config.getoption("1.x"):
#         ap_ssh = get_apnos(get_configuration['access_point'][0], pwd="../libs/apnos/", sdk="1.x")
#         vif_state = list(ap_ssh.get_vif_state_ssids())
#         vif_state.sort()
#         yield vif_state
#     else:
#         yield lf_tools.ssid_list
#
#
# @pytest.fixture(scope="session")
# def dfs_start(fixtures_ver, get_apnos, get_configuration):
#     dfs_start = fixtures_ver.dfs(get_apnos, get_configuration)
#     yield dfs_start
#
#
# @pytest.fixture(scope="class")
# def get_vlan_list(get_apnos, get_configuration):
#     ap_ssh = get_apnos(get_configuration['access_point'][0], pwd="../libs/apnos/")
#     vlan_list = list(ap_ssh.get_vlan())
#     vlan_list.sort()
#     yield vlan_list
#
#
# @pytest.fixture(scope="session")
# def reset_scenario_lf(request, lf_tools, run_lf):
#     if not run_lf:
#         lf_tools.reset_scenario()
#         def teardown_session():
#             lf_tools.reset_scenario()
#
#         request.addfinalizer(teardown_session)
#     yield ""
#
