From 6fa070e824ab4bcd694f78edba5ff2261a6384e8 Mon Sep 17 00:00:00 2001 From: Stefan Horning Date: Sun, 22 Dec 2019 02:29:05 +0100 Subject: [PATCH] Fix to return data when using lambda_info module (#64548) * Fixed issue 64479 with lambda_info module * Added integration tests for lambda_info module * Moved lambda_info tests into already existing aws_lamda testsuite for easier test setup. Co-authored-by: Jill R <4121322+jillr@users.noreply.github.com> --- .../modules/cloud/amazon/lambda_info.py | 2 +- test/integration/targets/aws_lambda/aliases | 1 + .../targets/aws_lambda/tasks/main.yml | 84 +++++++++++++++++++ 3 files changed, 86 insertions(+), 1 deletion(-) diff --git a/lib/ansible/modules/cloud/amazon/lambda_info.py b/lib/ansible/modules/cloud/amazon/lambda_info.py index 79da2be5d04..488a34925d3 100644 --- a/lib/ansible/modules/cloud/amazon/lambda_info.py +++ b/lib/ansible/modules/cloud/amazon/lambda_info.py @@ -377,7 +377,7 @@ def main(): versions='version_details', ) - this_module_function = getattr(this_module, invocations[module.params['query']]) + this_module_function = globals()[invocations[module.params['query']]] all_facts = fix_return(this_module_function(client, module)) results = dict(function=all_facts, changed=False) diff --git a/test/integration/targets/aws_lambda/aliases b/test/integration/targets/aws_lambda/aliases index 9efcecd6952..67404b76524 100644 --- a/test/integration/targets/aws_lambda/aliases +++ b/test/integration/targets/aws_lambda/aliases @@ -2,3 +2,4 @@ cloud/aws shippable/aws/group2 execute_lambda lambda +lamda_info diff --git a/test/integration/targets/aws_lambda/tasks/main.yml b/test/integration/targets/aws_lambda/tasks/main.yml index a62fb93b671..3ebd3c028f2 100644 --- a/test/integration/targets/aws_lambda/tasks/main.yml +++ b/test/integration/targets/aws_lambda/tasks/main.yml @@ -186,6 +186,90 @@ - result.configuration.runtime == 'python2.7' - result.configuration.tracing_config.mode == 'PassThrough' + - name: lambda_info | Gather all infos for given lambda function + lambda_info: + name: "{{ lambda_function_name }}" + query: all + register: lambda_infos_all + + - name: lambda_info | Assert successfull retrieval of all information + assert: + that: + - lambda_infos_all is not failed + - lambda_infos_all.function[lambda_function_name].function_name == lambda_function_name + - lambda_infos_all.function[lambda_function_name].runtime == "python2.7" + - lambda_infos_all.function[lambda_function_name].versions is defined + - lambda_infos_all.function[lambda_function_name].aliases is defined + - lambda_infos_all.function[lambda_function_name].policy is defined + - lambda_infos_all.function[lambda_function_name].mappings is defined + - lambda_infos_all.function[lambda_function_name].description == "" + - lambda_infos_all.function[lambda_function_name].function_arn is defined + - lambda_infos_all.function[lambda_function_name].handler == "mini_lambda.handler" + + - name: lambda_info | Gather version infos for given lambda function + lambda_info: + name: "{{ lambda_function_name }}" + query: versions + register: lambda_infos_versions + + - name: lambda_info | Assert successfull retrieval of versions information + assert: + that: + - lambda_infos_versions is not failed + - lambda_infos_versions.function[lambda_function_name].versions|length > 0 + - lambda_infos_versions.function[lambda_function_name].function_name is undefined + + - name: lambda_info | Gather config infos for given lambda function + lambda_info: + name: "{{ lambda_function_name }}" + query: config + register: lambda_infos_config + + - name: lambda_info | Assert successfull retrieval of config information + assert: + that: + - lambda_infos_config is not failed + - lambda_infos_config.function[lambda_function_name].function_name == lambda_function_name + - lambda_infos_config.function[lambda_function_name].description is defined + - lambda_infos_config.function[lambda_function_name].versions is undefined + + - name: lambda_info | Gather policy infos for given lambda function + lambda_info: + name: "{{ lambda_function_name }}" + query: policy + register: lambda_infos_policy + + - name: lambda_info | Assert successfull retrieval of policy information + assert: + that: + - lambda_infos_policy is not failed + - lambda_infos_policy.function[lambda_function_name].policy is defined + - lambda_infos_policy.function[lambda_function_name].versions is undefined + + - name: lambda_info | Gather aliases infos for given lambda function + lambda_info: + name: "{{ lambda_function_name }}" + query: aliases + register: lambda_infos_aliases + + - name: lambda_info | Assert successfull retrieval of aliases information + assert: + that: + - lambda_infos_aliases is not failed + - lambda_infos_aliases.function[lambda_function_name].aliases is defined + + - name: lambda_info | Gather mappings infos for given lambda function + lambda_info: + name: "{{ lambda_function_name }}" + query: mappings + register: lambda_infos_mappings + + - name: lambda_info | Assert successfull retrieval of mappings information + assert: + that: + - lambda_infos_mappings is not failed + - lambda_infos_mappings.function[lambda_function_name].mappings is defined + # ============================================================ - name: test state=present with security group but no vpc lambda: