Пример #1
0
def get_secret_value(params):
    """
    Get the secret value
    :params: the parameter dictionary
    """
    base64_file = ""

    uuid = params.get("secret_ref")
    options = params.get("get_secret_options")
    status_error = params.get("status_error", "no")

    result = virsh.secret_get_value(uuid, options)
    status = result.exit_status

    # Get secret XML by UUID
    secret_xml_obj = SecretXML()
    secret_xml = secret_xml_obj.get_secret_details_by_uuid(uuid)

    # If secret is private then get secret failure is an expected error
    if secret_xml.get("secret_private", "no") == "yes":
        status_error = "yes"

    if uuid:
        base64_file = os.path.join(_VIRT_SECRETS_PATH, "%s.base64" % uuid)

    # Don't check result if we don't need to.
    if params.get("check_get_status", "yes") == "no":
        return

    # Check status_error
    if status_error == "yes":
        if status:
            logging.info("It's an expected %s", result.stderr)
        else:
            # Only raise error when the /path/to/$uuid.base64 file
            # doesn't exist
            if not os.access(base64_file, os.R_OK):
                raise error.TestFail(
                    "%d not a expected command "
                    "return value", status)
    elif status_error == "no":
        if status:
            raise error.TestFail(result.stderr)
        else:
            # Check secret value
            if base64_file and check_secret(params):
                logging.info(result.stdout)
            else:
                raise error.TestFail("The secret value "
                                     "mismatch with result")
def get_secret_value(params):
    """
    Get the secret value
    :params: the parameter dictionary
    """
    base64_file = ""

    uuid = params.get("secret_ref")
    options = params.get("get_secret_options")
    status_error = params.get("status_error", "no")

    result = virsh.secret_get_value(uuid, options)
    status = result.exit_status

    # Get secret XML by UUID
    secret_xml_obj = SecretXML()
    secret_xml = secret_xml_obj.get_secret_details_by_uuid(uuid)

    # If secret is private then get secret failure is an expected error
    if secret_xml.get("secret_private", "no") == "yes":
        status_error = "yes"

    if uuid:
        base64_file = os.path.join(_VIRT_SECRETS_PATH, "%s.base64" % uuid)

    # Don't check result if we don't need to.
    if params.get("check_get_status", "yes") == "no":
        return

    # Check status_error
    if status_error == "yes":
        if status:
            logging.info("It's an expected %s", result.stderr)
        else:
            # Only raise error when the /path/to/$uuid.base64 file
            # doesn't exist
            if not os.access(base64_file, os.R_OK):
                raise error.TestFail("%d not a expected command "
                                     "return value", status)
    elif status_error == "no":
        if status:
            raise error.TestFail(result.stderr)
        else:
            # Check secret value
            if base64_file and check_secret(params):
                logging.info(result.stdout)
            else:
                raise error.TestFail("The secret value "
                                     "mismatch with result")