def run(test, params, env): """ Test command: virsh nwfilter-list. 1) Prepare parameters. 2) Run nwfilter-list command. 3) Check result. """ # Prepare parameters options_ref = params.get("list_options_ref", "") status_error = params.get("status_error", "no") filter_name = [] # acl polkit params uri = params.get("virsh_uri") unprivileged_user = params.get('unprivileged_user') if unprivileged_user: if unprivileged_user.count('EXAMPLE'): unprivileged_user = '******' if not libvirt_version.version_compare(1, 1, 1): if params.get('setup_libvirt_polkit') == 'yes': test.cancel("API acl test not supported in current" " libvirt version.") virsh_dargs = {'ignore_status': True, 'debug': True} if params.get('setup_libvirt_polkit') == 'yes': virsh_dargs['unprivileged_user'] = unprivileged_user virsh_dargs['uri'] = uri # Run command cmd_result = virsh.nwfilter_list(options=options_ref, **virsh_dargs) output = cmd_result.stdout.strip() status = cmd_result.exit_status # Check result if status_error == "yes": if status == 0: test.fail("Run successfully with wrong command.") elif status_error == "no": if status: test.fail("Run failed with right command.") # Retrieve filter name from output and check the cfg file output_list = output.split('\n') for i in range(2, len(output_list)): filter_name.append(output_list[i].split()[1]) for i in range(len(filter_name)): xml_path = "%s/%s.xml" % (NWFILTER_ETC_DIR, filter_name[i]) if not os.path.exists(xml_path): test.fail("Can't find list filter %s xml under %s" % (filter_name[i], NWFILTER_ETC_DIR)) else: logging.debug("list filter %s xml found under %s" % (filter_name[i], NWFILTER_ETC_DIR))
def run(test, params, env): """ Test command: virsh nwfilter-list. 1) Prepare parameters. 2) Run nwfilter-list command. 3) Check result. """ # Prepare parameters options_ref = params.get("list_options_ref", "") status_error = params.get("status_error", "no") filter_name = [] # acl polkit params uri = params.get("virsh_uri") unprivileged_user = params.get('unprivileged_user') if unprivileged_user: if unprivileged_user.count('EXAMPLE'): unprivileged_user = '******' if not libvirt_version.version_compare(1, 1, 1): if params.get('setup_libvirt_polkit') == 'yes': raise error.TestNAError("API acl test not supported in current" + " libvirt version.") virsh_dargs = {'ignore_status': True, 'debug': True} if params.get('setup_libvirt_polkit') == 'yes': virsh_dargs['unprivileged_user'] = unprivileged_user virsh_dargs['uri'] = uri # Run command cmd_result = virsh.nwfilter_list(options=options_ref, **virsh_dargs) output = cmd_result.stdout.strip() status = cmd_result.exit_status # Check result if status_error == "yes": if status == 0: raise error.TestFail("Run successfully with wrong command.") elif status_error == "no": if status: raise error.TestFail("Run failed with right command.") # Retrieve filter name from output and check the cfg file output_list = output.split('\n') for i in range(2, len(output_list)): filter_name.append(output_list[i].split()[1]) for i in range(len(filter_name)): xml_path = "%s/%s.xml" % (NWFILTER_ETC_DIR, filter_name[i]) if not os.path.exists(xml_path): raise error.TestFail("Can't find list filter %s xml under %s" % (filter_name[i], NWFILTER_ETC_DIR)) else: logging.debug("list filter %s xml found under %s" % (filter_name[i], NWFILTER_ETC_DIR))
def nwfilter_validate(file=None, **virsh_dargs): """ Test for schema nwfilter """ cmd_result = virsh.nwfilter_list(**virsh_dargs) libvirt.check_exit_status(cmd_result) try: uuid = re.findall(r"(\S+)\ +(\S+)[\ +\n]", str(cmd_result.stdout))[1][0] except IndexError: raise error.TestError("Fail to get nwfilter uuid") if uuid: cmd_result = virsh.nwfilter_dumpxml(uuid, to_file=file, **virsh_dargs) libvirt.check_exit_status(cmd_result)
def check_list(uuid, name): """ Return True if filter found in nwfilter-list :param uuid: filter uuid :param name: filter name :return: True if found, False if not found """ cmd_result = virsh.nwfilter_list(options="", ignore_status=True, debug=True) output = cmd_result.stdout.strip().split('\n') for i in range(2, len(output)): if output[i].split() == [uuid, name]: return True return False
def check_list(filter_ref): """ Return True if filter found in nwfilter-list :param filter_ref: filter name or uuid :return: True if found, False if not found """ filter_list = [] cmd_result = virsh.nwfilter_list(options="", ignore_status=True, debug=True) output = cmd_result.stdout.strip().split('\n') for i in range(2, len(output)): filter_list.append(output[i].split()) for i in range(len(filter_list)): if filter_ref in filter_list[i]: return True return False
def get_nwfilter_list(): """ Get nwfilter list in tuple(UUID, Name) Usage: Native virsh nwfilter-list output as below: # virsh nwfilter-list UUID Name -------------------------------------------------- 5c79e80b-cfb5-46d0-9490-77db3318a4b5 allow-arp d8150f0b-2859-4049-a58d-963f33c59aa4 allow-dhcp ... get_nwfilter_list() will parse the output as one list something like: [('5c79e80b-cfb5-46d0-9490-77db3318a4b5, allow-arp'), ('d8150f0b-2859-4049-a58d-963f33c59aa4', 'allow-dhcp')] """ cmd_result = virsh.nwfilter_list(debug=True) nwfilter_list = re.findall(r"(\S+)\ +(\S+)", cmd_result.stdout_text.strip()) index = nwfilter_list.index(('UUID', 'Name')) nwfilter_list = nwfilter_list[index+1:] return nwfilter_list
def run(test, params, env): """ Test command: virsh nwfilter-list. 1) Prepare parameters. 2) Run nwfilter-list command. 3) Check result. """ # Prepare parameters options_ref = params.get("list_options_ref", "") status_error = params.get("status_error", "no") filter_name = [] # Run command cmd_result = virsh.nwfilter_list(options=options_ref, ignore_status=True, debug=True) output = cmd_result.stdout.strip() status = cmd_result.exit_status # Check result if status_error == "yes": if status == 0: raise error.TestFail("Run successfully with wrong command.") elif status_error == "no": if status: raise error.TestFail("Run failed with right command.") # Retrieve filter name from output and check the cfg file output_list = output.split('\n') for i in range(2, len(output_list)): filter_name.append(output_list[i].split()[1]) for i in range(len(filter_name)): xml_path = "%s/%s.xml" % (NWFILTER_ETC_DIR, filter_name[i]) if not os.path.exists(xml_path): raise error.TestFail("Can't find list filter %s xml under %s" % (filter_name[i], NWFILTER_ETC_DIR)) else: logging.debug("list filter %s xml found under %s" % (filter_name[i], NWFILTER_ETC_DIR))