Skip to content

Conversation

@sauragar
Copy link

Add automatic stackviz report generation for Tempest tests with comprehensive dependency checking and optional auto-installation.

New files:

  • scripts/generate-stackviz-report.py: Python script to generate interactive HTML reports from subunit test results
  • roles/test_operator/tasks/generate-stackviz.yml: Ansible tasks for automatic stackviz generation with dependency validation
  • scripts/README-stackviz.md: Complete documentation for stackviz integration
  • test-stackviz-integration.yml: Example test playbook
  • STACKVIZ-INTEGRATION-SUMMARY.md: Integration overview

Modified files:

  • roles/test_operator/tasks/run-test-operator-job.yml: Added stackviz generation after log collection for tempest tests
  • roles/test_operator/defaults/main.yml: Added configuration variables for stackviz (generation, debug, auto-install dependencies)

Features:

  • Automatic decompression of tempest_results.subunit.gz files
  • Individual validation of python-subunit and testtools packages
  • Detailed error messages with platform-specific installation commands
  • Optional automatic dependency installation via pip3
  • Interactive HTML visualization with timeline, search, and filtering
  • Single self-contained HTML file output at stackviz/tempest-viz.html

Signed-off-by: Saurabh Agarwal sauragar@redhat.com

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 30, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign eshulman2 for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@softwarefactory-project-zuul
Copy link

Merge Failed.

This change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.
Warning:
Error merging github.com/openstack-k8s-operators/ci-framework for 3642,391765d34c7308da6195153873d4f2a9e686eb05

@softwarefactory-project-zuul
Copy link

Merge Failed.

This change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.
Warning:
Error merging github.com/openstack-k8s-operators/ci-framework for 3642,1e440403b096ee38d607550c2820d229bd170061

@softwarefactory-project-zuul
Copy link

Merge Failed.

This change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.
Warning:
Error merging github.com/openstack-k8s-operators/ci-framework for 3642,cf813ccb5ff20479033a4ee12d9450fd74a0db4f

@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/9eebbe61675c4dcc9d088d2c2d5ea48d

✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 37m 18s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 22m 59s
✔️ cifmw-crc-podified-edpm-baremetal SUCCESS in 1h 50m 51s
✔️ cifmw-crc-podified-edpm-baremetal-minor-update SUCCESS in 2h 22m 10s
✔️ cifmw-multinode-tempest SUCCESS in 1h 46m 02s
✔️ cifmw-pod-zuul-files SUCCESS in 4m 52s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 8m 21s
cifmw-pod-pre-commit FAILURE in 8m 48s
✔️ cifmw-molecule-test_operator SUCCESS in 3m 09s

@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/8f1eb8e960fb4d9e8ca4f4a98fc80cda

✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 19m 50s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 15m 42s
✔️ cifmw-crc-podified-edpm-baremetal SUCCESS in 1h 33m 14s
✔️ cifmw-crc-podified-edpm-baremetal-minor-update SUCCESS in 2h 06m 58s
cifmw-multinode-tempest FAILURE in 24m 49s
✔️ cifmw-pod-zuul-files SUCCESS in 4m 39s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 8m 41s
cifmw-pod-pre-commit FAILURE in 8m 11s
✔️ cifmw-molecule-test_operator SUCCESS in 3m 04s

@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/11f7659c426842b28edff49ed1d8f0cf

✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 11m 41s
podified-multinode-edpm-deployment-crc FAILURE in 1h 07m 35s
✔️ cifmw-crc-podified-edpm-baremetal SUCCESS in 1h 24m 03s
✔️ cifmw-crc-podified-edpm-baremetal-minor-update SUCCESS in 1h 57m 47s
cifmw-multinode-tempest FAILURE in 1h 35m 11s
✔️ cifmw-pod-zuul-files SUCCESS in 4m 47s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 13m 19s
cifmw-pod-pre-commit FAILURE in 8m 07s
✔️ cifmw-molecule-test_operator SUCCESS in 3m 02s

@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/75bb82277de440b3ac6855780f9c6fa9

✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 09m 12s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 23m 08s
✔️ cifmw-crc-podified-edpm-baremetal SUCCESS in 1h 32m 04s
✔️ cifmw-crc-podified-edpm-baremetal-minor-update SUCCESS in 1h 51m 40s
✔️ cifmw-multinode-tempest SUCCESS in 1h 44m 41s
✔️ cifmw-pod-zuul-files SUCCESS in 4m 35s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 8m 58s
cifmw-pod-pre-commit FAILURE in 9m 39s
✔️ cifmw-molecule-test_operator SUCCESS in 3m 25s

