#!/usr/bin/python3 # ------------------------------------------------------------------------- # # Author: sonic_rd # # Created: 02/07/2018 # Copyright: 2001-2022 Ruijie Network. All rights reserved. # ------------------------------------------------------------------------- import sys import os import re import time from ruijieconfig import STARTMODULE from platform_util import rj_os_system def getSdkReg(reg): try: cmd = "bcmcmd -t 1 'getr %s ' < /dev/null" % reg ret, result = rj_os_system(cmd) result_t = result.strip().replace("\r", "").replace("\n", "") if ret != 0 or "Error:" in result_t: return False, result patt = r"%s.(.*):(.*)>drivshell" % reg rt = re.findall(patt, result_t, re.S) test = re.findall("=(.*)", rt[0][0])[0] except Exception as e: return False, 'getsdk register error' return True, test def waitForDhcp(timeout): time_cnt = 0 while True: try: ret, status = rj_os_system("systemctl status dhcp_relay.service") if (ret == 0 and "running" in status) or "SUCCESS" in status: break else: sys.stdout.write(".") sys.stdout.flush() time_cnt = time_cnt + 1 if time_cnt > timeout: raise Exception("waitForDhcp timeout") time.sleep(1) except Exception as e: return False return True def waitForSdk(sdk_fpath ,timeout): time_cnt = 0 while True: try: if os.path.exists(sdk_fpath): break else: #sys.stdout.write(".") #sys.stdout.flush() time_cnt = time_cnt + 1 if time_cnt > timeout: raise Exception("waitForSdk timeout") time.sleep(1) except Exception as e: return False return True def waitForDocker(need_restart=False,timeout=180): sdkcheck_params = STARTMODULE.get("sdkcheck",{}) if sdkcheck_params.get("checktype") == "file": sdk_fpath = sdkcheck_params.get("sdk_fpath") return waitForSdk(sdk_fpath,timeout) return waitForDhcp(timeout)