From 223e1675f4e64236a17becb39a7615e018a9f9ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gon=C3=A9ri=20Le=20Bouder?= Date: Thu, 9 Jan 2020 13:12:34 -0500 Subject: [PATCH] vmware_local_role_info/test: avoid json_query Refactoring to avoid the use of `json_query`. As a bonus point, we now also ensure `NoAccess` role has no provilege. --- .../vmware_local_role_facts/tasks/main.yml | 17 ++++++++++++----- .../vmware_local_role_info/tasks/main.yml | 19 +++++++++++++------ 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/test/integration/targets/vmware_local_role_facts/tasks/main.yml b/test/integration/targets/vmware_local_role_facts/tasks/main.yml index 27026637622..45db965647c 100644 --- a/test/integration/targets/vmware_local_role_facts/tasks/main.yml +++ b/test/integration/targets/vmware_local_role_facts/tasks/main.yml @@ -9,8 +9,8 @@ set_fact: role_list: - Admin - - NoCryptoAdmin - - NoAccess +# With govcsim, NoCryptoAdmin has no privilege. +# - NoCryptoAdmin - Anonymous - ReadOnly @@ -23,12 +23,19 @@ validate_certs: no register: role_details +- &list_to_dict + name: List to dict + set_fact: + role_dict: "{{ dict(role_details.local_role_facts|map(attribute='role_name')|zip(role_details.local_role_facts)) }}" + +- name: Test if NoAccess has no privilege + assert: + that: "{{ role_dict['NoAccess']['privileges'] | list | length == 0 }}" + - &role_test name: Test if role id is present for role assert: - that: "{{ role_details.local_role_facts | json_query(s_query) != [] }}" - vars: - s_query: "[?role_name == '{{ item }}'].role_id" + that: "{{ role_dict[item]['privileges'] | list | length > 0 }}" with_items: "{{ role_list }}" - <<: *role_data diff --git a/test/integration/targets/vmware_local_role_info/tasks/main.yml b/test/integration/targets/vmware_local_role_info/tasks/main.yml index fd3af19a430..cff8b571519 100644 --- a/test/integration/targets/vmware_local_role_info/tasks/main.yml +++ b/test/integration/targets/vmware_local_role_info/tasks/main.yml @@ -9,8 +9,8 @@ set_fact: role_list: - Admin - - NoCryptoAdmin - - NoAccess + # NoCryptoAdmin has no privilege with govcsim + # - NoCryptoAdmin - Anonymous - ReadOnly @@ -23,17 +23,24 @@ validate_certs: no register: role_details +- &list_to_dict + name: List to dict + set_fact: + role_dict: "{{ dict(role_details.local_role_info|map(attribute='role_name')|zip(role_details.local_role_info)) }}" + +- name: Test if NoAccess has no privilege + assert: + that: "{{ role_dict['NoAccess']['privileges'] | list | length == 0 }}" + - &role_test name: Test if role id is present for role assert: - that: "{{ role_details.local_role_info | json_query(s_query) != [] }}" - vars: - s_query: "[?role_name == '{{ item }}'].role_id" + that: "{{ role_dict[item]['privileges'] | list | length > 0 }}" with_items: "{{ role_list }}" - <<: *role_data name: Gather Role info in check mode check_mode: yes - +- <<: *list_to_dict - <<: *role_test name: Test if role id is present for role in check mode