@sauragar
Copy link
Author

sauragar commented Feb 3, 2026

PR Summary: Fix Stackviz Report Generation for Tempest Tests

Problem Statement

The stackviz integration for visualizing Tempest test results was not generating reports in Zuul CI runs. Investigation
revealed multiple issues preventing the feature from working:

  1. Incorrect log collection path - The oc cp command used a relative path instead of an absolute path when copying logs
    from PVCs
  2. File type mismatch - Code searched for compressed .subunit.gz files, but test-operator creates uncompressed .subunit
    files
  3. Missing Python dependencies - Required packages (python-subunit, testtools) were not installed by default
  4. Unnecessary directory nesting - Log collection created extra step-X/ wrapper directories

Solution Overview

This PR fixes the stackviz integration through 13 commits that address all identified issues and improve documentation:

Core Fixes (5 commits)

  1. Fix log collection path (bd1b1d0)
    - Added missing leading / to pod_path variable in collect-logs.yaml:78
    - Changed from mnt/logs-... to /mnt/logs-... to match absolute PVC mount paths
  2. Handle compressed and uncompressed files (42ae3cf)
    - Updated search pattern from tempest_results.subunit.gz to tempest_results.subunit*
    - Added compression detection logic to check for .gz extension
    - Conditionally decompress only if file is compressed
    - Use uncompressed files directly when available
  3. Enable auto-install of dependencies (81f0dc1)
    - Changed cifmw_test_operator_stackviz_auto_install_deps default from false to true
    - Automatically installs python-subunit and testtools via pip3 when missing
  4. Fix directory structure (db69dc7)
    - Removed unnecessary step-X/ wrapper by updating oc cp destination
    - Files now copied directly to proper location without extra nesting
  5. Add debug output (ee6ea4f)
    - Added PVC file inspection tasks to diagnose missing files
    - Helped identify that files were uncompressed, not in expected location

Cleanup & Documentation (8 commits)

  1. Remove debug tasks (61ce3dd)
    - Cleaned up temporary diagnostic code after issue was resolved
  2. Document stackviz configuration (16dbf32)
    - Added all 4 stackviz variables to roles/test_operator/README.md
    - Provides clear documentation for end users
  3. Remove redundant documentation (820fb09)
    - Deleted 3 overlapping README files to reduce clutter:
    • scripts/README-stackviz.md
    • STACKVIZ-INTEGRATION-SUMMARY.md
    • MULTI-STAGE-STACKVIZ-EXAMPLE.md
  4. Remove test playbook (a8b3e36)
    - Deleted test-stackviz-integration.yml as it's no longer needed
    - Had outdated path assumptions after recent fixes
  5. Add spell-check dictionary entries (627760f)
    - Added Stackviz, subunit, and testtools to docs/dictionary/en-custom.txt
    - Fixes spell-check CI failures
  6. Add dark/light mode toggle (35bea62)
    - Complete theme system with CSS variables for dark and light modes
    - Toggle button in report header to switch themes
    - Theme preference saved to localStorage (persists across page reloads)
    - Smooth 0.3s transitions between themes
    - Canvas elements (timeline/minimap) update with theme
    - All UI components (modals, tooltips, search bar, tables) are theme-aware
    - Defaults to dark mode

Foundation (3 commits)

  1. File organization (cf6a901)
    - Renamed stackviz task files for clarity (main/worker pattern)
  2. Multi-stage support (50e548f)
    - Added support for workflow-based test execution with multiple stages
  3. Initial integration (bf03737)
    - Base stackviz integration commit

Configuration Variables

Four new variables control stackviz behavior (all documented in roles/test_operator/README.md):

  • cifmw_test_operator_generate_stackviz: true (Enable/disable stackviz generation)
  • cifmw_test_operator_stackviz_debug: false (Enable debug output)
  • cifmw_test_operator_stackviz_auto_install_deps: true (Auto-install Python dependencies)
  • cifmw_test_operator_stackviz_create_index: true (Create summary index for multi-stage tests)

Files Modified

Core functionality:

  • roles/test_operator/tasks/collect-logs.yaml - Fixed pod path and oc cp destination
  • roles/test_operator/tasks/generate-stackviz-main.yml - Updated file search pattern
  • roles/test_operator/tasks/generate-stackviz-worker.yml - Added compression handling
  • roles/test_operator/defaults/main.yml - Enabled auto-install by default

Documentation:

  • roles/test_operator/README.md - Added stackviz configuration variables
  • docs/dictionary/en-custom.txt - Added technical terms for spell-check

Files Deleted

  • scripts/README-stackviz.md
  • STACKVIZ-INTEGRATION-SUMMARY.md
  • MULTI-STAGE-STACKVIZ-EXAMPLE.md
  • test-stackviz-integration.yml

Testing & Verification

✅ Verified in Zuul CI:

  • Log files correctly copied from PVCs (absolute path works)
  • tempest_results.subunit files found (pattern matches uncompressed files)
  • Python dependencies auto-install successfully
  • tempest-viz.html reports generated in correct locations
  • No extra step-X/ directory nesting
  • Spell-check passes with new dictionary entries
  • Dark/light mode toggle works in generated reports

Expected Output

After Tempest tests complete, users will find:

Single test stage:
~/ci-framework-data/tests/test_operator/
└── tempest-tests-tempest/
└── tempest_results.subunit
└── tempest-viz.html # Interactive HTML report

Multiple test stages (workflows):
~/ci-framework-data/tests/test_operator/
└── tempest-tests-tempest-s00-stage-name/
└── tempest-viz.html
└── tempest-tests-tempest-s01-another-stage/
└── tempest-viz.html
└── stackviz/
└── index.html # Summary index linking all reports

Report Features

The generated stackviz HTML reports include:

📊 Core Visualization:

  • Summary statistics (total, passed, failed, skipped tests, duration)
  • Interactive timeline showing test execution across workers
  • Searchable and filterable test list
  • Detailed test information with error tracebacks

🎨 Theme Support:

  • Dark mode (default) - Easy on the eyes for extended viewing
  • Light mode - Better for printing or bright environments
  • One-click theme toggle button in header
  • Smooth transitions between themes
  • Preference saved and persists across page reloads
  • All components (timeline, charts, modals) respect theme

🔍 Interaction:

  • Click tests in timeline or table to view details
  • Filter tests by status (passed, failed, skipped)
  • Search tests by name
  • Zoom/pan timeline using minimap navigator
  • Hover tooltips show test information

Benefits

  • 🎯 Automatic visualization - No manual steps needed
  • 📊 Interactive reports - Timeline view, search, filtering
  • 🔧 Dependency handling - Auto-installs missing packages
  • 📁 Clean structure - Files in proper locations without extra nesting
  • 🔄 Multi-stage support - Handles workflow-based test execution
  • 📚 Well documented - Configuration variables clearly explained
  • 🎨 User-friendly - Dark/light mode for different viewing preferences
  • 💾 Persistent settings - Theme choice remembered
  • ♿ Accessible - Works offline, self-contained HTML

Technical Highlights

Python Script Improvements:

  • Complete CSS variable system for theming
  • JavaScript theme toggle with localStorage persistence
  • Canvas rendering updates with theme changes
  • Smooth 0.3s transitions for better UX
  • ~968 lines of optimized code

Ansible Role Improvements:

  • Robust error handling for missing dependencies
  • Automatic detection of compressed vs uncompressed files
  • Multi-stage workflow support
  • Clear error messages with actionable solutions

Related Issues

  • Fixes stackviz report generation in Zuul CI
  • Resolves log collection path issues
  • Addresses file type detection problems
  • Improves user experience with theme options

@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/1ad35fe4e1874a5d995b1b081965dc9a

✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 18m 11s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 23m 56s
✔️ cifmw-crc-podified-edpm-baremetal SUCCESS in 1h 37m 20s
✔️ cifmw-crc-podified-edpm-baremetal-minor-update SUCCESS in 2h 02m 21s
cifmw-multinode-tempest FAILURE in 25m 10s
✔️ cifmw-pod-zuul-files SUCCESS in 5m 37s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 9m 47s
cifmw-pod-pre-commit FAILURE in 8m 59s
✔️ cifmw-molecule-test_operator SUCCESS in 3m 24s

@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/7f226ed574e54971acc665beca6f4750

✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 05m 33s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 20m 27s
✔️ cifmw-crc-podified-edpm-baremetal SUCCESS in 1h 28m 16s
✔️ cifmw-crc-podified-edpm-baremetal-minor-update SUCCESS in 1h 52m 29s
✔️ cifmw-multinode-tempest SUCCESS in 1h 39m 13s
✔️ cifmw-pod-zuul-files SUCCESS in 4m 26s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 8m 28s
cifmw-pod-pre-commit FAILURE in 8m 15s
✔️ cifmw-molecule-test_operator SUCCESS in 3m 35s

@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/3f99653ac2a64483bf6d1550aeaf7f6a

✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 08m 27s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 21m 57s
✔️ cifmw-crc-podified-edpm-baremetal SUCCESS in 1h 47m 47s
cifmw-crc-podified-edpm-baremetal-minor-update RETRY_LIMIT in 29m 47s
✔️ cifmw-multinode-tempest SUCCESS in 1h 53m 07s
✔️ cifmw-pod-zuul-files SUCCESS in 4m 43s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 8m 38s
cifmw-pod-pre-commit FAILURE in 11m 20s
✔️ cifmw-molecule-test_operator SUCCESS in 3m 16s

@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/d8974b19497244cc8715428016054050

✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 07m 15s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 19m 00s
✔️ cifmw-crc-podified-edpm-baremetal SUCCESS in 1h 42m 05s
✔️ cifmw-crc-podified-edpm-baremetal-minor-update SUCCESS in 1h 53m 32s
✔️ cifmw-multinode-tempest SUCCESS in 1h 44m 53s
✔️ cifmw-pod-zuul-files SUCCESS in 4m 40s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 8m 26s
cifmw-pod-pre-commit FAILURE in 8m 17s
✔️ cifmw-molecule-test_operator SUCCESS in 3m 39s

@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/6f2107258d6941c793b79b9718e453e3

openstack-k8s-operators-content-provider FAILURE in 6m 45s
⚠️ podified-multinode-edpm-deployment-crc SKIPPED Skipped due to failed job openstack-k8s-operators-content-provider
⚠️ cifmw-crc-podified-edpm-baremetal SKIPPED Skipped due to failed job openstack-k8s-operators-content-provider
⚠️ cifmw-crc-podified-edpm-baremetal-minor-update SKIPPED Skipped due to failed job openstack-k8s-operators-content-provider
⚠️ cifmw-multinode-tempest SKIPPED Skipped due to failed job openstack-k8s-operators-content-provider
✔️ cifmw-pod-zuul-files SUCCESS in 16m 24s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 21m 46s
cifmw-pod-pre-commit FAILURE in 14m 55s
cifmw-molecule-test_operator RETRY_LIMIT in 5m 03s

@sauragar
Copy link
Author

sauragar commented Feb 9, 2026

recheck

@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/f9b15630dea8425684d21ce011dd8cf3

✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 17m 07s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 20m 21s
✔️ cifmw-crc-podified-edpm-baremetal SUCCESS in 1h 40m 30s
cifmw-crc-podified-edpm-baremetal-minor-update FAILURE in 2h 03m 40s
✔️ cifmw-multinode-tempest SUCCESS in 1h 41m 11s
✔️ cifmw-pod-zuul-files SUCCESS in 4m 23s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 9m 00s
cifmw-pod-pre-commit FAILURE in 28m 52s
✔️ cifmw-molecule-test_operator SUCCESS in 3m 37s

@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/7359cdd1f98c4abc8ae2be9866549620

✔️ openstack-k8s-operators-content-provider SUCCESS in 1h 51m 04s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 19m 46s
✔️ cifmw-crc-podified-edpm-baremetal SUCCESS in 1h 37m 07s
cifmw-crc-podified-edpm-baremetal-minor-update FAILURE in 29m 27s
cifmw-multinode-tempest FAILURE in 19m 31s
✔️ cifmw-pod-zuul-files SUCCESS in 4m 38s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 8m 34s
cifmw-pod-pre-commit FAILURE in 8m 06s
✔️ cifmw-molecule-test_operator SUCCESS in 3m 16s

Copy link
Contributor

@kstrenkova kstrenkova left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for this PR, it seems useful and to be working correctly :D. I only have a few nitpicks.

type: tempest
cifmw_test_operator_fail_on_test_failure: true
cifmw_test_operator_artifacts_basedir: "{{ cifmw_basedir }}/tests/test_operator"
cifmw_test_operator_generate_stackviz: true
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(nitpick) I would name this variable cifmw_test_operator_stackviz_generate so every parameter that is related to stackviz would start with cifmw_test_operator_stackviz_ prefix.

