Skip to content

Releases: quadsproject/badfish

v1.4.0

27 Apr 11:36

Choose a tag to compare

v1.4.0 (2026-04-27)

Chores

  • Fix black formatting for CI. (03fc02e)

  • Fix importscp tests race condition (af074d8)

  • Migration to new repo url. (f6890c7)

Features

  • Introducing Rich for polling progress bars (b738358)

Detailed Changes: v1.3.0...v1.4.0

v1.3.0

22 Apr 12:24

Choose a tag to compare

v1.3.0 (2026-04-22)

Bug Fixes

  • export_scp method polling loop 'continue' statement was nested inside an unnecessary 'else:' block after the timeout check. This made the control flow inconsistent with the working import_scp() method.

fixes: #499

  • Add fallback / warn intelligence for XX710 NIC (a726de9)
  • We think intel XX710 may not be able to do 128 VRF
  • Add proper warning but don't fail.
  • Refactor create_job to use _extract_job_id_from_response (28cca05)
  • try not to go too crazy with pragma no cover
  • Resolve export_scp hanging at low percentages due to iDRAC API caching bug (ecb03a2)
  • making additional fixes here and testing, we were good but tinkered
    too much with control flow mechanisms
  • Resort back to a simpler approach. (b91a73a)
  • revert back to a less aggress and simpler approach
  • Sriov set nic attributes dont persist on reboot. (da0ef9e)

fixes: #523

Chores

  • Add more SSL test coverage (0621a67)

  • Add poll_helpers test (b1db697)

  • Address code review feedback (26223b9)

  • Address code review points, DRY. (cf8a454)

  • Adust tests and PR feedback, increase default retries to 30. (e1516e6)

  • essentially 2.7 minutes may not be enough time to poll idrac (15x
    retries). Increasing this to 30 retries or just over 5min.
  • Don't obesess over defensive / firmware status handling
  • Try to eek out more test coverage (93b5e53)

  • Update testing coverage (6e8fb92)

Features

  • Add --insecure flag and SSL verification. (42b7441)

fixes: #499

fixes: #498

  • We now properly check SSL connections and offer an --insecure parameter. * export_scp hang bug: Fixed by discovering that Dell iDRAC API endpoints (both Tasks and Jobs) return stale/cached status data showing "Running" indefinitely even after the job * Add more fixes for --export-scp feature * Workaround: Instead of unreliable polling, we now wait 45 seconds which is more than enough time then fetch json. * This now fully works and is fast.
  • INFO - Job for exporting server configuration successfully created. Job ID: JID_763636328050 - INFO - Waiting for export job to complete (typically takes 15-30 seconds)... - INFO - SCP export completed successfully. - INFO - Exported system configuration to file: ./2026-04-16_142201_targets_IDRAC-BIOS_export.json - INFO - Job for exporting server configuration successfully created. Job ID: JID_763636328050 - INFO - Waiting for export job to complete (typically takes 15-30 seconds)... - INFO - SCP export completed successfully. - INFO - Exported system configuration to file: ./2026-04-16_142201_targets_IDRAC-BIOS_export.json

real 0m57.349s user 0m0.409s sys 0m0.066s

  • Add --version flag to CLI (215d1ea)

Resolves #525.

(cherry picked from commit fdd7b1d)

fixes: #450

  • Refactor to include three helper functions. (2d662a5)
  • Always be DRY'ing

Helper 1: _extract_job_id_from_response() Helper 2: _verify_job_scheduled() Helper 3: _monitor_and_verify_attribute_job()


Detailed Changes: v1.2.0...v1.3.0

v1.2.0

13 Feb 13:10

Choose a tag to compare

v1.2.0 (2026-02-13)

Bug Fixes

  • Apply black fixes, more test cov for nic attr (b31e537)

  • Incorrect credentials are masked by traceback (54fa694)

  • find_session_uri masks a proper error message when someone passes incorrect credentials (either by vars or user/pass). * response body seems to be a JSON object and not a redfish root object and we are not generating a useful error, instead the user gets a traceback that masks the real cause.

