2023-06-19 08:59:02 +02:00
|
|
|
---
|
|
|
|
# Copyright (c) Ansible Project
|
|
|
|
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
|
|
|
|
- name: Create volume group on disk device
|
|
|
|
lvg:
|
|
|
|
vg: testvg
|
|
|
|
pvs: "{{ loop_device1 }}"
|
|
|
|
|
|
|
|
- name: Create logical volumes on volume group
|
|
|
|
loop:
|
|
|
|
- lv1
|
|
|
|
- lv2
|
|
|
|
lvol:
|
|
|
|
vg: testvg
|
|
|
|
lv: "{{ item }}"
|
|
|
|
size: 2m
|
|
|
|
|
2023-08-12 09:58:12 +02:00
|
|
|
- name: Create snapshot volumes of origin logical volumes
|
|
|
|
loop:
|
|
|
|
- lv1
|
|
|
|
- lv2
|
|
|
|
lvol:
|
|
|
|
vg: testvg
|
|
|
|
lv: "{{ item }}"
|
|
|
|
snapshot: "{{ item }}_snap"
|
|
|
|
size: 50%ORIGIN
|
|
|
|
|
2023-06-19 08:59:02 +02:00
|
|
|
- name: Collect all lv active status in testvg
|
|
|
|
shell: vgs -olv_active --noheadings testvg | xargs -n1
|
|
|
|
register: initial_lv_status_result
|
|
|
|
|
|
|
|
- name: Assert all lv in testvg are active
|
|
|
|
loop: "{{ initial_lv_status_result.stdout_lines }}"
|
|
|
|
assert:
|
|
|
|
that:
|
2023-11-29 06:53:48 +01:00
|
|
|
- "'active' == item"
|
2023-06-19 08:59:02 +02:00
|
|
|
|
|
|
|
- name: Deactivate volume group
|
|
|
|
lvg:
|
|
|
|
state: inactive
|
|
|
|
vg: testvg
|
|
|
|
register: vg_deactivate_result
|
|
|
|
|
|
|
|
- name: Collect all lv active status in testvg
|
|
|
|
shell: vgs -olv_active --noheadings testvg | xargs -n1
|
|
|
|
register: deactivated_lv_status_result
|
|
|
|
|
|
|
|
- name: Do all assertions to verify expected results
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- vg_deactivate_result is changed
|
|
|
|
- "'active' not in deactivated_lv_status_result.stdout"
|
|
|
|
|
|
|
|
- name: Deactivate volume group again to verify idempotence
|
|
|
|
lvg:
|
|
|
|
state: inactive
|
|
|
|
vg: testvg
|
|
|
|
register: repeated_vg_deactivate_result
|
|
|
|
|
|
|
|
- name: Verify vg deactivation idempontency
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- repeated_vg_deactivate_result is not changed
|
|
|
|
|
|
|
|
- name: Activate volume group in check mode
|
|
|
|
lvg:
|
|
|
|
state: active
|
|
|
|
vg: testvg
|
|
|
|
register: check_mode_vg_activate_result
|
|
|
|
check_mode: true
|
|
|
|
|
|
|
|
- name: Collect all lv active status in testvg
|
|
|
|
shell: vgs -olv_active --noheadings testvg | xargs -n1
|
|
|
|
register: check_mode_activate_lv_status_result
|
|
|
|
|
|
|
|
- name: Verify VG activation in check mode changed without activating LVs
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- check_mode_vg_activate_result is changed
|
|
|
|
- "'active' not in check_mode_activate_lv_status_result.stdout"
|
|
|
|
|
|
|
|
- name: Activate volume group
|
|
|
|
lvg:
|
|
|
|
state: active
|
|
|
|
vg: testvg
|
|
|
|
register: vg_activate_result
|
|
|
|
|
|
|
|
- name: Collect all lv active status in testvg
|
|
|
|
shell: vgs -olv_active --noheadings testvg | xargs -n1
|
|
|
|
register: activate_lv_status_result
|
|
|
|
|
|
|
|
- name: Verify vg activation
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- vg_activate_result is changed
|
|
|
|
|
|
|
|
- name: Assert all lv in testvg are active
|
|
|
|
loop: "{{ activate_lv_status_result.stdout_lines }}"
|
|
|
|
assert:
|
|
|
|
that:
|
2023-11-29 06:53:48 +01:00
|
|
|
- "'active' == item"
|
2023-06-19 08:59:02 +02:00
|
|
|
|
|
|
|
- name: Activate volume group again to verify idempontency
|
|
|
|
lvg:
|
|
|
|
state: active
|
|
|
|
vg: testvg
|
|
|
|
register: repeated_vg_activate_result
|
|
|
|
|
|
|
|
- name: Verify vg activation idempontency
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- repeated_vg_activate_result is not changed
|
|
|
|
|
|
|
|
- name: Deactivate lv2 in testvg
|
|
|
|
lvol:
|
|
|
|
vg: testvg
|
|
|
|
lv: lv2
|
|
|
|
active: false
|
|
|
|
|
|
|
|
- name: Activate volume group again to verify partially activated vg activation
|
|
|
|
lvg:
|
|
|
|
state: active
|
|
|
|
vg: testvg
|
|
|
|
register: partial_vg_activate_result
|
|
|
|
|
|
|
|
- name: Verify partially activated vg activation
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- partial_vg_activate_result is changed
|
|
|
|
|
|
|
|
- name: Collect all lv active status in testvg
|
|
|
|
shell: vgs -olv_active --noheadings testvg | xargs -n1
|
|
|
|
register: activate_partial_lv_status_result
|
|
|
|
|
|
|
|
- name: Assert all lv in testvg are active
|
|
|
|
loop: "{{ activate_partial_lv_status_result.stdout_lines }}"
|
|
|
|
assert:
|
|
|
|
that:
|
2023-11-29 06:53:48 +01:00
|
|
|
- "'active' == item"
|
2023-06-19 08:59:02 +02:00
|
|
|
|
2023-10-29 18:04:44 +01:00
|
|
|
- name: Deactivate volume group in check mode
|
2023-06-19 08:59:02 +02:00
|
|
|
lvg:
|
|
|
|
state: inactive
|
|
|
|
vg: testvg
|
|
|
|
register: check_mode_vg_deactivate_result
|
|
|
|
check_mode: true
|
|
|
|
|
|
|
|
- name: Collect all lv active status in testvg
|
|
|
|
shell: vgs -olv_active --noheadings testvg | xargs -n1
|
|
|
|
register: check_mode_deactivate_lv_status_result
|
|
|
|
|
|
|
|
- name: Verify check mode vg deactivation changed
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- check_mode_vg_deactivate_result is changed
|
|
|
|
|
|
|
|
- name: Assert all lv in testvg are still active
|
|
|
|
loop: "{{ check_mode_deactivate_lv_status_result.stdout_lines }}"
|
|
|
|
assert:
|
|
|
|
that:
|
2023-11-29 06:53:48 +01:00
|
|
|
- "'active' == item"
|