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

135 lines
4.1 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:
block:
- ansible.builtin.command: ansible-config dump --type {{ item }} --format json
loop:
- base
- all
register: galaxy_server_dump
- debug: msg='{{ (galaxy_server_dump.results[0].stdout | from_json) }}'
- set_fact:
galaxy_server_dump_base: '{{ (galaxy_server_dump.results[0].stdout | from_json).get("GALAXY_SERVERS") }}'
#galaxy_server_dump_all: '{{ (galaxy_server_dump.results[1].stdout | from_json | rejectattr("name", "defined")) }}'
- name: Check galaxy server values are present and match expectations
vars:
gs:
my_org_hub:
url: "https://automation.my_org/"
username: "my_user"
password: "my_pass"
release_galaxy:
url: "https://galaxy.ansible.com/"
token: "my_token"
test_galaxy:
url: "https://galaxy-dev.ansible.com/"
token: "my_test_token"
my_galaxy_ng:
url: "http://my_galaxy_ng:8000/api/automation-hub/"
token: "my_keycloak_access_token"
auth_url: "http://my_keycloak:8080/auth/realms/myco/protocol/openid-connect/token"
client_id: "galaxy-ng"
gs_all:
url:
token:
auth_url:
username:
password:
api_version:
timeout:
origin: '{{ role_path ~ "/files/galaxy_server.ini" }}'
block:
- debug: var=galaxy_server_dump_base[2]
- name: Check galaxy server config reflects what we expect
assert:
that:
- (galaxy_server_dump_base | count) == 4
- galaxy_server_dump_base[2].keys() | list == ["GALAXY_SERVER.TEST_GALAXY"]
#- (galaxy_server_dump_base[2].test_galaxy | selectattr("name", "equalto", "url"))[0].value == "https://galaxy-dev.ansible.com/"
- galaxy_server_dump_base == galaxy_server_dump_all