Vultr: Ensure facts works when no resource exists (#43603)

Vultr API is being inconsisten in what it returns. An empty list when no
resources exists, but a dict of dict when they do. The case needs to be
handled so the module do not fail. An extra test has been added.
This commit is contained in:
Yanis Guenane 2018-08-07 20:12:36 +02:00 committed by René Moser
parent 130824c3e1
commit 68e6587748
6 changed files with 18 additions and 0 deletions

View file

@ -103,6 +103,9 @@ class AnsibleVultrFirewallGroupFacts(Vultr):
def parse_fw_group_list(fwgroups_list):
if not fwgroups_list:
return []
return [group for id, group in fwgroups_list.items()]

View file

@ -98,6 +98,9 @@ class AnsibleVultrSSHKeyFacts(Vultr):
def parse_keys_list(keys_list):
if not keys_list:
return []
return [key for id, key in keys_list.items()]

View file

@ -102,6 +102,9 @@ class AnsibleVultrStartupScriptFacts(Vultr):
def parse_startupscript_list(startupscipts_list):
if not startupscipts_list:
return []
return [startupscript for id, startupscript in startupscipts_list.items()]

View file

@ -1,6 +1,9 @@
# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
---
- name: test gather vultr firewall group facts - empty resources
vr_firewall_group_facts:
- name: Create the firewall group
vr_firewall_group:
name: '{{ firewall_group_name }}'

View file

@ -1,6 +1,9 @@
# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
---
- name: test gather vultr ssh key fact - empty resources
vr_ssh_key_facts:
- name: Upload an ssh key
vr_ssh_key:
name: '{{ ssh_key_name }}'

View file

@ -1,6 +1,9 @@
# Copyright (c) 2018, Yanis Guenane <yanis+ansible@guenane.org>
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
---
- name: test gather vultr startup script facts - empty resources
vr_startup_script_facts:
- name: Create the script
vr_startup_script:
name: '{{ startup_script_name }}'