@@ -20,6 +20,14 @@ This document provides workspace-level instructions for AI agents working anywhe
- For VM power or maintenance requests, act only on the exact VM names provided by the operator.
- For VM power or maintenance requests, act only on the exact VM names provided by the operator.
- If any requested VM name is not found, stop and report it; do not infer, substitute, or search for replacement VMs unless the operator explicitly asks for that discovery step.
- If any requested VM name is not found, stop and report it; do not infer, substitute, or search for replacement VMs unless the operator explicitly asks for that discovery step.
## ATVM vCenter Inventory Deletion Guardrail
- Never delete or destroy any ATVM VM from vCenter. Removing from inventory or unregistering is allowed only for VMs whose names start with `atvm`.
- Treat a vCenter VM as protected ATVM inventory if its name starts with `atvm`, if it resides on an `AutomatedTest-*` ATVM datastore, or if it is an ATVM platform/controller VM, even when it is not listed in `inventory/vm-inventory.md`.
- ATVM VM inventory entries in vCenter are permanent test inventory and must be preserved even when power, maintenance, datastore, or cleanup work is requested.
- This guardrail applies regardless of operator wording unless the operator explicitly updates this AGENTS.md rule first.
- For cleanup workflows, only power off, detach/unmount supporting resources, unregister/remove from inventory for VMs whose names start with `atvm`, or report the needed manual action; do not delete or destroy ATVM VMs.
## Red Hat Manual Task Subscription Guardrail
## Red Hat Manual Task Subscription Guardrail
- For manually requested tasks on Red Hat machines (non-ATVM-automation tasks), run the Red Hat subscription reset/register sequence before the requested task.
- For manually requested tasks on Red Hat machines (non-ATVM-automation tasks), run the Red Hat subscription reset/register sequence before the requested task.
@@ -104,6 +104,11 @@ This file defines how to operate and maintain the ATVM workspace in `/home/aw/co
- For vCenter VM snapshot requests, default the snapshot name to `VM Snapshot [mm/dd/yyyy:hh:mm:ss AM/PM]` in the local `America/New_York` timezone unless the operator explicitly requests a different name.
- For vCenter VM snapshot requests, default the snapshot name to `VM Snapshot [mm/dd/yyyy:hh:mm:ss AM/PM]` in the local `America/New_York` timezone unless the operator explicitly requests a different name.
- For VM power, shutdown, startup, snapshot, or maintenance requests, operate only on the exact VM names provided by the operator.
- For VM power, shutdown, startup, snapshot, or maintenance requests, operate only on the exact VM names provided by the operator.
- If any requested VM name is missing or not found, stop immediately and report the missing names; do not infer, substitute, or search for replacement VMs unless the operator explicitly requests a discovery/mapping step.
- If any requested VM name is missing or not found, stop immediately and report the missing names; do not infer, substitute, or search for replacement VMs unless the operator explicitly requests a discovery/mapping step.
- Never delete or destroy any ATVM VM from vCenter. Removing from inventory or unregistering is allowed only for VMs whose names start with `atvm`.
- Treat a vCenter VM as protected ATVM inventory if its name starts with `atvm`, if it resides on an `AutomatedTest-*` ATVM datastore, or if it is an ATVM platform/controller VM, even when it is not listed in `inventory/vm-inventory.md`.
- ATVM VM inventory entries in vCenter are permanent test inventory and must be preserved even when power, maintenance, datastore, or cleanup work is requested.
- This vCenter inventory deletion guardrail applies regardless of operator wording unless the operator explicitly updates this AGENTS.md rule first.
- For cleanup workflows, only power off, detach/unmount supporting resources, unregister/remove from inventory for VMs whose names start with `atvm`, or report the needed manual action; do not delete or destroy ATVM VMs.
- For `atvm_prep` requests, infer common option values from operator shorthand when intent is clear.
- For `atvm_prep` requests, infer common option values from operator shorthand when intent is clear.
- For any `atvm_prep` execution request, always present the exact planned `atvm_prep.py` command first and wait for explicit operator approval before running it.
- For any `atvm_prep` execution request, always present the exact planned `atvm_prep.py` command first and wait for explicit operator approval before running it.
- Always execute `atvm_prep.py` on the ATVM Cypress controller host `192.168.3.190` (`atvm-cypres-vm-1`).
- Always execute `atvm_prep.py` on the ATVM Cypress controller host `192.168.3.190` (`atvm-cypres-vm-1`).
@@ -5,7 +5,7 @@ Use `/home/aw/code/cds/.env.credentials.local` for the local-only values referen
# Summary
# Summary
This document outlines the equipement, hardware, vm inventory and any tips to configure the vms for the cmc cypress automation. The vms were initially configured manually but as of 2026, are now being configured via AI tools to make configuration more automated and efficient. The
This document outlines the equipement, hardware, vm inventory and any tips to configure the vms for the cmc cypress automation. The vms were initially configured manually but as of 2026, are now being configured via AI tools to make configuration more automated and efficient.
# Equipment/Hardware
# Equipment/Hardware
@@ -17,14 +17,14 @@ This document outlines the equipement, hardware, vm inventory and any tips to co
***Note:*** For SSH login, use **root** and the password needs to be obtained from <https://callcenter.cdsi.us.com/main/phoenix/>
***Note:*** For SSH login, use **root** and the password needs to be obtained from <https://callcenter.cdsi.us.com/main/phoenix/>
ESX Assigned Volumes:
ESX Assigned Volumes:
* AutomatedTest-Install-ISO (1 TB) - contains the OS ISOs used for the ATVM environment
* AutomatedTest-Install-ISO (1 TB) - contains the OS ISOs used for the ATVM environment
* AutomatedTest-Install-ISO-2 (1TB) - contains the OS ISOs used for the ATVM environment
* AutomatedTest-Install-ISO-2 (1TB) - contains the OS ISOs used for the ATVM environment
* AutomatedTest-VMBootImg-Gold (3 TB) - contains the VMs created for the ATVM environment
* AutomatedTest-VMBootImg-Gold (3 TB) - contains the VMs created for the ATVM environment
* AutomatedTest-VMBootImg-Gold-2 (3 TB) - contains the VMs created for the ATVM environment
* AutomatedTest-VMBootImg-Gold-2 (3 TB) - contains the VMs created for the ATVM environment
* AutomatedTest-Cypress (512 GB) - contains the cypress machine to run the automated scripts for the ATVM environment
* AutomatedTest-Cypress (1 TB) - contains the cypress machine to run the automated scripts for the ATVM environment
* Internal-DVD-Offline-Linux-Repository (1TB) - This is a DVD offline repository for the QA Test Lab. It is not mirrored and packages are not updated or maintained. Created and provided are AS IS.
* Internal-DVD-Offline-Linux-Repository (1TB) - This is a DVD offline repository for the QA Test Lab. It is not mirrored and packages are not updated or maintained. Created and provided AS IS.
2. Replica DGS Phoenix Server: 192.168.1.89 (Web GUI login: \[Wayne Lam's DGS Server - Anthony Wen has access at this time\])
2. Replica DGS Phoenix Server: 192.168.1.89 (Web GUI login: \[Wayne Lam's DGS Server - Anthony Wen has access at this time\])
@@ -37,15 +37,15 @@ This document outlines the equipement, hardware, vm inventory and any tips to co
***Note:*** For SSH login, use **VCENTER_USER** / **VCENTER_PASSWORD** from `.env.credentials.local` (or the equivalent root credential if still valid).
***Note:*** For SSH login, use **VCENTER_USER** / **VCENTER_PASSWORD** from `.env.credentials.local` (or the equivalent root credential if still valid).
1. ESX Server 165: 192.168.1.165 (ssh: **ESXI_HOST_1_USER** / **ESXI_HOST_1_PASSWORD**; IPMI: **ESXI_HOST_1_IPMI_USER** / **ESXI_HOST_1_IPMI_PASSWORD** from `.env.credentials.local`) - License: 1Y2RU-DWK14-H81E0-UH8Z6-0Y2J4
1. ESX Server 165: 192.168.1.165 (ssh: **ESXI_HOST_1_USER** / **ESXI_HOST_1_PASSWORD**; IPMI: **ESXI_HOST_1_IPMI_USER** / **ESXI_HOST_1_IPMI_PASSWORD** from `.env.credentials.local`) - License: 1Y2RU-DWK14-H81E0-UH8Z6-0Y2J4
1. VMware ESXi, 7.0.3, 19193900
1. VMware ESXi, 7.0.3, 19193900
2. Assigned AutomatedTest-VMBootImg-Gold (3 TB)
2. Assigned AutomatedTest-VMBootImg-Gold (3 TB)
2. ESX Server 166: 192.168.1.166 (ssh: **ESXI_HOST_2_USER** / **ESXI_HOST_2_PASSWORD**; IPMI: **ESXI_HOST_2_IPMI_USER** / **ESXI_HOST_2_IPMI_PASSWORD** from `.env.credentials.local`) - License: 1Y2RU-DWK14-H81E0-UH8Z6-0Y2J4
2. ESX Server 166: 192.168.1.166 (ssh: **ESXI_HOST_2_USER** / **ESXI_HOST_2_PASSWORD**; IPMI: **ESXI_HOST_2_IPMI_USER** / **ESXI_HOST_2_IPMI_PASSWORD** from `.env.credentials.local`) - License: 1Y2RU-DWK14-H81E0-UH8Z6-0Y2J4
1. VMware ESXi, 7.0.3, 19193900
1. VMware ESXi, 7.0.3, 19193900
2. Assigned AutomatedTest-VMBootImg-Gold-2 (3 TB)
2. Assigned AutomatedTest-VMBootImg-Gold-2 (3 TB)
@@ -57,21 +57,21 @@ This document outlines the equipement, hardware, vm inventory and any tips to co
***==Note:==*** ==For SSH login, use the matching legacy vCenter credential from `.env.credentials.local`==
***==Note:==*** ==For SSH login, use the matching legacy vCenter credential from `.env.credentials.local`==
@@ -172,7 +172,7 @@ This account is specifically used for the CMC automation test environment. The
3. REDHAT FREE SUBSCRIPTION ACCOUNT - This account is used to access the redhat repos. The only caveat is that free subscriptions expire in 1 year and need be manually renewed. The clients will need to be unregistered and re-registered again after the account is renewed. The automation scripts automatically re-register every time the scripts are ran just for simplicity sake.
3. REDHAT FREE SUBSCRIPTION ACCOUNT - This account is used to access the redhat repos. The only caveat is that free subscriptions expire in 1 year and need be manually renewed. The clients will need to be unregistered and re-registered again after the account is renewed. The automation scripts automatically re-register every time the scripts are ran just for simplicity sake.
\
\
* Registration:
* Registration:
\
\
You may register the redhat vm during installation via the wizard or you can registrer via the following command: `subscription-manager register --username "$REDHAT_SUBSCRIPTION_USER" --password "$REDHAT_SUBSCRIPTION_PASSWORD"`
You may register the redhat vm during installation via the wizard or you can registrer via the following command: `subscription-manager register --username "$REDHAT_SUBSCRIPTION_USER" --password "$REDHAT_SUBSCRIPTION_PASSWORD"`
@@ -195,7 +195,7 @@ This account is specifically used for the CMC automation test environment. The
* REDHAT LOGIN: `REDHAT_SUBSCRIPTION_USER` / `REDHAT_SUBSCRIPTION_PASSWORD` from `.env.credentials.local` (alias email currently linked with anthony.wen@cirrusdata.com). (Ask administrator to switch alias to whoever takes over this environment).
* REDHAT LOGIN: `REDHAT_SUBSCRIPTION_USER` / `REDHAT_SUBSCRIPTION_PASSWORD` from `.env.credentials.local` (alias email currently linked with anthony.wen@cirrusdata.com). (Ask administrator to switch alias to whoever takes over this environment).
\
\
==Note: EOL OSes might not be allowed to register. In those cases, offline DVD repo needs to be used.==
==Note: EOL OSes might not be allowed to register. In those cases, offline DVD repo needs to be used.==
@@ -210,57 +210,46 @@ Reserved static ip address for atvm environment:
2. **192.168.3.191**: atvm\[#\]-\[os version\] (all atvm source machines will use the same static ip)
2. **192.168.3.191**: atvm\[#\]-\[os version\] (all atvm source machines will use the same static ip)
1. AutomatedTest-VMBootImg-Gold (3 TB) Datastore
1. AutomatedTest-VMBootImg-Gold (3 TB) Datastore
3. **192.168.3.192**: atvm-linux-h2h / atvm-win-h2h (all atvm H2H remote destination machines will use the same static ip). H2H VMs should periodically be remade (cloned) to use the latest OS version?
3. **192.168.3.192**: atvm-linux-h2h / atvm-win-h2h (all atvm H2H remote destination machines will use the same static ip). H2H VMs should periodically be remade (cloned) to use the latest OS version?
5. **192.168.3.194**: atvm-linux-h2h-2 / atvm-win-h2h-2 (all atvm H2H remote destination machines will use the same static ip). H2H VMs should periodically be remade (cloned) to use the latest OS version?
5. **192.168.3.194**: atvm-linux-h2h-2 / atvm-win-h2h-2 (all atvm H2H remote destination machines will use the same static ip). H2H VMs should periodically be remade (cloned) to use the latest OS version?
6. 192.168.3.185: atvm999-oracle8.10 (aw install test 03/03/2026)
7. 192.168.3.186:
8. 192.168.3.187:
8. 192.168.3.187:
9. 192.168.3.188:
9. 192.168.3.188:
10. 192.168.3.189:
10. 192.168.3.189:
@@ -270,7 +259,7 @@ Reserved static ip address for atvm environment:
1. 192.168.3.176: atvm-ovirtengine (ssh: **OVIRT_ENGINE_SSH_USER** / **OVIRT_ENGINE_SSH_PASSWORD**; web portal: **OVIRT_ENGINE_WEB_USER** / **OVIRT_ENGINE_WEB_PASSWORD** from `.env.credentials.local`) - sometimes after a reboot the kvm shows as down but it really isn't. Seems like a glitch. Putting it in maintenance mode and activating it seemed to get working again for whatever reason.
1. 192.168.3.176: atvm-ovirtengine (ssh: **OVIRT_ENGINE_SSH_USER** / **OVIRT_ENGINE_SSH_PASSWORD**; web portal: **OVIRT_ENGINE_WEB_USER** / **OVIRT_ENGINE_WEB_PASSWORD** from `.env.credentials.local`) - sometimes after a reboot the kvm shows as down but it really isn't. Seems like a glitch. Putting it in maintenance mode and activating it seemed to get working again for whatever reason.
@@ -519,8 +508,10 @@ Brocade 192.168.2.240 (use the locally managed switch credential; do not store i
* ==RHEL 9.5==
* ==RHEL 9.5==
* ==RHEL 9.6==
* ==RHEL 9.6==
* ==RHEL 9.7==
* ==RHEL 9.7==
* RHEL 9.8
* ==RHEL 10.0==
* ==RHEL 10.0==
* ==RHEL 10.1==
* ==RHEL 10.1==
* RHEL 10.2
### AMAZON
### AMAZON
@@ -554,9 +545,9 @@ Brocade 192.168.2.240 (use the locally managed switch credential; do not store i
* ==Rocky 9.4==
* ==Rocky 9.4==
* ==Rocky 9.5==
* ==Rocky 9.5==
* ==Rocky 9.6==
* ==Rocky 9.6==
* Rocky 9.7
* ==Rocky 9.7==
* ==Rocky 10.0==
* ==Rocky 10.0==
* Rocky 10.1
* ==Rocky 10.1==
### UBUNTU
### UBUNTU
@@ -567,8 +558,9 @@ Brocade 192.168.2.240 (use the locally managed switch credential; do not store i
* ==Ubuntu 16.04==
* ==Ubuntu 16.04==
* ==Ubuntu 18.04==
* ==Ubuntu 18.04==
* ==Ubuntu 20.04==
* ==Ubuntu 20.04==
* ==Ubuntu 22.04==
* ==Ubuntu 22.04==
* ==Ubuntu 24.04==
* ==Ubuntu 24.04==
* Ubuntu 26.04
### FEDORA
### FEDORA
@@ -708,9 +700,9 @@ NOTES:
* ==Oracle 9.4==
* ==Oracle 9.4==
* ==Oracle 9.5==
* ==Oracle 9.5==
* ==Oracle 9.6==
* ==Oracle 9.6==
* Oracle 9.7
* ==Oracle 9.7==
* ==Oracle 10.0==
* ==Oracle 10.0==
* Oracle 10.1
* ==Oracle 10.1==
### CENTOS
### CENTOS
@@ -774,13 +766,13 @@ Need a paid subscription to access the repo. Only made up to 15.2 before having
VM's will be powered on and tested 1 at a time. So the shared resources should not conflict with each other (ex. FC passthrough adapter and data disks. NOTE: esx prevents you from powering on multiple vm's sharing the same FC passthrough adapter and shared disks)
VM's will be powered on and tested 1 at a time. So the shared resources should not conflict with each other (ex. FC passthrough adapter and data disks. NOTE: esx prevents you from powering on multiple vm's sharing the same FC passthrough adapter and shared disks)
1. 4 CPU, 8GB Memory, \[minimum disk size for specific distribution - as of 02/25/2025, atvm currently uses 16GB for linux, 40GB for windows but need to check distros and adjust accordingly\]
1. 4 CPU, 8GB Memory, \[minimum disk size for specific distribution - as of 02/25/2025, atvm currently uses 16GB for linux, 40GB for windows but need to check distros and adjust accordingly\]
2. Name the VM hostname (OS won't like "." and sometimes "_" so replace with "-"): "atvm\[#\]-\[os \]\[major\]-\[minor\]" (ex. atvm2-Ubuntu16-04)
2. Name the VM hostname (OS won't like "." and sometimes "_" so replace with "-"): "atvm\[#\]-\[os \]\[major\]-\[minor\]" (ex. atvm2-Ubuntu16-04)
3. Non-root user creation: `ATVM_NONROOT_DEFAULT_USER` / `ATVM_NONROOT_DEFAULT_PASSWORD` from `.env.credentials.local` (if required)
3. Non-root user creation: `ATVM_NONROOT_DEFAULT_USER` / `ATVM_NONROOT_DEFAULT_PASSWORD` from `.env.credentials.local` (if required)
@@ -790,48 +782,48 @@ VM's will be powered on and tested 1 at a time. So the shared resources should
3. Assign SCSI Controller
3. Assign SCSI Controller
4. Assign VM Network
4. Assign VM Network
1. vmxnet3
1. vmxnet3
2. Oracle: assign e1000 (can't use vmxnet3 for all or most?)
2. Oracle: assign e1000 (can't use vmxnet3 for all or most?)
5. Assign 2 disks to be used for FC and iSCSI migration
5. Assign 2 disks to be used for FC and iSCSI migration
1. atvm-DISK_1.vmdk
1. atvm-DISK_1.vmdk
2. atvm-DISK_2.vmdk
2. atvm-DISK_2.vmdk
6. Assign FC adapter
6. Assign FC adapter
1. 85.00.0 / 85.00.1 (esx 1.165)
1. 85.00.0 / 85.00.1 (esx 1.165)
2. 45:00.0 / 45:00.1 (esx 1.166)
2. 45:00.0 / 45:00.1 (esx 1.166)
7. Select Boot Option (under VM Options → Boot Options): Turn off Secure Boot if using EFI
7. Select Boot Option (under VM Options → Boot Options): Turn off Secure Boot if using EFI
8. Enable ssh / root
8. Enable ssh / root
1. May need to install openssh-server
1. May need to install openssh-server
2. Edit /etc/ssh/sshd_config and set "PermitRootLogin" to "yes"
2. Edit /etc/ssh/sshd_config and set "PermitRootLogin" to "yes"
3. Restart sshd
3. Restart sshd
9. Disable auto OS updates (like Ubuntu)
9. Disable auto OS updates (like Ubuntu)
1. Ubuntu: vim /etc/apt/apt.conf.d/20auto-upgrades and set the following to 0 to disable
1. Ubuntu: vim /etc/apt/apt.conf.d/20auto-upgrades and set the following to 0 to disable
1. APT::Periodic::Update-Package-Lists "0";
1. APT::Periodic::Update-Package-Lists "0";
2. APT::Periodic::Unattended-Upgrade "0";
2. APT::Periodic::Unattended-Upgrade "0";
10. Change default boot order to base kernel instead of UEK kernel (like Oracle Linux) - as of 05/2024, we support UEK and SEL. By default, ATVM environment has it off but we can make a handful of UEK / SEL versions on a case by case basis.
10. Change default boot order to base kernel instead of UEK kernel (like Oracle Linux) - as of 05/2024, we support UEK and SEL. By default, ATVM environment has it off but we can make a handful of UEK / SEL versions on a case by case basis.
11. May need to update repositories for eol versions: Find repo related files in "AutomatedTest-Install-ISO/Updating EoL Packages - CentOS RHEL/Repo Config" folder
11. May need to update repositories for eol versions: Find repo related files in "AutomatedTest-Install-ISO/Updating EoL Packages - CentOS RHEL/Repo Config" folder
1. CentOS 6.10 and below - point repo to centos vault 6.10 release
1. CentOS 6.10 and below - point repo to centos vault 6.10 release
2. Redhat 6.10 and below - Sometimes had issues when pointing to centos vault repo so created an internal offline DVD inux repo. Point repo to redhat vault 6.10 internal offline DVD linux repository on 192.168.3.199/redhat-vault.
2. Redhat 6.10 and below - Sometimes had issues when pointing to centos vault repo so created an internal offline DVD inux repo. Point repo to redhat vault 6.10 internal offline DVD linux repository on 192.168.3.199/redhat-vault.
3. Oracle 6.10 and below - point repo to latest 6 repo
3. Oracle 6.10 and below - point repo to latest 6 repo
23. Install FIO (can get a version from "AutomatedTest-Install-ISO/Updating EoL Packages - CentOS RHEL")
23. Install FIO (can get a version from "AutomatedTest-Install-ISO/Updating EoL Packages - CentOS RHEL")
1. apt -y install fio
1. apt -y install fio
2. yum -y install fio
2. yum -y install fio
3. zypper install -n -y fio
3. zypper install -n -y fio
4. Install from source code - copy of fio-3.20.tar.gz with installation notes should be in "AutomatedTest-Install-ISO" datastore
4. Install from source code - copy of fio-3.20.tar.gz with installation notes should be in "AutomatedTest-Install-ISO" datastore
24. Install ssl / ca-certificates
24. Install ssl / ca-certificates
1. apt -y install ca-certificates
1. apt -y install ca-certificates
2. yum -y install ca-certificates
2. yum -y install ca-certificates
3. zypper install -n -y ca-certificates
3. zypper install -n -y ca-certificates
25. May need to update curl
25. May need to update curl
1. apt -y install curl
1. apt -y install curl
2. yum -y install curl
2. yum -y install curl
3. zypper install -n -y curl
3. zypper install -n -y curl
26. Install python (3.6.6?)
26. Install python (3.6.6?)
1. apt -y install python3
1. apt -y install python3
2. yum -y install python3
2. yum -y install python3
3. zypper install -n -y python3
3. zypper install -n -y python3
27. Might need to install elfutils-libelf-devel to compile cmc (Centos8.0 - 8.3, Redhat 8.0 - 8.6, Oracle 8.0-8.6, Rocky8.9)
27. Might need to install elfutils-libelf-devel to compile cmc (Centos8.0 - 8.3, Redhat 8.0 - 8.6, Oracle 8.0-8.6, Rocky8.9)
1. yum -y install elfutils-libelf-devel
1. yum -y install elfutils-libelf-devel
28. Make sure vmtools are installed (might need to manually install vmtools for older OS versions)
28. Make sure vmtools are installed (might need to manually install vmtools for older OS versions)
1. Click "Click VMware Tools" on ESX UI
1. Click "Click VMware Tools" on ESX UI
2. From the client, mount the cdrom
2. From the client, mount the cdrom
3. Extract: tar -zxvf /mnt/cdrom/VMwareTools-10.2.1-8267844.tar.gz -C /tmp/
3. Extract: tar -zxvf /mnt/cdrom/VMwareTools-10.2.1-8267844.tar.gz -C /tmp/
4. cd /tmp/
4. cd /tmp/
5. Run: "./vmware-install.pl"
5. Run: "./vmware-install.pl"
6. Refresh the ESX UI and confirm ip address of client is now displayed
6. Refresh the ESX UI and confirm ip address of client is now displayed
29. May need to remake the boot image for some versions and include the vmw_pvscsi drivers in the image (for compute migration). Older versions of CentOS and RHEL don't seem to need to have the images remade despite not listing the driver there (lsinitrd |grep vmw_pvscsi). However, Oracle 7.3+, CentOS 7.3+, Rocky8.9-8.10, 9.3+ and RHEL 7.0+ do need to have their boot images remade.
29. May need to remake the boot image for some versions and include the vmw_pvscsi drivers in the image (for compute migration). Older versions of CentOS and RHEL don't seem to need to have the images remade despite not listing the driver there (lsinitrd |grep vmw_pvscsi). However, Oracle 7.3+, CentOS 7.3+, Rocky8.9-8.10, 9.3+ and RHEL 7.0+ do need to have their boot images remade.
30. Make sure SEL is disabled - as of 05/14/2024 we can install cmc successfully with SEL enabled. However, the atvm environment will have it off by default on the gold disk image. We can subsequently switch SEL to enforcing if we want to specifically test with SEL set to enforcing. Please see the following section to switch SEL to enforcing [Switch from SEL=disabled to SEL=enforcing](https://docs.cdsi.us.com/doc/cypress-automation-for-cmc-Wbisze4vGs#h-switch-from-seldisabled-to-selenforcing)
30. Make sure SEL is disabled - as of 05/14/2024 we can install cmc successfully with SEL enabled. However, the atvm environment will have it off by default on the gold disk image. We can subsequently switch SEL to enforcing if we want to specifically test with SEL set to enforcing. Please see the following section to switch SEL to enforcing [Switch from SEL=disabled to SEL=enforcing](https://docs.cdsi.us.com/doc/cypress-automation-for-cmc-Wbisze4vGs#h-switch-from-seldisabled-to-selenforcing)
1. "getenforce" or "setatus"
1. "getenforce" or "setatus"
2. edit "etc/selinux/config", change "SELINUX=enforcing" to "disabled" and reboot:
2. edit "etc/selinux/config", change "SELINUX=enforcing" to "disabled" and reboot:
sed -i 's/=enforcing/=disabled/g' /etc/selinux/config ; cat /etc/selinux/config
sed -i 's/=enforcing/=disabled/g' /etc/selinux/config ; cat /etc/selinux/config
31. SUSE / Debian- by default it installs multipath. Some later versions of RHEL might install it by default. Remove it so we can test cmc installing it for us
31. SUSE / Debian- by default it installs multipath. Some later versions of RHEL might install it by default. Remove it so we can test cmc installing it for us
1. SUSE
1. SUSE
1. zypper remove -n -y multipath-tools
1. zypper remove -n -y multipath-tools
2. zypper remove -n -y libmpath0
2. zypper remove -n -y libmpath0
2. Debian
2. Debian
1. apt remove multipath-tools
1. apt remove multipath-tools
2. dpkg --purge multipath-tools
2. dpkg --purge multipath-tools
3. apt remove open-iscsi
3. apt remove open-iscsi
4. dpkg --purge open-iscsi
4. dpkg --purge open-iscsi
3. RedHat
3. RedHat
1. yum remove -y device-mapper-multipath
1. yum remove -y device-mapper-multipath
32. Check if a network manager is installed. MIght need to install one that is supported by migrateops (ex. Debian 13 doesn't have one installed by default)
32. Check if a network manager is installed. MIght need to install one that is supported by migrateops (ex. Debian 13 doesn't have one installed by default)
1. apt install network-manager
1. apt install network-manager
33. SUSE - Might need to install the following (needed by: SUSE15.3)
33. SUSE - Might need to install the following (needed by: SUSE15.3)
1. zypper install -n -y libopenssl-devel
1. zypper install -n -y libopenssl-devel
34. Might need to install sudo
34. Might need to install sudo
1. apt install sudo
1. apt install sudo
2. zypper install -n -y sudo
2. zypper install -n -y sudo
35. Note the kernel and add to inventory in this doc as well as the "notes" field on the VM
35. Note the kernel and add to inventory in this doc as well as the "notes" field on the VM
1. uname -r
1. uname -r
36. Power off the vm
36. Power off the vm
37. Take a snapshot before verifying cmc can be installed
37. Take a snapshot before verifying cmc can be installed
38. If packages need to installed / updated or system needs to be adjusted to get cmc installed, make notes to perform these on the gold atvm.
38. If packages need to installed / updated or system needs to be adjusted to get cmc installed, make notes to perform these on the gold atvm.
39. Verify you can create
39. Verify you can create
1. local migration
1. local migration
2. compute migration
2. compute migration
40. Revert back to the snapshot before cmc was installed
40. Revert back to the snapshot before cmc was installed
@@ -1021,7 +1013,7 @@ If the system has been up and running with SEL=disabled, you cannot just swtich
* Problem with the rescan-scsi-bus.sh. It will either remove all devices from the system or change the sd mapping, thus making the OS read-only. Updated the packages for the kernel and that fixed it.
* Problem with the rescan-scsi-bus.sh. It will either remove all devices from the system or change the sd mapping, thus making the OS read-only. Updated the packages for the kernel and that fixed it.
* apt-get update
* apt-get update
* apt-mark hold linux-image\* linux-headers\* linux-modules\*
* apt-mark hold linux-image\* linux-headers\* linux-modules\*
* Based kernel compatibility issues with ESX PCI Passthrough with QLogic QLE25xx HBA. Needed to be updated. Works about 90% of the time.
* Based kernel compatibility issues with ESX PCI Passthrough with QLogic QLE25xx HBA. Needed to be updated. Works about 90% of the time.
* Over time need to multipath service becomes masked for some reason: unmask the service (systemctl unmask multipathd.service) or reinstall (yum -y remove device-mapper-multipath ; yum -y install device-mapper-multipath)
* Over time need to multipath service becomes masked for some reason: unmask the service (systemctl unmask multipathd.service) or reinstall (yum -y remove device-mapper-multipath ; yum -y install device-mapper-multipath)
* Rocky Linux 8.6 \[atvm35-rocky8.6\] - 4.18.0-372.9.1.el8.x86_64
* Rocky Linux 8.6 \[atvm35-rocky8.6\] - 4.18.0-372.9.1.el8.x86_64
* Rocky Linux 8.7 \[atvm36-rocky8.7\] - 4.18.0-425.3.1.el8.x86_64
* Rocky Linux 8.7 \[atvm36-rocky8.7\] - 4.18.0-425.3.1.el8.x86_64
* Rocky Linux 8.8 \[atvm37-rocky8.8\] - 4.18.0-477.10.1.el8_8.x86_64
* Rocky Linux 8.8 \[atvm37-rocky8.8\] - 4.18.0-477.10.1.el8_8.x86_64
* Rocky Linux 9.0 \[atvm38-rocky9.0\] - 5.14.0-70.13.1.el9_0.x86_64
* Rocky Linux 9.0 \[atvm38-rocky9.0\] - 5.14.0-70.13.1.el9_0.x86_64
* Rocky Linux 9.1 \[atvm39-rocky9.1\] - 5.14.0-162.6.1.el9_1.x86_64
* Rocky Linux 9.1 \[atvm39-rocky9.1\] - 5.14.0-162.6.1.el9_1.x86_64
* Rocky Linux 9.2 \[atvm40-rocky9.2\] - 5.14.0-284.11.1.el9_2.x86_64
* Rocky Linux 9.2 \[atvm40-rocky9.2\] - 5.14.0-284.11.1.el9_2.x86_64
* *==RedHat Linux 6.0 \[atvm41-redhat6.0\] - 2.6.32-71.el6.x86_64==*
* *==RedHat Linux 6.0 \[atvm41-redhat6.0\] - 2.6.32-71.el6.x86_64==*
* *==couldn't compile and install cmc but keeping in case there is a way (as of 07/28/2023). Will reuse atvm41 in future if it's not possible==*
* *==couldn't compile and install cmc but keeping in case there is a way (as of 07/28/2023). Will reuse atvm41 in future if it's not possible==*
* RedHat Linux 6.1 \[atvm42-redhat6.1\] - 2.6.32-131.0.15.el6.x86_64
* RedHat Linux 6.1 \[atvm42-redhat6.1\] - 2.6.32-131.0.15.el6.x86_64
* RedHat Linux 6.2 \[atvm43-redhat6.2\] - 2.6.32-220.el6.x86_64
* RedHat Linux 6.2 \[atvm43-redhat6.2\] - 2.6.32-220.el6.x86_64
@@ -1104,7 +1096,7 @@ Notes:
* RedHat Linux 7.8 \[atvm60-redhat7.8\] - 3.10.0-1127.el7.x86_64
* RedHat Linux 7.8 \[atvm60-redhat7.8\] - 3.10.0-1127.el7.x86_64
* RedHat Linux 7.9 \[atvm61-redhat7.9\] - 3.10.0-1160.el7.x86_64
* RedHat Linux 7.9 \[atvm61-redhat7.9\] - 3.10.0-1160.el7.x86_64
* RedHat Linux 8.0 \[atvm62-redhat8.0\] - 4.18.0-80.el8.x86_64
* RedHat Linux 8.0 \[atvm62-redhat8.0\] - 4.18.0-80.el8.x86_64
* RedHat Linux 8.1 \[atvm63-redhat8.1\] - 4.18.0-147.el8.x86_64
* RedHat Linux 8.1 \[atvm63-redhat8.1\] - 4.18.0-147.el8.x86_64
* Based kernel compatibility issues with ESX PCI Passthrough with QLogic QLE25xx HBA. Needed to be updated. Works about 60-70% of the time
* Based kernel compatibility issues with ESX PCI Passthrough with QLogic QLE25xx HBA. Needed to be updated. Works about 60-70% of the time
* RedHat Linux 8.2 \[atvm64-redhat8.2\] - 4.18.0-193.el8.x86_64
* RedHat Linux 8.2 \[atvm64-redhat8.2\] - 4.18.0-193.el8.x86_64
* RedHat Linux 8.3 \[atvm65-redhat8.3\] - 4.18.0-240.el8.x86_64
* RedHat Linux 8.3 \[atvm65-redhat8.3\] - 4.18.0-240.el8.x86_64
@@ -1115,11 +1107,11 @@ Notes:
* RedHat Linux 9.0 \[atvm70-redhat9.0\] - 5.14.0-70.22.1.el9_0.x86_64
* RedHat Linux 9.0 \[atvm70-redhat9.0\] - 5.14.0-70.22.1.el9_0.x86_64
* RedHat Linux 9.1 \[atvm71-redhat9.1\] - 5.14.0-162.6.1.el9_1.x86_64
* RedHat Linux 9.1 \[atvm71-redhat9.1\] - 5.14.0-162.6.1.el9_1.x86_64
* RedHat Linux 9.2 \[atvm72-redhat9.2\] - 5.14.0-284.11.1.el9_2.x86_64
* RedHat Linux 9.2 \[atvm72-redhat9.2\] - 5.14.0-284.11.1.el9_2.x86_64
* *==Oracle Linux 6.0 \[atvm73-oracle6.0\] - 2.6.32-71.el6.x86_64==*
* *==Oracle Linux 6.0 \[atvm73-oracle6.0\] - 2.6.32-71.el6.x86_64==*
* *==couldn't compile and install cmc but keeping in case there is a way (as of 07/28/2023). Will reuse atvm73 in future if it's not possible.==*
* *==couldn't compile and install cmc but keeping in case there is a way (as of 07/28/2023). Will reuse atvm73 in future if it's not possible.==*
* Oracle Linux 6.1 \[atvm74-oracle6.1\] - 2.6.32-131.0.15.el6.x86_64
* Oracle Linux 6.1 \[atvm74-oracle6.1\] - 2.6.32-131.0.15.el6.x86_64
* Oracle Linux 6.2 \[atvm75-oracle6.2\] - 2.6.32-220.el6.x86_64
* Oracle Linux 6.2 \[atvm75-oracle6.2\] - 2.6.32-220.el6.x86_64
* Oracle Linux 6.3 \[atvm76-oracle6.3\] - 2.6.32-279.el6.x86_64
* Oracle Linux 6.3 \[atvm76-oracle6.3\] - 2.6.32-279.el6.x86_64
* Oracle Linux 6.4 \[atvm77-oracle6.4\] - 2.6.32-358.el6.x86_64
* Oracle Linux 6.4 \[atvm77-oracle6.4\] - 2.6.32-358.el6.x86_64
* Oracle Linux 6.5 \[atvm78-oracle6.5\] - 2.6.32-431.el6.x86_64
* Oracle Linux 6.5 \[atvm78-oracle6.5\] - 2.6.32-431.el6.x86_64
* Oracle Linux 6.6 \[atvm79-oracle6.6\] - 2.6.32-504.el6.x86_64
* Oracle Linux 6.6 \[atvm79-oracle6.6\] - 2.6.32-504.el6.x86_64
@@ -1141,18 +1133,18 @@ Notes:
* Oracle Linux 8.0 \[atvm94-oracle8.0\] - 4.18.0-80.el8.x86_64
* Oracle Linux 8.0 \[atvm94-oracle8.0\] - 4.18.0-80.el8.x86_64
* Oracle Linux 8.1 \[atvm95-oracle8.1\] - 4.18.0-147.el8.x86_64
* Oracle Linux 8.1 \[atvm95-oracle8.1\] - 4.18.0-147.el8.x86_64
* Over time need to multipath service becomes masked for some reason: unmask the service (systemctl unmask multipathd.service) or reinstall (yum -y remove device-mapper-multipath ; yum -y install device-mapper-multipath)
* Over time need to multipath service becomes masked for some reason: unmask the service (systemctl unmask multipathd.service) or reinstall (yum -y remove device-mapper-multipath ; yum -y install device-mapper-multipath)
* Oracle Linux 8.2 \[atvm96-oracle8.2\] - 4.18.0-193.el8.x86_64
* Oracle Linux 8.2 \[atvm96-oracle8.2\] - 4.18.0-193.el8.x86_64
* Oracle Linux 8.3 \[atvm97-oracle8.3\] - 4.18.0-240.el8.x86_64
* Oracle Linux 8.3 \[atvm97-oracle8.3\] - 4.18.0-240.el8.x86_64
* Oracle Linux 8.4 \[atvm98-oracle8.4\] - 4.18.0-305.el8.x86_64
* Oracle Linux 8.4 \[atvm98-oracle8.4\] - 4.18.0-305.el8.x86_64
* Oracle Linux 8.5 \[atvm99-oracle8.5\] - 4.18.0-348.el8.x86_64
* Oracle Linux 8.5 \[atvm99-oracle8.5\] - 4.18.0-348.el8.x86_64
* Oracle Linux 8.6 \[atvm100-oracle8.6\] - 4.18.0-372.9.1.el8.x86_64
* Oracle Linux 8.6 \[atvm100-oracle8.6\] - 4.18.0-372.9.1.el8.x86_64
* Oracle Linux 8.7 \[atvm101-oracle8.7\] - 4.18.0-425.3.1.el8.x86_64
* Oracle Linux 8.7 \[atvm101-oracle8.7\] - 4.18.0-425.3.1.el8.x86_64
* Oracle Linux 9.0 \[atvm102-oracle9.0\] - 5.14.0-70.13.1.0.3.el9_0.x86_64
* Oracle Linux 9.0 \[atvm102-oracle9.0\] - 5.14.0-70.13.1.0.3.el9_0.x86_64
* Oracle Linux 9.1 \[atvm103-oracle9.1\] - 5.14.0-162.6.1.el9_1.x86_64
* Oracle Linux 9.1 \[atvm103-oracle9.1\] - 5.14.0-162.6.1.el9_1.x86_64
* ==local boot migration will boot into a blank unresponsive screen after choosing kernel to boot into. There is no issue when doing remote boot migration.==
* ==local boot migration will boot into a blank unresponsive screen after choosing kernel to boot into. There is no issue when doing remote boot migration.==
* ==Windows Server 2008R2 \[atvm108-w2k8r2\] - 6.1.7601 Service Pack 1 Build 7601==
* ==Windows Server 2008R2 \[atvm108-w2k8r2\] - 6.1.7601 Service Pack 1 Build 7601==
* ==Lower priority - still needs to be worked on since it's older and is lacking support/==
* ==Lower priority - still needs to be worked on since it's older and is lacking support/==
@@ -1171,7 +1163,7 @@ Notes:
* Amazon Linux 2023 \[atvm114-amazonlinux2023\] - 6.1.61-85.141.amzn2023.x86_64
* Amazon Linux 2023 \[atvm114-amazonlinux2023\] - 6.1.61-85.141.amzn2023.x86_64
* ==Currently can't figure out how to get FC to work with Amazon Linux==
* ==Currently can't figure out how to get FC to work with Amazon Linux==
* ==Reboot template (cmc-automated-pure-allocation-reboot-test-template.py) won't work well because mtdi service starts up before the iscsi service starts (07/16/2024 - script was updated to resync when specific error was encountered.==
* ==Reboot template (cmc-automated-pure-allocation-reboot-test-template.py) won't work well because mtdi service starts up before the iscsi service starts (07/16/2024 - script was updated to resync when specific error was encountered.==
* **==#Waiting for request to support: Debian 9.1.0 \[atvm115-debian9.1.0\] - 4.9.0-3-amd64 (12/14/2023 need to use -no-check-certificate and --insecure to install cmc)==**
* **==#Waiting for request to support: Debian 9.1.0 \[atvm115-debian9.1.0\] - 4.9.0-3-amd64 (12/14/2023 need to use -no-check-certificate and --insecure to install cmc)==**
* Rocky Linux 9.3 \[atvm119-rocky9.3\] - 5.14.0-362.8.1.el9_3.x86_64
* Rocky Linux 9.3 \[atvm119-rocky9.3\] - 5.14.0-362.8.1.el9_3.x86_64
* RedHat Linux 9.3 \[atvm120-redhat9.3\] - 5.14.0-362.8.1.el9_3.x86_64
* RedHat Linux 9.3 \[atvm120-redhat9.3\] - 5.14.0-362.8.1.el9_3.x86_64
@@ -1215,7 +1207,7 @@ Notes:
* Suse Linux 15.6 \[atvm140-suse15.6\] - 6.4.0-150600.21-default
* Suse Linux 15.6 \[atvm140-suse15.6\] - 6.4.0-150600.21-default
* Hanging issue if doing "rescan-scsi-bus.sh -a -r" if done after cmotion → reboot… used updated version of sg3_utils. Doesn't seem to our issue. Skipping rescan for SUSE
* Hanging issue if doing "rescan-scsi-bus.sh -a -r" if done after cmotion → reboot… used updated version of sg3_utils. Doesn't seem to our issue. Skipping rescan for SUSE
* lsblk issue - can use redhat 8.8 lsblk to replace system one
* lsblk issue - can use redhat 8.8 lsblk to replace system one
* Suse Linux 15.3 \[atvm141-suse15.3\] - 5.14.21-150400.22-default
* Suse Linux 15.3 \[atvm141-suse15.3\] - 5.14.21-150400.22-default
* Couldn't make with base kernel 5.3.18-57-default for some reason?
* Couldn't make with base kernel 5.3.18-57-default for some reason?
* Hanging issue if doing "rescan-scsi-bus.sh -a -r" if done after cmotion → reboot… used updated version of sg3_utils. Doesn't seem to be our issue. Skipping rescan for SUSE
* Hanging issue if doing "rescan-scsi-bus.sh -a -r" if done after cmotion → reboot… used updated version of sg3_utils. Doesn't seem to be our issue. Skipping rescan for SUSE
* lsblk issue - can use redhat 8.8 lsblk to replace system one
* lsblk issue - can use redhat 8.8 lsblk to replace system one
@@ -1226,7 +1218,7 @@ Notes:
* Hanging issue if doing "rescan-scsi-bus.sh -a -r" if done after cmotion → reboot… used updated version of sg3_utils. Doesn't seem to be our issue. Skipping rescan for SUSE
* Hanging issue if doing "rescan-scsi-bus.sh -a -r" if done after cmotion → reboot… used updated version of sg3_utils. Doesn't seem to be our issue. Skipping rescan for SUSE
* lsblk issue - can use redhat 7.8 lsblk to replace system one
* lsblk issue - can use redhat 7.8 lsblk to replace system one
* Suse Linux 15.0 \[atvm144-suse15.0\] - 4.12.14-23-default
* Suse Linux 15.0 \[atvm144-suse15.0\] - 4.12.14-23-default
* ==Currently crashes when session is created.. skip this for automation for now==
* ==Currently crashes when session is created.. skip this for automation for now==
* Hanging issue if doing "rescan-scsi-bus.sh -a -r" if done after cmotion → reboot… used updated version of sg3_utils. Doesn't seem to be our issue. Skipping rescan for SUSE
* Hanging issue if doing "rescan-scsi-bus.sh -a -r" if done after cmotion → reboot… used updated version of sg3_utils. Doesn't seem to be our issue. Skipping rescan for SUSE
* lsblk issue - can use redhat 7.8 lsblk to replace system one
* lsblk issue - can use redhat 7.8 lsblk to replace system one
* Windows Server 2025 \[atvm145-w2k25\] - 10.0.26100 Build 26100
* Windows Server 2025 \[atvm145-w2k25\] - 10.0.26100 Build 26100
@@ -1247,14 +1239,14 @@ Notes:
* Suse Linux 15.7 \[atvm155-suse15.7\] UEFI - 6.4.0-150700.51-default
* Suse Linux 15.7 \[atvm155-suse15.7\] UEFI - 6.4.0-150700.51-default
* **==#Waiting for request to support - currently insertion has issues:==** ==Debian 9.3 \[atvm156-debian9.3.0\] - 4.9.0-4-amd64==
* **==#Waiting for request to support - currently insertion has issues:==** ==Debian 9.3 \[atvm156-debian9.3.0\] - 4.9.0-4-amd64==
* **==test==**
* **==test==**
* ==NEED TO REMAKE THIS - doesn't turn on==
* ==NEED TO REMAKE THIS - doesn't turn on==
* Debian 13.0.0 \[atvm157-debian13.0.0\] - 6.12.38+deb13-amd64 # need to set the multipath.conf
* Debian 13.0.0 \[atvm157-debian13.0.0\] - 6.12.38+deb13-amd64 # need to set the multipath.conf
```none
```none
defaults {
defaults {
find_multipaths "yes"
find_multipaths "yes"
}
}
```
```
* Debian 13.1.0 \[atvm158-debian13.1.0\] - 6.12.43+deb13-amd64 # need to set the multipath.conf
* Debian 13.1.0 \[atvm158-debian13.1.0\] - 6.12.43+deb13-amd64 # need to set the multipath.conf
@@ -1262,7 +1254,7 @@ Notes:
defaults {
defaults {
find_multipaths "yes"
find_multipaths "yes"
}
}
```
```
* Debian 13.2.0 \[atvm159-debian13.2.0\] - 6.12.57+deb13-amd64 \* RETEST - used setup script \* # need to set the multipath.conf
* Debian 13.2.0 \[atvm159-debian13.2.0\] - 6.12.57+deb13-amd64 \* RETEST - used setup script \* # need to set the multipath.conf
- Do not include generic watcher bookkeeping messages in `NOTES:` such as artifact-detection confirmations.
- Do not include generic watcher bookkeeping messages in `NOTES:` such as artifact-detection confirmations.
- Do not include internal watcher fallback notes in `NOTES:` such as `check-xml-files.ts` validation confirmations or reporter-artifact recovery details.
- Do not include internal watcher fallback notes in `NOTES:` such as `check-xml-files.ts` validation confirmations or reporter-artifact recovery details.
- The `HOSTS:` table includes `Host`, `Kernel`, `Status`, and `Detail` columns in that order.
- The `HOSTS:` table includes `Host`, `Kernel`, `Status`, and `Detail` columns in that order.
- Do not show total test/failure counts in the `Detail` column. Keep those counts in watcher state and summary logic only.
- For passed hosts, render `Detail` as `completed`.
- For any failed host, keep the `Detail` column compact by showing the failing step plus a short error summary, not the full raw stack trace.
- For any failed host, keep the `Detail` column compact by showing the failing step plus a short error summary, not the full raw stack trace.
- If richer failure text is available, put the longer trimmed excerpt in `FAILURE NOTES:` so the result stays readable in Mattermost and local status output.
- If richer failure text is available, put the longer trimmed excerpt in `FAILURE NOTES:` so the result stays readable in Mattermost and local status output.
- In `COVERAGE:`, describe the important `cmc-templates.py` command inputs such as template, categorize mode, datastore/config family, config filename, migration style, any real plugin/integration path, and other operator-relevant run options, but do not list target hosts there or include verbose prose scope descriptions.
- In `COVERAGE:`, describe the important `cmc-templates.py` command inputs such as template, categorize mode, datastore/config family, config filename, migration style, any real plugin/integration path, and other operator-relevant run options, but do not list target hosts there or include verbose prose scope descriptions.
@@ -665,3 +665,12 @@ This file stores run-specific examples only when a run produced a new learning r
- Action for future runs:
- Action for future runs:
- When a run is marked `FAILED` from hang-kill markers or non-zero runner exit and no host results are available, synthesize one failed host row from current host/spec inference.
- When a run is marked `FAILED` from hang-kill markers or non-zero runner exit and no host results are available, synthesize one failed host row from current host/spec inference.
- Use a clear failure detail such as `hang timeout killed runner` so operator-facing status always includes a concrete host failure line.
- Use a clear failure detail such as `hang timeout killed runner` so operator-facing status always includes a concrete host failure line.
## Run Learning: 2026-06-04 (Host detail should not show total test counts)
- Observed failure mode:
- A passing compute-migration run posted `29 tests, 0 failures` in the `HOSTS` detail column while `TEST FLOW:` listed 30 planned/generated spec steps.
- The mismatch was confusing because host detail came from actual Cypress reporter counts, while `TEST FLOW:` came from static generated-spec extraction.
- Action for future runs:
- Keep raw test/failure counts in watcher state for classification and debugging, but do not render them in the `HOSTS` detail column.
- For passing hosts, render detail as `completed`.
- For failed hosts, render only the failing step plus compact error summary; put richer excerpts in `FAILURE NOTES:`.
- Current VM membership for those datastores should be queried from live vCenter when needed, not stored as a maintained repo-side live reference list.
- Current VM membership for those datastores should be queried from live vCenter when needed, not stored as a maintained repo-side live reference list.
- ATVM datastore placement rule for explicit VM-list test requests:
- ATVM datastore placement rule for explicit VM-list test requests:
- all requested VMs must resolve to one datastore family only
- all requested VMs must resolve to one datastore family only
notes=notes+[f"Currents recorded run: `{currents_url}`"]
notes=notes+[f"Currents recorded run: `{currents_url}`"]
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.