Commit Graph

66 Commits

Author SHA1 Message Date
dependabot[bot]
61b111f87a Bump charset-normalizer from 2.1.1 to 3.4.4 in /python
Bumps [charset-normalizer](https://github.com/jawah/charset_normalizer) from 2.1.1 to 3.4.4.
- [Release notes](https://github.com/jawah/charset_normalizer/releases)
- [Changelog](https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jawah/charset_normalizer/compare/2.1.1...3.4.4)

---
updated-dependencies:
- dependency-name: charset-normalizer
  dependency-version: 3.4.4
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-29 13:00:55 +01:00
dependabot[bot]
44c3dcd236 Bump certifi from 2024.7.4 to 2025.11.12 in /python
Bumps [certifi](https://github.com/certifi/python-certifi) from 2024.7.4 to 2025.11.12.
- [Commits](https://github.com/certifi/python-certifi/compare/2024.07.04...2025.11.12)

---
updated-dependencies:
- dependency-name: certifi
  dependency-version: 2025.11.12
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-29 08:59:32 +01:00
dependabot[bot]
31d1bb3f55 Bump urllib3 from 2.6.0 to 2.6.2 in /python
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.6.0 to 2.6.2.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.6.0...2.6.2)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-version: 2.6.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-24 00:49:32 +01:00
Daniel Markstedt
5613ad35b2 Use more system deb packages for Python dependencies
Leveraging the Debian packaging allows us to preload more packages in the release image, while speeding up the initial pip install process when creating the venv

We also cut down on python package version upgrades maintenance overhead

Now the Web UI and OLED startup scripts are flagged to use system libraries when creating venvs
2025-12-23 22:51:15 +01:00
Daniel Markstedt
b49ffeca53 strip null byte from the string before storing 2025-12-19 14:52:56 +01:00
Daniel Markstedt
0ad14bd5ce Create system info and commands menu options for control board (#1096)
The system info menu contains a range of details on the RPi: pretty name, IP, disk space, CPU, and memory

The system commands info has the pre-existing shutdown plus a new reboot option

For the former, a new sys_cmds function for getting CPU and memory info have been added
2025-12-19 14:52:56 +01:00
dependabot[bot]
002e1a1c35 Bump urllib3 from 2.5.0 to 2.6.0 in /python/common
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.5.0 to 2.6.0.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.5.0...2.6.0)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-version: 2.6.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-06 09:08:29 +01:00
dependabot[bot]
b327e1682c Bump idna from 3.7 to 3.11 in /python
Bumps [idna](https://github.com/kjd/idna) from 3.7 to 3.11.
- [Release notes](https://github.com/kjd/idna/releases)
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst)
- [Commits](https://github.com/kjd/idna/compare/v3.7...v3.11)

---
updated-dependencies:
- dependency-name: idna
  dependency-version: '3.11'
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 19:58:39 +01:00
Daniel Markstedt
a872333458 Move python resources into the common package
Reduces duplication of these binary files across multiple clients
2025-11-24 12:58:29 +01:00
BogDan Vatra
18bb9548a7 Use same notation as scsi2pi 2025-11-07 18:20:31 +01:00
Daniel Markstedt
56f44413b2 Bump python libs in common package 2025-11-07 12:44:50 +01:00
BogDan Vatra
a985fc83e4 Say hello to Streamer (tape) device support
Implements the mandatory and a few optional commands for tandberd see
https://bitsavers.org/pdf/tandbergData/TDC4100/6047-1_TDC-4100_SCSI-2_Interface_Functional_Specification_Aug1991.pdf
for more info.

Fixed #480
2025-11-07 07:43:21 +01:00
Daniel Markstedt
f6da24a582 Downgrade protobuf version to 3.20.3
Python protobuf 6.x isn't compatible with the protoc version we're currently using for piscsi proper; let's upgrade both together at a later time
2025-11-07 00:57:54 +01:00
dependabot[bot]
f4a10247fc Bump protobuf from 3.19.5 to 6.33.0 in /python
Bumps [protobuf](https://github.com/protocolbuffers/protobuf) from 3.19.5 to 6.33.0.
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl)
- [Commits](https://github.com/protocolbuffers/protobuf/commits)

---
updated-dependencies:
- dependency-name: protobuf
  dependency-version: 6.33.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-06 23:08:42 +01:00
dependabot[bot]
52e7566138 Bump certifi from 2023.7.22 to 2024.7.4 in /python/common
Bumps [certifi](https://github.com/certifi/python-certifi) from 2023.7.22 to 2024.7.4.
- [Commits](https://github.com/certifi/python-certifi/compare/2023.07.22...2024.07.04)

---
updated-dependencies:
- dependency-name: certifi
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-06 12:32:38 +09:00
dependabot[bot]
4f6bd9d796 Bump urllib3 from 2.0.7 to 2.2.2 in /python/common
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.0.7 to 2.2.2.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.0.7...2.2.2)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-17 16:07:19 -07:00
dependabot[bot]
4650f2bd88 Bump requests from 2.31.0 to 2.32.2 in /python/common
Bumps [requests](https://github.com/psf/requests) from 2.31.0 to 2.32.2.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.31.0...v2.32.2)

---
updated-dependencies:
- dependency-name: requests
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-25 13:36:02 +09:00
dependabot[bot]
b348643ff3 Bump idna from 3.4 to 3.7 in /python/common
Bumps [idna](https://github.com/kjd/idna) from 3.4 to 3.7.
- [Release notes](https://github.com/kjd/idna/releases)
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst)
- [Commits](https://github.com/kjd/idna/compare/v3.4...v3.7)

---
updated-dependencies:
- dependency-name: idna
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-12 12:59:49 +09:00
dependabot[bot]
52e4a92aec Bump black from 22.8.0 to 24.3.0 in /python/web (#1444)
* Bump black from 22.8.0 to 24.3.0 in /python/web

Bumps [black](https://github.com/psf/black) from 22.8.0 to 24.3.0.
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](https://github.com/psf/black/compare/22.8.0...24.3.0)

---
updated-dependencies:
- dependency-name: black
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Github CI: Backend web test runner use python 3.9.19

* Reformat python sources with black

* Docker: Bump to python 3.9-slim image for pytest

* Bump pytest version to 8.1.1

* Bump more library versions, and freeze them

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Daniel Markstedt <daniel@mindani.net>
2024-03-22 00:19:13 -07:00
Daniel Markstedt
bd33f66694 Freeze Python dependencies with pip freeze -l (#1322)
* Freeze Python dependencies with 'pip freeze -l'

* Freeze common dependencies; add section to README
2023-11-09 02:44:32 -08:00
Daniel Markstedt
4eca0495a4 Refactor file upload code to make it safer 2023-11-04 11:59:54 +09:00
Daniel Markstedt
063e8ed32b Static analysis fixes for Python codebase (#1277)
* Don't log names of internal symbols that can be used for attacks

* Add integrity check to dropzone.js library

* Better a11y of web form labels

* Safer handling of file download paths

* Don't invert boolean check

* Make backend auth check a flask abort

* Clean up indentation to remove unwanted tabs

* Run workflow either on PR events, or branch pushes, not both
2023-11-01 06:28:53 -07:00
Daniel Markstedt
029cf06c72 Web UI: Upload to tmp file name then rename if successful (#1272)
* Upload to tmp file name then rename if successful

* Move the dropzone.js operations back into web.py

* Move list_images() from file commands into piscsi commands (it was the only class method in that package that calls the protobuf interface)

* Remove now-redundant helptext
2023-10-31 14:54:04 -07:00
Benjamin Krein
b514440957 Fix test failures in low-voltage PR (#1207)
* fix lint checks in web python

* fix lint checks in common python

* rework to pass tests in docker

* fix css style lint

* fix css style syntax
2023-09-04 08:08:42 -07:00
Benjamin Krein
b32027f8c0 Add web UI notification for under voltage/throttling events (#1203) 2023-08-31 23:23:12 -07:00
dependabot[bot]
7ee45779e1 Bump requests from 2.26.0 to 2.31.0 in /python/common (#1176) 2023-05-24 22:15:56 -07:00
Daniel Markstedt
fa475d8b12 Proper handling of custom image dirs, #1170 (#1171) 2023-05-21 15:27:50 -07:00
Daniel Markstedt
5414a78098 Remove git hash info (#1129) 2023-03-19 13:46:43 -07:00
Daniel Markstedt
f5ac9376b1 Allow copy and move file operations to opt-in to overwrite. (#1120)
- Allow create, copy and move file operations to opt-in to overwrite
- Use this when extracting packaged properties to avoid it getting stuck in the images dir
- Better error handling in common file operation methods
2023-03-06 09:17:28 -08:00
Daniel Markstedt
5fd0dc420b WebUI: Traverse target dir to get subdirs to download/upload to (#1115) 2023-03-04 16:57:32 -08:00
Daniel Markstedt
983cff735b Descriptive comments for each h/fdisk command (#1106) 2023-02-24 12:58:51 -08:00
Daniel Markstedt
bf53958636 Fix handling of properties files when they're in subdirs (#1082)
- File operation class methods create parent dirs if they don't exist
- Avoid stripping path from file names in several places
- Simplify prop file matching logic: check for existence of file
- Remove list_files() method which is now unused
2023-01-28 14:36:07 -08:00
Daniel Markstedt
139a6ec371 New class method for creating image file with python; use python file… (#1079)
* New class method for creating image file with python; use python file operations across the board.

Also fixed several bugs:

Added check that a file exists before copying/moving/creating
Check that parent dir exists always passed
Incorrect return message token
2023-01-26 21:51:59 -08:00
Daniel Markstedt
cde4866844 Allow generating ISO image from local file (#1046)
- Break out generate_iso() into its own class method in file_cmds
- Add form and handling of using local file to generate iso image
- Reorder index page sections to group actions that create new image files
2022-12-23 16:13:52 -08:00
Daniel Markstedt
52c2aa474f Rebrand project to PiSCSI (#1016)
* Rebrand project to PiSCSI
- rascsi ->piscsi
- rasctl -> scsictl
- rasdump -> scsidump
- ras* -> piscsi* (rasutil -> piscsi_util, etc.)

* Refined the formatting and wording of the app startup banner
* Kept some references to rascsi and rasctl where backwards compatibility is concerned
* Point to the new github repo URL

Co-authored-by: nucleogenic <nr@nucleogenic.com>
Co-authored-by: Uwe Seimet <Uwe.Seimet@seimet.de>
2022-12-05 09:58:23 -08:00
nucleogenic
88ff542aeb Run web API test suite in GitHub Actions (#1009)
- Fixed ignore patterns in .dockerignore
- Added healthchecks to backend and web containers
- Reduced Docker image sizes
- Removed RaSCSI references in various areas (e.g. rascsi -> backend)
- Added compilation-only step to easyinstall.sh
- Moved apt package lists to variables
- Revert to triggering GitHub Actions runs on push
- Updated web/frontend_checks workflow to run black and flake8 against all Python sources
- Capture log files from backend/web containers
- Fix None to float conversion bug when user agent is absent or unrecognised
2022-12-04 14:31:57 +00:00
nucleogenic
315ef9f248 Auto-format Python sources with black, fix all issues reported by flake8 (#1010)
* Update config for black and flake8
* Auto-format Python sources with black
* Fix issues reported by flake8
* Exclude protobuf files from black
* Address formatting feedback
2022-11-30 05:19:17 +00:00
Daniel Markstedt
0d95890887 Get and set pretty hostname to use as system name in Web UI (#997)
- Display the pretty hostname as system name in header
- Move IP and hostname down to the footer
- New endpoint for setting the pretty hostname, plus form field in the Web UI
- (unrelated) Use platform.uname() instead of shell uname
- (unrelated) Better logic for fetching the Mac HD Drivers zip file in easyinstall.sh
2022-11-20 10:20:32 -08:00
Daniel Markstedt
4afb11d3dd Shutdown splash for the OLED script; restore non-Latin transliteration; other refactoring (#991)
- Bring back the shutdown splash, with the tweak that is blanks out after 700ms
- Restore the non-Latin transliteration originally from https://github.com/akuker/RASCSI/pull/449 which was lost when the `common` package was introduced
- Bump to the latest libraries, while removing implicit dependencies from requirements.txt
- Shorter duration of the startup splash
- Reintroduce shell shutdown/reboot methods for use with the Web UI. This addresses https://github.com/akuker/RASCSI/issues/538 (the ctrlboard client will continue to use the built-in rascsi system calls which are slightly faster)
- Remove overt references to RPi. This addresses https://github.com/akuker/RASCSI/issues/990
- Other refactorings
2022-11-17 16:21:18 -08:00
Daniel Markstedt
4645e8c975 Display hardware info in footer; close open file handlers; better error handling (#989)
* Expose hardware info in env string

* Improve error handling for get_properties_by_drive_name

* Verbose uname parameters.

* Close open file in introspect method

* Add error handling for when no drive name was matched with props in the database
2022-11-15 22:28:27 -08:00
Daniel Markstedt
85edd50047 Partition and format HFS/FAT volumes in the Web UI + SMB install (#946)
- New "format as" option when creating new images; removing the image creation options from easyinstall
- Bring in HFSer as new submodule providing the driver binaries; removing the Lido driver binary from this repo
- Add SpeedTools driver option
- Point to github mirror of hfdisk, since the original git server is down
- While rearranging the easyinstall options, moved the CtrlBoard option up to the main section
- Add an easyinstall script to configure Samba, while consolidating file sharing with Netatalk
2022-11-01 16:43:24 -07:00
Daniel Markstedt
5172d167e7 Web UI: More file path sanitation, better network bridge warnings, each endpoint return one message (#932)
- Sanitize file paths with Path: for flat file structures, always extract Path().name, and for nested file structures either look for absolute paths, or someone trying to use ".." to traverse the dir strucutre.
- Reduce redundancy in network bridge detection method, and return somewhat more informative messages
- Make all endpoints return exactly one message
- Move some warning messages to logging
- Use tempfile for iso generation temp file handling
2022-10-23 19:05:29 -07:00
Daniel Markstedt
5a679509a1 More refactoring of Python code to address Sonar issues (#906)
- Use Path objects for file operations
- Use urllib to sanitize URLs
- Some explicit type conversions
- Consistent regex syntax
- Add rudimentary logging when archive extraction caching fails
- Fixed two cases of the property file creation not being notified in the Flash message
- added doctype and html lang attribute to the web server 502 page
2022-10-12 12:59:01 -07:00
Daniel Markstedt
1b10b123d2 Refactor python code to address Sonarcloud issues (#900)
- copy/move/delete file class methods now take Path objects as arguments
- The file download endpoint in the Web UI uses the safer download from dir method
- Simplified logging
- Merged nested if statements
- Removed naked handling of unknown error states
- Added fallback empty list for drive_properties, to avoid errors when json file is missing or broken
- Move drive_properties to env[]
- Constants for common error messages
- Dummy variable for list comprehension
2022-10-09 13:50:20 -07:00
Daniel Markstedt
0e4d42f04c Use man2html to generate man pages in the Web UI (#887)
* Use man2html to generate man pages in the web UI

* Fix tests
2022-10-04 06:38:15 -07:00
Daniel Markstedt
dcb4b33f2e Add capabilities to get and render manpage output in the Web UI (#881)
- class method to get arbitrary file contents
- new web UI endpoint to fetch the contents of rascsi man pages (rendered txt files)
- Link to manpage in page footer
- Link to new wiki page for image type docs
- Other UI tweaks
2022-10-03 12:46:18 -07:00
Daniel Markstedt
5da3d6c24b Introduce info.html template and use it to render detailed info (#863)
new:
- new templates to render structured info contents in
- get_diskinfo() class method that calls disktype and returns the results
- /diskinfo endpoint in the Flask app that renders the results from get_diskinfo()

changed:
- /logs/show and /scsi/info endpoints in the Flask app render in templates
- Now using the "RaSCSI Reloaded Control Page" header to function as the link back to the homepage (instead of the github project) which is in line with how most webapps work
- Removed the center style for "Attached!" to allow the ? button to be placed on the same line
- Remove individual device info, and introduced show all device info in a template
2022-09-26 17:44:41 -07:00
nucleogenic
dd40d7156a Fix issue causing stale reservations after loading a config 2022-09-26 00:00:18 +01:00
nucleogenic
edf65a8768 Update RaCtlCmds methods to return JSON serializable results 2022-09-25 23:58:07 +01:00
dependabot[bot]
e513af694b Bump protobuf from 3.19.3 to 3.19.5 in /python/common (#856)
* Bump protobuf from 3.19.3 to 3.19.5 in /python/common

Bumps [protobuf](https://github.com/protocolbuffers/protobuf) from 3.19.3 to 3.19.5.
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/generate_changelog.py)
- [Commits](https://github.com/protocolbuffers/protobuf/compare/v3.19.3...v3.19.5)
2022-09-25 10:51:05 -07:00