diff --git a/tests/tasks/setup_candlepin.yml b/tests/tasks/setup_candlepin.yml index 1b0cc5f0..f48d7460 100644 --- a/tests/tasks/setup_candlepin.yml +++ b/tests/tasks/setup_candlepin.yml @@ -36,17 +36,8 @@ use: "{{ __rhc_is_ostree | ternary('ansible.posix.rhel_rpm_ostree', omit) }}" - - name: Stop and remove Candlepin container - command: - argv: - - podman - - stop - - candlepin - register: podman_stop_status - failed_when: - - podman_stop_status.rc != 0 - - '"no such container" not in podman_stop_status.stderr' - changed_when: false + - name: Clean up Candlepin container + include_tasks: teardown_candlepin.yml - name: Start Candlepin container vars: diff --git a/tests/tasks/teardown_candlepin.yml b/tests/tasks/teardown_candlepin.yml new file mode 100644 index 00000000..2ab2fa86 --- /dev/null +++ b/tests/tasks/teardown_candlepin.yml @@ -0,0 +1,24 @@ +# SPDX-License-Identifier: MIT +--- +- name: Teardown Candlepin container + when: lsr_rhc_test_data_file | length == 0 + block: + - name: Check if the candlepin container exists + command: + argv: + - podman + - ps + - -a + - --filter + - name=candlepin + register: __rhc_candlepin_cont_exists + changed_when: false + + - name: Ensure that Candlepin container doesn't exist + command: + argv: + - podman + - stop + - candlepin + changed_when: true + when: '"candlepin" in __rhc_candlepin_cont_exists.stdout' diff --git a/tests/tests_environments.yml b/tests/tests_environments.yml index 0b9c13a7..25d981cb 100644 --- a/tests/tests_environments.yml +++ b/tests/tests_environments.yml @@ -7,101 +7,106 @@ tags: - tests::slow tasks: - - name: Setup Candlepin - import_tasks: tasks/setup_candlepin.yml - vars: - environments: true - - - name: Skip if no test environments are set - meta: end_play - when: - - >- - lsr_rhc_test_data.envs_register is none - or lsr_rhc_test_data.envs_register | d([]) | length == 0 - - - name: Ensure ansible_facts used by the test - setup: - gather_subset: - - "!all" - - "!min" - - distribution - - distribution_major_version - - distribution_version - - - name: Try to register (wrong environment) - block: - - name: Register (wrong environment) - include_role: - name: linux-system-roles.rhc - vars: - rhc_auth: - login: - username: "{{ lsr_rhc_test_data.reg_username }}" - password: "{{ lsr_rhc_test_data.reg_password }}" - rhc_insights: - state: absent - rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" - rhc_server: - hostname: "{{ lsr_rhc_test_data.candlepin_host }}" - port: "{{ lsr_rhc_test_data.candlepin_port }}" - prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" - insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" - rhc_baseurl: "{{ lsr_rhc_test_data.baseurl | d(omit) }}" - rhc_environments: - - "{{ lsr_rhc_test_data.env_nonworking }}" - - - name: Unreachable task - fail: - msg: The above task must fail - rescue: - - name: Assert registration failed - assert: - that: ansible_failed_result.msg != 'The above task must fail' - - - name: Test environments on registration + - name: Basic repository enablement/disablement test block: - - name: Register (with existing environments) - include_role: - name: linux-system-roles.rhc + - name: Setup Candlepin + import_tasks: tasks/setup_candlepin.yml vars: - rhc_auth: - login: - username: "{{ lsr_rhc_test_data.reg_username }}" - password: "{{ lsr_rhc_test_data.reg_password }}" - rhc_insights: - state: absent - rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" - rhc_server: - hostname: "{{ lsr_rhc_test_data.candlepin_host }}" - port: "{{ lsr_rhc_test_data.candlepin_port }}" - prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" - insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" - rhc_baseurl: "{{ lsr_rhc_test_data.baseurl | d(omit) }}" - rhc_environments: "{{ lsr_rhc_test_data.envs_register }}" + environments: true - # 'subscription-manager environments' has a '--list' option only - # in RHEL 8.6+ and greater (incl. RHEL 9+) - - name: Check the enabled environments + - name: Skip if no test environments are set + meta: end_play when: - >- - ansible_distribution not in ["CentOS", "RedHat"] - or (ansible_distribution == "CentOS" - and ansible_distribution_major_version | int >= 8) - or (ansible_distribution_version is version("8.6", ">=")) + lsr_rhc_test_data.envs_register is none + or lsr_rhc_test_data.envs_register | d([]) | length == 0 + + - name: Ensure ansible_facts used by the test + setup: + gather_subset: + - "!all" + - "!min" + - distribution + - distribution_major_version + - distribution_version + + - name: Try to register (wrong environment) block: - - name: Get enabled environments - include_tasks: tasks/list_environments.yml + - name: Register (wrong environment) + include_role: + name: linux-system-roles.rhc + vars: + rhc_auth: + login: + username: "{{ lsr_rhc_test_data.reg_username }}" + password: "{{ lsr_rhc_test_data.reg_password }}" + rhc_insights: + state: absent + rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" + rhc_server: + hostname: "{{ lsr_rhc_test_data.candlepin_host }}" + port: "{{ lsr_rhc_test_data.candlepin_port }}" + prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" + insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" + rhc_baseurl: "{{ lsr_rhc_test_data.baseurl | d(omit) }}" + rhc_environments: + - "{{ lsr_rhc_test_data.env_nonworking }}" - - name: Check environments to enable are enabled + - name: Unreachable task + fail: + msg: The above task must fail + rescue: + - name: Assert registration failed assert: - that: - - >- - (lsr_rhc_test_data.envs_register | sort) == - (test_environments.stdout_lines | sort) + that: ansible_failed_result.msg != 'The above task must fail' + + - name: Test environments on registration + block: + - name: Register (with existing environments) + include_role: + name: linux-system-roles.rhc + vars: + rhc_auth: + login: + username: "{{ lsr_rhc_test_data.reg_username }}" + password: "{{ lsr_rhc_test_data.reg_password }}" + rhc_insights: + state: absent + rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" + rhc_server: + hostname: "{{ lsr_rhc_test_data.candlepin_host }}" + port: "{{ lsr_rhc_test_data.candlepin_port }}" + prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" + insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" + rhc_baseurl: "{{ lsr_rhc_test_data.baseurl | d(omit) }}" + rhc_environments: "{{ lsr_rhc_test_data.envs_register }}" + # 'subscription-manager environments' has a '--list' option only + # in RHEL 8.6+ and greater (incl. RHEL 9+) + - name: Check the enabled environments + when: + - >- + ansible_distribution not in ["CentOS", "RedHat"] + or (ansible_distribution == "CentOS" + and ansible_distribution_major_version | int >= 8) + or (ansible_distribution_version is version("8.6", ">=")) + block: + - name: Get enabled environments + include_tasks: tasks/list_environments.yml + + - name: Check environments to enable are enabled + assert: + that: + - >- + (lsr_rhc_test_data.envs_register | sort) == + (test_environments.stdout_lines | sort) + + always: + - name: Unregister + include_role: + name: linux-system-roles.rhc + vars: + rhc_state: absent always: - - name: Unregister - include_role: - name: linux-system-roles.rhc - vars: - rhc_state: absent + - name: Clean up Candlepin container + include_tasks: tasks/teardown_candlepin.yml diff --git a/tests/tests_proxy.yml b/tests/tests_proxy.yml index e955c01b..1d6def45 100644 --- a/tests/tests_proxy.yml +++ b/tests/tests_proxy.yml @@ -12,59 +12,119 @@ - "{{ lsr_rhc_test_data.proxy_auth_port }}" - "{{ lsr_rhc_test_data.proxy_nonworking_port }}" tasks: - - name: Setup Candlepin - import_tasks: tasks/setup_candlepin.yml - - - name: Setup Squid - import_tasks: tasks/setup_squid.yml + - name: Basic proxy test + block: + - name: Setup Candlepin + import_tasks: tasks/setup_candlepin.yml - # The test proxy uses non-standard ports which are not - # in the default SELinux policy, so add them, and remove - # them at the end of the test - - name: Add SELinux policy for proxy ports - include_role: - name: fedora.linux_system_roles.selinux - vars: - selinux_ports: - - ports: "{{ __proxy_port_list }}" - proto: tcp - setype: squid_port_t - state: present - local: true + - name: Setup Squid + import_tasks: tasks/setup_squid.yml - - name: Try to register (wrong host, wrong port) - block: - - name: Register (wrong host, wrong port) + # The test proxy uses non-standard ports which are not + # in the default SELinux policy, so add them, and remove + # them at the end of the test + - name: Add SELinux policy for proxy ports include_role: - name: linux-system-roles.rhc + name: fedora.linux_system_roles.selinux vars: - rhc_auth: - login: - username: "{{ lsr_rhc_test_data.reg_username }}" - password: "{{ lsr_rhc_test_data.reg_password }}" - rhc_insights: - state: absent - rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" - rhc_server: - hostname: "{{ lsr_rhc_test_data.candlepin_host }}" - port: "{{ lsr_rhc_test_data.candlepin_port }}" - prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" - insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" - rhc_proxy: - hostname: "{{ lsr_rhc_test_data.proxy_nonworking_hostname }}" - port: "{{ lsr_rhc_test_data.proxy_nonworking_port }}" + selinux_ports: + - ports: "{{ __proxy_port_list }}" + proto: tcp + setype: squid_port_t + state: present + local: true - - name: Unreachable task - fail: - msg: The above task must fail - rescue: - - name: Assert registration failed - assert: - that: ansible_failed_result.msg != 'The above task must fail' + - name: Try to register (wrong host, wrong port) + block: + - name: Register (wrong host, wrong port) + include_role: + name: linux-system-roles.rhc + vars: + rhc_auth: + login: + username: "{{ lsr_rhc_test_data.reg_username }}" + password: "{{ lsr_rhc_test_data.reg_password }}" + rhc_insights: + state: absent + rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" + rhc_server: + hostname: "{{ lsr_rhc_test_data.candlepin_host }}" + port: "{{ lsr_rhc_test_data.candlepin_port }}" + prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" + insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" + rhc_proxy: + hostname: "{{ lsr_rhc_test_data.proxy_nonworking_hostname }}" + port: "{{ lsr_rhc_test_data.proxy_nonworking_port }}" - - name: Try to register (wrong host) - block: - - name: Register (wrong host) + - name: Unreachable task + fail: + msg: The above task must fail + rescue: + - name: Assert registration failed + assert: + that: ansible_failed_result.msg != 'The above task must fail' + + - name: Try to register (wrong host) + block: + - name: Register (wrong host) + include_role: + name: linux-system-roles.rhc + vars: + rhc_auth: + login: + username: "{{ lsr_rhc_test_data.reg_username }}" + password: "{{ lsr_rhc_test_data.reg_password }}" + rhc_insights: + state: absent + rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" + rhc_server: + hostname: "{{ lsr_rhc_test_data.candlepin_host }}" + port: "{{ lsr_rhc_test_data.candlepin_port }}" + prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" + insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" + rhc_proxy: + hostname: "{{ lsr_rhc_test_data.proxy_nonworking_hostname }}" + port: "{{ lsr_rhc_test_data.proxy_noauth_port }}" + + - name: Unreachable task + fail: + msg: The above task must fail + rescue: + - name: Assert registration failed + assert: + that: ansible_failed_result.msg != 'The above task must fail' + + - name: Try to register (wrong port) + block: + - name: Register (wrong port) + include_role: + name: linux-system-roles.rhc + vars: + rhc_auth: + login: + username: "{{ lsr_rhc_test_data.reg_username }}" + password: "{{ lsr_rhc_test_data.reg_password }}" + rhc_insights: + state: absent + rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" + rhc_server: + hostname: "{{ lsr_rhc_test_data.candlepin_host }}" + port: "{{ lsr_rhc_test_data.candlepin_port }}" + prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" + insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" + rhc_proxy: + hostname: "{{ lsr_rhc_test_data.proxy_noauth_hostname }}" + port: "{{ lsr_rhc_test_data.proxy_nonworking_port }}" + + - name: Unreachable task + fail: + msg: The above task must fail + rescue: + - name: Assert registration failed + assert: + that: ansible_failed_result.msg != 'The above task must fail' + + - name: Register (no authentication) include_role: name: linux-system-roles.rhc vars: @@ -80,91 +140,161 @@ port: "{{ lsr_rhc_test_data.candlepin_port }}" prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" + rhc_baseurl: "{{ lsr_rhc_test_data.baseurl | d(omit) }}" rhc_proxy: - hostname: "{{ lsr_rhc_test_data.proxy_nonworking_hostname }}" + hostname: "{{ lsr_rhc_test_data.proxy_noauth_hostname }}" + scheme: "{{ lsr_rhc_test_data.proxy_noauth_scheme | d(omit) }}" port: "{{ lsr_rhc_test_data.proxy_noauth_port }}" - - name: Unreachable task - fail: - msg: The above task must fail - rescue: - - name: Assert registration failed - assert: - that: ansible_failed_result.msg != 'The above task must fail' + - name: Check scheme + command: >- + grep '^proxy_scheme *= *{{ lsr_rhc_test_data.proxy_noauth_scheme }}' + /etc/rhsm/rhsm.conf + changed_when: false + when: "'proxy_noauth_scheme' in lsr_rhc_test_data" - - name: Try to register (wrong port) - block: - - name: Register (wrong port) + - name: Unregister include_role: name: linux-system-roles.rhc vars: - rhc_auth: - login: - username: "{{ lsr_rhc_test_data.reg_username }}" - password: "{{ lsr_rhc_test_data.reg_password }}" - rhc_insights: - state: absent - rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" - rhc_server: - hostname: "{{ lsr_rhc_test_data.candlepin_host }}" - port: "{{ lsr_rhc_test_data.candlepin_port }}" - prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" - insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" - rhc_proxy: - hostname: "{{ lsr_rhc_test_data.proxy_noauth_hostname }}" - port: "{{ lsr_rhc_test_data.proxy_nonworking_port }}" + rhc_state: absent + + - name: Setup authenticated Squid + import_tasks: tasks/setup_squid.yml + vars: + authentication: true - - name: Unreachable task - fail: - msg: The above task must fail - rescue: - - name: Assert registration failed - assert: - that: ansible_failed_result.msg != 'The above task must fail' + - name: Try to register (missing credentials) + block: + - name: Register (missing credentials) + include_role: + name: linux-system-roles.rhc + vars: + rhc_auth: + login: + username: "{{ lsr_rhc_test_data.reg_username }}" + password: "{{ lsr_rhc_test_data.reg_password }}" + rhc_insights: + state: absent + rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" + rhc_server: + hostname: "{{ lsr_rhc_test_data.candlepin_host }}" + port: "{{ lsr_rhc_test_data.candlepin_port }}" + prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" + insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" + rhc_proxy: + hostname: "{{ lsr_rhc_test_data.proxy_auth_hostname }}" + scheme: "{{ lsr_rhc_test_data.proxy_auth_scheme | d(omit) }}" + port: "{{ lsr_rhc_test_data.proxy_auth_port }}" - - name: Register (no authentication) - include_role: - name: linux-system-roles.rhc - vars: - rhc_auth: - login: - username: "{{ lsr_rhc_test_data.reg_username }}" - password: "{{ lsr_rhc_test_data.reg_password }}" - rhc_insights: - state: absent - rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" - rhc_server: - hostname: "{{ lsr_rhc_test_data.candlepin_host }}" - port: "{{ lsr_rhc_test_data.candlepin_port }}" - prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" - insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" - rhc_baseurl: "{{ lsr_rhc_test_data.baseurl | d(omit) }}" - rhc_proxy: - hostname: "{{ lsr_rhc_test_data.proxy_noauth_hostname }}" - scheme: "{{ lsr_rhc_test_data.proxy_noauth_scheme | d(omit) }}" - port: "{{ lsr_rhc_test_data.proxy_noauth_port }}" + - name: Unreachable task + fail: + msg: The above task must fail + rescue: + - name: Assert registration failed + assert: + that: ansible_failed_result.msg != 'The above task must fail' - - name: Check scheme - command: >- - grep '^proxy_scheme *= *{{ lsr_rhc_test_data.proxy_noauth_scheme }}' - /etc/rhsm/rhsm.conf - changed_when: false - when: "'proxy_noauth_scheme' in lsr_rhc_test_data" + - name: Try to register (wrong username, wrong password) + block: + - name: Register (wrong username, wrong password) + include_role: + name: linux-system-roles.rhc + vars: + rhc_auth: + login: + username: "{{ lsr_rhc_test_data.reg_username }}" + password: "{{ lsr_rhc_test_data.reg_password }}" + rhc_insights: + state: absent + rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" + rhc_server: + hostname: "{{ lsr_rhc_test_data.candlepin_host }}" + port: "{{ lsr_rhc_test_data.candlepin_port }}" + prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" + insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" + rhc_proxy: + hostname: "{{ lsr_rhc_test_data.proxy_auth_hostname }}" + scheme: "{{ lsr_rhc_test_data.proxy_auth_scheme | d(omit) }}" + port: "{{ lsr_rhc_test_data.proxy_auth_port }}" + username: "{{ lsr_rhc_test_data.proxy_nonworking_username }}" + password: "{{ lsr_rhc_test_data.proxy_nonworking_password }}" - - name: Unregister - include_role: - name: linux-system-roles.rhc - vars: - rhc_state: absent + - name: Unreachable task + fail: + msg: The above task must fail + rescue: + - name: Assert registration failed + assert: + that: ansible_failed_result.msg != 'The above task must fail' - - name: Setup authenticated Squid - import_tasks: tasks/setup_squid.yml - vars: - authentication: true + - name: Try to register (wrong username) + block: + - name: Register (wrong username) + include_role: + name: linux-system-roles.rhc + vars: + rhc_auth: + login: + username: "{{ lsr_rhc_test_data.reg_username }}" + password: "{{ lsr_rhc_test_data.reg_password }}" + rhc_insights: + state: absent + rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" + rhc_server: + hostname: "{{ lsr_rhc_test_data.candlepin_host }}" + port: "{{ lsr_rhc_test_data.candlepin_port }}" + prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" + insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" + rhc_proxy: + hostname: "{{ lsr_rhc_test_data.proxy_auth_hostname }}" + scheme: "{{ lsr_rhc_test_data.proxy_auth_scheme | d(omit) }}" + port: "{{ lsr_rhc_test_data.proxy_auth_port }}" + username: "{{ lsr_rhc_test_data.proxy_nonworking_username }}" + password: "{{ lsr_rhc_test_data.proxy_auth_password }}" - - name: Try to register (missing credentials) - block: - - name: Register (missing credentials) + - name: Unreachable task + fail: + msg: The above task must fail + rescue: + - name: Assert registration failed + assert: + that: ansible_failed_result.msg != 'The above task must fail' + + - name: Try to register (wrong password) + block: + - name: Register (wrong password) + include_role: + name: linux-system-roles.rhc + vars: + rhc_auth: + login: + username: "{{ lsr_rhc_test_data.reg_username }}" + password: "{{ lsr_rhc_test_data.reg_password }}" + rhc_insights: + state: absent + rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" + rhc_server: + hostname: "{{ lsr_rhc_test_data.candlepin_host }}" + port: "{{ lsr_rhc_test_data.candlepin_port }}" + prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" + insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" + rhc_proxy: + hostname: "{{ lsr_rhc_test_data.proxy_auth_hostname }}" + scheme: "{{ lsr_rhc_test_data.proxy_auth_scheme | d(omit) }}" + port: "{{ lsr_rhc_test_data.proxy_auth_port }}" + username: "{{ lsr_rhc_test_data.proxy_auth_username }}" + password: "{{ lsr_rhc_test_data.proxy_nonworking_password }}" + + - name: Unreachable task + fail: + msg: The above task must fail + rescue: + - name: Assert registration failed + assert: + that: ansible_failed_result.msg != 'The above task must fail' + + - name: Register (authentication) include_role: name: linux-system-roles.rhc vars: @@ -180,55 +310,28 @@ port: "{{ lsr_rhc_test_data.candlepin_port }}" prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" + rhc_baseurl: "{{ lsr_rhc_test_data.baseurl | d(omit) }}" rhc_proxy: hostname: "{{ lsr_rhc_test_data.proxy_auth_hostname }}" scheme: "{{ lsr_rhc_test_data.proxy_auth_scheme | d(omit) }}" port: "{{ lsr_rhc_test_data.proxy_auth_port }}" + username: "{{ lsr_rhc_test_data.proxy_auth_username }}" + password: "{{ lsr_rhc_test_data.proxy_auth_password }}" - - name: Unreachable task - fail: - msg: The above task must fail - rescue: - - name: Assert registration failed - assert: - that: ansible_failed_result.msg != 'The above task must fail' + - name: Check scheme + command: >- + grep '^proxy_scheme *= *{{ lsr_rhc_test_data.proxy_auth_scheme }}' + /etc/rhsm/rhsm.conf + changed_when: false + when: "'proxy_auth_scheme' in lsr_rhc_test_data" - - name: Try to register (wrong username, wrong password) - block: - - name: Register (wrong username, wrong password) + - name: Unregister include_role: name: linux-system-roles.rhc vars: - rhc_auth: - login: - username: "{{ lsr_rhc_test_data.reg_username }}" - password: "{{ lsr_rhc_test_data.reg_password }}" - rhc_insights: - state: absent - rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" - rhc_server: - hostname: "{{ lsr_rhc_test_data.candlepin_host }}" - port: "{{ lsr_rhc_test_data.candlepin_port }}" - prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" - insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" - rhc_proxy: - hostname: "{{ lsr_rhc_test_data.proxy_auth_hostname }}" - scheme: "{{ lsr_rhc_test_data.proxy_auth_scheme | d(omit) }}" - port: "{{ lsr_rhc_test_data.proxy_auth_port }}" - username: "{{ lsr_rhc_test_data.proxy_nonworking_username }}" - password: "{{ lsr_rhc_test_data.proxy_nonworking_password }}" - - - name: Unreachable task - fail: - msg: The above task must fail - rescue: - - name: Assert registration failed - assert: - that: ansible_failed_result.msg != 'The above task must fail' + rhc_state: absent - - name: Try to register (wrong username) - block: - - name: Register (wrong username) + - name: Register (without proxy) include_role: name: linux-system-roles.rhc vars: @@ -244,123 +347,25 @@ port: "{{ lsr_rhc_test_data.candlepin_port }}" prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" - rhc_proxy: - hostname: "{{ lsr_rhc_test_data.proxy_auth_hostname }}" - scheme: "{{ lsr_rhc_test_data.proxy_auth_scheme | d(omit) }}" - port: "{{ lsr_rhc_test_data.proxy_auth_port }}" - username: "{{ lsr_rhc_test_data.proxy_nonworking_username }}" - password: "{{ lsr_rhc_test_data.proxy_auth_password }}" - - - name: Unreachable task - fail: - msg: The above task must fail - rescue: - - name: Assert registration failed - assert: - that: ansible_failed_result.msg != 'The above task must fail' - - - name: Try to register (wrong password) - block: - - name: Register (wrong password) + rhc_baseurl: "{{ lsr_rhc_test_data.baseurl | d(omit) }}" + rhc_proxy: {"state":"absent"} + always: + - name: Unregister include_role: name: linux-system-roles.rhc vars: - rhc_auth: - login: - username: "{{ lsr_rhc_test_data.reg_username }}" - password: "{{ lsr_rhc_test_data.reg_password }}" - rhc_insights: - state: absent - rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" - rhc_server: - hostname: "{{ lsr_rhc_test_data.candlepin_host }}" - port: "{{ lsr_rhc_test_data.candlepin_port }}" - prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" - insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" - rhc_proxy: - hostname: "{{ lsr_rhc_test_data.proxy_auth_hostname }}" - scheme: "{{ lsr_rhc_test_data.proxy_auth_scheme | d(omit) }}" - port: "{{ lsr_rhc_test_data.proxy_auth_port }}" - username: "{{ lsr_rhc_test_data.proxy_auth_username }}" - password: "{{ lsr_rhc_test_data.proxy_nonworking_password }}" - - - name: Unreachable task - fail: - msg: The above task must fail - rescue: - - name: Assert registration failed - assert: - that: ansible_failed_result.msg != 'The above task must fail' + rhc_state: absent - - name: Register (authentication) - include_role: - name: linux-system-roles.rhc - vars: - rhc_auth: - login: - username: "{{ lsr_rhc_test_data.reg_username }}" - password: "{{ lsr_rhc_test_data.reg_password }}" - rhc_insights: - state: absent - rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" - rhc_server: - hostname: "{{ lsr_rhc_test_data.candlepin_host }}" - port: "{{ lsr_rhc_test_data.candlepin_port }}" - prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" - insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" - rhc_baseurl: "{{ lsr_rhc_test_data.baseurl | d(omit) }}" - rhc_proxy: - hostname: "{{ lsr_rhc_test_data.proxy_auth_hostname }}" - scheme: "{{ lsr_rhc_test_data.proxy_auth_scheme | d(omit) }}" - port: "{{ lsr_rhc_test_data.proxy_auth_port }}" - username: "{{ lsr_rhc_test_data.proxy_auth_username }}" - password: "{{ lsr_rhc_test_data.proxy_auth_password }}" + - name: Clean up Candlepin container + include_tasks: tasks/teardown_candlepin.yml - - name: Check scheme - command: >- - grep '^proxy_scheme *= *{{ lsr_rhc_test_data.proxy_auth_scheme }}' - /etc/rhsm/rhsm.conf - changed_when: false - when: "'proxy_auth_scheme' in lsr_rhc_test_data" - - - name: Unregister - include_role: - name: linux-system-roles.rhc - vars: - rhc_state: absent - - - name: Register (without proxy) - include_role: - name: linux-system-roles.rhc - vars: - rhc_auth: - login: - username: "{{ lsr_rhc_test_data.reg_username }}" - password: "{{ lsr_rhc_test_data.reg_password }}" - rhc_insights: - state: absent - rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" - rhc_server: - hostname: "{{ lsr_rhc_test_data.candlepin_host }}" - port: "{{ lsr_rhc_test_data.candlepin_port }}" - prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" - insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" - rhc_baseurl: "{{ lsr_rhc_test_data.baseurl | d(omit) }}" - rhc_proxy: {"state":"absent"} - - - name: Unregister - include_role: - name: linux-system-roles.rhc - vars: - rhc_state: absent - - - name: Remove SELinux policy for proxy ports - include_role: - name: fedora.linux_system_roles.selinux - vars: - selinux_ports: - - ports: "{{ __proxy_port_list }}" - proto: tcp - setype: squid_port_t - state: absent - local: true + - name: Remove SELinux policy for proxy ports + include_role: + name: fedora.linux_system_roles.selinux + vars: + selinux_ports: + - ports: "{{ __proxy_port_list }}" + proto: tcp + setype: squid_port_t + state: absent + local: true diff --git a/tests/tests_register_unregister.yml b/tests/tests_register_unregister.yml index 19a934b0..b49df273 100644 --- a/tests/tests_register_unregister.yml +++ b/tests/tests_register_unregister.yml @@ -7,19 +7,88 @@ tags: - tests::slow tasks: - - name: Setup Candlepin - import_tasks: tasks/setup_candlepin.yml - - - name: Try to register using invalid credentials + - name: Basic register/unregister block: - - name: Register (wrong username, wrong password) + - name: Setup Candlepin + import_tasks: tasks/setup_candlepin.yml + + - name: Try to register using invalid credentials + block: + - name: Register (wrong username, wrong password) + include_role: + name: linux-system-roles.rhc + vars: + rhc_auth: + login: + username: "{{ lsr_rhc_test_data.reg_invalid_username }}" + password: "{{ lsr_rhc_test_data.reg_invalid_password }}" + rhc_insights: + state: absent + rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" + rhc_server: + hostname: "{{ lsr_rhc_test_data.candlepin_host }}" + port: "{{ lsr_rhc_test_data.candlepin_port }}" + prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" + insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" + - name: Unreachable task + fail: + msg: The above task must fail + rescue: + - name: Assert registration failed + assert: + that: ansible_failed_result.msg != 'The above task must fail' + + - name: Register + include_role: + name: linux-system-roles.rhc + vars: + rhc_auth: + login: + username: "{{ lsr_rhc_test_data.reg_username }}" + password: "{{ lsr_rhc_test_data.reg_password }}" + rhc_insights: + state: absent + rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" + rhc_server: + hostname: "{{ lsr_rhc_test_data.candlepin_host }}" + port: "{{ lsr_rhc_test_data.candlepin_port }}" + prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" + insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" + rhc_baseurl: "{{ lsr_rhc_test_data.baseurl | d(omit) }}" + + - name: Register (noop) + include_role: + name: linux-system-roles.rhc + vars: + rhc_auth: + login: + username: "{{ lsr_rhc_test_data.reg_username }}" + password: "{{ lsr_rhc_test_data.reg_password }}" + rhc_insights: + state: absent + rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" + rhc_server: + hostname: "{{ lsr_rhc_test_data.candlepin_host }}" + port: "{{ lsr_rhc_test_data.candlepin_port }}" + prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" + insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" + rhc_baseurl: "{{ lsr_rhc_test_data.baseurl | d(omit) }}" + + - name: Get rhsm UUID + include_tasks: tasks/get_rhsm_uuid.yml + + - name: Rename the rhsm UUID to test_rhsm_uuid_before + set_fact: + test_rhsm_uuid_before: "{{ test_rhsm_uuid }}" + + - name: Register (force) include_role: name: linux-system-roles.rhc vars: rhc_auth: login: - username: "{{ lsr_rhc_test_data.reg_invalid_username }}" - password: "{{ lsr_rhc_test_data.reg_invalid_password }}" + username: "{{ lsr_rhc_test_data.reg_username }}" + password: "{{ lsr_rhc_test_data.reg_password }}" rhc_insights: state: absent rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" @@ -28,96 +97,53 @@ port: "{{ lsr_rhc_test_data.candlepin_port }}" prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" - - name: Unreachable task - fail: - msg: The above task must fail - rescue: - - name: Assert registration failed + rhc_state: reconnect + rhc_baseurl: "{{ lsr_rhc_test_data.baseurl | d(omit) }}" + + - name: Get rhsm UUID + include_tasks: tasks/get_rhsm_uuid.yml + + - name: Rename the rhsm UUID to test_rhsm_uuid_after + set_fact: + test_rhsm_uuid_after: "{{ test_rhsm_uuid }}" + + - name: Check the rhsm UUID changed assert: - that: ansible_failed_result.msg != 'The above task must fail' - - - name: Register - include_role: - name: linux-system-roles.rhc - vars: - rhc_auth: - login: - username: "{{ lsr_rhc_test_data.reg_username }}" - password: "{{ lsr_rhc_test_data.reg_password }}" - rhc_insights: - state: absent - rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" - rhc_server: - hostname: "{{ lsr_rhc_test_data.candlepin_host }}" - port: "{{ lsr_rhc_test_data.candlepin_port }}" - prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" - insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" - rhc_baseurl: "{{ lsr_rhc_test_data.baseurl | d(omit) }}" - - - name: Register (noop) - include_role: - name: linux-system-roles.rhc - vars: - rhc_auth: - login: - username: "{{ lsr_rhc_test_data.reg_username }}" - password: "{{ lsr_rhc_test_data.reg_password }}" - rhc_insights: - state: absent - rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" - rhc_server: - hostname: "{{ lsr_rhc_test_data.candlepin_host }}" - port: "{{ lsr_rhc_test_data.candlepin_port }}" - prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" - insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" - rhc_baseurl: "{{ lsr_rhc_test_data.baseurl | d(omit) }}" - - - name: Get rhsm UUID - include_tasks: tasks/get_rhsm_uuid.yml - - - name: Rename the rhsm UUID to test_rhsm_uuid_before - set_fact: - test_rhsm_uuid_before: "{{ test_rhsm_uuid }}" - - - name: Register (force) - include_role: - name: linux-system-roles.rhc - vars: - rhc_auth: - login: - username: "{{ lsr_rhc_test_data.reg_username }}" - password: "{{ lsr_rhc_test_data.reg_password }}" - rhc_insights: - state: absent - rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" - rhc_server: - hostname: "{{ lsr_rhc_test_data.candlepin_host }}" - port: "{{ lsr_rhc_test_data.candlepin_port }}" - prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" - insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" - rhc_state: reconnect - rhc_baseurl: "{{ lsr_rhc_test_data.baseurl | d(omit) }}" - - - name: Get rhsm UUID - include_tasks: tasks/get_rhsm_uuid.yml - - - name: Rename the rhsm UUID to test_rhsm_uuid_after - set_fact: - test_rhsm_uuid_after: "{{ test_rhsm_uuid }}" - - - name: Check the rhsm UUID changed - assert: - that: test_rhsm_uuid_before.stdout != test_rhsm_uuid_after.stdout - - - name: Unregister - include_role: - name: linux-system-roles.rhc - vars: - rhc_state: absent - - - name: Try to register using activation key with missing org - block: - - name: Register (activation key, missing org) + that: test_rhsm_uuid_before.stdout != test_rhsm_uuid_after.stdout + + - name: Unregister + include_role: + name: linux-system-roles.rhc + vars: + rhc_state: absent + + - name: Try to register using activation key with missing org + block: + - name: Register (activation key, missing org) + include_role: + name: linux-system-roles.rhc + vars: + rhc_auth: + activation_keys: + keys: "{{ lsr_rhc_test_data.reg_activation_keys }}" + rhc_insights: + state: absent + rhc_server: + hostname: "{{ lsr_rhc_test_data.candlepin_host }}" + port: "{{ lsr_rhc_test_data.candlepin_port }}" + prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" + insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" + rhc_baseurl: "{{ lsr_rhc_test_data.baseurl | d(omit) }}" + + - name: Unreachable task + fail: + msg: The above task must fail + rescue: + - name: Assert registration failed + assert: + that: ansible_failed_result.msg != 'The above task must fail' + + - name: Register (using activation keys) include_role: name: linux-system-roles.rhc vars: @@ -126,63 +152,42 @@ keys: "{{ lsr_rhc_test_data.reg_activation_keys }}" rhc_insights: state: absent + rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" rhc_server: hostname: "{{ lsr_rhc_test_data.candlepin_host }}" port: "{{ lsr_rhc_test_data.candlepin_port }}" prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" - rhc_baseurl: "{{ lsr_rhc_test_data.baseurl | d(omit) }}" + rhc_baseurl: "{{ lsr_rhc_test_data.baseurl | d(omit) }}" - - name: Unreachable task - fail: - msg: The above task must fail - rescue: - - name: Assert registration failed - assert: - that: ansible_failed_result.msg != 'The above task must fail' - - - name: Register (using activation keys) - include_role: - name: linux-system-roles.rhc - vars: - rhc_auth: - activation_keys: - keys: "{{ lsr_rhc_test_data.reg_activation_keys }}" - rhc_insights: - state: absent - rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" - rhc_server: - hostname: "{{ lsr_rhc_test_data.candlepin_host }}" - port: "{{ lsr_rhc_test_data.candlepin_port }}" - prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" - insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" - rhc_baseurl: "{{ lsr_rhc_test_data.baseurl | d(omit) }}" - - - name: Register (using activation keys, noop) - include_role: - name: linux-system-roles.rhc - vars: - rhc_auth: - activation_keys: - keys: "{{ lsr_rhc_test_data.reg_activation_keys }}" - rhc_insights: - state: absent - rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" - rhc_server: - hostname: "{{ lsr_rhc_test_data.candlepin_host }}" - port: "{{ lsr_rhc_test_data.candlepin_port }}" - prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" - insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" - rhc_baseurl: "{{ lsr_rhc_test_data.baseurl | d(omit) }}" - - - name: Unregister - include_role: - name: linux-system-roles.rhc - vars: - rhc_state: absent - - - name: Unregister (noop) - include_role: - name: linux-system-roles.rhc - vars: - rhc_state: absent + - name: Register (using activation keys, noop) + include_role: + name: linux-system-roles.rhc + vars: + rhc_auth: + activation_keys: + keys: "{{ lsr_rhc_test_data.reg_activation_keys }}" + rhc_insights: + state: absent + rhc_organization: "{{ lsr_rhc_test_data.reg_organization }}" + rhc_server: + hostname: "{{ lsr_rhc_test_data.candlepin_host }}" + port: "{{ lsr_rhc_test_data.candlepin_port }}" + prefix: "{{ lsr_rhc_test_data.candlepin_prefix }}" + insecure: "{{ lsr_rhc_test_data.candlepin_insecure }}" + rhc_baseurl: "{{ lsr_rhc_test_data.baseurl | d(omit) }}" + always: + - name: Unregister + include_role: + name: linux-system-roles.rhc + vars: + rhc_state: absent + + - name: Unregister (noop) + include_role: + name: linux-system-roles.rhc + vars: + rhc_state: absent + + - name: Clean up Candlepin container + include_tasks: tasks/teardown_candlepin.yml diff --git a/tests/tests_repositories.yml b/tests/tests_repositories.yml index f7dbb633..26a0e4f2 100644 --- a/tests/tests_repositories.yml +++ b/tests/tests_repositories.yml @@ -7,11 +7,11 @@ tags: - tests::slow tasks: - - name: Setup Candlepin - import_tasks: tasks/setup_candlepin.yml - - name: Test repositories block: + - name: Setup Candlepin + import_tasks: tasks/setup_candlepin.yml + - name: Register include_role: name: linux-system-roles.rhc @@ -94,10 +94,12 @@ lsr_rhc_test_data.repositories.0.name in test_repositories.stdout_lines - always: - name: Unregister include_role: name: linux-system-roles.rhc vars: rhc_state: absent + + - name: Clean up Candlepin container + include_tasks: tasks/teardown_candlepin.yml