Skip to content

Commit 93921ef

Browse files
committed
orasw_meta: added central assert tasks for ansible-oracle (#325)
This is the 1st step for adding central assert tasks to tesk the used inventory.
1 parent af49366 commit 93921ef

File tree

3 files changed

+159
-0
lines changed

3 files changed

+159
-0
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
---
2+
minor_changes:
3+
- "orasw_meta: added central assert tasks for ansible-oracle (oravirt#325)"
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
---
2+
# @tag assert_ansible_oracle:description: Assert inventory variables from ansible-oracle
3+
- name: assert ansible-oracle variables
4+
tags:
5+
- always
6+
- assert_ansible_oracle
7+
block:
8+
- name: assert db_homes_config
9+
block:
10+
- name: assert db_homes_config
11+
ansible.builtin.assert:
12+
quiet: true
13+
that:
14+
- dbc.value['version'] is defined
15+
- dbc.value['version'] in [
16+
'21.3.0.0',
17+
'19.3.0.0', '18.3.0.0', '12.2.0.1',
18+
'12.1.0.2',
19+
'11.2.0.4', '11.2.0.3'
20+
]
21+
- dbc.value['edition'] is defined
22+
- dbc.value['edition'] in ['EE', 'SE', 'SE2']
23+
- dbc.value['opatch'] is not defined
24+
or (dbc.value['opatch'] is defined
25+
and dbc.value['opatch_minversion'] is defined
26+
)
27+
- dbc.value['opatchauto'] is not defined
28+
or (dbc.value['opatchauto'] is defined
29+
and dbc.value['opatch_minversion'] is defined
30+
)
31+
with_dict:
32+
- "{{ db_homes_config }}"
33+
loop_control:
34+
label: "{{ dbc.key | default('') }}"
35+
loop_var: dbc
36+
when:
37+
- db_homes_config is defined
38+
register: assertdb_homes_config
39+
40+
rescue:
41+
42+
- name: assert failed assertdb_homes_config
43+
ansible.builtin.debug:
44+
msg: "{{ item.assertion }}"
45+
with_items:
46+
- "{{ assertdb_homes_config['results'] }}"
47+
loop_control:
48+
label: "{{ item['dbc']['key'] | default('') }}"
49+
when:
50+
- assertdb_homes_config.results is defined
51+
- item.failed is defined
52+
- item.failed | bool
53+
54+
- name: fail assertdb_homes_config
55+
ansible.builtin.fail:
56+
msg: "See previous debug task for assertation failure"
57+
58+
- name: assert db_homes_installed
59+
ansible.builtin.assert:
60+
quiet: true
61+
that:
62+
- ass_dbh.home is defined
63+
- db_homes_config[ass_dbh.home] is defined
64+
with_items:
65+
- "{{ db_homes_installed }}"
66+
loop_control:
67+
label: "{{ ass_dbh.home | default('') }}"
68+
loop_var: ass_dbh
69+
when:
70+
- db_homes_installed is defined
71+
72+
- name: assert oracle_databases minimal
73+
block:
74+
- name: assert oracle_databases minimal
75+
ansible.builtin.assert:
76+
quiet: true
77+
that:
78+
- ass_odb.oracle_db_name is defined
79+
- ass_odb.home is defined
80+
- db_homes_config[ass_odb.home] is defined
81+
- db_homes_config[ass_odb.home]['version'] is version('21.3.0.0', '<')
82+
or (db_homes_config[ass_odb.home]['version'] is version('21.3.0.0', '>=')
83+
and ass_odb.is_container is defined
84+
and ass_odb.is_container
85+
)
86+
with_items:
87+
- "{{ oracle_databases }}"
88+
loop_control:
89+
label: "{{ ass_odb.oracle_db_name | default('') }}"
90+
loop_var: ass_odb
91+
when:
92+
- oracle_databases is defined
93+
register: assertoracle_databases
94+
95+
rescue:
96+
97+
- name: assert failed assert oracle_databases
98+
ansible.builtin.debug:
99+
msg: "{{ item.assertion }}"
100+
with_items:
101+
- "{{ assertoracle_databases['results'] }}"
102+
loop_control:
103+
label: "{{ item['dbc']['key'] | default('') }}"
104+
when:
105+
- assertoracle_databases.results is defined
106+
- item.failed is defined
107+
- item.failed | bool
108+
109+
- name: fail assert oracle_databases
110+
ansible.builtin.fail:
111+
msg: "See previous debug task for assertation failure"
112+
113+
- name: assert oracle_pdbs
114+
block:
115+
- name: assert oracle_pdbs
116+
ansible.builtin.assert:
117+
quiet: true
118+
that:
119+
- ass_pdb.home is defined
120+
- db_homes_config[ass_pdb.home] is defined
121+
with_items:
122+
- "{{ oracle_pdbs }}"
123+
loop_control:
124+
label: "{{ ass_pdb.oracle_db_name | default('') }}"
125+
loop_var: ass_pdb
126+
when:
127+
- oracle_pdbs is defined
128+
register: assertoracle_pdbs
129+
130+
rescue:
131+
132+
- name: assert failed assert oracle_pdbs
133+
ansible.builtin.debug:
134+
msg: "{{ item.assertion }}"
135+
with_items:
136+
- "{{ assertoracle_pdbs['results'] }}"
137+
loop_control:
138+
label: "{{ item['ass_pdb']['key'] | default('') }}"
139+
when:
140+
- assertoracle_pdbs.results is defined
141+
- item.failed is defined
142+
- item.failed | bool
143+
144+
- name: fail assert oracle_pdbs
145+
ansible.builtin.fail:
146+
msg: "See previous debug task for assertation failure"

roles/orasw_meta/tasks/main.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
# @tag assert_ansible:description: Assert version of Ansible Core
3+
- name: assert ansible version
4+
ansible.builtin.assert:
5+
quiet: true
6+
that:
7+
- "ansible_version.full is version('2.9', '>=')"
8+
tags:
9+
- always
10+
- assert_ansible

0 commit comments

Comments
 (0)