Skip to content

Commit 7fa4a72

Browse files
committed
add app quiesce support
Signed-off-by: dw035535 <diane.wang@broadcom.com>
1 parent 160bdd0 commit 7fa4a72

File tree

4 files changed

+45
-31
lines changed

4 files changed

+45
-31
lines changed

windows/check_quiesce_snapshot/check_quiescing_type.yml

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -62,30 +62,39 @@
6262
list_files: true
6363
register: vm_vss_manifests_files
6464

65-
# Windows Server VM with NVMe boot disk controller (except Windows Server 2022
66-
# with latest Windows updates installed) does not suppport application consistent
67-
# quiesce snapshot due to the known Windows issues.
68-
# Please keep track of the 3rd party issue status and vSphere support status.
69-
- name: "Handle Windows Server guest OS situation"
70-
when: guest_os_product_type == 'server'
65+
# Windows Server VM with NVMe boot disk controller does not suppport application
66+
# consistent quiesce snapshot due to the known Windows issues.
67+
# Except below 2 situations:
68+
# Windows Server 2022 with build number newer than 20348.2582,
69+
# Windows Server 2025 with build number newer than 26100.7171.
70+
- name: "Handle Windows Server VM with NVMe disk controller situation"
71+
when:
72+
- guest_os_product_type == 'server'
73+
- win_boot_disk_ctrl_type == 'nvme'
7174
block:
72-
- name: "Handle Windows Server 2022 situation"
73-
when: guest_os_product_version | int == 2022
74-
block:
75-
- name: "Get Windows Server 2022 build number"
76-
include_tasks: ../utils/win_get_os_version.yml
77-
- name: "Set Windows Server 2022 exception"
78-
ansible.builtin.set_fact:
79-
winsrv_2022_app_quiesce: true
80-
when: win_os_version_build is version('10.0.20348.2582', '>=')
75+
- name: "For Windows Server 2022"
76+
ansible.builtin.set_fact:
77+
app_quiesce_supported: true
78+
when:
79+
- guest_os_product_version | int == 2022
80+
- win_os_version_build is version('10.0.20348.2582', '>=')
8181

82-
- name: "Set fact of support application consistent quiescing situation"
82+
- name: "For Windows Server 2025"
8383
ansible.builtin.set_fact:
84-
winsrv_app_quiesce_support: true
84+
app_quiesce_supported: true
8585
when:
86-
- guestinfo_guest_full_name | regex_search('Windows Server ([0-9]{4})')
87-
- guestinfo_guest_full_name | regex_search('Windows Server ([0-9]{4})') == guest_os_ansible_distribution | regex_search('Windows Server ([0-9]{4})')
88-
- win_boot_disk_ctrl_type in ['lsilogicsas', 'paravirtual'] or (win_boot_disk_ctrl_type == 'nvme' and winsrv_2022_app_quiesce is defined and winsrv_2022_app_quiesce)
86+
- esxi_version is version('9.0.0', '>')
87+
- vm_hardware_version_num | int >= 21
88+
- guest_os_product_version | int == 2025
89+
- win_os_version_build is version('10.0.26100.7171', '>=')
90+
91+
- name: "Set fact of support application consistent quiescing situation"
92+
ansible.builtin.set_fact:
93+
winsrv_app_quiesce_support: true
94+
when:
95+
- guestinfo_guest_full_name | regex_search('Windows Server ([0-9]{4})')
96+
- guestinfo_guest_full_name | regex_search('Windows Server ([0-9]{4})') == guest_os_ansible_distribution | regex_search('Windows Server ([0-9]{4})')
97+
- win_boot_disk_ctrl_type in ['lsilogicsas', 'paravirtual'] or (win_boot_disk_ctrl_type == 'nvme' and app_quiesce_supported | default(false))
8998

9099
- name: "Check filesystem consistent quiescing taken"
91100
ansible.builtin.assert:

windows/nvdimm_cold_add_remove/cold_add_nvdimm_test.yml

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -112,20 +112,14 @@
112112
new_nvdimm_device_guest: "{{ (guest_nvdimm_list_after_add | difference(guest_nvdimm_list_before_add))[0] }}"
113113
when: (guest_nvdimm_list_after_add | difference(guest_nvdimm_list_before_add)) | length == 1
114114

115-
- name: "Check NVDIMM device known issue on Windows 11 v24H2 or Windows Server 2025"
115+
- name: "Set NVDIMM device known issue on Windows 11 v24H2 or Windows Server 2025"
116+
ansible.builtin.set_fact:
117+
nvdimm_known_issue: true
116118
when:
117119
- guest_os_product_version | int in [11, 2025]
118120
- new_nvdimm_device_guest | length == 0
119-
block:
120-
- name: "Get Windows build number"
121-
include_tasks: ../utils/win_get_os_version.yml
122-
123-
- name: "Set fact of the known issue of NVDIMM device"
124-
ansible.builtin.set_fact:
125-
nvdimm_known_issue: true
126-
when:
127-
- win_os_version_build is version('10.0.26100.0', '>=')
128-
- win_os_version_build is version('10.0.26100.4652', '<')
121+
- win_os_version_build is version('10.0.26100.0', '>=')
122+
- win_os_version_build is version('10.0.26100.4652', '<')
129123

130124
- name: "Known issue - NVDIMM device is not recognized in guest OS"
131125
ansible.builtin.debug:

windows/utils/get_windows_system_info.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@
5151
when:
5252
- guest_os_ansible_distribution | regex_search('Windows( Server)? ([0-9]+)')
5353

54+
- name: "Get Windows guest OS version and revision build number"
55+
include_tasks: win_get_os_version.yml
56+
5457
- name: "Print Windows guest OS information"
5558
ansible.builtin.debug:
5659
msg:
@@ -70,6 +73,7 @@
7073
- "Guest OS hostname: {{ guest_os_hostname }}"
7174
- "Guest OS should contain inbox drivers: {{ guest_os_with_inbox_drivers }}"
7275
- "Guest OS product version: {{ guest_os_product_version }}"
76+
- "Guest OS version and revision build number: {{ win_os_version_build }}"
7377

7478
- name: "Set fact of VM guest OS type"
7579
ansible.builtin.set_fact:

windows/utils/win_get_os_version.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,5 +73,12 @@
7373
- win_powershell_cmd_output.stdout_lines is defined
7474
- win_powershell_cmd_output.stdout_lines | length == 1
7575

76+
- name: "Check Windows OS version"
77+
ansible.builtin.assert:
78+
that:
79+
- win_os_version_build | length != 0
80+
- win_os_version_build is regex("^(\d+\.){3}\d+$")
81+
fail_msg: "Got Windows OS version '{{ win_os_version_build }}', which is empty or not in the expected format like '1.2.3.4'."
82+
7683
- name: "Print Windows OS version"
7784
ansible.builtin.debug: var=win_os_version_build

0 commit comments

Comments
 (0)