You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible/test/integration/platform_agnostic.yaml

114 lines
2.6 KiB
YAML

Platform agnostic net_system module (#24953) * Platform agnostic net_system module Also refactor the action network plugins for better code re-use Still more refactoring to do once the connection plugin work is complete * Replace importlib for imp importlib is not available on 2.6, so we need to stick to imp * Load action plugin via module metadata * Better error message if no implementation is found Now the plugin will show the module name and the network OS in the error message * Fix typo on documentation author line * Fix pep8 issues * Add missing options key on doc string and stringify version * Return None in case module has no metadata * Read module metadata only if it's a python module Check for module suffix, if it's .py then read metadata. Otherwise this fails on non-python modules, like Windows PS for example. * Read metadata variable only if it's a python module Fix referencing a variable before assignment * Add action_handler to validate_modules metadata schema * Pull metadata with plugin_docs get_docstring Using load_source from PluginLoader is troublesome, it is not guaranteed a module may be importable at the controller, e.g. if a module depends on module_utils functions it won't work, because module_utils is not in the sys path. Rather than putting that module dependencies introspection, just use plain parsing like plugin_docs get_docstring does as we only care about reading ANSIBLE_METADATA. * Add platform agnostic group of groups for integration tests This will be the target for platform agnostic integration tests. * Add integration tests for net_system * Switch to action plugin inheritance from metadata driven action handler As the metadata action driven action handler work is being worked on on its standalone proposal+PR, let's just go back to have one action handler per platform agnostic module. Those action plugins will inherit from net_base. * Add blank line to fix pep8 * Add aliases file to net_system integration test This will avoid CI failure * Fix integration tests for net_system * Give more precedence to task network_os over inventory network_os
8 years ago
---
- hosts: platform_agnostic
gather_facts: no
connection: local
vars:
limit_to: "*"
debug: false
# Run the tests within blocks allows the next module to be tested if the previous one fails.
# This is done to allow https://github.com/ansible/dci-partner-ansible/ to run the full set of tests.
tasks:
- set_fact:
test_failed: false
- block:
- include_role:
name: net_system
when: "limit_to in ['*', 'net_system']"
rescue:
- set_fact: test_failed=true
- block:
- include_role:
name: net_banner
when: "limit_to in ['*', 'net_banner']"
rescue:
- set_fact: test_failed=true
- block:
- include_role:
name: net_command
when: "limit_to in ['*', 'net_command']"
rescue:
- set_fact: test_failed=true
- block:
- include_role:
name: net_user
when: "limit_to in ['*', 'net_user']"
rescue:
- set_fact: test_failed=true
- block:
- include_role:
name: net_vlan
when: "limit_to in ['*', 'net_vlan']"
rescue:
- set_fact: test_failed=true
- block:
- include_role:
name: net_vrf
when: "limit_to in ['*', 'net_vrf']"
rescue:
- set_fact: test_failed=true
- block:
- include_role:
name: net_interface
when: "limit_to in ['*', 'net_interface']"
rescue:
- set_fact: test_failed=true
- block:
- include_role:
name: net_static_route
when: "limit_to in ['*', 'net_static_route']"
rescue:
- set_fact: test_failed=true
- block:
- include_role:
name: net_logging
when: "limit_to in ['*', 'net_logging']"
rescue:
- set_fact: test_failed=true
- block:
- include_role:
name: net_linkagg
when: "limit_to in ['*', 'net_linkagg']"
rescue:
- set_fact: test_failed=true
- block:
- include_role:
name: net_lldp
when: "limit_to in ['*', 'net_lldp']"
rescue:
- set_fact: test_failed=true
- block:
- include_role:
name: net_lldp_interface
when: "limit_to in ['*', 'net_lldp_interface']"
rescue:
- set_fact: test_failed=true
- block:
- include_role:
name: net_l3_interface
when: "limit_to in ['*', 'net_l3_interface']"
rescue:
- set_fact: test_failed=true
###########
- name: Has any previous test failed?
fail:
msg: "One or more tests failed, check log for details"
when: test_failed