Releases: quadsproject/badfish
v1.4.0
v1.3.0
v1.3.0 (2026-04-22)
Bug Fixes
- --export-scp hang bug. (
75f0fc1)
- 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.
-
Black fixes and flake8 (
66158ca) -
Bump CI python version (
7a73d7a) -
Fix codecov (
cfe2f71) -
Fix formatting in GHA lint.yml (
a2419d5) -
Fix test with duplicate 75% response where it's skipped (
69e7c2c) -
Fix tests again (
2dd9971) -
Fix tests, add doc mention (
f80b915) -
Further fix test coverage (
f3e118a) -
Further test fixes (
3d89b25) -
Further tweak tests (
ddfa57e) -
Hopefully fix rest of tests (
6fdc73c) -
Make codecov happy (
918d99c) -
Simplify tests (
6f60320)
- Don't obesess over defensive / firmware status handling
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)
- Add --wait to racreset (
093c005)
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
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)
- incorpoate some suggestions from @stephane-chazelas
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
v1.1.0
v1.1.0 (2026-02-03)
Bug Fixes
related-to: #480
-
Production-release srpm generation (
f859e1e) -
Supermicro session uri on redfish v101 (
b6df52a) -
Unified versioning for semantic-release (
9d3d3bf)
Chores
- Fix COPR workflows (
ec45870)
Features
- 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.
- sync changes back to development branch to
Detailed Changes: v1.0.7...v1.1.0
Release 1.0.7
Release 1.0.7
Release 1.0.6
Release 1.0.6
Release 1.0.5
Release 1.0.5
Release 1.0.4
Release 1.0.4
Release 1.0.3
Release 1.0.3