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.
- dracs-0.1.0/.flake8 +3 -0
- dracs-0.1.0/.github/workflows/pypi.yml +35 -0
- dracs-0.1.0/.github/workflows/run-tests.yml +41 -0
- dracs-0.1.0/.github/workflows/semantic-release.yml +40 -0
- dracs-0.1.0/.github/workflows/sync-back.yml +46 -0
- dracs-0.1.0/.gitignore +135 -0
- dracs-0.1.0/BIOS-filename.ini +34 -0
- dracs-0.1.0/CHANGELOG.md +7 -0
- dracs-0.1.0/LICENSE +674 -0
- dracs-0.1.0/PKG-INFO +431 -0
- dracs-0.1.0/README.md +413 -0
- dracs-0.1.0/drac-passwords.ini +4 -0
- dracs-0.1.0/dracs-0.1.0/.flake8 +3 -0
- dracs-0.1.0/dracs-0.1.0/.github/workflows/run-tests.yml +41 -0
- dracs-0.1.0/dracs-0.1.0/.github/workflows/semantic-release.yml +40 -0
- dracs-0.1.0/dracs-0.1.0/.github/workflows/sync-back.yml +46 -0
- dracs-0.1.0/dracs-0.1.0/.gitignore +135 -0
- dracs-0.1.0/dracs-0.1.0/BIOS-filename.ini +34 -0
- dracs-0.1.0/dracs-0.1.0/CHANGELOG.md +7 -0
- dracs-0.1.0/dracs-0.1.0/LICENSE +674 -0
- dracs-0.1.0/dracs-0.1.0/PKG-INFO +430 -0
- dracs-0.1.0/dracs-0.1.0/README.md +413 -0
- dracs-0.1.0/dracs-0.1.0/drac-passwords.ini +4 -0
- dracs-0.1.0/dracs-0.1.0/gunicorn.conf.py +57 -0
- dracs-0.1.0/dracs-0.1.0/image/dracs.svg +70 -0
- dracs-0.1.0/dracs-0.1.0/pyproject.toml +66 -0
- dracs-0.1.0/dracs-0.1.0/requirements-dev.txt +8 -0
- dracs-0.1.0/dracs-0.1.0/requirements.txt +4 -0
- dracs-0.1.0/dracs-0.1.0/run-webapp.sh +74 -0
- dracs-0.1.0/dracs-0.1.0/src/dracs/__init__.py +39 -0
- dracs-0.1.0/dracs-0.1.0/src/dracs/api.py +83 -0
- dracs-0.1.0/dracs-0.1.0/src/dracs/cli.py +368 -0
- dracs-0.1.0/dracs-0.1.0/src/dracs/commands.py +597 -0
- dracs-0.1.0/dracs-0.1.0/src/dracs/db.py +110 -0
- dracs-0.1.0/dracs-0.1.0/src/dracs/exceptions.py +28 -0
- dracs-0.1.0/dracs-0.1.0/src/dracs/snmp.py +107 -0
- dracs-0.1.0/dracs-0.1.0/src/dracs/static/images/dracs.svg +70 -0
- dracs-0.1.0/dracs-0.1.0/src/dracs/templates/index.html +2785 -0
- dracs-0.1.0/dracs-0.1.0/src/dracs/validation.py +72 -0
- dracs-0.1.0/dracs-0.1.0/src/dracs/webapp.py +706 -0
- dracs-0.1.0/dracs-0.1.0/tests/__init__.py +0 -0
- dracs-0.1.0/dracs-0.1.0/tests/conftest.py +31 -0
- dracs-0.1.0/dracs-0.1.0/tests/test_cli.py +36 -0
- dracs-0.1.0/dracs-0.1.0/tests/test_database.py +106 -0
- dracs-0.1.0/dracs-0.1.0/tests/test_host_list.py +187 -0
- dracs-0.1.0/dracs-0.1.0/tests/test_snmp_errors.py +110 -0
- dracs-0.1.0/dracs-0.1.0/tests/test_version_filtering.py +96 -0
- dracs-0.1.0/gunicorn.conf.py +57 -0
- dracs-0.1.0/image/dracs.svg +70 -0
- dracs-0.1.0/pyproject.toml +67 -0
- dracs-0.1.0/requirements-dev.txt +8 -0
- dracs-0.1.0/requirements.txt +4 -0
- dracs-0.1.0/run-webapp.sh +74 -0
- dracs-0.1.0/src/dracs/__init__.py +39 -0
- dracs-0.1.0/src/dracs/api.py +83 -0
- dracs-0.1.0/src/dracs/cli.py +368 -0
- dracs-0.1.0/src/dracs/commands.py +597 -0
- dracs-0.1.0/src/dracs/db.py +110 -0
- dracs-0.1.0/src/dracs/exceptions.py +28 -0
- dracs-0.1.0/src/dracs/snmp.py +107 -0
- dracs-0.1.0/src/dracs/static/images/dracs.svg +70 -0
- dracs-0.1.0/src/dracs/templates/index.html +2785 -0
- dracs-0.1.0/src/dracs/validation.py +72 -0
- dracs-0.1.0/src/dracs/webapp.py +706 -0
- dracs-0.1.0/tests/__init__.py +0 -0
- dracs-0.1.0/tests/conftest.py +31 -0
- dracs-0.1.0/tests/test_cli.py +36 -0
- dracs-0.1.0/tests/test_database.py +106 -0
- dracs-0.1.0/tests/test_host_list.py +187 -0
- dracs-0.1.0/tests/test_snmp_errors.py +110 -0
- dracs-0.1.0/tests/test_version_filtering.py +96 -0
dracs-0.1.0/.flake8
ADDED
|
@@ -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
|