dracs 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. dracs-0.1.0/.flake8 +3 -0
  2. dracs-0.1.0/.github/workflows/pypi.yml +35 -0
  3. dracs-0.1.0/.github/workflows/run-tests.yml +41 -0
  4. dracs-0.1.0/.github/workflows/semantic-release.yml +40 -0
  5. dracs-0.1.0/.github/workflows/sync-back.yml +46 -0
  6. dracs-0.1.0/.gitignore +135 -0
  7. dracs-0.1.0/BIOS-filename.ini +34 -0
  8. dracs-0.1.0/CHANGELOG.md +7 -0
  9. dracs-0.1.0/LICENSE +674 -0
  10. dracs-0.1.0/PKG-INFO +431 -0
  11. dracs-0.1.0/README.md +413 -0
  12. dracs-0.1.0/drac-passwords.ini +4 -0
  13. dracs-0.1.0/dracs-0.1.0/.flake8 +3 -0
  14. dracs-0.1.0/dracs-0.1.0/.github/workflows/run-tests.yml +41 -0
  15. dracs-0.1.0/dracs-0.1.0/.github/workflows/semantic-release.yml +40 -0
  16. dracs-0.1.0/dracs-0.1.0/.github/workflows/sync-back.yml +46 -0
  17. dracs-0.1.0/dracs-0.1.0/.gitignore +135 -0
  18. dracs-0.1.0/dracs-0.1.0/BIOS-filename.ini +34 -0
  19. dracs-0.1.0/dracs-0.1.0/CHANGELOG.md +7 -0
  20. dracs-0.1.0/dracs-0.1.0/LICENSE +674 -0
  21. dracs-0.1.0/dracs-0.1.0/PKG-INFO +430 -0
  22. dracs-0.1.0/dracs-0.1.0/README.md +413 -0
  23. dracs-0.1.0/dracs-0.1.0/drac-passwords.ini +4 -0
  24. dracs-0.1.0/dracs-0.1.0/gunicorn.conf.py +57 -0
  25. dracs-0.1.0/dracs-0.1.0/image/dracs.svg +70 -0
  26. dracs-0.1.0/dracs-0.1.0/pyproject.toml +66 -0
  27. dracs-0.1.0/dracs-0.1.0/requirements-dev.txt +8 -0
  28. dracs-0.1.0/dracs-0.1.0/requirements.txt +4 -0
  29. dracs-0.1.0/dracs-0.1.0/run-webapp.sh +74 -0
  30. dracs-0.1.0/dracs-0.1.0/src/dracs/__init__.py +39 -0
  31. dracs-0.1.0/dracs-0.1.0/src/dracs/api.py +83 -0
  32. dracs-0.1.0/dracs-0.1.0/src/dracs/cli.py +368 -0
  33. dracs-0.1.0/dracs-0.1.0/src/dracs/commands.py +597 -0
  34. dracs-0.1.0/dracs-0.1.0/src/dracs/db.py +110 -0
  35. dracs-0.1.0/dracs-0.1.0/src/dracs/exceptions.py +28 -0
  36. dracs-0.1.0/dracs-0.1.0/src/dracs/snmp.py +107 -0
  37. dracs-0.1.0/dracs-0.1.0/src/dracs/static/images/dracs.svg +70 -0
  38. dracs-0.1.0/dracs-0.1.0/src/dracs/templates/index.html +2785 -0
  39. dracs-0.1.0/dracs-0.1.0/src/dracs/validation.py +72 -0
  40. dracs-0.1.0/dracs-0.1.0/src/dracs/webapp.py +706 -0
  41. dracs-0.1.0/dracs-0.1.0/tests/__init__.py +0 -0
  42. dracs-0.1.0/dracs-0.1.0/tests/conftest.py +31 -0
  43. dracs-0.1.0/dracs-0.1.0/tests/test_cli.py +36 -0
  44. dracs-0.1.0/dracs-0.1.0/tests/test_database.py +106 -0
  45. dracs-0.1.0/dracs-0.1.0/tests/test_host_list.py +187 -0
  46. dracs-0.1.0/dracs-0.1.0/tests/test_snmp_errors.py +110 -0
  47. dracs-0.1.0/dracs-0.1.0/tests/test_version_filtering.py +96 -0
  48. dracs-0.1.0/gunicorn.conf.py +57 -0
  49. dracs-0.1.0/image/dracs.svg +70 -0
  50. dracs-0.1.0/pyproject.toml +67 -0
  51. dracs-0.1.0/requirements-dev.txt +8 -0
  52. dracs-0.1.0/requirements.txt +4 -0
  53. dracs-0.1.0/run-webapp.sh +74 -0
  54. dracs-0.1.0/src/dracs/__init__.py +39 -0
  55. dracs-0.1.0/src/dracs/api.py +83 -0
  56. dracs-0.1.0/src/dracs/cli.py +368 -0
  57. dracs-0.1.0/src/dracs/commands.py +597 -0
  58. dracs-0.1.0/src/dracs/db.py +110 -0
  59. dracs-0.1.0/src/dracs/exceptions.py +28 -0
  60. dracs-0.1.0/src/dracs/snmp.py +107 -0
  61. dracs-0.1.0/src/dracs/static/images/dracs.svg +70 -0
  62. dracs-0.1.0/src/dracs/templates/index.html +2785 -0
  63. dracs-0.1.0/src/dracs/validation.py +72 -0
  64. dracs-0.1.0/src/dracs/webapp.py +706 -0
  65. dracs-0.1.0/tests/__init__.py +0 -0
  66. dracs-0.1.0/tests/conftest.py +31 -0
  67. dracs-0.1.0/tests/test_cli.py +36 -0
  68. dracs-0.1.0/tests/test_database.py +106 -0
  69. dracs-0.1.0/tests/test_host_list.py +187 -0
  70. dracs-0.1.0/tests/test_snmp_errors.py +110 -0
  71. dracs-0.1.0/tests/test_version_filtering.py +96 -0
