diff --git a/changelogs/fragments/61095-scaleway-facts-info.yaml b/changelogs/fragments/61095-scaleway-facts-info.yaml new file mode 100644 index 00000000000..4e10a390993 --- /dev/null +++ b/changelogs/fragments/61095-scaleway-facts-info.yaml @@ -0,0 +1,8 @@ +minor_changes: +- The ``scaleway_image_facts`` module has been deprecated. Use ``scaleway_image_info`` instead. +- The ``scaleway_ip_facts`` module has been deprecated. Use ``scaleway_ip_info`` instead. +- The ``scaleway_organization_facts`` module has been deprecated. Use ``scaleway_organization_info`` instead. +- The ``scaleway_security_group_facts`` module has been deprecated. Use ``scaleway_security_group_info`` instead. +- The ``scaleway_server_facts`` module has been deprecated. Use ``scaleway_server_info`` instead. +- The ``scaleway_snapshot_facts`` module has been deprecated. Use ``scaleway_snapshot_info`` instead. +- The ``scaleway_volume_facts`` module has been deprecated. Use ``scaleway_volume_info`` instead. diff --git a/docs/docsite/rst/porting_guides/porting_guide_2.9.rst b/docs/docsite/rst/porting_guides/porting_guide_2.9.rst index 2213c6c0062..ed298d38609 100644 --- a/docs/docsite/rst/porting_guides/porting_guide_2.9.rst +++ b/docs/docsite/rst/porting_guides/porting_guide_2.9.rst @@ -124,6 +124,20 @@ The following modules will be removed in Ansible 2.13. Please update update your * purefb_facts use :ref:`purefb_info ` instead. +* scaleway_image_facts use :ref:`scaleway_image_info ` instead. + +* scaleway_ip_facts use :ref:`scaleway_ip_info ` instead. + +* scaleway_organization_facts use :ref:`scaleway_organization_info ` instead. + +* scaleway_security_group_facts use :ref:`scaleway_security_group_info ` instead. + +* scaleway_server_facts use :ref:`scaleway_server_info ` instead. + +* scaleway_snapshot_facts use :ref:`scaleway_snapshot_info ` instead. + +* scaleway_volume_facts use :ref:`scaleway_volume_info ` instead. + * vcenter_extension_facts use :ref:`vcenter_extension_info ` instead. * vmware_about_facts use :ref:`vmware_about_info ` instead. diff --git a/lib/ansible/modules/cloud/scaleway/scaleway_image_facts.py b/lib/ansible/modules/cloud/scaleway/_scaleway_image_facts.py similarity index 95% rename from lib/ansible/modules/cloud/scaleway/scaleway_image_facts.py rename to lib/ansible/modules/cloud/scaleway/_scaleway_image_facts.py index 0becfdbd862..dbf8ee59da5 100644 --- a/lib/ansible/modules/cloud/scaleway/scaleway_image_facts.py +++ b/lib/ansible/modules/cloud/scaleway/_scaleway_image_facts.py @@ -8,12 +8,16 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type ANSIBLE_METADATA = {'metadata_version': '1.1', - 'status': ['preview'], + 'status': ['deprecated'], 'supported_by': 'community'} DOCUMENTATION = r''' --- module: scaleway_image_facts +deprecated: + removed_in: '2.13' + why: Deprecated in favour of C(_info) module. + alternative: Use M(scaleway_image_info) instead. short_description: Gather facts about the Scaleway images available. description: - Gather facts about the Scaleway images available. diff --git a/lib/ansible/modules/cloud/scaleway/scaleway_ip_facts.py b/lib/ansible/modules/cloud/scaleway/_scaleway_ip_facts.py similarity index 93% rename from lib/ansible/modules/cloud/scaleway/scaleway_ip_facts.py rename to lib/ansible/modules/cloud/scaleway/_scaleway_ip_facts.py index cf0c3916c13..ce6ccc2832c 100644 --- a/lib/ansible/modules/cloud/scaleway/scaleway_ip_facts.py +++ b/lib/ansible/modules/cloud/scaleway/_scaleway_ip_facts.py @@ -8,12 +8,16 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type ANSIBLE_METADATA = {'metadata_version': '1.1', - 'status': ['preview'], + 'status': ['deprecated'], 'supported_by': 'community'} DOCUMENTATION = r''' --- module: scaleway_ip_facts +deprecated: + removed_in: '2.13' + why: Deprecated in favour of C(_info) module. + alternative: Use M(scaleway_ip_info) instead. short_description: Gather facts about the Scaleway ips available. description: - Gather facts about the Scaleway ips available. diff --git a/lib/ansible/modules/cloud/scaleway/scaleway_organization_facts.py b/lib/ansible/modules/cloud/scaleway/_scaleway_organization_facts.py similarity index 93% rename from lib/ansible/modules/cloud/scaleway/scaleway_organization_facts.py rename to lib/ansible/modules/cloud/scaleway/_scaleway_organization_facts.py index b87a38b385f..32f705c305b 100644 --- a/lib/ansible/modules/cloud/scaleway/scaleway_organization_facts.py +++ b/lib/ansible/modules/cloud/scaleway/_scaleway_organization_facts.py @@ -8,12 +8,16 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type ANSIBLE_METADATA = {'metadata_version': '1.1', - 'status': ['preview'], + 'status': ['deprecated'], 'supported_by': 'community'} DOCUMENTATION = r''' --- module: scaleway_organization_facts +deprecated: + removed_in: '2.13' + why: Deprecated in favour of C(_info) module. + alternative: Use M(scaleway_organization_info) instead. short_description: Gather facts about the Scaleway organizations available. description: - Gather facts about the Scaleway organizations available. diff --git a/lib/ansible/modules/cloud/scaleway/scaleway_security_group_facts.py b/lib/ansible/modules/cloud/scaleway/_scaleway_security_group_facts.py similarity index 93% rename from lib/ansible/modules/cloud/scaleway/scaleway_security_group_facts.py rename to lib/ansible/modules/cloud/scaleway/_scaleway_security_group_facts.py index 524343647b9..d65defbcf0b 100644 --- a/lib/ansible/modules/cloud/scaleway/scaleway_security_group_facts.py +++ b/lib/ansible/modules/cloud/scaleway/_scaleway_security_group_facts.py @@ -8,12 +8,16 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type ANSIBLE_METADATA = {'metadata_version': '1.1', - 'status': ['preview'], + 'status': ['deprecated'], 'supported_by': 'community'} DOCUMENTATION = r''' --- module: scaleway_security_group_facts +deprecated: + removed_in: '2.13' + why: Deprecated in favour of C(_info) module. + alternative: Use M(scaleway_security_group_info) instead. short_description: Gather facts about the Scaleway security groups available. description: - Gather facts about the Scaleway security groups available. diff --git a/lib/ansible/modules/cloud/scaleway/scaleway_server_facts.py b/lib/ansible/modules/cloud/scaleway/_scaleway_server_facts.py similarity index 97% rename from lib/ansible/modules/cloud/scaleway/scaleway_server_facts.py rename to lib/ansible/modules/cloud/scaleway/_scaleway_server_facts.py index 34cb4a9432d..65b57001154 100644 --- a/lib/ansible/modules/cloud/scaleway/scaleway_server_facts.py +++ b/lib/ansible/modules/cloud/scaleway/_scaleway_server_facts.py @@ -8,12 +8,16 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type ANSIBLE_METADATA = {'metadata_version': '1.1', - 'status': ['preview'], + 'status': ['deprecated'], 'supported_by': 'community'} DOCUMENTATION = r''' --- module: scaleway_server_facts +deprecated: + removed_in: '2.13' + why: Deprecated in favour of C(_info) module. + alternative: Use M(scaleway_server_info) instead. short_description: Gather facts about the Scaleway servers available. description: - Gather facts about the Scaleway servers available. diff --git a/lib/ansible/modules/cloud/scaleway/scaleway_snapshot_facts.py b/lib/ansible/modules/cloud/scaleway/_scaleway_snapshot_facts.py similarity index 94% rename from lib/ansible/modules/cloud/scaleway/scaleway_snapshot_facts.py rename to lib/ansible/modules/cloud/scaleway/_scaleway_snapshot_facts.py index 81449ad94cd..fb0569f0d09 100644 --- a/lib/ansible/modules/cloud/scaleway/scaleway_snapshot_facts.py +++ b/lib/ansible/modules/cloud/scaleway/_scaleway_snapshot_facts.py @@ -8,12 +8,16 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type ANSIBLE_METADATA = {'metadata_version': '1.1', - 'status': ['preview'], + 'status': ['deprecated'], 'supported_by': 'community'} DOCUMENTATION = r''' --- module: scaleway_snapshot_facts +deprecated: + removed_in: '2.13' + why: Deprecated in favour of C(_info) module. + alternative: Use M(scaleway_snapshot_info) instead. short_description: Gather facts about the Scaleway snapshots available. description: - Gather facts about the Scaleway snapshot available. diff --git a/lib/ansible/modules/cloud/scaleway/scaleway_volume_facts.py b/lib/ansible/modules/cloud/scaleway/_scaleway_volume_facts.py similarity index 93% rename from lib/ansible/modules/cloud/scaleway/scaleway_volume_facts.py rename to lib/ansible/modules/cloud/scaleway/_scaleway_volume_facts.py index ccf7f527672..9ea2eb3cb16 100644 --- a/lib/ansible/modules/cloud/scaleway/scaleway_volume_facts.py +++ b/lib/ansible/modules/cloud/scaleway/_scaleway_volume_facts.py @@ -8,12 +8,16 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type ANSIBLE_METADATA = {'metadata_version': '1.1', - 'status': ['preview'], + 'status': ['deprecated'], 'supported_by': 'community'} DOCUMENTATION = r''' --- module: scaleway_volume_facts +deprecated: + removed_in: '2.13' + why: Deprecated in favour of C(_info) module. + alternative: Use M(scaleway_volume_info) instead. short_description: Gather facts about the Scaleway volumes available. description: - Gather facts about the Scaleway volumes available. diff --git a/lib/ansible/modules/cloud/scaleway/scaleway_image_info.py b/lib/ansible/modules/cloud/scaleway/scaleway_image_info.py new file mode 100644 index 00000000000..85649b22832 --- /dev/null +++ b/lib/ansible/modules/cloud/scaleway/scaleway_image_info.py @@ -0,0 +1,124 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# (c) 2018, Yanis Guenane +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + +DOCUMENTATION = r''' +--- +module: scaleway_image_info +short_description: Gather information about the Scaleway images available. +description: + - Gather information about the Scaleway images available. +version_added: "2.9" +author: + - "Yanis Guenane (@Spredzy)" + - "Remy Leone (@sieben)" +extends_documentation_fragment: scaleway + +options: + + region: + description: + - Scaleway compute zone + required: true + choices: + - ams1 + - EMEA-NL-EVS + - par1 + - EMEA-FR-PAR1 +''' + +EXAMPLES = r''' +- name: Gather Scaleway images information + scaleway_image_info: + region: par1 + register: result + +- debug: + msg: "{{ result.scaleway_image_info }}" +''' + +RETURN = r''' +--- +scaleway_image_info: + description: Response from Scaleway API + returned: success + type: complex + contains: + "scaleway_image_info": [ + { + "arch": "x86_64", + "creation_date": "2018-07-17T16:18:49.276456+00:00", + "default_bootscript": { + "architecture": "x86_64", + "bootcmdargs": "LINUX_COMMON scaleway boot=local nbd.max_part=16", + "default": false, + "dtb": "", + "id": "15fbd2f7-a0f9-412b-8502-6a44da8d98b8", + "initrd": "http://169.254.42.24/initrd/initrd-Linux-x86_64-v3.14.5.gz", + "kernel": "http://169.254.42.24/kernel/x86_64-mainline-lts-4.9-4.9.93-rev1/vmlinuz-4.9.93", + "organization": "11111111-1111-4111-8111-111111111111", + "public": true, + "title": "x86_64 mainline 4.9.93 rev1" + }, + "extra_volumes": [], + "from_server": null, + "id": "00ae4a88-3252-4eda-9feb-5f6b56bf5ef0", + "modification_date": "2018-07-17T16:42:06.319315+00:00", + "name": "Debian Stretch", + "organization": "51b656e3-4865-41e8-adbc-0c45bdd780db", + "public": true, + "root_volume": { + "id": "da32dfbb-c5ff-476d-ae2d-c297dd09b7dd", + "name": "snapshot-2a7229dc-d431-4dc5-b66e-95db08b773af-2018-07-17_16:18", + "size": 25000000000, + "volume_type": "l_ssd" + }, + "state": "available" + } + ] +''' + +from ansible.module_utils.basic import AnsibleModule +from ansible.module_utils.scaleway import ( + Scaleway, ScalewayException, scaleway_argument_spec, SCALEWAY_LOCATION) + + +class ScalewayImageInfo(Scaleway): + + def __init__(self, module): + super(ScalewayImageInfo, self).__init__(module) + self.name = 'images' + + region = module.params["region"] + self.module.params['api_url'] = SCALEWAY_LOCATION[region]["api_endpoint"] + + +def main(): + argument_spec = scaleway_argument_spec() + argument_spec.update(dict( + region=dict(required=True, choices=SCALEWAY_LOCATION.keys()), + )) + module = AnsibleModule( + argument_spec=argument_spec, + supports_check_mode=True, + ) + + try: + module.exit_json( + scaleway_image_info=ScalewayImageInfo(module).get_resources() + ) + except ScalewayException as exc: + module.fail_json(msg=exc.message) + + +if __name__ == '__main__': + main() diff --git a/lib/ansible/modules/cloud/scaleway/scaleway_ip_info.py b/lib/ansible/modules/cloud/scaleway/scaleway_ip_info.py new file mode 100644 index 00000000000..01fa880514d --- /dev/null +++ b/lib/ansible/modules/cloud/scaleway/scaleway_ip_info.py @@ -0,0 +1,106 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# (c) 2018, Yanis Guenane +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + +DOCUMENTATION = r''' +--- +module: scaleway_ip_info +short_description: Gather information about the Scaleway ips available. +description: + - Gather information about the Scaleway ips available. +version_added: "2.9" +author: + - "Yanis Guenane (@Spredzy)" + - "Remy Leone (@sieben)" +extends_documentation_fragment: scaleway +options: + region: + description: + - Scaleway region to use (for example C(par1)). + required: true + choices: + - ams1 + - EMEA-NL-EVS + - par1 + - EMEA-FR-PAR1 +''' + +EXAMPLES = r''' +- name: Gather Scaleway ips information + scaleway_ip_info: + region: par1 + register: result + +- debug: + msg: "{{ result.scaleway_ip_info }}" +''' + +RETURN = r''' +--- +scaleway_ip_info: + description: Response from Scaleway API + returned: success + type: complex + contains: + "scaleway_ip_info": [ + { + "address": "163.172.170.243", + "id": "ea081794-a581-8899-8451-386ddaf0a451", + "organization": "3f709602-5e6c-4619-b80c-e324324324af", + "reverse": null, + "server": { + "id": "12f19bc7-109c-4517-954c-e6b3d0311363", + "name": "scw-e0d158" + } + } + ] +''' + +from ansible.module_utils.basic import AnsibleModule +from ansible.module_utils.scaleway import ( + Scaleway, + ScalewayException, + scaleway_argument_spec, + SCALEWAY_LOCATION, +) + + +class ScalewayIpInfo(Scaleway): + + def __init__(self, module): + super(ScalewayIpInfo, self).__init__(module) + self.name = 'ips' + + region = module.params["region"] + self.module.params['api_url'] = SCALEWAY_LOCATION[region]["api_endpoint"] + + +def main(): + argument_spec = scaleway_argument_spec() + argument_spec.update(dict( + region=dict(required=True, choices=SCALEWAY_LOCATION.keys()), + )) + module = AnsibleModule( + argument_spec=argument_spec, + supports_check_mode=True, + ) + + try: + module.exit_json( + scaleway_ip_info=ScalewayIpInfo(module).get_resources() + ) + except ScalewayException as exc: + module.fail_json(msg=exc.message) + + +if __name__ == '__main__': + main() diff --git a/lib/ansible/modules/cloud/scaleway/scaleway_organization_info.py b/lib/ansible/modules/cloud/scaleway/scaleway_organization_info.py new file mode 100644 index 00000000000..a32c9630e3f --- /dev/null +++ b/lib/ansible/modules/cloud/scaleway/scaleway_organization_info.py @@ -0,0 +1,107 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# (c) 2018, Yanis Guenane +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + +DOCUMENTATION = r''' +--- +module: scaleway_organization_info +short_description: Gather information about the Scaleway organizations available. +description: + - Gather information about the Scaleway organizations available. +version_added: "2.9" +author: + - "Yanis Guenane (@Spredzy)" + - "Remy Leone (@sieben)" +options: + api_url: + description: + - Scaleway API URL + default: 'https://account.scaleway.com' + aliases: ['base_url'] +extends_documentation_fragment: scaleway +''' + +EXAMPLES = r''' +- name: Gather Scaleway organizations information + scaleway_organization_info: + register: result + +- debug: + msg: "{{ result.scaleway_organization_info }}" +''' + +RETURN = r''' +--- +scaleway_organization_info: + description: Response from Scaleway API + returned: success + type: complex + contains: + "scaleway_organization_info": [ + { + "address_city_name": "Paris", + "address_country_code": "FR", + "address_line1": "42 Rue de l'univers", + "address_line2": null, + "address_postal_code": "75042", + "address_subdivision_code": "FR-75", + "creation_date": "2018-08-06T13:43:28.508575+00:00", + "currency": "EUR", + "customer_class": "individual", + "id": "3f709602-5e6c-4619-b80c-e8432ferewtr", + "locale": "fr_FR", + "modification_date": "2018-08-06T14:56:41.401685+00:00", + "name": "James Bond", + "support_id": "694324", + "support_level": "basic", + "support_pin": "9324", + "users": [], + "vat_number": null, + "warnings": [] + } + ] +''' + +from ansible.module_utils.basic import AnsibleModule, env_fallback +from ansible.module_utils.scaleway import ( + Scaleway, ScalewayException, scaleway_argument_spec +) + + +class ScalewayOrganizationInfo(Scaleway): + + def __init__(self, module): + super(ScalewayOrganizationInfo, self).__init__(module) + self.name = 'organizations' + + +def main(): + argument_spec = scaleway_argument_spec() + argument_spec.update(dict( + api_url=dict(fallback=(env_fallback, ['SCW_API_URL']), default='https://account.scaleway.com', aliases=['base_url']), + )) + + module = AnsibleModule( + argument_spec=argument_spec, + supports_check_mode=True, + ) + + try: + module.exit_json( + scaleway_organization_info=ScalewayOrganizationInfo(module).get_resources() + ) + except ScalewayException as exc: + module.fail_json(msg=exc.message) + + +if __name__ == '__main__': + main() diff --git a/lib/ansible/modules/cloud/scaleway/scaleway_security_group_info.py b/lib/ansible/modules/cloud/scaleway/scaleway_security_group_info.py new file mode 100644 index 00000000000..18e8b74dee7 --- /dev/null +++ b/lib/ansible/modules/cloud/scaleway/scaleway_security_group_info.py @@ -0,0 +1,110 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# (c) 2018, Yanis Guenane +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + +DOCUMENTATION = r''' +--- +module: scaleway_security_group_info +short_description: Gather information about the Scaleway security groups available. +description: + - Gather information about the Scaleway security groups available. +version_added: "2.9" +author: + - "Yanis Guenane (@Spredzy)" + - "Remy Leone (@sieben)" +options: + region: + description: + - Scaleway region to use (for example C(par1)). + required: true + choices: + - ams1 + - EMEA-NL-EVS + - par1 + - EMEA-FR-PAR1 +extends_documentation_fragment: scaleway +''' + +EXAMPLES = r''' +- name: Gather Scaleway security groups information + scaleway_security_group_info: + region: par1 + register: result + +- debug: + msg: "{{ result.scaleway_security_group_info }}" +''' + +RETURN = r''' +--- +scaleway_security_group_info: + description: Response from Scaleway API + returned: success + type: complex + contains: + "scaleway_security_group_info": [ + { + "description": "test-ams", + "enable_default_security": true, + "id": "7fcde327-8bed-43a6-95c4-6dfbc56d8b51", + "name": "test-ams", + "organization": "3f709602-5e6c-4619-b80c-e841c89734af", + "organization_default": false, + "servers": [ + { + "id": "12f19bc7-108c-4517-954c-e6b3d0311363", + "name": "scw-e0d158" + } + ] + } + ] +''' + +from ansible.module_utils.basic import AnsibleModule +from ansible.module_utils.scaleway import ( + Scaleway, + ScalewayException, + scaleway_argument_spec, + SCALEWAY_LOCATION, +) + + +class ScalewaySecurityGroupInfo(Scaleway): + + def __init__(self, module): + super(ScalewaySecurityGroupInfo, self).__init__(module) + self.name = 'security_groups' + + region = module.params["region"] + self.module.params['api_url'] = SCALEWAY_LOCATION[region]["api_endpoint"] + + +def main(): + argument_spec = scaleway_argument_spec() + argument_spec.update(dict( + region=dict(required=True, choices=SCALEWAY_LOCATION.keys()), + )) + module = AnsibleModule( + argument_spec=argument_spec, + supports_check_mode=True, + ) + + try: + module.exit_json( + scaleway_security_group_info=ScalewaySecurityGroupInfo(module).get_resources() + ) + except ScalewayException as exc: + module.fail_json(msg=exc.message) + + +if __name__ == '__main__': + main() diff --git a/lib/ansible/modules/cloud/scaleway/scaleway_server_info.py b/lib/ansible/modules/cloud/scaleway/scaleway_server_info.py new file mode 100644 index 00000000000..0277681e621 --- /dev/null +++ b/lib/ansible/modules/cloud/scaleway/scaleway_server_info.py @@ -0,0 +1,193 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# (c) 2018, Yanis Guenane +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + +DOCUMENTATION = r''' +--- +module: scaleway_server_info +short_description: Gather information about the Scaleway servers available. +description: + - Gather information about the Scaleway servers available. +version_added: "2.9" +author: + - "Yanis Guenane (@Spredzy)" + - "Remy Leone (@sieben)" +extends_documentation_fragment: scaleway +options: + region: + description: + - Scaleway region to use (for example C(par1)). + required: true + choices: + - ams1 + - EMEA-NL-EVS + - par1 + - EMEA-FR-PAR1 +''' + +EXAMPLES = r''' +- name: Gather Scaleway servers information + scaleway_server_info: + region: par1 + register: result + +- debug: + msg: "{{ result.scaleway_server_info }}" +''' + +RETURN = r''' +--- +scaleway_server_info: + description: Response from Scaleway API + returned: success + type: complex + contains: + "scaleway_server_info": [ + { + "arch": "x86_64", + "boot_type": "local", + "bootscript": { + "architecture": "x86_64", + "bootcmdargs": "LINUX_COMMON scaleway boot=local nbd.max_part=16", + "default": true, + "dtb": "", + "id": "b1e68c26-a19c-4eac-9222-498b22bd7ad9", + "initrd": "http://169.254.42.24/initrd/initrd-Linux-x86_64-v3.14.5.gz", + "kernel": "http://169.254.42.24/kernel/x86_64-mainline-lts-4.4-4.4.127-rev1/vmlinuz-4.4.127", + "organization": "11111111-1111-4111-8111-111111111111", + "public": true, + "title": "x86_64 mainline 4.4.127 rev1" + }, + "commercial_type": "START1-XS", + "creation_date": "2018-08-14T21:36:56.271545+00:00", + "dynamic_ip_required": false, + "enable_ipv6": false, + "extra_networks": [], + "hostname": "scw-e0d256", + "id": "12f19bc7-108c-4517-954c-e6b3d0311363", + "image": { + "arch": "x86_64", + "creation_date": "2018-04-26T12:42:21.619844+00:00", + "default_bootscript": { + "architecture": "x86_64", + "bootcmdargs": "LINUX_COMMON scaleway boot=local nbd.max_part=16", + "default": true, + "dtb": "", + "id": "b1e68c26-a19c-4eac-9222-498b22bd7ad9", + "initrd": "http://169.254.42.24/initrd/initrd-Linux-x86_64-v3.14.5.gz", + "kernel": "http://169.254.42.24/kernel/x86_64-mainline-lts-4.4-4.4.127-rev1/vmlinuz-4.4.127", + "organization": "11111111-1111-4111-8111-111111111111", + "public": true, + "title": "x86_64 mainline 4.4.127 rev1" + }, + "extra_volumes": [], + "from_server": null, + "id": "67375eb1-f14d-4f02-bb42-6119cecbde51", + "modification_date": "2018-04-26T12:49:07.573004+00:00", + "name": "Ubuntu Xenial", + "organization": "51b656e3-4865-41e8-adbc-0c45bdd780db", + "public": true, + "root_volume": { + "id": "020b8d61-3867-4a0e-84a4-445c5393e05d", + "name": "snapshot-87fc282d-f252-4262-adad-86979d9074cf-2018-04-26_12:42", + "size": 25000000000, + "volume_type": "l_ssd" + }, + "state": "available" + }, + "ipv6": null, + "location": { + "cluster_id": "5", + "hypervisor_id": "412", + "node_id": "2", + "platform_id": "13", + "zone_id": "par1" + }, + "maintenances": [], + "modification_date": "2018-08-14T21:37:28.630882+00:00", + "name": "scw-e0d256", + "organization": "3f709602-5e6c-4619-b80c-e841c89734af", + "private_ip": "10.14.222.131", + "protected": false, + "public_ip": { + "address": "163.172.170.197", + "dynamic": false, + "id": "ea081794-a581-4495-8451-386ddaf0a451" + }, + "security_group": { + "id": "a37379d2-d8b0-4668-9cfb-1233fc436f7e", + "name": "Default security group" + }, + "state": "running", + "state_detail": "booted", + "tags": [], + "volumes": { + "0": { + "creation_date": "2018-08-14T21:36:56.271545+00:00", + "export_uri": "device://dev/vda", + "id": "68386fae-4f55-4fbf-aabb-953036a85872", + "modification_date": "2018-08-14T21:36:56.271545+00:00", + "name": "snapshot-87fc282d-f252-4262-adad-86979d9074cf-2018-04-26_12:42", + "organization": "3f709602-5e6c-4619-b80c-e841c89734af", + "server": { + "id": "12f19bc7-108c-4517-954c-e6b3d0311363", + "name": "scw-e0d256" + }, + "size": 25000000000, + "state": "available", + "volume_type": "l_ssd" + } + } + } + ] +''' + +from ansible.module_utils.basic import AnsibleModule +from ansible.module_utils.scaleway import ( + Scaleway, + ScalewayException, + scaleway_argument_spec, + SCALEWAY_LOCATION, +) + + +class ScalewayServerInfo(Scaleway): + + def __init__(self, module): + super(ScalewayServerInfo, self).__init__(module) + self.name = 'servers' + + region = module.params["region"] + self.module.params['api_url'] = SCALEWAY_LOCATION[region]["api_endpoint"] + + +def main(): + argument_spec = scaleway_argument_spec() + argument_spec.update(dict( + region=dict(required=True, choices=SCALEWAY_LOCATION.keys()), + )) + + module = AnsibleModule( + argument_spec=argument_spec, + supports_check_mode=True, + ) + + try: + module.exit_json( + scaleway_server_info=ScalewayServerInfo(module).get_resources() + ) + except ScalewayException as exc: + module.fail_json(msg=exc.message) + + +if __name__ == '__main__': + main() diff --git a/lib/ansible/modules/cloud/scaleway/scaleway_snapshot_info.py b/lib/ansible/modules/cloud/scaleway/scaleway_snapshot_info.py new file mode 100644 index 00000000000..d47c2ca924e --- /dev/null +++ b/lib/ansible/modules/cloud/scaleway/scaleway_snapshot_info.py @@ -0,0 +1,111 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# (c) 2018, Yanis Guenane +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + +DOCUMENTATION = r''' +--- +module: scaleway_snapshot_info +short_description: Gather information about the Scaleway snapshots available. +description: + - Gather information about the Scaleway snapshot available. +version_added: "2.9" +author: + - "Yanis Guenane (@Spredzy)" + - "Remy Leone (@sieben)" +extends_documentation_fragment: scaleway +options: + region: + description: + - Scaleway region to use (for example C(par1)). + required: true + choices: + - ams1 + - EMEA-NL-EVS + - par1 + - EMEA-FR-PAR1 +''' + +EXAMPLES = r''' +- name: Gather Scaleway snapshots information + scaleway_snapshot_info: + region: par1 + register: result + +- debug: + msg: "{{ result.scaleway_snapshot_info }}" +''' + +RETURN = r''' +--- +scaleway_snapshot_info: + description: Response from Scaleway API + returned: success + type: complex + contains: + "scaleway_snapshot_info": [ + { + "base_volume": { + "id": "68386fae-4f55-4fbf-aabb-953036a85872", + "name": "snapshot-87fc282d-f252-4262-adad-86979d9074cf-2018-04-26_12:42" + }, + "creation_date": "2018-08-14T22:34:35.299461+00:00", + "id": "b61b4b03-a2e9-4da5-b5ea-e462ac0662d2", + "modification_date": "2018-08-14T22:34:54.520560+00:00", + "name": "snapshot-87fc282d-f252-4262-adad-86979d9074cf-2018-04-26_12:42 snapshot", + "organization": "3f709602-5e6c-4619-b80c-e841c89734af", + "size": 25000000000, + "state": "available", + "volume_type": "l_ssd" + } + ] +''' + +from ansible.module_utils.basic import AnsibleModule +from ansible.module_utils.scaleway import ( + Scaleway, + ScalewayException, + scaleway_argument_spec, + SCALEWAY_LOCATION +) + + +class ScalewaySnapshotInfo(Scaleway): + + def __init__(self, module): + super(ScalewaySnapshotInfo, self).__init__(module) + self.name = 'snapshots' + + region = module.params["region"] + self.module.params['api_url'] = SCALEWAY_LOCATION[region]["api_endpoint"] + + +def main(): + argument_spec = scaleway_argument_spec() + argument_spec.update(dict( + region=dict(required=True, choices=SCALEWAY_LOCATION.keys()), + )) + + module = AnsibleModule( + argument_spec=argument_spec, + supports_check_mode=True, + ) + + try: + module.exit_json( + scaleway_snapshot_info=ScalewaySnapshotInfo(module).get_resources() + ) + except ScalewayException as exc: + module.fail_json(msg=exc.message) + + +if __name__ == '__main__': + main() diff --git a/lib/ansible/modules/cloud/scaleway/scaleway_volume_info.py b/lib/ansible/modules/cloud/scaleway/scaleway_volume_info.py new file mode 100644 index 00000000000..6f8111958fc --- /dev/null +++ b/lib/ansible/modules/cloud/scaleway/scaleway_volume_info.py @@ -0,0 +1,106 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# (c) 2018, Yanis Guenane +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['preview'], + 'supported_by': 'community'} + +DOCUMENTATION = r''' +--- +module: scaleway_volume_info +short_description: Gather information about the Scaleway volumes available. +description: + - Gather information about the Scaleway volumes available. +version_added: "2.9" +author: + - "Yanis Guenane (@Spredzy)" + - "Remy Leone (@sieben)" +extends_documentation_fragment: scaleway +options: + region: + description: + - Scaleway region to use (for example C(par1)). + required: true + choices: + - ams1 + - EMEA-NL-EVS + - par1 + - EMEA-FR-PAR1 +''' + +EXAMPLES = r''' +- name: Gather Scaleway volumes information + scaleway_volume_info: + region: par1 + register: result + +- debug: + msg: "{{ result.scaleway_volume_info }}" +''' + +RETURN = r''' +--- +scaleway_volume_info: + description: Response from Scaleway API + returned: success + type: complex + contains: + "scaleway_volume_info": [ + { + "creation_date": "2018-08-14T20:56:24.949660+00:00", + "export_uri": null, + "id": "b8d51a06-daeb-4fef-9539-a8aea016c1ba", + "modification_date": "2018-08-14T20:56:24.949660+00:00", + "name": "test-volume", + "organization": "3f709602-5e6c-4619-b80c-e841c89734af", + "server": null, + "size": 50000000000, + "state": "available", + "volume_type": "l_ssd" + } + ] +''' + +from ansible.module_utils.basic import AnsibleModule +from ansible.module_utils.scaleway import ( + Scaleway, ScalewayException, scaleway_argument_spec, + SCALEWAY_LOCATION) + + +class ScalewayVolumeInfo(Scaleway): + + def __init__(self, module): + super(ScalewayVolumeInfo, self).__init__(module) + self.name = 'volumes' + + region = module.params["region"] + self.module.params['api_url'] = SCALEWAY_LOCATION[region]["api_endpoint"] + + +def main(): + argument_spec = scaleway_argument_spec() + argument_spec.update(dict( + region=dict(required=True, choices=SCALEWAY_LOCATION.keys()), + )) + + module = AnsibleModule( + argument_spec=argument_spec, + supports_check_mode=True, + ) + + try: + module.exit_json( + scaleway_volume_info=ScalewayVolumeInfo(module).get_resources() + ) + except ScalewayException as exc: + module.fail_json(msg=exc.message) + + +if __name__ == '__main__': + main() diff --git a/test/integration/targets/scaleway_compute/tasks/pagination.yml b/test/integration/targets/scaleway_compute/tasks/pagination.yml index 0ba108b8478..7b7dd49bd44 100644 --- a/test/integration/targets/scaleway_compute/tasks/pagination.yml +++ b/test/integration/targets/scaleway_compute/tasks/pagination.yml @@ -19,7 +19,7 @@ wait: true - name: Get server informations of the first page - scaleway_server_facts: + scaleway_server_info: region: par1 query_parameters: per_page: 1 @@ -33,7 +33,7 @@ - first_page is success - name: Get server informations of the second page - scaleway_server_facts: + scaleway_server_info: region: par1 query_parameters: per_page: 1 @@ -48,7 +48,7 @@ - assert: that: - - first_page.ansible_facts.scaleway_server_facts[0].id != second_page.ansible_facts.scaleway_server_facts[0].id + - first_page.scaleway_server_info[0].id != second_page.scaleway_server_info[0].id - name: Delete first server scaleway_compute: diff --git a/test/integration/targets/scaleway_image_facts/aliases b/test/integration/targets/scaleway_image_info/aliases similarity index 100% rename from test/integration/targets/scaleway_image_facts/aliases rename to test/integration/targets/scaleway_image_info/aliases diff --git a/test/integration/targets/scaleway_image_facts/tasks/main.yml b/test/integration/targets/scaleway_image_info/tasks/main.yml similarity index 73% rename from test/integration/targets/scaleway_image_facts/tasks/main.yml rename to test/integration/targets/scaleway_image_info/tasks/main.yml index aa5e745c9fa..540810479a1 100644 --- a/test/integration/targets/scaleway_image_facts/tasks/main.yml +++ b/test/integration/targets/scaleway_image_info/tasks/main.yml @@ -1,8 +1,8 @@ -# SCW_API_KEY='XXX' ansible-playbook ./test/legacy/scaleway.yml --tags test_scaleway_image_facts +# SCW_API_KEY='XXX' ansible-playbook ./test/legacy/scaleway.yml --tags test_scaleway_image_info - name: Get image informations and register it in a variable - scaleway_image_facts: + scaleway_image_info: region: par1 register: images @@ -10,13 +10,13 @@ debug: var: images -- name: Ensure retrieval of images facts is success +- name: Ensure retrieval of images info is success assert: that: - images is success - name: Get image informations from ams1 and register it in a variable - scaleway_image_facts: + scaleway_image_info: region: ams1 register: images_ams1 @@ -24,7 +24,7 @@ debug: var: images_ams1 -- name: Ensure retrieval of images facts is success +- name: Ensure retrieval of images info is success assert: that: - images_ams1 is success diff --git a/test/integration/targets/scaleway_ip_facts/aliases b/test/integration/targets/scaleway_ip_info/aliases similarity index 100% rename from test/integration/targets/scaleway_ip_facts/aliases rename to test/integration/targets/scaleway_ip_info/aliases diff --git a/test/integration/targets/scaleway_ip_facts/tasks/main.yml b/test/integration/targets/scaleway_ip_info/tasks/main.yml similarity index 72% rename from test/integration/targets/scaleway_ip_facts/tasks/main.yml rename to test/integration/targets/scaleway_ip_info/tasks/main.yml index f68fb840635..d36c68fb9c7 100644 --- a/test/integration/targets/scaleway_ip_facts/tasks/main.yml +++ b/test/integration/targets/scaleway_ip_info/tasks/main.yml @@ -1,7 +1,7 @@ -# SCW_API_KEY='XXX' ansible-playbook ./test/legacy/scaleway.yml --tags test_scaleway_ip_facts +# SCW_API_KEY='XXX' ansible-playbook ./test/legacy/scaleway.yml --tags test_scaleway_ip_info - name: Get ip informations and register it in a variable - scaleway_ip_facts: + scaleway_ip_info: region: par1 register: ips @@ -9,13 +9,13 @@ debug: var: ips -- name: Ensure retrieval of ips facts is success +- name: Ensure retrieval of ips info is success assert: that: - ips is success - name: Get ip informations and register it in a variable - scaleway_ip_facts: + scaleway_ip_info: region: ams1 register: ips_ams1 @@ -23,7 +23,7 @@ debug: var: ips_ams1 -- name: Ensure retrieval of ips facts is success +- name: Ensure retrieval of ips info is success assert: that: - ips_ams1 is success diff --git a/test/integration/targets/scaleway_organization_facts/aliases b/test/integration/targets/scaleway_organization_info/aliases similarity index 100% rename from test/integration/targets/scaleway_organization_facts/aliases rename to test/integration/targets/scaleway_organization_info/aliases diff --git a/test/integration/targets/scaleway_organization_facts/tasks/main.yml b/test/integration/targets/scaleway_organization_info/tasks/main.yml similarity index 70% rename from test/integration/targets/scaleway_organization_facts/tasks/main.yml rename to test/integration/targets/scaleway_organization_info/tasks/main.yml index 5a2df69e7f2..716a47b2da0 100644 --- a/test/integration/targets/scaleway_organization_facts/tasks/main.yml +++ b/test/integration/targets/scaleway_organization_info/tasks/main.yml @@ -1,12 +1,12 @@ - name: Get organization informations and register it in a variable - scaleway_organization_facts: + scaleway_organization_info: register: organizations - name: Display organizations variable debug: var: organizations -- name: Ensure retrieval of organizations facts is success +- name: Ensure retrieval of organizations info is success assert: that: - organizations is success diff --git a/test/integration/targets/scaleway_security_group_facts/aliases b/test/integration/targets/scaleway_security_group_info/aliases similarity index 100% rename from test/integration/targets/scaleway_security_group_facts/aliases rename to test/integration/targets/scaleway_security_group_info/aliases diff --git a/test/integration/targets/scaleway_security_group_facts/tasks/main.yml b/test/integration/targets/scaleway_security_group_info/tasks/main.yml similarity index 71% rename from test/integration/targets/scaleway_security_group_facts/tasks/main.yml rename to test/integration/targets/scaleway_security_group_info/tasks/main.yml index 227b62efa2f..ebba5223d9f 100644 --- a/test/integration/targets/scaleway_security_group_facts/tasks/main.yml +++ b/test/integration/targets/scaleway_security_group_info/tasks/main.yml @@ -1,7 +1,7 @@ -# SCW_API_KEY='XXX' ansible-playbook ./test/legacy/scaleway.yml --tags test_scaleway_security_group_facts +# SCW_API_KEY='XXX' ansible-playbook ./test/legacy/scaleway.yml --tags test_scaleway_security_group_info - name: Get security group informations and register it in a variable - scaleway_security_group_facts: + scaleway_security_group_info: region: par1 register: security_groups @@ -9,13 +9,13 @@ debug: var: security_groups -- name: Ensure retrieval of security groups facts is success +- name: Ensure retrieval of security groups info is success assert: that: - security_groups is success - name: Get security group informations and register it in a variable (AMS1) - scaleway_security_group_facts: + scaleway_security_group_info: region: ams1 register: ams1_security_groups @@ -23,7 +23,7 @@ debug: var: ams1_security_groups -- name: Ensure retrieval of security groups facts is success (AMS1) +- name: Ensure retrieval of security groups info is success (AMS1) assert: that: - ams1_security_groups is success diff --git a/test/integration/targets/scaleway_server_facts/aliases b/test/integration/targets/scaleway_server_info/aliases similarity index 100% rename from test/integration/targets/scaleway_server_facts/aliases rename to test/integration/targets/scaleway_server_info/aliases diff --git a/test/integration/targets/scaleway_server_facts/tasks/main.yml b/test/integration/targets/scaleway_server_info/tasks/main.yml similarity index 72% rename from test/integration/targets/scaleway_server_facts/tasks/main.yml rename to test/integration/targets/scaleway_server_info/tasks/main.yml index f906560ae29..a6956e2a3b0 100644 --- a/test/integration/targets/scaleway_server_facts/tasks/main.yml +++ b/test/integration/targets/scaleway_server_info/tasks/main.yml @@ -1,7 +1,7 @@ -# SCW_API_KEY='XXX' ansible-playbook ./test/legacy/scaleway.yml --tags test_scaleway_server_facts +# SCW_API_KEY='XXX' ansible-playbook ./test/legacy/scaleway.yml --tags test_scaleway_server_info - name: Get server informations and register it in a variable - scaleway_server_facts: + scaleway_server_info: region: par1 register: servers @@ -9,13 +9,13 @@ debug: var: servers -- name: Ensure retrieval of servers facts is success +- name: Ensure retrieval of servers info is success assert: that: - servers is success - name: Get server informations and register it in a variable - scaleway_server_facts: + scaleway_server_info: region: ams1 register: ams1_servers @@ -23,7 +23,7 @@ debug: var: ams1_servers -- name: Ensure retrieval of servers facts is success +- name: Ensure retrieval of servers info is success assert: that: - ams1_servers is success diff --git a/test/integration/targets/scaleway_snapshot_facts/aliases b/test/integration/targets/scaleway_snapshot_info/aliases similarity index 100% rename from test/integration/targets/scaleway_snapshot_facts/aliases rename to test/integration/targets/scaleway_snapshot_info/aliases diff --git a/test/integration/targets/scaleway_snapshot_facts/tasks/main.yml b/test/integration/targets/scaleway_snapshot_info/tasks/main.yml similarity index 71% rename from test/integration/targets/scaleway_snapshot_facts/tasks/main.yml rename to test/integration/targets/scaleway_snapshot_info/tasks/main.yml index bf7c2eb4dd5..1827bdb3c8a 100644 --- a/test/integration/targets/scaleway_snapshot_facts/tasks/main.yml +++ b/test/integration/targets/scaleway_snapshot_info/tasks/main.yml @@ -1,7 +1,7 @@ -# SCW_API_KEY='XXX' ansible-playbook ./test/legacy/scaleway.yml --tags test_scaleway_snapshot_facts +# SCW_API_KEY='XXX' ansible-playbook ./test/legacy/scaleway.yml --tags test_scaleway_snapshot_info - name: Get snapshot informations and register it in a variable - scaleway_snapshot_facts: + scaleway_snapshot_info: region: par1 register: snapshots @@ -9,13 +9,13 @@ debug: var: snapshots -- name: Ensure retrieval of snapshots facts is success +- name: Ensure retrieval of snapshots info is success assert: that: - snapshots is success - name: Get snapshot informations and register it in a variable (AMS1) - scaleway_snapshot_facts: + scaleway_snapshot_info: region: ams1 register: ams1_snapshots @@ -23,7 +23,7 @@ debug: var: ams1_snapshots -- name: Ensure retrieval of snapshots facts is success (AMS1) +- name: Ensure retrieval of snapshots info is success (AMS1) assert: that: - ams1_snapshots is success diff --git a/test/integration/targets/scaleway_volume_facts/aliases b/test/integration/targets/scaleway_volume_info/aliases similarity index 100% rename from test/integration/targets/scaleway_volume_facts/aliases rename to test/integration/targets/scaleway_volume_info/aliases diff --git a/test/integration/targets/scaleway_volume_facts/tasks/main.yml b/test/integration/targets/scaleway_volume_info/tasks/main.yml similarity index 72% rename from test/integration/targets/scaleway_volume_facts/tasks/main.yml rename to test/integration/targets/scaleway_volume_info/tasks/main.yml index b157e127ad2..4463ddda04c 100644 --- a/test/integration/targets/scaleway_volume_facts/tasks/main.yml +++ b/test/integration/targets/scaleway_volume_info/tasks/main.yml @@ -1,7 +1,7 @@ -# SCW_API_KEY='XXX' ansible-playbook ./test/legacy/scaleway.yml --tags test_scaleway_volume_facts +# SCW_API_KEY='XXX' ansible-playbook ./test/legacy/scaleway.yml --tags test_scaleway_volume_info - name: Get volume informations and register it in a variable - scaleway_volume_facts: + scaleway_volume_info: region: par1 register: volumes @@ -9,13 +9,13 @@ debug: var: volumes -- name: Ensure retrieval of volumes facts is success +- name: Ensure retrieval of volumes info is success assert: that: - volumes is success - name: Get volume informations and register it in a variable (AMS1) - scaleway_volume_facts: + scaleway_volume_info: region: ams1 register: ams1_volumes @@ -23,7 +23,7 @@ debug: var: ams1_volumes -- name: Ensure retrieval of volumes facts is success +- name: Ensure retrieval of volumes info is success assert: that: - ams1_volumes is success diff --git a/test/sanity/ignore.txt b/test/sanity/ignore.txt index 9f001bd6c2e..a7e2718ca61 100644 --- a/test/sanity/ignore.txt +++ b/test/sanity/ignore.txt @@ -2022,21 +2022,27 @@ lib/ansible/modules/cloud/rackspace/rax_scaling_policy.py validate-modules:E337 lib/ansible/modules/cloud/rackspace/rax_scaling_policy.py validate-modules:E338 lib/ansible/modules/cloud/scaleway/scaleway_compute.py validate-modules:E337 lib/ansible/modules/cloud/scaleway/scaleway_compute.py validate-modules:E338 -lib/ansible/modules/cloud/scaleway/scaleway_image_facts.py validate-modules:E338 +lib/ansible/modules/cloud/scaleway/_scaleway_image_facts.py validate-modules:E338 +lib/ansible/modules/cloud/scaleway/scaleway_image_info.py validate-modules:E338 lib/ansible/modules/cloud/scaleway/scaleway_ip.py validate-modules:E338 -lib/ansible/modules/cloud/scaleway/scaleway_ip_facts.py validate-modules:E338 +lib/ansible/modules/cloud/scaleway/_scaleway_ip_facts.py validate-modules:E338 +lib/ansible/modules/cloud/scaleway/scaleway_ip_info.py validate-modules:E338 lib/ansible/modules/cloud/scaleway/scaleway_lb.py validate-modules:E337 lib/ansible/modules/cloud/scaleway/scaleway_lb.py validate-modules:E338 -lib/ansible/modules/cloud/scaleway/scaleway_security_group_facts.py validate-modules:E338 +lib/ansible/modules/cloud/scaleway/_scaleway_security_group_facts.py validate-modules:E338 +lib/ansible/modules/cloud/scaleway/scaleway_security_group_info.py validate-modules:E338 lib/ansible/modules/cloud/scaleway/scaleway_security_group_rule.py validate-modules:E337 -lib/ansible/modules/cloud/scaleway/scaleway_server_facts.py validate-modules:E338 -lib/ansible/modules/cloud/scaleway/scaleway_snapshot_facts.py validate-modules:E338 +lib/ansible/modules/cloud/scaleway/_scaleway_server_facts.py validate-modules:E338 +lib/ansible/modules/cloud/scaleway/scaleway_server_info.py validate-modules:E338 +lib/ansible/modules/cloud/scaleway/_scaleway_snapshot_facts.py validate-modules:E338 +lib/ansible/modules/cloud/scaleway/scaleway_snapshot_info.py validate-modules:E338 lib/ansible/modules/cloud/scaleway/scaleway_sshkey.py validate-modules:E338 lib/ansible/modules/cloud/scaleway/scaleway_user_data.py validate-modules:E337 lib/ansible/modules/cloud/scaleway/scaleway_user_data.py validate-modules:E338 lib/ansible/modules/cloud/scaleway/scaleway_volume.py validate-modules:E337 lib/ansible/modules/cloud/scaleway/scaleway_volume.py validate-modules:E338 -lib/ansible/modules/cloud/scaleway/scaleway_volume_facts.py validate-modules:E338 +lib/ansible/modules/cloud/scaleway/_scaleway_volume_facts.py validate-modules:E338 +lib/ansible/modules/cloud/scaleway/scaleway_volume_info.py validate-modules:E338 lib/ansible/modules/cloud/smartos/imgadm.py validate-modules:E317 lib/ansible/modules/cloud/smartos/imgadm.py validate-modules:E338 lib/ansible/modules/cloud/smartos/smartos_image_facts.py validate-modules:E338