Add get_function_configuration support for Lambda (#3562)
* Add get_function_configuration support for Lambda * remove unnesecary code from test and use _lambda_region when asserting * rename function and skip coping configuration * run black formatting
This commit is contained in:
parent
640df04840
commit
f749f583ee
2 changed files with 88 additions and 4 deletions
|
|
@ -131,6 +131,8 @@ class LambdaResponse(BaseResponse):
|
|||
self.setup_class(request, full_url, headers)
|
||||
if request.method == "PUT":
|
||||
return self._put_configuration(request)
|
||||
if request.method == "GET":
|
||||
return self._get_function_configuration(request, full_url, headers)
|
||||
else:
|
||||
raise ValueError("Cannot handle request")
|
||||
|
||||
|
|
@ -300,6 +302,14 @@ class LambdaResponse(BaseResponse):
|
|||
else:
|
||||
return 404, {}, "{}"
|
||||
|
||||
@staticmethod
|
||||
def _set_configuration_qualifier(configuration, qualifier):
|
||||
if qualifier is None or qualifier == "$LATEST":
|
||||
configuration["Version"] = "$LATEST"
|
||||
if qualifier == "$LATEST":
|
||||
configuration["FunctionArn"] += ":$LATEST"
|
||||
return configuration
|
||||
|
||||
def _get_function(self, request, full_url, headers):
|
||||
function_name = unquote(self.path.rsplit("/", 1)[-1])
|
||||
qualifier = self._get_param("Qualifier", None)
|
||||
|
|
@ -308,14 +318,27 @@ class LambdaResponse(BaseResponse):
|
|||
|
||||
if fn:
|
||||
code = fn.get_code()
|
||||
if qualifier is None or qualifier == "$LATEST":
|
||||
code["Configuration"]["Version"] = "$LATEST"
|
||||
if qualifier == "$LATEST":
|
||||
code["Configuration"]["FunctionArn"] += ":$LATEST"
|
||||
code["Configuration"] = self._set_configuration_qualifier(
|
||||
code["Configuration"], qualifier
|
||||
)
|
||||
return 200, {}, json.dumps(code)
|
||||
else:
|
||||
return 404, {"x-amzn-ErrorType": "ResourceNotFoundException"}, "{}"
|
||||
|
||||
def _get_function_configuration(self, request, full_url, headers):
|
||||
function_name = unquote(self.path.rsplit("/", 2)[-2])
|
||||
qualifier = self._get_param("Qualifier", None)
|
||||
|
||||
fn = self.lambda_backend.get_function(function_name, qualifier)
|
||||
|
||||
if fn:
|
||||
configuration = self._set_configuration_qualifier(
|
||||
fn.get_configuration(), qualifier
|
||||
)
|
||||
return 200, {}, json.dumps(configuration)
|
||||
else:
|
||||
return 404, {"x-amzn-ErrorType": "ResourceNotFoundException"}, "{}"
|
||||
|
||||
def _get_aws_region(self, full_url):
|
||||
region = self.region_regex.search(full_url)
|
||||
if region:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue