diff --git a/changelogs/fragments/61925-fix_purefa_fact_info_api_check.yml b/changelogs/fragments/61925-fix_purefa_fact_info_api_check.yml new file mode 100644 index 00000000000000..b71c69c7208f3b --- /dev/null +++ b/changelogs/fragments/61925-fix_purefa_fact_info_api_check.yml @@ -0,0 +1,3 @@ +bugfixes: +- purefa_info - Fix missing API version check when calling I(admins) or I(all) as the subset +- _purefa_facts - Fix missing API version check when calling I(admins) or I(all) as the subset diff --git a/lib/ansible/modules/storage/purestorage/_purefa_facts.py b/lib/ansible/modules/storage/purestorage/_purefa_facts.py index 905fa60386e907..a33e6430e5a14c 100644 --- a/lib/ansible/modules/storage/purestorage/_purefa_facts.py +++ b/lib/ansible/modules/storage/purestorage/_purefa_facts.py @@ -340,6 +340,7 @@ from ansible.module_utils.pure import get_system, purefa_argument_spec +ADMIN_API_VERSION = '1.14' S3_REQUIRED_API_VERSION = '1.16' LATENCY_REQUIRED_API_VERSION = '1.16' AC_REQUIRED_API_VERSION = '1.14' @@ -461,14 +462,16 @@ def generate_config_dict(array): def generate_admin_dict(array): + api_version = array._list_available_rest_versions() admin_facts = {} - admins = array.list_admins() - for admin in range(0, len(admins)): - admin_name = admins[admin]['name'] - admin_facts[admin_name] = { - 'type': admins[admin]['type'], - 'role': admins[admin]['role'], - } + if ADMIN_API_VERSION in api_version: + admins = array.list_admins() + for admin in range(0, len(admins)): + admin_name = admins[admin]['name'] + admin_facts[admin_name] = { + 'type': admins[admin]['type'], + 'role': admins[admin]['role'], + } return admin_facts diff --git a/lib/ansible/modules/storage/purestorage/purefa_info.py b/lib/ansible/modules/storage/purestorage/purefa_info.py index 32114dd4005441..491659de4b4df4 100644 --- a/lib/ansible/modules/storage/purestorage/purefa_info.py +++ b/lib/ansible/modules/storage/purestorage/purefa_info.py @@ -408,6 +408,7 @@ from ansible.module_utils.pure import get_system, purefa_argument_spec import time +ADMIN_API_VERSION = '1.14' S3_REQUIRED_API_VERSION = '1.16' LATENCY_REQUIRED_API_VERSION = '1.16' AC_REQUIRED_API_VERSION = '1.14' @@ -530,13 +531,15 @@ def generate_config_dict(array): def generate_admin_dict(array): admin_info = {} - admins = array.list_admins() - for admin in range(0, len(admins)): - admin_name = admins[admin]['name'] - admin_info[admin_name] = { - 'type': admins[admin]['type'], - 'role': admins[admin]['role'], - } + api_version = array._list_available_rest_versions() + if ADMIN_API_VERSION in api_version: + admins = array.list_admins() + for admin in range(0, len(admins)): + admin_name = admins[admin]['name'] + admin_info[admin_name] = { + 'type': admins[admin]['type'], + 'role': admins[admin]['role'], + } return admin_info