Skip to main content

Get sosreport dynflow files and generates user friendly html pages for

Project description

DynflowParser

What's new

DynflowParser brings significant improvements over the original version including:

  • 5-10x faster performance with optimized CSV parsing (pandas) and SQLite operations (WAL mode, compound indexes);
  • Built-in HTTP server with network interface detection and SSH tunnel support for easy local and remote access;
  • Enhanced UX with full-width responsive layout, improved text readability.

Description

DynflowParser reads Dynflow task data from a sosreport and generates user-friendly HTML pages for analyzing Foreman/Satellite task execution. It provides an intuitive interface to browse Tasks, Plans, Actions, and Steps with automatic error highlighting and timezone conversion.

The companion command dynflowparser-export-tasks overcomes sosreport file size limitations by exporting tasks directly from the Foreman database.

Tasks List Task Details

Main Features

  • Smart Filtering: Only failed tasks parsed by default (use -a for all tasks)
  • Error Navigation: Failed Actions & Steps automatically expanded for quick troubleshooting
  • System Context: Header displays Hostname, Timezone, Satellite version, RAM, CPU, and Tuning profile
  • Timezone Support: UTC dates automatically converted to sosreport timezone
  • Formatting: Indented and readable fields for Actions & Steps
  • HTTP Server: Built-in web server with --httpd-server and --ssh-tunnel options for remote web access
  • Browser Integration: Automatically opens output in default browser
  • CLI Friendly: (Work In Progress) Lynx-compatible for terminal-based browsing

Requirements

  • Python 3.6+
  • Required libraries:
    • Jinja2
    • pandas
    • pytz

Installation

Using pip:

pip install dynflowparser

Using prebuilt packages:

Download from Latest Release

Usage

dynflowparser

dynflowparser [-h] [--version] [-a] [-d {D,I,W,E}] [-f DATE_FROM] [-t DATE_TO] 
              [-l LAST_N_DAYS] [-n] [-q] [-o OUTPUT_PATH] 
              [--httpd-server | --ssh-tunnel] [sosreport_path]

Positional arguments:

  • sosreport_path: Path to sosreport folder (default: current directory)

Optional arguments:

  • -h, --help: Show help message and exit
  • -v, --version: Show program version and exit
  • -a, --all: Parse all tasks (default: only unsuccessful)
  • -d, --debug {D,I,W,E}: Debug level (default: W)
  • -f, --from DATE_FROM: Parse tasks running from this datetime
  • -t, --to DATE_TO: Parse tasks running up to this datetime
  • -l, --last LAST_N_DAYS: Parse only last N days (overrides --from and --to)
  • -n, --nosql: Reuse existing SQLite file
  • -q, --quiet: Quiet mode, no progress bar
  • -o, --output_path OUTPUT_PATH: Write output to this path (default: ./dynflowparserng/)
  • --httpd-server: Start HTTP server to serve generated pages
  • -s, --ssh-tunnel: Start HTTP server with SSH tunnel instructions (localhost binding)

Examples:

# Show version
dynflowparser --version

# Parse sosreport in current directory
dynflowparser

# Parse all tasks from specific sosreport
dynflowparser -a /path/to/sosreport

# Parse last 7 days with HTTP server
dynflowparser -l 7 --httpd-server /path/to/sosreport

# Parse with SSH tunnel for remote access
dynflowparser --ssh-tunnel /path/to/sosreport

dynflowparser-export-tasks

This command must be executed on the Foreman/Satellite server.

dynflowparser-export-tasks [-h] [-d DAYS] [-f FILTER] 
                           [-r {cancelled,error,pending,success,warning}]
                           [-s {paused,planning,pending,running,scheduled,stopped}]

Optional arguments:

  • -d, --days DAYS: Number of days to export (default: 14)
  • -f, --filter FILTER: Custom filter query (e.g., label LIKE '%Manifest%')
  • -r, --result: Filter by task result
  • -s, --state: Filter by task state

Examples:

# Export last 14 days (default)
dynflowparser-export-tasks

# Export last 30 days of failed tasks
dynflowparser-export-tasks -d 30 -r error

# Export tasks matching specific label
dynflowparser-export-tasks -f "label LIKE '%Repository%'"

Limitations

  • Sosreport requests last 14 days by default
  • Sosreport truncates output files at 100MB, potentially missing records
  • Supported Dynflow schema versions: 24 (Satellite 6.11), 25 (Satellite 6.19+)
  • For larger datasets, use dynflowparser-export-tasks on the Foreman server

Project: https://github.com/pafernanr/dynflowparser
License: GPLv3

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dynflowparser-2.0.0rc2.tar.gz (43.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dynflowparser-2.0.0rc2-py3-none-any.whl (48.5 kB view details)

Uploaded Python 3

File details

Details for the file dynflowparser-2.0.0rc2.tar.gz.

File metadata

  • Download URL: dynflowparser-2.0.0rc2.tar.gz
  • Upload date:
  • Size: 43.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dynflowparser-2.0.0rc2.tar.gz
Algorithm Hash digest
SHA256 788a8b856d6ef89738446ba2420d4b581763f720cfb6f99316f270b837c44964
MD5 ac1865fa40c40030266da4f7ab6b3268
BLAKE2b-256 5510ff2d741559a9dd2bb5a7b3f5ff0875ca7422b81655a96ad56fbead3f7920

See more details on using hashes here.

Provenance

The following attestation bundles were made for dynflowparser-2.0.0rc2.tar.gz:

Publisher: publish-pypi.yml on pafernanr/dynflowparser

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dynflowparser-2.0.0rc2-py3-none-any.whl.

File metadata

File hashes

Hashes for dynflowparser-2.0.0rc2-py3-none-any.whl
Algorithm Hash digest
SHA256 d68c53400d6638dce4f2f3f73d5e924db35509c0111c327bd2fa7329efe04276
MD5 df5735b18c10ebe00f5303c3c93e33ef
BLAKE2b-256 fdaae52edc3be2ba934f4e66aafcac876fa6ba507f01a350a994d2e5f2c64754

See more details on using hashes here.

Provenance

The following attestation bundles were made for dynflowparser-2.0.0rc2-py3-none-any.whl:

Publisher: publish-pypi.yml on pafernanr/dynflowparser

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page