示例#1
0
 def test_is_supported_version(self):
     self.assertTrue(api_version.is_supported_version("2.0"), "2.0 is a supported version")
     self.assertTrue(api_version.is_supported_version("v2.0"), "v2.0 is a supported version")
     self.assertTrue(api_version.is_supported_version("1.0"), "1.0 is a supported version")
     self.assertTrue(api_version.is_supported_version("v1.0"), "v1.0 is a supported version")
     self.assertFalse(api_version.is_supported_version("0"), "0 is not a supported version")
     self.assertFalse(api_version.is_supported_version("v0"), "v0 is not a supported version")
     self.assertFalse(api_version.is_supported_version("10.0"), "10.0 is not a supported version")
     self.assertFalse(api_version.is_supported_version("vader"), "vader is not a supported version")
示例#2
0
def validate_api_version(handler, version, logger):
    if not version or not keylime_api_version.is_supported_version(version):
        echo_json_response(handler, 400, "API Version not supported")
        return False

    if keylime_api_version.is_deprecated_version(version):
        logger.warning(
            "Client request to API version %s is deprecated and will be removed in future versions.",
            version)
    return True
示例#3
0
def get_restful_params(urlstring):
    """Returns a dictionary of paired RESTful URI parameters"""
    parsed_path = urllib.parse.urlsplit(urlstring.strip("/"))
    query_params = urllib.parse.parse_qsl(parsed_path.query)
    path_tokens = parsed_path.path.split('/')

    # If first token looks like an API version, validate it and make sure it's supported
    api_version = 0
    if path_tokens[0] and len(path_tokens[0]) >= 0 and re.match(r"^v?[0-9]+(\.[0-9]+)?", path_tokens[0]):
        version = keylime_api_version.normalize_version(path_tokens[0])

        if keylime_api_version.is_supported_version(version):
            api_version = version

        path_tokens.pop(0)

    path_params = _list_to_dict(path_tokens)
    path_params["api_version"] = api_version
    path_params.update(query_params)
    return path_params