dracs-0.1.0/.flake8 ADDED
@@ -0,0 +1,3 @@
1
+ [flake8]
2
+ max-line-length = 88
3
+ extend-ignore = E203
@@ -0,0 +1,35 @@
1
+ name: Semantic Release
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ concurrency:
9
+ group: semantic-release
10
+ cancel-in-progress: true
11
+
12
+ jobs:
13
+ release:
14
+ runs-on: ubuntu-latest
15
+ permissions:
16
+ contents: write
17
+ id-token: write
18
+
19
+ steps:
20
+ - name: Checkout source code
21
+ uses: actions/checkout@v4
22
+ with:
23
+ fetch-depth: 0
24
+
25
+ - name: Python Semantic Release
26
+ id: semantic
27
+ uses: python-semantic-release/python-semantic-release@v9.15.0
28
+ with:
29
+ github_token: ${{ secrets.GITHUB_TOKEN }}
30
+
31
+ - name: Publish to PyPI
32
+ if: steps.semantic.outputs.released == 'true'
33
+ uses: pypa/gh-action-pypi-publish@release/v1
34
+ with:
35
+ password: ${{ secrets.PYPI_API_TOKEN }}
@@ -0,0 +1,41 @@
1
+ name: Run Tests
2
+
3
+ 'on':
4
+ push:
5
+ branches:
6
+ - development
7
+ paths:
8
+ - "**/*.py"
9
+ - "tests/**"
10
+ pull_request:
11
+ branches:
12
+ - development
13
+ - main
14
+ paths:
15
+ - "**/*.py"
16
+ - "tests/**"
17
+
18
+ jobs:
19
+ test:
20
+ runs-on: ubuntu-latest
21
+ name: Test Suite
22
+ env:
23
+ FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
24
+ steps:
25
+ - name: Checkout code
26
+ uses: actions/checkout@v4
27
+
28
+ - name: Install uv
29
+ uses: astral-sh/setup-uv@v5
30
+
31
+ - name: Set up Python
32
+ run: uv python install 3.12
33
+
34
+ - name: Install dependencies
35
+ run: uv sync --group dev
36
+
37
+ - name: Lint
38
+ run: uv run --with flake8 flake8 src/ --count --max-line-length=160 --show-source --statistics
39
+
40
+ - name: Run tests
41
+ run: uv run pytest tests/ -v
@@ -0,0 +1,40 @@
1
+ name: Semantic Release
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ concurrency:
9
+ group: semantic-release
10
+ cancel-in-progress: true
11
+
12
+ jobs:
13
+ release:
14
+ runs-on: ubuntu-latest
15
+ permissions:
16
+ contents: write
17
+ id-token: write
18
+ env:
19
+ FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
20
+
21
+ steps:
22
+ - name: Checkout source code
23
+ uses: actions/checkout@v4
24
+ with:
25
+ fetch-depth: 0
26
+ token: ${{ secrets.GITHUB_TOKEN }}
27
+
28
+ - name: Install uv
29
+ uses: astral-sh/setup-uv@v5
30
+
31
+ - name: Set up Python
32
+ run: uv python install 3.12
33
+
34
+ - name: Run semantic release
35
+ env:
36
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
37
+ # Run 'version' to bump/commit/tag, then 'publish' to push and create the GitHub Release
38
+ run: |
39
+ uv tool run --from python-semantic-release semantic-release version
40
+ uv tool run --from python-semantic-release semantic-release publish
@@ -0,0 +1,46 @@
1
+ name: Sync Back to Development
2
+
3
+ on:
4
+ workflow_run:
5
+ workflows: ["Semantic Release"]
6
+ types:
7
+ - completed
8
+
9
+ permissions:
10
+ contents: write
11
+
12
+ jobs:
13
+ sync-branches:
14
+ runs-on: ubuntu-latest
15
+ # Only run if the Semantic Release was successful
16
+ if: ${{ github.event.workflow_run.conclusion == 'success' }}
17
+ env:
18
+ FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
19
+
20
+ steps:
21
+ - name: Checkout source code
22
+ uses: actions/checkout@v4
23
+ with:
24
+ fetch-depth: 0
25
+ # Removed ref: development to avoid detached HEAD.
26
+ # We will handle branch switching in the run block.
27
+ token: ${{ secrets.GITHUB_TOKEN }}
28
+
29
+ - name: Merge main into development
30
+ run: |
31
+ # Use the official GitHub Actions bot identity
32
+ git config --global user.name 'github-actions[bot]'
33
+ git config --global user.email '41898282+github-actions[bot]@users.noreply.github.com'
34
+
35
+ # Fetch all branches from origin
36
+ git fetch origin
37
+
38
+ # Explicitly check out the development branch to create a tracking branch
39
+ git checkout development
40
+
41
+ echo "Merging main back into development..."
42
+ # Merge the updated main (which now has the new version strings/tags)
43
+ git merge origin/main --no-edit
44
+
45
+ # Push the changes back to GitHub
46
+ git push origin development
dracs-0.1.0/.gitignore ADDED
@@ -0,0 +1,135 @@
1
+ # --- Python Bytecode & Cache ---
2
+ __pycache__/
3
+ __pycache__
4
+ __pycache__/*
5
+ *.py[cod]
6
+ *$py.class
7
+
8
+ # linting
9
+
10
+ # --- C extensions ---
11
+ *.so
12
+
13
+ # --- SQLite DB files ---
14
+ *.db
15
+
16
+ # Testing
17
+ .pytest_cache/
18
+ htmlcov/
19
+ .coverage
20
+ *.pyc
21
+ __pycache__/
22
+
23
+ # Virtual environment
24
+ venv/
25
+ env/
26
+ ENV/
27
+
28
+ # --- Distribution / Packaging ---
29
+ .Python
30
+ build/
31
+ develop-eggs/
32
+ dist/
33
+ downloads/
34
+ eggs/
35
+ .eggs/
36
+ lib/
37
+ lib64/
38
+ parts/
39
+ sdist/
40
+ var/
41
+ wheels/
42
+ share/python-wheels/
43
+ *.egg-info/
44
+ .installed.cfg
45
+ *.egg
46
+ MANIFEST
47
+
48
+ # --- Installer logs ---
49
+ pip-log.txt
50
+ pip-delete-this-directory.txt
51
+
52
+ # --- Unit Test / Coverage ---
53
+ htmlcov/
54
+ .tox/
55
+ .nox/
56
+ .coverage
57
+ .coverage.*
58
+ .cache
59
+ nosetests.xml
60
+ coverage.xml
61
+ *.cover
62
+ *.py,cover
63
+ .hypothesis/
64
+ .pytest_cache/
65
+ cover/
66
+
67
+ # --- Translations ---
68
+ *.mo
69
+ *.pot
70
+
71
+ # --- Django Stuff (Optional but recommended) ---
72
+ *.log
73
+ local_settings.py
74
+ db.sqlite3
75
+ db.sqlite3-journal
76
+
77
+ # --- Flask Stuff (Optional) ---
78
+ instance/
79
+ .webassets-cache
80
+
81
+ # --- DRACS Update Logs ---
82
+ logs/
83
+
84
+ # --- Scrapy Stuff (Optional) ---
85
+ .scrapy
86
+
87
+ # --- Sphinx Documentation ---
88
+ docs/_build/
89
+
90
+ # --- PyBuilder ---
91
+ target/
92
+
93
+ # --- Jupyter Notebooks ---
94
+ .ipynb_checkpoints
95
+
96
+ # --- Virtual Environments ---
97
+ # Common names for virtual envs
98
+ .env
99
+ .venv
100
+ env/
101
+ venv/
102
+ ENV/
103
+ env.bak/
104
+ venv.bak/
105
+
106
+ # --- Type Checking (MyPy, Pyre) ---
107
+ .mypy_cache/
108
+ .dmypy.json
109
+ dmypy.json
110
+ .pyre/
111
+
112
+ # --- Editor / IDE Settings ---
113
+ # JetBrains (PyCharm, IntelliJ)
114
+ .idea/
115
+ *.iml
116
+
117
+ # VS Code
118
+ .vscode/
119
+ *.code-workspace
120
+
121
+ # Sublime Text
122
+ *.sublime-workspace
123
+ *.sublime-project
124
+
125
+ # Mac OS
126
+ .DS_Store
127
+
128
+ # UV
129
+ uv.lock
130
+
131
+ # --- Environment Variables (SECURITY CRITICAL) ---
132
+ # Never commit your secrets/API keys
133
+ .env
134
+ .env.local
135
+ .env.*
@@ -0,0 +1,34 @@
1
+ [R640]
2
+ 2.10.0 = BIOS_NVGR9_WN64_2.10.0.EXE
3
+ 2.21.2 = BIOS_72VRD_WN64_2.21.2.EXE
4
+ 2.25.0 = BIOS_9M80P_WN64_2.25.0.EXE
5
+
6
+ [R650]
7
+ 1.5.5 = BIOS_0HK3T_WN64_1.5.5.EXE
8
+ 1.13.2 = BIOS_T3H20_WN64_1.13.2.EXE
9
+ 1.15.2 = BIOS_Y9M3Y_WN64_1.15.2.EXE
10
+ 1.17.2 = BIOS_0HY8N_WN64_1.17.2.EXE
11
+ 1.18.1 = BIOS_12YN5_WN64_1.18.1.EXE
12
+ 1.19.2 = BIOS_8388K_WN64_1.19.2_01.EXE
13
+ 1.20.2 = BIOS_GWT21_WN64_1.20.2.EXE
14
+
15
+ [R660]
16
+ 2.2.7 = BIOS_5534J_WN64_2.2.7.EXE
17
+ 2.7.5 = BIOS_W23G7_WN64_2.7.5_01.EXE
18
+ 2.9.4 = BIOS_457WM_WN64_2.9.4.EXE
19
+ 2.10.1 = BIOS_G93PH_WN64_2.10.1.EXE
20
+
21
+ [R750]
22
+ 1.5.5 = BIOS_0HK3T_WN64_1.5.5.EXE
23
+ 1.13.2 = BIOS_T3H20_WN64_1.13.2.EXE
24
+ 1.15.2 = BIOS_Y9M3Y_WN64_1.15.2.EXE
25
+ 1.17.2 = BIOS_0HY8N_WN64_1.17.2.EXE
26
+ 1.18.1 = BIOS_12YN5_WN64_1.18.1.EXE
27
+ 1.19.2 = BIOS_8388K_WN64_1.19.2_01.EXE
28
+ 1.20.2 = BIOS_GWT21_WN64_1.20.2.EXE
29
+
30
+ [R760]
31
+ 2.2.7 = BIOS_5534J_WN64_2.2.7.EXE
32
+ 2.7.5 = BIOS_W23G7_WN64_2.7.5_01.EXE
33
+ 2.9.4 = BIOS_457WM_WN64_2.9.4.EXE
34
+ 2.10.1 = BIOS_G93PH_WN64_2.10.1.EXE
@@ -0,0 +1,7 @@
1
+ # CHANGELOG
2
+
3
+ <!-- version list -->
4
+
5
+ ## v1.0.0 (2026-04-23)
6
+
7
+ - Initial Release