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
Exemple #5
0
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))
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))