before (see #517)

after

-=>>PYTHONPATH="./src" python3 src/badfish/main.py -H mgmt-d23-h31-000-r650.example.com -u root -p awrongpassword --power-state - WARNING - Passing secrets via command line arguments can be unsafe. Consider using environment variables (BADFISH_USERNAME, BADFISH_PASSWORD). - ERROR - Failed to authenticate. Verify your credentials for mgmt-d23-h31-000-r650.example.com

  • Also remove asyncio import from tests/test_main_coverage.py as it wasn't being utilized.

fixes: #517

Chores

  • Address mock whitespace in tests (05b409b)

  • Fix debug logger typo (0116cb7)

  • Fix indentation (073efca)

  • Fix last coverage lines (f2d4637)

  • Fix tests spacing on returns (a113725)

  • Fully revert old_password,new_password env (3de528b)

  • Further tests adjustment (0741776)

  • I grow weary of adjusting test intricacies (3c68a68)

  • Refactor test_main_coverage.py for black (42d4911)

  • Remove new/reset/old password handling (1e9298e)

  • This is clumsy and very unlikely these values will be an env variable.
  • Nothing keeps people from securing it with a temporary export but it
    is not in scope for using stored env vars which tend to be static or change rarely and thus makes more sense to concentrate on for this feature.
  • Revert, fix up only affected tests (848a4e8)

  • Set test vars in config.py (4ec3b1d)

  • Spacing again on tests (4661d74)

  • Test modifications (d3568f0)

  • Try to fix failing tests and tox (b1e14b2)

  • Try two on aligning spacing for log msgs (0a67bda)

  • Update doc examples by suggest (52f721b)

  • We should not need mock user/pass now (805cdad)

  • Whitespace and unsafe_secrets for tests (01ff58a)

Features

  • Support auth via env vars (38cc4e0)
  • Add these new vars for safer badfishing

    • BADFISH_PASSWORD
    • BADFISH_USERNAME
    • BADFISH_NEW_PASSWORD
    • BADFISH_OLD_PASSWORD
  • Update venv example for PYTHONPATH

fixes: #496


Detailed Changes: v1.1.1...v1.2.0

v1.1.1

03 Feb 21:46

Choose a tag to compare

v1.1.1 (2026-02-03)

Bug Fixes


Detailed Changes: v1.1.0...v1.1.1

v1.1.0

03 Feb 21:10

Choose a tag to compare

v1.1.0 (2026-02-03)

Bug Fixes

  • Don't pin GHA workflows (0d23853)

  • Event_loop for strict Py314 and beyond. (a61ca94)

related-to: #480

  • Production-release srpm generation (f859e1e)

  • Supermicro session uri on redfish v101 (b6df52a)

  • Unified versioning for semantic-release (9d3d3bf)

Chores

Features

  • Just testing semantic release workflow. (bee8c78)

  • Rework/refactor GHA and CI/CD. (04f4acc)

  • Create per-environment GHA workflows
  • For development and master publish quay images
    • remove old builds, perform re-tags
  • For master only
    • build new SRC rpm and push to COPR
    • spin and increment new github release
    • push new badfish release to Pypi
  • Once there is a successful push to master
    • sync changes back to development branch to
      prevent drift and merge conflicts.

Detailed Changes: v1.0.7...v1.1.0

Release 1.0.7

29 Jan 16:28
17e96f7

Choose a tag to compare

Release 1.0.7

Release 1.0.6

20 Oct 12:36
3e02319

Choose a tag to compare

Release 1.0.6

Release 1.0.5

18 Oct 10:05
85cc490

Choose a tag to compare

Release 1.0.5

Release 1.0.4

15 Oct 16:45
c06f788

Choose a tag to compare

Release 1.0.4

Release 1.0.3

22 May 16:18
025489f

Choose a tag to compare

Release 1.0.3