7.5 KiB
Run ATVM Automation Guide
This file is guide-only documentation for operating ATVM CMC automation.
Do not put specific run examples here.
For reusable command examples and common option combinations, use atvm-automation-examples.md.
Purpose
Run ATVM CMC automation tests on the designated automation VM without unintended system or file changes.
ATVM Cypress Automation Controller Client
- Hostname:
atvm-cypres-vm-1 - IP:
192.168.3.190 - Credentials:
root / atvmcdsi2012
Operating Constraints
- Run only scripts/commands explicitly requested.
- Do not make manual system configuration changes on the client.
- Do not edit client files unless explicitly requested.
Operator Preferences
- Do not include Gold Disk identifiers in
--build_name. --build_namemust not contain spaces; use-between words.- For multiple VMs in same distro, use distro-scoped filtering (
--containsVm) instead of long explicit VM lists. - Before preparing a new run, always check whether automation is already running.
- Always report whether automation is currently running.
- If running, ask whether to terminate; terminate only with explicit approval.
- After termination approval, terminate first, then present planned command(s), then wait for separate execution approval.
- Before any run, always show exact planned command(s) and wait for explicit approval.
- Execute only after explicit approval (for example
approve). - After execution, report immediate success/failure only.
- Do not actively monitor completion unless explicitly requested.
- If monitoring is requested, allow long runtime windows (15-30+ minutes) and continue until completion unless operator instructs otherwise.
- Report command errors immediately.
sshpassmay be used where password-based SSH automation is required.
Core Scripts
- Template prep:
/root/cdc-e2e-cyp-12.17.4/cmc-templates.py - Test execution:
./run-sorry-cypress.py
Typical sequence:
- Run
cmc-templates.pywith requested template/options. - Run
run-sorry-cypress.pywith matching config and build name.
Config File / Gold Disk Mapping
cypress.atvm-config-gold.ts-> Gold Disk 1cypress.atvm-config-gold-2.ts-> Gold Disk 2- Additional numbered config variants map to corresponding Gold Disks.
Available Templates
cmc-e2ecmc-group-consistencycmc-h2h-diff-platfcmc-h2h-same-platfcmc-migrateopscmc-migrateops-compute-migrationcmc-rebootcmc-systemOS
Command Pattern
python3 cmc-templates.py --template <template> --config_file_path ./<config-file> [template options...]; \
python3 ./run-sorry-cypress.py --config_file <config-file> --build_name <hyphenated-description-no-spaces>
Examples Reference
- Commonly used command examples:
atvm-automation-examples.md - Keep this guide focused on run-control rules and workflow constraints.
Example Option Patterns (Guide-Only)
- Distro-scoped VM selection:
--containsVm redhat--containsVm redhat9
- Explicit VM selection:
--specify_vms <vm1> <vm2> ...
- Compute migrateops platform:
--vm_platforms vmware|ovirt|openshift|proxmox
Blacklisted Machines
Always exclude these machines from ATVM automation runs by adding them to --exclude_partial_match.
Permanently blacklisted because CMC cannot compile:
atvm6-centos6.0atvm41-redhat6.0atvm73-oracle6.0
Temporarily blacklisted while support requests are waiting:
atvm113-debian9.0.0atvm115-debian9.1.0atvm116-debian9.2.0atvm156-debian9.3.0
Temporarily blacklisted until re-created:
atvm157-debian13.0.0
Preferred exclude list:
--exclude_partial_match atvm6-centos6.0 atvm41-redhat6.0 atvm73-oracle6.0 atvm113-debian9.0.0 atvm115-debian9.1.0 atvm116-debian9.2.0 atvm156-debian9.3.0 atvm157-debian13.0.0
Running-Automation Check (Mandatory)
Before any new automation request:
- SSH to
root@192.168.3.190. - Check for active automation processes (for example
run-sorry-cypress.py,cmc-templates.py, and related Cypress runners). - Report:
Runningwith process details, orNot running.
- If
Running, ask operator whether to terminate. - If termination is approved, terminate matching process(es), confirm termination, then proceed to planned-command approval.
- If termination is not approved, do not start a new run.
Approval Workflow (Mandatory)
- Build exact command(s) for the request.
- Present them verbatim as planned commands.
- Wait for explicit approval.
- Run only approved command(s), no extra options.
- If monitoring was not requested, report immediate success/failure for each command.
- If monitoring was requested, keep monitoring until completion and report final outcome.
Requested Test Style
When asked for one VM or a VM set:
- choose requested template/options,
- choose correct config file for intended Gold Disk,
- use a descriptive
--build_namewithout Gold Disk IDs.
Update Rule
- After each run, update this guide only for workflow/rule/default changes.
- Update
atvm-automation-examples.mdfor reusable command/option examples. - Add run-specific learnings only to
atvm-automation-runs.mdwhen the run produced new information.
Monitoring Policy
- Monitor only when the operator explicitly asks to monitor.
- If monitoring was not requested, run commands and report execution success/failure and any errors.
- If monitoring was requested, do not terminate processes automatically; only terminate if the operator explicitly instructs termination.
Status Reporting Format
When the operator asks for the status of an ATVM automation run, report in this order:
- Heading/title using the run
build_name. - Completed machines with pass/fail state for each machine.
- Skipped machines with reason.
- Remaining machines still to run.
- Summary counts for finished, passed, failed, and skipped machines.
- Timing details:
- start time
- end time if complete
- total run time if complete, or elapsed run time if still running
- quickest completed test runtime
- longest completed test runtime
- average completed test runtime
- Estimated completion time.
Status-report expectations:
- Use the live automation VM state when available.
- Derive the heading/title from the run
build_namewhen available. - Derive completed-machine status from completed spec results already written to the run log.
- Include the run start time in every status response when it can be derived from the run log.
- If the run is complete, include the end time and total run time.
- If the run is still active, include the elapsed run time so far.
- Include quickest completed test runtime, longest completed test runtime, and average completed test runtime under timing details when they can be derived from the run log.
- Show blacklisted machines under skipped machines even if they are part of the broader machine family requested by the operator.
- For skipped machines, include the reason category:
BLACKLISTED: CMC INSTALL - CAN'T COMPILEBLACKLISTED: SUPPORT REQUEST - WAITINGBLACKLISTED: RE-CREATE NEEDED
- If a machine is currently in progress, show it under remaining machines as
RUNNING. - If a machine has not started yet, show it under remaining machines as
NOT STARTED. - If no failures are present in completed spec results, report those completed machines as
PASS. - If a completed spec result shows a failure, report that machine as
FAILand include the failure reason from the run log. - Base the completion estimate on the current remaining machine count and recent per-machine runtime visible in the run log.