def cleanup_boot_results_file(): r""" Delete all boot results files whose corresponding pids are no longer active. """ # Use create_boot_results_file_path to create a globex to find all of the existing boot results files. globex = create_boot_results_file_path("*", "*", "*") file_list = sorted(glob.glob(globex)) for file_path in file_list: # Use parse_file_path to extract info from the file path. file_dict = vf.parse_file_path(file_path) if gm.pid_active(file_dict['master_pid']): gp.qprint_timen("Preserving " + file_path + ".") else: gc.cmd_fnc("rm -f " + file_path)
def cleanup_boot_results_file(): r""" Delete all boot results files whose corresponding pids are no longer active. """ # Use create_boot_results_file_path to create a globex to find all of the # existing boot results files. globex = create_boot_results_file_path("*", "*", "*") file_list = sorted(glob.glob(globex)) for file_path in file_list: # Use parse_file_path to extract info from the file path. file_dict = vf.parse_file_path(file_path) if gm.pid_active(file_dict['master_pid']): gp.qprint_timen("Preserving " + file_path + ".") else: gc.cmd_fnc("rm -f " + file_path)
def robot_cmd_fnc(robot_cmd_buf, robot_jail=os.environ.get('ROBOT_JAIL', ''), gzip=1): r""" Run the robot command string. This function will set the various PATH variables correctly so that you are running the proper version of all imported files, etc. Description of argument(s): robot_cmd_buf The complete robot command string. robot_jail Indicates that this is to run in "robot jail" meaning without visibility to any apolloxxx import files, programs, etc. gqip This indicates that the log, report and output files produced by robot should be gzipped to save space. """ if not gv.valid_value(robot_cmd_buf): return False # Get globals set by init_robot_test_base_dir_path(). module = sys.modules["__main__"] try: ROBOT_TEST_BASE_DIR_PATH = getattr(module, "ROBOT_TEST_BASE_DIR_PATH") except NameError: init_robot_test_base_dir_path() ROBOT_TEST_BASE_DIR_PATH = getattr(module, "ROBOT_TEST_BASE_DIR_PATH") ROBOT_TEST_RUNNING_FROM_SB = \ gm.get_mod_global("ROBOT_TEST_RUNNING_FROM_SB") if robot_jail == "": if ROBOT_TEST_RUNNING_FROM_SB: robot_jail = 0 else: robot_jail = 1 robot_jail = int(robot_jail) ROBOT_JAIL = os.environ.get('ROBOT_JAIL', '') gp.dprint_vars(ROBOT_TEST_BASE_DIR_PATH, ROBOT_TEST_RUNNING_FROM_SB, ROBOT_JAIL, robot_jail) # Save PATH and PYTHONPATH to be restored later. os.environ["SAVED_PYTHONPATH"] = os.environ.get("PYTHONPATH", "") os.environ["SAVED_PATH"] = os.environ.get("PATH", "") if robot_jail: PYTHONPATH = ROBOT_TEST_BASE_DIR_PATH + "lib" NEW_PATH_LIST = [ROBOT_TEST_BASE_DIR_PATH + "bin"] # Coding special case to preserve python27_path. python27_path = "/opt/rh/python27/root/usr/bin" PATH_LIST = os.environ.get("PATH", "").split(":") if python27_path in PATH_LIST: NEW_PATH_LIST.append(python27_path) NEW_PATH_LIST.extend([ "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin" ]) PATH = ":".join(NEW_PATH_LIST) else: PYTHONPATH = os.environ.get('PYTHONPATH', '') + ":" +\ ROBOT_TEST_BASE_DIR_PATH + "lib/" PATH = os.environ.get('PATH', '') + ":" + ROBOT_TEST_BASE_DIR_PATH +\ "bin/" os.environ['PYTHONPATH'] = PYTHONPATH os.environ['PATH'] = PATH gp.dprint_vars(PATH, PYTHONPATH) os.environ['FFDC_DIR_PATH_STYLE'] = os.environ.get('FFDC_DIR_PATH_STYLE', '1') test_mode = getattr(module, "test_mode") gp.qpissuing(robot_cmd_buf, test_mode) if test_mode: os.environ["PATH"] = os.environ.get("SAVED_PATH", "") os.environ["PYTHONPATH"] = os.environ.get("SAVED_PYTHONPATH", "") return True if quiet: DEVNULL = open(os.devnull, 'wb') stdout = DEVNULL else: stdout = None sub_proc = subprocess.Popen(robot_cmd_buf, stdout=stdout, shell=True) sub_proc.communicate() shell_rc = sub_proc.returncode if shell_rc != 0: hex = 1 gp.pvar(shell_rc, hex) os.environ["PATH"] = os.environ.get("SAVED_PATH", "") os.environ["PYTHONPATH"] = os.environ.get("SAVED_PYTHONPATH", "") return False os.environ["PATH"] = os.environ.get("SAVED_PATH", "") os.environ["PYTHONPATH"] = os.environ.get("SAVED_PYTHONPATH", "") if not gzip: return True # gzip the output files. # Retrieve the parms from the robot command buffer. robot_cmd_buf_dict = gc.parse_command_string(robot_cmd_buf) # Get prefix from the log parm. prefix = re.sub('log\\.html$', '', robot_cmd_buf_dict['log']) gp.qprintn() rc, outbuf = gc.cmd_fnc("cd " + robot_cmd_buf_dict['outputdir'] + " ; gzip " + robot_cmd_buf_dict['output'] + " " + robot_cmd_buf_dict['log'] + " " + robot_cmd_buf_dict['report']) outputdir = gm.add_trailing_slash(robot_cmd_buf_dict['outputdir']) Output = outputdir + robot_cmd_buf_dict['output'] + ".gz" Log = outputdir + robot_cmd_buf_dict['log'] + ".gz" Report = outputdir + robot_cmd_buf_dict['report'] + ".gz" gp.qprintn("\ngzipped output:") gp.qpvars(0, 9, Output, Log, Report) return True