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/targets/ansible-config/tasks/main.yml

132 lines
6.4 KiB
YAML

- name: test ansible-config init for valid output and no dupes
block:
- name: Create temporary file
tempfile:
path: '{{output_dir}}'
state: file
suffix: temp.ini
register: ini_tempfile
- name: run config full dump
shell: ansible-config init -t all > {{ini_tempfile.path}}
- name: run ini tester, for correctness and dupes
shell: "{{ansible_playbook_python}} '{{role_path}}/files/ini_dupes.py' '{{ini_tempfile.path}}'"
- name: test ansible-config validate
block:
# not testing w/o -t all as ansible-test uses it's own plugins and would give false positives
- name: validate config files
shell: ansible-config validate -t all -v
register: valid_cfg
loop:
- empty.cfg
- base_valid.cfg
- base_all_valid.cfg
- invalid_base.cfg
- invalid_plugins_config.ini
ignore_errors: true
environment:
ANSIBLE_CONFIG: "{{role_path ~ '/files/' ~ item}}"
- name: ensure expected cfg check results
assert:
that:
- valid_cfg['results'][0] is success
- valid_cfg['results'][1] is success
- valid_cfg['results'][2] is success
- valid_cfg['results'][3] is failed
- valid_cfg['results'][4] is failed
- name: validate env vars
shell: ansible-config validate -t all -v -f env
register: valid_env
environment:
ANSIBLE_COW_SELECTION: 1
- name: validate env vars
shell: ansible-config validate -t all -v -f env
register: invalid_env
ignore_errors: true
environment:
ANSIBLE_COW_DESTRUCTION: 1
- name: ensure env check is what we expected
assert:
that:
- valid_env is success
- invalid_env is failed
- name: dump galaxy_server config
environment:
ANSIBLE_CONFIG: '{{ role_path }}/files/galaxy_server.ini'
vars:
expected:
my_org_hub:
url:
value: "https://automation.my_org/"
origin: role_path ~ "/files/galaxy_server.ini"
username:
value: my_user
origin: role_path ~ "/files/galaxy_server.ini"
password:
value: my_pass
origin: role_path ~ "/files/galaxy_server.ini"
api_version:
value: None
origin: default
release_galaxy:
test_galaxy:
my_galaxy_ng:
gen_keys: '{{expected.keys()|map("regex_replace", "^.+$", "GALAXY_SERVER.\1") }}'
block:
- ansible.builtin.command: ansible-config dump --type {{ item }} --format json
loop:
- base
- all
register: galaxy_server_dump
# - set_fact:
# galaxy_server_dump_base: '{{ (galaxy_server_dump.results[0].stdout | from_json | selectattr("GALAXY_SERVER", "defined"))}}'
# galaxy_server_dump_all: '{{ (galaxy_server_dump.results[1].stdout | from_json | selectattr("GALAXY_SERVER", "defined")}}'
#
# - name: assert galaxy server config
# assert:
# that:
# - (galaxy_server_dump_gs | count) == 4
#
# - galaxy_server_dump_gs[0].keys() | list == ["my_org_hub"]
# - (galaxy_server_dump_gs[0].my_org_hub | selectattr("name", "equalto", "url"))[0].value == "https://automation.my_org/"
# - (galaxy_server_dump_gs[0].my_org_hub | selectattr("name", "equalto", "url"))[0].origin == role_path ~ "/files/galaxy_server.ini"
# - (galaxy_server_dump_gs[0].my_org_hub | selectattr("name", "equalto", "username"))[0].value == "my_user"
# - (galaxy_server_dump_gs[0].my_org_hub | selectattr("name", "equalto", "username"))[0].origin == role_path ~ "/files/galaxy_server.ini"
# - (galaxy_server_dump_gs[0].my_org_hub | selectattr("name", "equalto", "password"))[0].value == "my_pass"
# - (galaxy_server_dump_gs[0].my_org_hub | selectattr("name", "equalto", "password"))[0].origin == role_path ~ "/files/galaxy_server.ini"
# - (galaxy_server_dump_gs[0].my_org_hub | selectattr("name", "equalto", "api_version"))[0].value == None
# - (galaxy_server_dump_gs[0].my_org_hub | selectattr("name", "equalto", "api_version"))[0].origin == "default"
#
# - galaxy_server_dump_gs[1].keys() | list == ["release_galaxy"]
# - (galaxy_server_dump_gs[1].release_galaxy | selectattr("name", "equalto", "url"))[0].value == "https://galaxy.ansible.com/"
# - (galaxy_server_dump_gs[1].release_galaxy | selectattr("name", "equalto", "url"))[0].origin == role_path ~ "/files/galaxy_server.ini"
# - (galaxy_server_dump_gs[1].release_galaxy | selectattr("name", "equalto", "token"))[0].value == "my_token"
# - (galaxy_server_dump_gs[1].release_galaxy | selectattr("name", "equalto", "token"))[0].origin == role_path ~ "/files/galaxy_server.ini"
#
# - galaxy_server_dump_gs[2].keys() | list == ["test_galaxy"]
# - (galaxy_server_dump_gs[2].test_galaxy | selectattr("name", "equalto", "url"))[0].value == "https://galaxy-dev.ansible.com/"
# - (galaxy_server_dump_gs[2].test_galaxy | selectattr("name", "equalto", "url"))[0].origin == role_path ~ "/files/galaxy_server.ini"
# - (galaxy_server_dump_gs[2].test_galaxy | selectattr("name", "equalto", "token"))[0].value == "my_test_token"
# - (galaxy_server_dump_gs[2].test_galaxy | selectattr("name", "equalto", "token"))[0].origin == role_path ~ "/files/galaxy_server.ini"
#
# - galaxy_server_dump_gs[3].keys() | list == ["my_galaxy_ng"]
# - (galaxy_server_dump_gs[3].my_galaxy_ng | selectattr("name", "equalto", "url"))[0].value == "http://my_galaxy_ng:8000/api/automation-hub/"
# - (galaxy_server_dump_gs[3].my_galaxy_ng | selectattr("name", "equalto", "url"))[0].origin == role_path ~ "/files/galaxy_server.ini"
# - (galaxy_server_dump_gs[3].my_galaxy_ng | selectattr("name", "equalto", "token"))[0].value == "my_keycloak_access_token"
# - (galaxy_server_dump_gs[3].my_galaxy_ng | selectattr("name", "equalto", "token"))[0].origin == role_path ~ "/files/galaxy_server.ini"
# - (galaxy_server_dump_gs[3].my_galaxy_ng | selectattr("name", "equalto", "auth_url"))[0].value == "http://my_keycloak:8080/auth/realms/myco/protocol/openid-connect/token"
# - (galaxy_server_dump_gs[3].my_galaxy_ng | selectattr("name", "equalto", "auth_url"))[0].origin == role_path ~ "/files/galaxy_server.ini"
# - (galaxy_server_dump_gs[3].my_galaxy_ng | selectattr("name", "equalto", "client_id"))[0].value == "galaxy-ng"
# - (galaxy_server_dump_gs[3].my_galaxy_ng | selectattr("name", "equalto", "client_id"))[0].origin == role_path ~ "/files/galaxy_server.ini"
#
# - galaxy_server_dump_gs == galaxy_server_dump_all