def check_pm_accurate_sbc(ne_info_cfg, counter_info_cfg, server_info_path, rounds): global sep, logger_pm ne_info = get_ne_info_from_cfg(ne_info_cfg) counters_pm = get_pm_counters_map(counter_info_cfg) server_info = TrimableProps(server_info_path) dict_browser_chrome = { "browser_type": server_info.getProperty('browser_type'), "browser_path": server_info.getProperty('browser_path'), "driver_path": server_info.getProperty('driver_path') } dict_browser_firefox = { "browser_type": 'firefox', "browser_path": 'C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe', "driver_path": '' } driver = CommonStatic.login_rsnms(dict_browser_chrome, server_info.getProperty('host'), logger_pm, server_info.getProperty('username'), server_info.getProperty('password'), server_info.getProperty('port'), server_info.getProperty('url')) if driver: try: NeCommon.to_ne_management_page_by_url(driver, logger_pm, server_info) dict_ne_info = NeCommon.check_and_add_ne(driver, logger_pm, ne_info) PmCommon.to_pm_management_page_by_url(driver, logger_pm, ne_info['ne_type'], server_info) PmCommon.make_in_correct_tab(driver, logger_pm, ne_info['tab_pre'], '') if PmCommon.wait_until_pm_date_show_up(driver, logger_pm, 600, dict_ne_info['ne_name']): PmCommon.init_and_search(driver, logger_pm, dict_ne_info['ne_name']) dict_additional = {"rounds": rounds} ok = PmCommon.wait_until_rounds_ok(driver, logger_pm, dict_additional['rounds'], 10, None) if ok: PmCommon.check_pm_rows(driver, logger_pm, dict_ne_info['ne_type'], counters_pm, 10, dict_additional) else: logger_pm.error('FAILED: Wait for SBC PM timeout.') else: logger_pm.error('No PM data show up after waiting.') CommonStatic.logout_rsnms(driver) # CommonStatic.quite_driver(driver) finally: CommonStatic.quite_driver(driver)
def check_pm_accurate(ne_info_cfg, counter_info_cfg, server_info_path, str_end_time, number_of_lic, check_rounds=12, me_counter_cfg=None, me_types_cfg=None): ne_info = get_ne_info_from_cfg(ne_info_cfg) counters_pm = get_pm_counters_map(counter_info_cfg) if 12 * number_of_lic != len(counters_pm): test.error('Lines of expected counters should equal 12 multiple number of LICs.') server_info = TrimableProps(server_info_path) dict_browser_chrome = { "browser_type": os.path.normpath(server_info.getProperty('browser_type')), "browser_path": os.path.normpath(server_info.getProperty('browser_path')), "driver_path": os.path.normpath(server_info.getProperty('driver_path')) } host = server_info.getProperty('host') username = server_info.getProperty('username') password = server_info.getProperty('password') port = server_info.getProperty('port') url = server_info.getProperty('url') dict_additinal = { 'number_of_lic': number_of_lic, 'check_rounds': check_rounds } driver = CommonStatic.login_rsnms(dict_browser_chrome, host, username, password, port, url) if driver: try: end_time = datetime.strptime(str_end_time, '%Y-%m-%d %H:%M:%S') rounds = len(counters_pm) / dict_additinal['number_of_lic'] start_time = end_time + timedelta(minutes=-5 * check_rounds) NeCommon.to_ne_management_page_by_url(driver, server_info) dict_ne_info = NeCommon.check_and_add_ne(driver, ne_info) PmCommon.to_pm_management_page_by_url(driver, ne_info['ne_type'], server_info) PmCommon.make_in_correct_tab(driver, ne_info['tab_pre'], '') PmCommon.wait_until_pm_date_show_up(driver, dict_ne_info['ne_name']) PmCommon.init_and_search(driver, dict_ne_info['ne_name'], end_time, start_time) PmCommon.check_pm_rows_updated(driver, dict_ne_info['ne_type'], counters_pm, 10, dict_additinal) if ne_info.has_key('tab_me') and me_counter_cfg is not None and me_types_cfg is not None: test.info('Found ME Tab information, will check ME counters.') dict_me_add = { 'rows_each_period': 1, 'check_rounds': check_rounds } me_counters = get_pm_counters_map(me_counter_cfg) me_types = get_me_types_map(me_types_cfg) if 12 * dict_me_add['rows_each_period'] != len(me_counters): test.error('Expected ME counters mis-match.') PmCommon.make_in_correct_tab(driver, ne_info['tab_me'], '') PmCommon.wait_until_pm_date_show_up(driver, dict_ne_info['ne_name']) PmCommon.init_and_search(driver, dict_ne_info['ne_name'], end_time, start_time) # PmCommon.wait_until_rounds_ok(driver, len(me_counters), 10, dict_me_add) PmCommon.check_me_counters(driver, dict_ne_info['ne_name'], me_counters, 10, dict_me_add, me_types) CommonStatic.logout_rsnms(driver) finally: CommonStatic.quite_driver(driver)
def check_pm_accurate_lic(ne_info_cfg, counter_info_cfg, server_info_path, str_end_time): global sep, logger_pm ne_info = get_ne_info_from_cfg(ne_info_cfg) counters_pm = get_pm_counters_map(counter_info_cfg) server_info = TrimableProps(server_info_path) dict_browser_chrome = { "browser_type": server_info.getProperty('browser_type'), "browser_path": server_info.getProperty('browser_path'), "driver_path": server_info.getProperty('driver_path') } dict_browser_firefox = { "browser_type": 'firefox', "browser_path": 'C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe', "driver_path": '' } driver = CommonStatic.login_rsnms(dict_browser_chrome, server_info.getProperty('host'), logger_pm, server_info.getProperty('username'), server_info.getProperty('password'), server_info.getProperty('port'), server_info.getProperty('url')) if driver: try: NeCommon.to_ne_management_page_by_url(driver, logger_pm, server_info) dict_ne_info = NeCommon.check_and_add_ne(driver, logger_pm, ne_info) PmCommon.to_pm_management_page_by_url(driver, logger_pm, ne_info['ne_type'], server_info) PmCommon.make_in_correct_tab(driver, logger_pm, ne_info['tab_pre'], '') if PmCommon.wait_until_pm_date_show_up(driver, logger_pm, 600, dict_ne_info['ne_name']): t_now = datetime.now() # minute_delta = t_now.minute % 5 # end_time = t_now + timedelta(minutes=-(delay_time + minute_delta)) end_time = datetime.strptime(str_end_time, '%Y-%m-%d %H:%M:%S') pm_rounds = len(counters_pm) if 'OCGAS' == ne_info['ne_type']: pm_rounds = len(counters_pm) / 2 elif 'IMSHSS' == ne_info['ne_type']: pm_rounds = len(counters_pm) / 4 start_time = end_time + timedelta(minutes=-5 * pm_rounds) PmCommon.init_and_search(driver, logger_pm, dict_ne_info['ne_name'], end_time, start_time) ok = PmCommon.wait_until_rounds_ok(driver, logger_pm, pm_rounds, 10, 5) if ok: PmCommon.check_pm_rows(driver, logger_pm, dict_ne_info['ne_type'], counters_pm, 10, None) else: logger_pm.error('Timeout ERROR.') CommonStatic.logout_rsnms(driver) # CommonStatic.quite_driver(driver) finally: CommonStatic.quite_driver(driver)
def check_sbc_pm(ne_info_cfg, counter_info_cfg, server_info_path, number_of_lic, check_rounds=4, me_counter_cfg=None): ne_info = get_ne_info_from_cfg(ne_info_cfg) counters_pm = get_pm_counters_map(counter_info_cfg) server_info = TrimableProps(server_info_path) dict_browser_chrome = { "browser_type": server_info.getProperty('browser_type'), "browser_path": server_info.getProperty('browser_path'), "driver_path": server_info.getProperty('driver_path') } host = server_info.getProperty('host') username = server_info.getProperty('username') password = server_info.getProperty('password') port = server_info.getProperty('port') url = server_info.getProperty('url') dict_additinal = { 'number_of_lic': number_of_lic, 'check_rounds': check_rounds } driver = CommonStatic.login_rsnms(dict_browser_chrome, host, username, password, port, url) if driver: try: NeCommon.to_ne_management_page_by_url(driver, server_info) dict_ne_info = NeCommon.check_and_add_ne(driver, ne_info) PmCommon.to_pm_management_page_by_url(driver, ne_info['ne_type'], server_info) PmCommon.make_in_correct_tab(driver, ne_info['tab_pre'], '') PmCommon.wait_until_pm_date_show_up(driver, dict_ne_info['ne_name']) if 12 * dict_additinal['number_of_lic'] != len(counters_pm): test.error('Expected counters file error.') PmCommon.init_and_search(driver, dict_ne_info['ne_name']) # PmCommon.wait_until_rounds_ok(driver, len(counters_pm), 10, dict_additinal) PmCommon.check_pm_rows_updated(driver, dict_ne_info['ne_type'], counters_pm, 10, dict_additinal) CommonStatic.logout_rsnms(driver) finally: CommonStatic.quite_driver(driver)
def check_pm_accurate_all_ne(dict_all_nes, server_info_path): global sep, logger_pm server_info = TrimableProps(server_info_path) dict_browser_chrome = { "browser_type": server_info.getProperty('browser_type'), "browser_path": server_info.getProperty('browser_path'), "driver_path": server_info.getProperty('driver_path') } dict_browser_firefox = { "browser_type": 'firefox', "browser_path": 'C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe', "driver_path": '' } driver = CommonStatic.login_rsnms(dict_browser_chrome, server_info.getProperty('host'), logger_pm, server_info.getProperty('username'), server_info.getProperty('password'), server_info.getProperty('port'), server_info.getProperty('url')) if driver: try: # check the sbc logger_pm.info( '******************** Start to check PM for SBC ************************' ) sbc_ne_dict = dict_all_nes['SBC'] ne_info = get_ne_info_from_cfg(sbc_ne_dict['ne_cfg']) counters_pm = get_pm_counters_map(sbc_ne_dict['ct_cfg']) NeCommon.to_ne_management_page(driver, logger_pm) dict_ne_info = NeCommon.check_and_add_ne(driver, logger_pm, ne_info) PmCommon.to_pm_management_page(driver, logger_pm) # PmCommon.to_second_page(driver, logger_pm) PmCommon.to_tab_by_ne_type(driver, dict_ne_info['ne_type'], logger_pm) if PmCommon.wait_until_pm_date_show_up(driver, logger_pm, 600, dict_ne_info['ne_name']): PmCommon.init_and_search(driver, logger_pm, dict_ne_info['ne_name']) dict_additional = {"rounds": sbc_ne_dict['rounds']} ok = PmCommon.wait_until_rounds_ok(driver, logger_pm, dict_additional['rounds'], 10, None) if ok: PmCommon.check_pm_rows(driver, logger_pm, dict_ne_info['ne_type'], counters_pm, 10, dict_additional) else: logger_pm.error('FAILED: Wait for SBC PM timeout.') # check other 5 NEs for k, v in dict_all_nes.iteritems: if 'SBC' != k: logger_pm.info( '******************** Start to check PM for ' + str(k) + ' ************************') ne_info = get_ne_info_from_cfg(v['ne_cfg']) counters_pm = get_pm_counters_map(v['ct_cfg']) NeCommon.to_ne_management_page(driver, logger_pm) dict_ne_info = NeCommon.check_and_add_ne( driver, logger_pm, ne_info) PmCommon.to_pm_management_page(driver, logger_pm) # PmCommon.to_second_page(driver, logger_pm) PmCommon.to_tab_by_ne_type(driver, dict_ne_info['ne_type'], logger_pm) if PmCommon.wait_until_pm_date_show_up( driver, logger_pm, 600, dict_ne_info['ne_name']): # t_now = datetime.now() # minute_delta = t_now.minute % 5 # end_time = t_now + timedelta(minutes=-(delay_time + minute_delta)) end_time = datetime.strptime(v['end_time'], '%Y-%m-%d %H:%M:%S') pm_rounds = len(counters_pm) if 'OCGAS' == ne_info['ne_type']: pm_rounds = len(counters_pm) / 2 check_rounds = len(counters_pm) if 'SGW' == ne_info['ne_type'] or 'PGW' == ne_info[ 'ne_type']: check_rounds start_time = end_time + timedelta(minutes=-5 * pm_rounds) PmCommon.init_and_search(driver, logger_pm, dict_ne_info['ne_name'], end_time, start_time) ok = PmCommon.wait_until_rounds_ok( driver, logger_pm, check_rounds, 10, 5) if ok: PmCommon.check_pm_rows(driver, logger_pm, dict_ne_info['ne_type'], counters_pm, 10, None) else: logger_pm.error('Timeout ERROR.') CommonStatic.logout_rsnms(driver) # CommonStatic.quite_driver(driver) finally: CommonStatic.quite_driver(driver)
from com.ericsson.xn.commons import CommonStatic from com.ericsson.xn.commons.PyProperties import TrimableProps from com.ericsson.xn.commons.osutils import get_ne_info_from_cfg, get_pm_counters_map from com.ericsson.xn.x.ne import NeCommon from com.ericsson.xn.x.pm.PmCommons import PmCommon sep = os.sep root_dir = os.path.dirname( os.path.abspath(__file__)).split(sep + 'com' + sep + 'ericsson' + sep + 'xn' + sep + 'x' + sep + 'pm')[0] logger_pm = logging.getLogger('pm_accurate') log_dir = os.path.normpath(root_dir + sep + 'x' + sep + 'pm' + sep + 'logs') if not os.path.isdir(log_dir): os.mkdir(log_dir) log_cfg = TrimableProps( os.path.normpath(root_dir + sep + 'x' + sep + 'pm' + sep + 'log_cfg.cfg')) log_file = os.path.normpath(log_dir + sep + 'pm_accurate.log') log_level = int(log_cfg.getProperty('log_level')) log_formatter = logging.Formatter(( '%(asctime)s [%(levelname)s] %(module)s %(funcName)s(%(lineno)d) %(message)s' )) log_handler = RotatingFileHandler(log_file, mode='a', maxBytes=1024 * 1024 * int(log_cfg.getProperty('log_maximum')), backupCount=10, encoding='utf-8', delay=0) log_handler.setLevel(log_level) log_handler.setFormatter(log_formatter) logger_pm.setLevel(10)
def check_pm_accurate_all_ne(dict_all_nes, server_info_path): global sep, logger_pm server_info = TrimableProps(server_info_path) dict_browser_chrome = { "browser_type": server_info.getProperty('browser_type'), "browser_path": server_info.getProperty('browser_path'), "driver_path": server_info.getProperty('driver_path') } dict_browser_firefox = { "browser_type": 'firefox', "browser_path": 'C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe', "driver_path": '' } driver = CommonStatic.login_rsnms(dict_browser_chrome, server_info.getProperty('host'), logger_pm, server_info.getProperty('username'), server_info.getProperty('password'), server_info.getProperty('port'), server_info.getProperty('url')) if driver: try: # check the sbc logger_pm.info('******************** Start to check PM for SBC ************************') sbc_ne_dict = dict_all_nes['SBC'] ne_info = get_ne_info_from_cfg(sbc_ne_dict['ne_cfg']) counters_pm = get_pm_counters_map(sbc_ne_dict['ct_cfg']) NeCommon.to_ne_management_page(driver, logger_pm) dict_ne_info = NeCommon.check_and_add_ne(driver, logger_pm, ne_info) PmCommon.to_pm_management_page(driver, logger_pm) # PmCommon.to_second_page(driver, logger_pm) PmCommon.to_tab_by_ne_type(driver, dict_ne_info['ne_type'], logger_pm) if PmCommon.wait_until_pm_date_show_up(driver, logger_pm, 600, dict_ne_info['ne_name']): PmCommon.init_and_search(driver, logger_pm, dict_ne_info['ne_name']) dict_additional = {"rounds": sbc_ne_dict['rounds']} ok = PmCommon.wait_until_rounds_ok(driver, logger_pm, dict_additional['rounds'], 10, None) if ok: PmCommon.check_pm_rows(driver, logger_pm, dict_ne_info['ne_type'], counters_pm, 10, dict_additional) else: logger_pm.error('FAILED: Wait for SBC PM timeout.') # check other 5 NEs for k, v in dict_all_nes.iteritems: if 'SBC' != k: logger_pm.info('******************** Start to check PM for ' + str(k) + ' ************************') ne_info = get_ne_info_from_cfg(v['ne_cfg']) counters_pm = get_pm_counters_map(v['ct_cfg']) NeCommon.to_ne_management_page(driver, logger_pm) dict_ne_info = NeCommon.check_and_add_ne(driver, logger_pm, ne_info) PmCommon.to_pm_management_page(driver, logger_pm) # PmCommon.to_second_page(driver, logger_pm) PmCommon.to_tab_by_ne_type(driver, dict_ne_info['ne_type'], logger_pm) if PmCommon.wait_until_pm_date_show_up(driver, logger_pm, 600, dict_ne_info['ne_name']): # t_now = datetime.now() # minute_delta = t_now.minute % 5 # end_time = t_now + timedelta(minutes=-(delay_time + minute_delta)) end_time = datetime.strptime(v['end_time'], '%Y-%m-%d %H:%M:%S') pm_rounds = len(counters_pm) if 'OCGAS' == ne_info['ne_type']: pm_rounds = len(counters_pm) / 2 check_rounds = len(counters_pm) if 'SGW' == ne_info['ne_type'] or 'PGW' == ne_info['ne_type']: check_rounds start_time = end_time + timedelta(minutes=-5 * pm_rounds) PmCommon.init_and_search(driver, logger_pm, dict_ne_info['ne_name'], end_time, start_time) ok = PmCommon.wait_until_rounds_ok(driver, logger_pm, check_rounds, 10, 5) if ok: PmCommon.check_pm_rows(driver, logger_pm, dict_ne_info['ne_type'], counters_pm, 10, None) else: logger_pm.error('Timeout ERROR.') CommonStatic.logout_rsnms(driver) # CommonStatic.quite_driver(driver) finally: CommonStatic.quite_driver(driver)
from logging.handlers import RotatingFileHandler from com.ericsson.xn.commons import CommonStatic from com.ericsson.xn.commons.PyProperties import TrimableProps from com.ericsson.xn.commons.osutils import get_ne_info_from_cfg, get_pm_counters_map from com.ericsson.xn.x.ne import NeCommon from com.ericsson.xn.x.pm.PmCommons import PmCommon sep = os.sep root_dir = os.path.dirname(os.path.abspath(__file__)).split(sep + 'com' + sep + 'ericsson' + sep + 'xn' + sep + 'x' + sep + 'pm')[0] logger_pm = logging.getLogger('pm_accurate') log_dir = os.path.normpath(root_dir + sep + 'x' + sep + 'pm' + sep + 'logs') if not os.path.isdir(log_dir): os.mkdir(log_dir) log_cfg = TrimableProps(os.path.normpath(root_dir + sep + 'x' + sep + 'pm' + sep + 'log_cfg.cfg')) log_file = os.path.normpath(log_dir + sep + 'pm_accurate.log') log_level = int(log_cfg.getProperty('log_level')) log_formatter = logging.Formatter(('%(asctime)s [%(levelname)s] %(module)s %(funcName)s(%(lineno)d) %(message)s')) log_handler = RotatingFileHandler(log_file, mode='a', maxBytes=1024 * 1024 * int(log_cfg.getProperty('log_maximum')), backupCount=10, encoding='utf-8', delay=0) log_handler.setLevel(log_level) log_handler.setFormatter(log_formatter) logger_pm.setLevel(10) logger_pm.addHandler(log_handler) if 'YES' == log_cfg.getProperty('log_console').strip().upper(): console_log = logging.StreamHandler() console_log.setLevel(log_level) console_log.setFormatter(log_formatter) logger_pm.addHandler(console_log)