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/legacy/roles/one_service/tasks/main.yml

267 lines
7.6 KiB
YAML

---
- name: Instantiate a service in check mode
one_service:
template_id: '{{ one_template_id }}'
register: create_check_mode
check_mode: yes
- name: Check if instantiate in check mode returns as 'changed'
assert:
that:
- create_check_mode is changed
msg: Check mode doesn't return as 'changed' when instantiating in check mode
- name: Check if it fails if no service in check mode
one_service:
service_name: testing-one_service-module-{{ ansible_date_time.iso8601_basic_short }}-missing
register: missing_service
failed_when: not missing_service is failed
check_mode: yes
- name: Check if fails if no service
one_service:
service_name: testing-one_service-module-{{ ansible_date_time.iso8601_basic_short }}-missing
register: missing_service
failed_when: not missing_service is failed
# Instantiate a new service without passing required custom_attrs, wait for it to fail, then delete it
- block:
- name: Instantiate service from template ID
one_service:
template_id: '{{ one_template_id }}'
register: service
- name: Check if instantiate returns as 'changed'
assert:
that: service is changed
- name: Print service information for debugging
debug:
var: service
- name: Wait for service to become RUNNING
one_service:
service_id: '{{ service.service_id }}'
wait: yes
register: wait
failed_when: not wait.failed
always:
- name: Delete service in check mode
one_service:
service_id: '{{ service.service_id }}'
state: absent
register: delete_service
check_mode: yes
- name: Check if delete reports 'changed' in check mode
assert:
that:
- delete_service is changed
- name: Delete service
one_service:
service_id: '{{ service.service_id }}'
state: absent
register: delete_service
- name: Check if delete reports 'changed'
assert:
that:
- delete_service is changed
- name: Delete service again to check idempotence
one_service:
service_id: '{{ service.service_id }}'
state: absent
register: delete_service
- name: Check if consecutive delete reports 'OK'
assert:
that:
- not delete_service is changed
msg: "state=absent is not idempotent"
- name: Wait for the service to be deleted
one_service:
service_id: '{{ service.service_id }}'
register: delete_service
failed_when: no
until: delete_service is failed
retries: 30
delay: 2
- block:
- name: Instantiate service from a named template
one_service:
template_name: '{{ one_template_name }}'
custom_attrs: '{{ one_template_custom_attrs }}'
register: service
- name: Check that mode/group were set to defaults on creation
assert:
that:
- service is changed
- service.group_id == {{ one_group_id_primary }}
- service.mode == 600
- name: Set mode/group of the service
one_service:
service_id: '{{ service.service_id }}'
group_id: '{{ one_group_id_secondary }}'
mode: 640
register: service_info
- name: Check that mode/group were set correctly
assert:
that:
- service_info is changed
- service_info.group_id == {{ one_group_id_secondary }}
- service_info.mode == 640
- name: Wait for service to become RUNNING
one_service:
service_id: '{{ service.service_id }}'
wait: yes
register: service_running
- name: Check that service state is RUNNING
assert:
that:
- not service_running is changed
- service_running.state == "RUNNING"
always:
- name: Delete service
one_service:
service_id: '{{ service.service_id }}'
state: absent
- block:
- name: Instantiate service from a named template with set mode/group
one_service:
template_name: '{{ one_template_name }}'
custom_attrs: '{{ one_template_custom_attrs }}'
group_id: '{{ one_group_id_secondary }}'
mode: 660
register: service
- name: Check that mode/group were set correctly on creation
assert:
that:
- service is changed
- service.group_id == {{ one_group_id_secondary }}
- service.mode == 660
- name: Wait for service to become RUNNING
one_service:
service_id: '{{ service.service_id }}'
wait: yes
always:
- name: Delete service
one_service:
service_id: '{{ service.service_id }}'
state: absent
- block:
- name: Set the name of the service for this test run
set_fact:
srv_name: testing-one_service-module-{{ ansible_date_time.iso8601_basic_short }}
- name: Instantiate a unique service in check mode
one_service:
template_name: '{{ one_template_name }}'
service_name: '{{ srv_name }}'
custom_attrs: '{{ one_template_custom_attrs }}'
unique: yes
check_mode: yes
register: service
- name: Check if instantiating a service with a unique name in check mode returns 'changed'
assert:
that:
- service is changed
- name: Instantiate a unique service
one_service:
template_name: '{{ one_template_name }}'
service_name: '{{ srv_name }}'
custom_attrs: '{{ one_template_custom_attrs }}'
unique: yes
register: service
- name: Check if instantiating a service with a unique name returns 'changed'
assert:
that:
- service is changed
- service.service_name == srv_name
- service.state == "PENDING"
- name: Instantiate a unique service again to check indepontence
one_service:
template_name: '{{ one_template_name }}'
service_name: '{{ srv_name }}'
custom_attrs: '{{ one_template_custom_attrs }}'
unique: yes
register: service
- name: Check idempotence of instantiating a service with a unique name
assert:
that:
- not service is changed
- name: Wait for service by its name to become RUNNING
one_service:
service_name: '{{ srv_name }}'
wait: yes
- name: Change role cardinality to 2
one_service:
service_id: '{{ service.service_id }}'
role: '{{ one_role }}'
cardinality: 2
wait: yes
- name: Change role cardinality to 3
one_service:
service_id: '{{ service.service_id }}'
role: '{{ one_role }}'
cardinality: 3
wait: yes
register: cardinality
ignore_errors: yes
- name: Check if setting role cardinality to greater than max fails
assert:
that:
- cardinality is failed
- cardinality.msg is match("Failed to change cardinality for role:")
- name: Change role cardinality to 3 with force=yes
one_service:
service_id: '{{ service.service_id }}'
role: '{{ one_role }}'
cardinality: 3
force: yes
wait: yes
register: cardinality
- name: Verify that cardinality is changed
assert:
that:
- cardinality is changed
- cardinality.roles|length == 2
- cardinality.roles[0].cardinality == 3
always:
- name: Delete service
one_service:
service_id: '{{ service.service_id }}'
state: absent
- name: Set the name of the service for this test run
set_fact:
srv_name: testing-one_service-module-{{ ansible_date_time.iso8601_basic_short }}
- name: Try to delete nonexistent service
one_service:
service_name: '{{ srv_name }}'
state: absent