Commit Graph

988 Commits

Author SHA1 Message Date
Uwe Seimet 1c0179e7e3
rasdump and monitor updates, made rasdump work, improved bus abstraction (#973)
* Moved rasdump and monitor to sub-folders, cleaned up code

* Fixes rasdump issues and added additional features like device type check, LUN support and configurable buffer size
2022-11-09 08:40:26 +01:00
Daniel Markstedt e8b72c48de
Introduce option to use clang++, and option to skip apt packages (#971)
- Make clang++-11 the default for compiling rascsi
- Add --with_gcc option to use g++ instead
- Add option to skip apt-get package installation (this saves a significant amount of time running the script on a Zero when you already have the required packages installed)
- Add a line to the script menu showing current options
- Surrounding cleanup
2022-11-07 18:59:19 -08:00
Uwe Seimet 1cae530d42
Added command byte count to SCSI command mapping (#966)
* Extended mapping table with command byte count

* Terminate early if command is unknown
2022-11-06 19:44:44 +01:00
Uwe Seimet c98c52ffb8
Cleaned up dependencies on controller manager (#964)
* Cleaned up dependencies on controller manager

* Removed global fields

* Simplified setting up RascsiResponse and RascsiExecutor

* Got rid of remaining raw pointers

* Use references instead of pointers

* Improved encapsulation
2022-11-04 08:22:32 +01:00
Daniel Markstedt 921ba7d2ed
Headless bypass for sudo -v in easyinstall (#963)
* Headless bypass for sudo check. Also, correct check for mac drivers dir.

* Remove inline sudo -v checks. There's no proof they improve anything.

* Use akuker's dropbox storage
2022-11-03 20:58:31 -07:00
Uwe Seimet 83d1595a35
Improved testability of rascsi/rasctl/scsimon/rasdump, eliminated global fields (#960)
* Moved rascsi/rasctl/scsimon/rasdump.cpp to classes (for better testability)

* Moved bus.* to hal folder

* Removed some global variables

* Fixed code redundancies
2022-11-02 23:41:45 +01:00
Uwe Seimet c41373d9bd
Use lambdas for dispatcher, code cleanup, test updates (#958)
* Using lambdas instead of member function pointers simplifies the command dispatching and reduces the code volume

* Removed duplicate error handling

* Fix for issue #956

* Unit test updates

* Resolved SonarQube issues
2022-11-02 15:36:19 +01:00
akuker 31dd063611
Create devices after bus creation (#954) 2022-11-02 08:58:59 -05:00
Uwe Seimet 621cc7d5a2
Code cleanup, especially casts, lambdas, data types, encapsulation (#952)
* Unit test updates

* Lambda syntax cleanup

* Use new-style casts

* Use std::none_of when saving the cache

* Use to_integer instead of casts

* Use accessors for getting CDB data

* Made ctrl_t private

* Improved encapsulation

* Replaced pointers by references

* Removed all remaining occurrences of DWORD and BYTE, making os.h obsolete
2022-11-02 07:36:25 +01: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
Uwe Seimet 9a4f433baf
Validate SCSI error codes (sense key, asc) in unit tests (issue #895) (#950) 2022-10-29 18:16:03 +02:00
Uwe Seimet f84a13b3e2
Prevent copying of files in use (#951) 2022-10-29 18:15:30 +02:00
Uwe Seimet 6e35577368
Removed wrong inheritance of SCDP and SCBR from Disk class (#948)
* Fixed TODOs, updated SCBR and SCDP

* Introduced ByteWriter interface

* Use accessors instead of directly accessing length/block fields
2022-10-29 18:10:00 +02:00
Uwe Seimet c1f63c6745
Added missing command mapping for DEVICES_INFO (#947) 2022-10-27 16:31:32 +02:00
Uwe Seimet 2cecf4b35c
Image file deletion: Fixed error handling (#944)
* Fixed ID/LUN check when deleting image

* Updated error handling when deleting image file

* Prevent renaming of image file in use
2022-10-26 17:43:11 +02:00
Daniel Markstedt 77a32bd828
Remove legacy robot framework tests (#942) 2022-10-25 19:41:20 -05:00
Daniel Markstedt 08194af424
Move C++ code into cpp/ dir (#941)
- Moved C++ code to cpp/ from src/raspberrypi
- Related updates to Makefile, easyinstall.sh, and the github build rules
- Removed the native X68k C code in src/x68k from the repo
2022-10-25 12:59:30 -07:00
Daniel Markstedt 4b109a70b0
Improve Web UI integration tests (#939)
* Remove deprecated critital log level from test

* Move drive_properties back into template data sets

* Move properties data integrity checks to test code

* Streamline the drive formatting logic
2022-10-25 08:51:04 -07:00
Uwe Seimet 6bbaa956ed
Use C++ filesystem library/iostreams for I/O, added unit tests (#911) (#934)
* Use C++ filesystem library/iostreams for I/O (issue #911)

* Added unit tests
2022-10-25 10:29:57 +02:00
akuker ea8bc3970d
Architectural updates for future support of Banana Pi (#928)
* Added logic to figure out what type of host we're running on - Banana Pi or Raspberry Pi
* Split out the raspberry pi logic to separate classes that are created at start-up based upon the host configuration
* Added System Timer class for Allwinner H3 CPU
* Added stubs for GPIO BUS for Allwinner H3 CPU

Authored-by: Tony Kuker <akuker@gmail.com>
2022-10-24 19:21:40 -05:00
Daniel Markstedt 73ecd4d1b8
Restore rascsi help text for hda format; consistently use 'compatible' teminology instead of 'genuine' (#937) 2022-10-24 22:41:04 +02:00
Daniel Markstedt 8ec5b53b28
Bump the Web UI requests lib to 2.28.1 (#938) 2022-10-24 12:53:50 -07:00
Daniel Markstedt 1da3caf568
Bump to the latest bjoern/Flask/Jinja2; click/itsdangerous/MarkupSafe are implicit dependencies of the above so removing explicit requirements. (#935) 2022-10-24 11:50:35 -07:00
dependabot[bot] db2c542c97
Bump protobuf from 3.20.1 to 3.20.2 in /python/web (#933)
* Bump protobuf from 3.20.1 to 3.20.2 in /python/web

Bumps [protobuf](https://github.com/protocolbuffers/protobuf) from 3.20.1 to 3.20.2.
- [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.20.1...v3.20.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-23 19:06:23 -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
Uwe Seimet f3553c5480
Resolved issues 772, 827, 909; added numerous unit tests; code cleanup (#915)
* Resolved issues 772, 827, 909

* Added numerous unit tests

* Code cleanup

* Improved type safety by using PbDeviceType instead of string

* Do not flush cache on failed STOP UNIT

* Error message and error handling updates

* Removed duplicate code

* Use map for mapping shift counts

* Reject read/write access if the drive has 0 sectors

* Updated logging configuration for tests
2022-10-23 21:51:39 +02:00
nucleogenic 198c10f70a
Enable web UI auth for test environment (#931) 2022-10-22 09:49:46 -07:00
Daniel Markstedt e3e833b4d2
Fix one case of Path object conversion that was missed during the refactoring (#929) 2022-10-22 08:01:08 -07:00
Daniel Markstedt ade656e38b
Break out frontend and backend auth options into stand alone options (#925)
* Break out frontend and backend auth options into stand alone options

* Improve the token auth checks when installing clients
2022-10-21 19:49:53 -07:00
Tony Kuker 99a1c7cdbc Update version for next development version 2022-10-21 22:44:31 +01:00
Tony Kuker 5768827af8 Update revision number for release 2022-10-21 22:43:03 +01:00
Daniel Markstedt 64a6d46bee
Merge pull request #920 from akuker/rdmark-file-dir-descriptive-names
Descriptive names for file transfer target dirs
2022-10-19 21:21:57 -07:00
Daniel Markstedt efd40ceab2 Descriptive names for file transfer target dirs 2022-10-19 19:31:59 -07:00
Daniel Markstedt 926b6c4faa
Remove empty docs dir (#918) 2022-10-18 19:28:39 -05:00
Daniel Markstedt ac39b3b8a3
Netatalk: Prompt user when pre-existing config is found; Append the images dir as a shared volume (#916)
* Prompt the user before continuing with installation when Netatalk config dir is detected

* Add Netatalk with images dir sharing as an experimental feature
2022-10-17 17:42:49 -07:00
Daniel Markstedt afcb1534e6
Merge pull request #914 from akuker/rdmark-suppress-warning
Web UI: Change locale fallback message log level to 'info'
2022-10-15 08:13:39 -07:00
Daniel Markstedt aed793001d Change locale fallback to info logging 2022-10-14 19:39:32 -07:00
nucleogenic 6514e24770
Docker container for Pytest (#901)
* Dockerize Pytest

* Fix auto-delete warning in delete file test

* Allow tests to be executed with a non-default home dir

* Use hostname for Docker container only if tests executed in Docker

* Update container entrypoint to pytest

* Re-format tests with black

* Define if the execution environment is a Docker container in env fixture

* Skip unsupported host bridge attachment test in Docker
2022-10-14 19:30:08 -07:00
Daniel Markstedt a8ac6a06cf
Fix a web UI integration test (#912)
Fix an integration test that hadn't been updated after the refactoring
2022-10-14 09:12:57 -07:00
Uwe Seimet 0c8d54f055
Fixed validation of full (absolute) filename (#910)
* Fixed validation of full (absolute) filename

* Added missing CR/LF in rasctl output
2022-10-12 22:10:56 +02: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
Uwe Seimet dede2a6f35
Fix logging for Data Out phase, fixed offset (#907)
Fixed issues found while testing for release 22.10
2022-10-11 17:04:17 +02:00
n4al d6153e9647
Updating Spanish translation (#902)
* Updating Spanish translation

* Removing unused translations
2022-10-10 08:54:27 -07:00
Uwe Seimet 4e4c5b205a
Bugfix: MODE SELECT for format page is incorrect (issue #818) (#899)
* Fix issue with MODE SELECT (#818)

* Replaced strncpy because it was causing a compilation issue
2022-10-10 08:16:47 +02:00
Daniel Markstedt ccdb51b727
Merge pull request #905 from akuker/rdmark-swedish-22101
Update Swedish translations 2022-10
2022-10-09 16:38:50 -07:00
Daniel Markstedt e8c3deea2f Update translations 2022-10-09 16:18:17 -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
Uwe Seimet ca23d9b7a3
Merged FileSupport into Disk, improved granularity, more unit tests, code cleanup (#897)
* Merged FileSupport into Disk

* Improved code granularity

* Made classes previously directly writing to cout testable

* Added numerous unit tests

* Fixed minor issues uncovered by unit tests
 
* Fixed SonarCloud issues

* Replaced remaining proprietary data types (WORD/DWORD) except for files in hal/
2022-10-08 19:26:04 +02:00
Daniel Markstedt 62e287c96d
Remove redundant help text, table columns and parameters from the Web UI (#898)
- Remove the Size option from the Drives page, since we offer custom sizes with Drive profiles now in the Create Image form
- Fetch size from drive props data structure rather than the web form
- Remove a range of redundant / obvious help text to reduce UI clutter and emphasize the important help text
- Remove the Size column from the CD-ROM drives table since it's always N/A
- Merge the two Logging related sections, and the two Create Image related sections (semantically associated)
2022-10-07 19:55:53 -07:00
Daniel Markstedt d1a703418c
Address Sonarcloud issues for the html code; improve on css styles (#892)
Refactor and clean up code to conform to SonarCloud static analysis, improve readability and semantics.
- Add labels for each form input, and tweak placeholder text accordingly.
- Move CSS styles to the stylesheet; minor tweaks for clarity and consistency
- Use the legacy align=center attribute for centering paragraphs (backwards compatible)
- Remove all instances of using tables for layout
- Add header tags to all remaining tables, with scope parameters.
- Add descriptions to each table
- Move drive reference hyperlinks to the drive name column (addresses "same link text leads to different URL" code smell.)
- Inject lang parameters to each html tag
- Standardize on h2 tags as top header for each template
- Add 'json' to config file UI elements, to communicate actual file name/format
- Clean up indentation
- Dropbox styling: Added a colored outline, added padding to more clearly communicate its function. Hid the (X) SVG that indicates failure, since failure is already communicated by the error text. Also, the SVG always obstructed the file name or error so was quite counter-productive.
2022-10-07 13:13:29 -07:00