- name: Generate stackviz HTML report
when:
- not testpod_timed_out
- cifmw_test_operator_generate_stackviz | default(true)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(nitpick) I don't think this needs default(true) as the default should be set in roles/test_operator/defaults/main.yaml, which it already is :D So I think one source of truth is enough.

ansible.builtin.shell: >
oc cp -n {{ stage_vars_dict.cifmw_test_operator_namespace }}
test-operator-logs-pod-{{ run_test_fw }}-{{ test_operator_instance_name }}:{{ pod_path }}
test-operator-logs-pod-{{ run_test_fw }}-{{ test_operator_instance_name }}:{{ pod_path }}/.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure why this is needed (/.) 🤔 The change above (/mnt/logs...) seems like a good change as the mountpath earlier also starts with backslash.

{% if ansible_os_family == 'Darwin' %}
open {{ cifmw_test_operator_artifacts_basedir }}/stackviz/index.html
{% else %}
xdg-open {{ cifmw_test_operator_artifacts_basedir }}/stackviz/index.html
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why?

- _stackviz_missing_packages | length > 0
- cifmw_test_operator_stackviz_auto_install_deps | default(false)
block:
- name: Install missing Python packages via pip3
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be one single task installing rpm packages.

when: _stackviz_missing_packages | length == 0

# Create summary index page
- name: Create stackviz summary index
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why create index?

- _stackviz_generated_reports | length > 0
- cifmw_test_operator_stackviz_create_index | default(true)
block:
- name: Create stackviz directory
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stackviz?


- name: Generate summary index HTML
ansible.builtin.template:
src: stackviz-index.html.j2
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why?

… fixes

Add comprehensive stackviz integration for Tempest test visualization
with support for multi-stage test execution. This includes generation
of interactive HTML reports with test results, timing analysis, and
failure details.

Key features:
- Multi-stage stackviz report generation for main and worker jobs
- Dark/light mode toggle for better viewing experience
- Separate stackviz reports for tempest retry results
- Support for both compressed and uncompressed subunit files
- Auto-install of stackviz dependencies by default

Improvements and fixes:
- Fix stackviz script path for adoption jobs using cifmw_repo variable
  instead of playbook_dir to ensure correct script location
- Fix log collection path for subunit files
- Rename stackviz files for clarity using main/worker pattern
- Remove unnecessary step-X directory wrapper in log collection
- Clean up redundant documentation and debug tasks

Documentation:
- Document stackviz configuration variables in README
- Add stackviz-related terms to spell-check dictionary

This ensures stackviz works correctly across all job types including
periodic-internal-adoption-* jobs.

Signed-off-by: sauragar <sauragar@redhat.com>
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Merge upstream main branch to incorporate recent updates and keep
the branch in sync with the base branch.

This includes updates to common-requirements.txt.

Signed-off-by: sauragar <sauragar@redhat.com>
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 10, 2026

Adding label do-not-merge/contains-merge-commits because PR contains merge commits, which are not allowed in this repository.
Use git rebase to reapply your commits on top of the target branch. Detailed instructions for doing so can be found here.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/a8f037a31df54b2d8233f253618cee1f

openstack-k8s-operators-content-provider NODE_FAILURE Node request 100-0008160431 failed in 0s
⚠️ podified-multinode-edpm-deployment-crc SKIPPED Skipped due to failed job openstack-k8s-operators-content-provider
⚠️ cifmw-crc-podified-edpm-baremetal SKIPPED Skipped due to failed job openstack-k8s-operators-content-provider
⚠️ cifmw-crc-podified-edpm-baremetal-minor-update SKIPPED Skipped due to failed job openstack-k8s-operators-content-provider
⚠️ cifmw-multinode-tempest SKIPPED Skipped due to failed job openstack-k8s-operators-content-provider
cifmw-pod-zuul-files NODE_FAILURE Node request 100-0008160432 failed in 0s
✔️ noop SUCCESS in 0s
cifmw-pod-ansible-test NODE_FAILURE Node request 100-0008160433 failed in 0s
cifmw-pod-pre-commit NODE_FAILURE Node request 100-0008160434 failed in 0s
✔️ cifmw-molecule-test_operator SUCCESS in 3m 23s

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants