Commit Graph

453 Commits

Author SHA1 Message Date
Daniel Markstedt
7717890b5f
Feature config dir (#299)
* Define a separate config directory

* Create config dir when installing

* Fix typo

* Introduce delete_file method for deleting non-image files

* Add docstring
2021-10-05 20:58:49 -05:00
Daniel Markstedt
8f09f97d30
Cleanup rascsi-web mocking for current develop (#301) 2021-10-05 20:39:26 -05:00
Uwe Seimet
b79fd17f6f
Reserved IDs should only have an effect on ATTACH (#298)
* Reserved IDs should only have an effect on ATTACH

* Updated evaluation of reserved ID string
2021-10-04 14:22:32 -07:00
Daniel Markstedt
80e746b209
Feature show drive properties in webui (#290)
* Implement pad_image method

* Reintroduce list_files method, rename the other to list_images

* Add iso file padding UI

* HDD image UI

* Tweak label

* Store padded image in the right dir

* Show only images that need padding

* Support padding MO images

* Cleanup

* UI flow to show drive properites (#270)

* Adjust MO padding to align with current develop

* Add docstrings

* Remove image padding code

* Cleanup

* Cleanup
2021-10-02 09:33:31 -07:00
Eric Helgeson
d34c85d103
Merge pull request #293 from akuker/fix_hardcoded_filetypes
Query rascsi for the supported file endings to be used in the Web UI
2021-10-02 10:39:39 -05:00
Daniel Markstedt
00d7f8729a
manpages for rasdump and sasidump (#295)
* Fixed compile time issues

* Fix compile time error in sasidump.cpp

* Fix comment in Makefile

* Fix compile time error in sasidump.cpp

* Restore rasdump and sasidump to BIN_ALL

* Fix typo

* Install rasdump and sasidump

* manpage for rasdump

* Create manpage for sasidump

Co-authored-by: Uwe Seimet <Uwe.Seimet@seimet.de>
2021-10-02 08:16:35 +02:00
Uwe Seimet
0fb8753920
Fixed compile time issues (#294)
* Fixed compile time issues

* Fix compile time error in sasidump.cpp

* Fix comment in Makefile

* Fix compile time error in sasidump.cpp

* Restore rasdump and sasidump to BIN_ALL

Co-authored-by: Daniel Markstedt <markstedt@gmail.com>
2021-10-01 16:28:14 -07:00
Daniel Markstedt
af4e3dfe80
Translate source code in x68k (#289)
* Translate code comments

* Remove documentation that is contained in wiki

* Translate code comments

* Remove documentation that is contained in wiki

* Translate configuration file

* Remove documentation that is covered by wiki

* Translate code comments

* Translate strings and code comments

* Cleanup
2021-10-01 15:23:53 -05:00
Uwe Seimet
6d32a8d102
Link to directory is not a valid image file (#292) 2021-09-30 14:31:09 -07:00
Daniel Markstedt
4945862c91 Query rascsi for the supported file endings, rather than hardcode lists in python code 2021-09-30 14:10:51 -07:00
Uwe Seimet
c581c12d33
Set SADI product name to SASI HD (#291) 2021-09-30 10:37:12 -07:00
Uwe Seimet
969220565b
Fixed issue with protected devices/media, added IMAGE_FILE_INFO command (#288)
* Fixed issue with attaching protected devices

* Fixed same issue when inserting a file

* Added IMAGE_FILE_INFO command

* rasctl output update

* Added file mode and type

* Datat type update

* Reverted change

* Update web ui for protobuf changes

Co-authored-by: Daniel Markstedt <markstedt@gmail.com>
2021-09-30 10:22:57 -07:00
Eric Helgeson
998cc2d66f
Merge pull request #286 from akuker/webui_cleanup
Webui cleanup
2021-09-29 19:58:15 -05:00
Eric Helgeson
04095edaf9
Merge pull request #281 from akuker/feature_hidden_help
Hidden help text for each section
2021-09-29 19:56:48 -05:00
Eric Helgeson
7c5e942aff
Merge pull request #282 from akuker/fix_attaching_removable
Fix attaching removable devices in the Web UI
2021-09-29 19:53:11 -05:00
Eric Helgeson
d73cfb38ec
Merge pull request #285 from akuker/fix_dec_profiles
Fix DEC vendor strings
2021-09-29 19:52:08 -05:00
Daniel Markstedt
0e4c2b7fd7 Add more docstrings 2021-09-29 09:48:34 -07:00
Uwe Seimet
682d35f1e6
Improve MO support by removing capacity restrictions (#284)
* Improve MO support by removing capacity restrictions, resolves #283

* Updated geometry handling
2021-09-29 09:05:30 -07:00
Daniel Markstedt
b3936405f2 Fix DEC vendor strings 2021-09-29 07:07:49 -07:00
Daniel Markstedt
44298bf031 Add docstrings and clean up layout 2021-09-29 07:03:10 -07:00
nsafran1217
b3b740e3cc
Issue 278: fix ModeSense(6) and ModeSense(10) (#280)
* Change ModeSense(6) and ModeSense(10) to return proper length of data

* Fix size of block descripter returned from ModeSense(10)
2021-09-29 09:02:45 +02:00
Daniel Markstedt
ff00b6005c Fix bugs with attaching removable images 2021-09-28 16:04:16 -07:00
Daniel Markstedt
23586cc1c9 Hidden help text for each section 2021-09-28 13:39:08 -07:00
Daniel Markstedt
bfdaec6c15
Restore APPLE GENUINE; tweak other labels (#276) 2021-09-27 19:32:58 -05:00
Uwe Seimet
97c2a11329
MAPPING_INFO command, returning the mapping of extensions to types (#275)
* Added MAPPING_INFO command, returning the mapping of extensions to types

* Updated help message

* Set explicit vendor/product/revision for .hda extension

* Added leading blanks to vendor and product for .hda

* Product string update

* Fixed typo in help string

* Manpage update

* Spoof hda as a Quantum Fireball

Co-authored-by: Daniel Markstedt <markstedt@gmail.com>
2021-09-27 16:39:50 -07:00
akuker
c98dec8f44
SCSIMON immediately dies and doesn't collect any data (#271)
* SCSIMON immediately exits due to an introduced code error

* Fix string printout

Co-authored-by: Tony Kuker <akuker@gmail.com>
2021-09-26 08:46:23 +02:00
Daniel Markstedt
18e55bea2d
Feature attach suggestion (#260)
* Issue 232 -- will not generate PC98 emulator image formats

* Introducing dropdown for selecting device type which defaults to a recommendation based on file ending, while removing the quiet logic to autodetect type on the frond end side

* Added device type to PbImageFile

* Comment update

* Code cleanup

* More code cleanup

* Extraced methods

* Extracted methods

* Renaming

* Moved code

* Visility update

* Updated error handling

* Removed duplicate error handling

* Removed duplicate code

* Code cleanup

* Moved code

* Moved code

* Leverage new device type field for files in protobuf interface

* Tweak label

* Tweak template

* Fix bug

* Add types legend

* Add tip about renaming image files

Co-authored-by: Uwe Seimet <Uwe.Seimet@seimet.de>
2021-09-25 22:27:43 -05:00
Daniel Markstedt
3d0c200521
Have current log level selected by default in dropdown (#268)
* Have current log level selected

* Simplify footer
2021-09-25 21:33:21 -05:00
Tony Kuker
99bf0d3877 Update Pillow version to 8.3.2 2021-09-24 22:15:19 -05:00
Daniel Markstedt
13113178fa
X68000 rasctl code and docs, from RaSCSI 1.52 by GIMONS. Translated by me. Untested. (#255) 2021-09-24 21:07:30 -05:00
Eric Helgeson
01443ec653
Merge pull request #250 from akuker/fix_uploads
Fix the file upload functionality
2021-09-24 18:35:18 -05:00
Daniel Markstedt
75245a8b42 Customize dropzone stylesheet, adding a drop shadow to markers 2021-09-24 16:31:45 -07:00
Daniel Markstedt
b73ef29f06 Use native unzip instead of python zipfile lib for better performance 2021-09-24 14:48:54 -07:00
Daniel Markstedt
c9c97baa3c Fix example 2021-09-24 13:30:59 -07:00
Daniel Markstedt
fa3956c5c3 Fix example 2021-09-24 13:30:59 -07:00
Daniel Markstedt
23e6503263 Add more examples to rascsi.service 2021-09-24 13:30:59 -07:00
Daniel Markstedt
5abb0ea405 Update wording 2021-09-24 13:30:59 -07:00
Daniel Markstedt
37bf38190b Bump max file size limit to 4GB 2021-09-24 13:30:59 -07:00
Daniel Markstedt
c4959210d5 Blocks have been removed 2021-09-24 13:30:59 -07:00
Daniel Markstedt
386347e136 Tweak labels 2021-09-24 13:30:59 -07:00
Daniel Markstedt
c13c00cdea Fix typo 2021-09-24 13:30:59 -07:00
Daniel Markstedt
a581fb6966 Correct drive data 2021-09-24 13:30:59 -07:00
Daniel Markstedt
1c3d299dd7 Add Mac drives 2021-09-24 13:30:59 -07:00
Daniel Markstedt
11c1a5623a Correct drive data 2021-09-24 13:30:59 -07:00
Daniel Markstedt
ff13408bc9 Improve error handling of unzip method; clean up unused code 2021-09-24 13:30:59 -07:00
Daniel Markstedt
b4562e23cc Fix typo 2021-09-24 13:30:59 -07:00
Daniel Markstedt
66c45e4bf6 Make unzipping work 2021-09-24 13:30:59 -07:00
Daniel Markstedt
d9bb875a27 Unzip and delete zip files after upload; validate upload file suffix 2021-09-24 13:30:59 -07:00
Daniel Markstedt
f336675f35 Revert changes incorporated in another PR 2021-09-24 13:30:59 -07:00
Daniel Markstedt
f87792f188 Cleanup 2021-09-24 13:30:59 -07:00
Daniel Markstedt
fbc4ad1697 Switch to the basic stylesheet 2021-09-24 13:30:59 -07:00
Daniel Markstedt
3c9f4f708b Cleanup 2021-09-24 13:30:59 -07:00
Daniel Markstedt
ac388b57ed More style fixes 2021-09-24 13:30:59 -07:00
Daniel Markstedt
cb654c8049 Fix styling of dropzone form 2021-09-24 13:30:59 -07:00
Daniel Markstedt
bae1554b1f Don't hard code max file size 2021-09-24 13:30:59 -07:00
Daniel Markstedt
5ebbe8f107 Cleanup and better messages 2021-09-24 13:30:59 -07:00
Daniel Markstedt
b09810b46b Use dropzone and pydrop for file uploading 2021-09-24 13:30:59 -07:00
Daniel Markstedt
e98930cfff Remove redundant information 2021-09-24 13:30:59 -07:00
Daniel Markstedt
2cee644350 Correct drive sizes for Microp drives. Their true block_size is 256 kb, but should function with 512 kb as well. 2021-09-24 13:30:59 -07:00
Daniel Markstedt
22976029ce Fix language in 502 page 2021-09-24 13:30:59 -07:00
Daniel Markstedt
c2be764aa6 Revert to previous upload code, but keeping the secure filename improvement 2021-09-24 13:30:59 -07:00
Daniel Markstedt
e33e5c0560 Use unified terminology 2021-09-24 13:30:59 -07:00
Daniel Markstedt
71b04d8871 Add Cancel link on the bottom of the page as well 2021-09-24 13:30:59 -07:00
Daniel Markstedt
250d63d483 Display available disk space on the Pi 2021-09-24 13:30:59 -07:00
Daniel Markstedt
dfea050d60 Secure file names also for generic image file creation 2021-09-24 13:30:59 -07:00
Daniel Markstedt
5ded484166 Use secure file names when creating image files 2021-09-24 13:30:59 -07:00
Daniel Markstedt
dcd516aa48 Move arithmetic to Python code 2021-09-24 13:30:59 -07:00
Daniel Markstedt
57bbcbd639 Address issue#61 by allowing only recognized file types to be picked for upload 2021-09-24 13:30:59 -07:00
Daniel Markstedt
d31db7c316 Remove file type check since it happens after uploading has completed 2021-09-24 13:30:59 -07:00
Daniel Markstedt
c150a6c7b8 Use save() to upload files, to address file corruption issues with the previous solution. Also adds file ending validation which has been requested by users. 2021-09-24 13:30:58 -07:00
Daniel Markstedt
3a0578e0bb Improve error message 2021-09-24 13:30:58 -07:00
Daniel Markstedt
1cd5e8cea1 Fix saving and loading device params in config files 2021-09-24 13:30:58 -07:00
Daniel Markstedt
ef28a5b491 Bump point release of four dependencies, then lock down versions again 2021-09-24 13:30:58 -07:00
Daniel Markstedt
4331f68f3a Use compatible version clause for Python dependency management 2021-09-24 13:30:58 -07:00
Daniel Markstedt
c6ef573d3b Revert granular SCHD detection on the web ui side, since there are a plethora of hard drive image file endings out there 2021-09-24 13:30:58 -07:00
Daniel Markstedt
8454021f6b Allow for more recent python libraries, rather than fixed at a particular version 2021-09-24 13:30:58 -07:00
Daniel Markstedt
6b1c099039 Cleanup 2021-09-24 13:30:58 -07:00
Daniel Markstedt
f830003c72 Store drive size instead of block number 2021-09-24 13:30:58 -07:00
Daniel Markstedt
587e64e17e Move scsi id reservation management to the backend 2021-09-24 13:30:58 -07:00
Daniel Markstedt
e10231c0e7 More descriptive text on index.html 2021-09-24 13:30:58 -07:00
Eric Helgeson
4fed455645
Merge pull request #246 from akuker/feature_backend_reserve
Manage scsi id reservations on the rascsi backend; Store drive size instead of blocks; sundry minor fixes
2021-09-24 15:17:56 -05:00
Daniel Markstedt
8fbc834fa0 Fix example 2021-09-24 13:06:26 -07:00
Daniel Markstedt
c440849c7e Fix example 2021-09-24 13:05:21 -07:00
Daniel Markstedt
c428782565 Add more examples to rascsi.service 2021-09-24 13:01:48 -07:00
Daniel Markstedt
e21f2dd8c1 Update wording 2021-09-24 12:49:13 -07:00
Uwe Seimet
829356a32c
protobuf interface returns assumed device type (#259)
* Added device type to PbImageFile

* Comment update

* Code cleanup

* More code cleanup

* Extraced methods

* Extracted methods

* Renaming

* Moved code

* Visility update

* Updated error handling

* Removed duplicate error handling

* Removed duplicate code

* Code cleanup

* Moved code

* Moved code
2021-09-24 08:48:48 +02:00
Daniel Markstedt
eaa7257b25 Blocks have been removed 2021-09-23 17:28:22 -07:00
Daniel Markstedt
7b8a5f6c76 Fix typo 2021-09-22 21:00:55 -07:00
Daniel Markstedt
00abd387dc Correct drive data 2021-09-22 20:59:50 -07:00
Daniel Markstedt
31577ab8c4 Merge branch 'develop' into feature_backend_reserve 2021-09-22 20:41:25 -07:00
Daniel Markstedt
e2ea9b36d0 Add Mac drives 2021-09-22 20:37:27 -07:00
Daniel Markstedt
8922df56b8 Correct drive data 2021-09-22 20:34:00 -07:00
Uwe Seimet
fdee57e421
Issues 245 & 247, improved symlink handling (#252)
* Extensions are case-insensitive

* Made options case-sensitive, synchronized rasctl and rascsi options

* Manpage and help update

* Added comment

* Updated log message

* Warn about invalid files in image folder

* Updated handling of block devices

* Updated symlink handling

* Fixed wrong handle being closed

* Copy links as links

* Logging update

* Added -D_FILE_OFFSET_BITS=64 for better support of huge files

* Logging update

* Added comment

* Use readdir instead of directory_iterator (issue with outdated C++ libs)

* Updated symlink handling

* Updated link handling

* Updated logging

* Updated error logging

* Fixed condition

* Updated setting default image folder

* Comment update
2021-09-22 08:40:46 -07:00
No0ne
b92a762acc
Update nginx-default.conf (#241)
Update nginx-default.conf to enable the web ui via IPv6
2021-09-20 18:17:17 -07:00
Daniel Markstedt
d434dfe918 Improve error message 2021-09-20 10:47:00 -07:00
Daniel Markstedt
d1ef834ffd Fix saving and loading device params in config files 2021-09-20 10:46:48 -07:00
Daniel Markstedt
12483a58f5 Bump point release of four dependencies, then lock down versions again 2021-09-20 08:58:36 -07:00
Daniel Markstedt
a6b0a40a78 Use compatible version clause for Python dependency management 2021-09-20 07:10:42 -07:00
Daniel Markstedt
8bc5789ba6 Revert granular SCHD detection on the web ui side, since there are a plethora of hard drive image file endings out there 2021-09-19 21:48:49 -07:00
Daniel Markstedt
5507d7c530 Allow for more recent python libraries, rather than fixed at a particular version 2021-09-19 19:38:24 -07:00
Daniel Markstedt
7f1c3f7395 Cleanup 2021-09-19 18:39:07 -07:00
Daniel Markstedt
591bbb4325 Store drive size instead of block number 2021-09-19 18:35:15 -07:00
Daniel Markstedt
133372ff09 Move scsi id reservation management to the backend 2021-09-19 15:57:28 -07:00
Daniel Markstedt
40becc344a More descriptive text on index.html 2021-09-19 15:47:11 -07:00
Daniel Markstedt
9795c553be
RaSCSI logo favicons (#237) 2021-09-19 14:36:43 -07:00
Daniel Markstedt
15febd1ee6
Disk image profile management using a sidecar config file (#242)
* Handle a case where reserved ids on the Web UI side are not actually reserved on the backend side

* Better error handling when no device is found in list_devices

* Better warning message

* Tag message as error

* Fix device_info

* Get reserved ids from the server instead of storing a client side state, which caused front and backend to get out of sync in certain cases.

* Initial implementation of sidecar configuration reading and writing

* Use bytes for drive image creation internally

* Add named drive section

* Move header to base.html

* Create the disk profile list page

* Make lists of HDDs, CDRs, and Removable drives

* Implement disk image + sidecar creation

* Implement CD-ROM device sidecar creation method

* Add more device configurations

* Add disclaimer

* Hide URL if none is provided

* Make the web ui use the new protobuf parameter maps

* Make daynaport attaching UI more flexible

* Use the protobuf interface to create image files

* Use new create image method for the sidecar flow as well

* Move file deletion logic to protobuf commands; Refactor saving/loading config files

* Update disk image creation

* Fix error

* Disk images the script makes are in Mac format

* Add blurb about the risks with using Lido driver (issue#40) to the easyinstall script, while pushing less for using that feature.

* Make shutdown and reboot async operations

* More informative footer contents

* Wordsmith the Mac drive options

* Link to relevant section in the wiki

* Added GET_IMAGE_FILES

* Added default folder to GET_IMAGE_FILES

* Renaming

* Updated setting image folder

* Lists available net interfaces as a drop down when attaching daynaport

* Macs should use the hds image file ending

* Fixed default image folder handling

* Refer to device properties, instead of sidecars

* Added NETWORK_INTERFACES_INFO

* Filter "lo"

* Use PF_INET in favor of PF_INET6

* Added network interfaces to server info

* Drive property file ending defined in one place; Add handling of common urllib and file system exceptions.

* Use protobuf interface to get network interface info

* Use protobuf interface for list_files

* Repeated field cleanup

* Renaming

* Added DEVICE_TYPES_INFO

* Comment update

* Added -y option to rasctl

* Add the remaining recommended drive profiles provided by rpajarola

* Fix typos

* Add warnings to CD-ROM descriptions

* Add more recommended Sun drives

* Add capacity to name

* Move footer into base.html

* Handle removable drive insertion in the attach method (easy to do with protobuf)

* Limit which arguments to pass to an image injection command

* Cleanup

* Sort image and config files alphabetically

* Make compatible with updated protobuf interface

* Sort drives alphabetically by name

* Decriptive text for CD-ROM section

* Better description

* Hyperlink to disks page instead of button

Co-authored-by: Uwe Seimet <Uwe.Seimet@seimet.de>
2021-09-19 14:29:01 -07:00
Uwe Seimet
6b082447c5
protobuf interface cleanup (#244)
* Repeated field cleanup

* Renaming

* Added DEVICE_TYPES_INFO

* Comment update

* Added -y option to rasctl

* Updated rasctl help message
2021-09-19 14:27:47 -07:00
Uwe Seimet
f782156e51
Added INFO_IMAGE_FILES and INFO_NETWORK_INTERFACES (#243)
* Added GET_IMAGE_FILES

* Added default folder to GET_IMAGE_FILES

* Renaming

* Updated setting image folder

* Fixed default image folder handling

* Added NETWORK_INTERFACES_INFO

* Filter "lo"

* Use PF_INET in favor of PF_INET6

* Added network interfaces to server info

* Filter rascsi_bridge

* Use list of available network interfaces as default parameters
2021-09-19 09:05:01 +02:00
Uwe Seimet
3b83b014b4 Updated directory iterator options 2021-09-18 19:28:55 +02:00
Uwe Seimet
26c6a902f1 Fixed wrong parameter name 2021-09-18 08:53:02 +02:00
Uwe Seimet
7efed1a239 Added missing comments to .proto file 2021-09-17 23:18:46 +02:00
Uwe Seimet
fd97650712 Updated error messages 2021-09-17 22:22:40 +02:00
Uwe Seimet
ad0e454e66 Simplified filename validation 2021-09-17 20:14:03 +02:00
Uwe Seimet
5b3af7cf9d Improved filename validation 2021-09-17 19:59:12 +02:00
Uwe Seimet
9663144c45 Updated file validation 2021-09-17 19:54:42 +02:00
Uwe Seimet
7a1a2ec328 Updated error handling 2021-09-17 19:45:27 +02:00
Uwe Seimet
7018ccac64 Added PROTECT_IMAGE, UNPROTECT_IMAGE 2021-09-17 11:11:22 +02:00
Uwe Seimet
9266852ae2 Updated logging 2021-09-16 13:03:14 +02:00
Uwe Seimet
2aea71820c Fixed parameter name 2021-09-16 12:56:16 +02:00
Uwe Seimet
8629dea87f Replaced parameter lists by map with named parameters 2021-09-16 12:16:53 +02:00
Uwe Seimet
00a08e8d18 Help/Manpage update for rasctl 2021-09-15 22:00:48 +02:00
Uwe Seimet
2483687b8a Fixed typo 2021-09-15 17:50:00 +02:00
Uwe Seimet
3b250f0eff Added copy support to rasctl 2021-09-15 17:40:34 +02:00
Uwe Seimet
4cfeb32aa8 Added support for copying image files 2021-09-15 17:35:48 +02:00
Uwe Seimet
4ff271eeec Updated error handling 2021-09-15 16:35:51 +02:00
Uwe Seimet
7f68f9b91f Updated error handling 2021-09-15 16:33:50 +02:00
Uwe Seimet
c78ff8fce1 Fixed Eclipse warning 2021-09-15 16:26:18 +02:00
Uwe Seimet
f178221aff Error message update 2021-09-15 15:18:53 +02:00
Uwe Seimet
da110c4e8e Prevent image files in use from being deleted 2021-09-15 15:17:26 +02:00
Uwe Seimet
f6f572ee9e Fixed file permissions 2021-09-15 15:06:27 +02:00
Uwe Seimet
c72837a4a3 Added support for creating read-only image files 2021-09-15 14:51:01 +02:00
Uwe Seimet
7ed22bf33b Updated file size validation 2021-09-15 13:56:00 +02:00
Uwe Seimet
548ae19fa5 Check for existing image file when renaming 2021-09-15 13:37:14 +02:00
Uwe Seimet
4bf903f7f2 Updated logging 2021-09-15 13:35:39 +02:00
Uwe Seimet
2ffad76c64 Updated logging 2021-09-15 13:32:29 +02:00
Uwe Seimet
14437274e2 Comment update 2021-09-15 12:44:49 +02:00
Uwe Seimet
434ea0e3f7 Added RENAME_IMAGE 2021-09-15 12:26:01 +02:00
Uwe Seimet
492f332dd7 Updated file size check 2021-09-15 11:31:52 +02:00
Uwe Seimet
2a9969bf1d Comment update 2021-09-15 11:13:30 +02:00
Uwe Seimet
812a322e8d Added image file deletion 2021-09-15 11:08:23 +02:00
Uwe Seimet
9a8c35db6b Added path check 2021-09-15 10:57:12 +02:00
Uwe Seimet
8172c9fdfe Initial image file creation 2021-09-15 10:47:51 +02:00
Daniel Markstedt
8a3642bf9a
Move to protobuf for the webapp, major overhaul to easyinstall.sh, code comment translations (#229)
* Making saving and loading config files work with protobuf

* Formatted the Status column, and fixed the available ID logic

* Updated handling of removed status for devices without image file support

* Comment update

* Fixed typo

* Updated logging

* Updated handling of removed status for devices without image file support

* Comment update

* Fixed typo

* Updated logging

* Better handling of device status

* Updated parameter handling

* Updated setting default interfaces

* Revert "Updated setting default interfaces"

This reverts commit 210abc775d.

* Revert "Updated parameter handling"

This reverts commit 35302addd5.

* Abort with a 404 if rascsi is not running. Use any protobuf response to determine whether rascsi is running (should hardly be required anymore due to the other change, but just in case).

* Move id reservation back into __main__

* Remove check for device type when validating Removed image

* Leverage device property data for better status messages

* Remove redundant string sanitation when reading config csv file

* Clean up device list generation

* Cleanup

* Remove duplicates before building valid scsi id list

* Fully translated cfilesystem.h code comments to English; partially translated cfilesystem.cpp

* rascsi supports reserving IDs

* Updated help message

* Replaced BOOL by bool

* Logging update

* Logging update

* Cleanup

* Restructure the easyinstall.sh script to combine the install/update flows, and disallow installing the webapp by itself

* Remove redundant steps handled in Makefile

* Add the functionality to specify connect_type through a parameter

* Add validation to the argument parser allowing only STANDARD and FULLSPEC as options

* Complete translation of code comments for cfilesystem.h; partial translation for cfilesystem.cpp

* Cleanup

* Merge parts of the Network Assistant script by sonique6784; fix the run_choice startup parameter

* Improve on the network setup messages

* Fix routing address

* Add checks for previous configuration; cleanup

* Cleanup

* Remove redundant step in wired setup. Improve messages.

* Cleanup

* Added default parameters to device properties

* Return parameters a device was set up with

* Add flows for configuring custom network settings; adopting some logic by –sonique6784

* Improved device initialization

* Updated default parameter handling

* Updated default parameter handling

* Fixed typo

* Comment updates

* Comment update

* Make iso generation work again, and add error handling to urllib actions

* Manage default parameters in the respective device

* Print available network interfaces. Clean up step and improve descriptive messages.

* Make the script clean up previous configurations

* Make the script only show relevant interfaces

* Partial translation of cfilesystem.cpp

* Do not pass empty parameter string

* Added supports_params flag

* Completely translate code comments in cfilesystem.cpp

* Show rascsi-web status after installing

* Refactoring

* Made comparisons more consistent

* Updated error handling

* Updated exception handling

* Made comparisons more consistent

* Updated error handling

* Overlooked code comment translation

* Renaming

* Better error handling for socket connection

* Disable two NEC hd image types due to issue#232

* Comment update

* NEC sectors size must be 512 bytes

* Updated logging

* Updated vendor name handling

* Updated handling of media loading/unloading

* Comment update

* NEC sectors size must be 512 bytes

* Updated logging

* Updated vendor name handling

* Updated handling of media loading/unloading

* Better handling of removable disks in the web ui

* Added stoppable property and stopped status

* Made MO stoppable

* Removed duplicate code

* Removed duplicate code

* Copy read-only property

* Renaming

* Add an assistant for reserving scsi ids

* Don't show action if no device attached

* Implement a device_info app path, and cut down on device columns always shown

* Cleanup

* Removed duplicate code, added START/STOP

* Improved default parameter handling

* Updated load/eject handling

* Logging update

* Fixed typo

* Verified START/STOP UNIT

* Updated logging

* Updated status handling

* Updated status handling

* More status handling updates

* Logging update

* Made instance fields local variables

* Removed duplicate code, added START/STOP

* Improved default parameter handling

* Updated load/eject handling

* Logging update

* Fixed typo

* Verified START/STOP UNIT

* Updated logging

* Updated status handling

* Updated status handling

* More status handling updates

* Logging update

* Made instance fields local variables

* Made disk_t private

* Made some data structures private

* Fixed ARM compile issue

* Fast forward instead of rebase existing git repo

* Fixed ctapdriver initialization issue

* Reset read-only status when opening an image file

* Cleanup

* Cleanup

* Made logging more consistent

* Updated log level

* Cleanup

* Log load/eject on error level for testing

* Revert "Log load/eject on error level for testing"

This reverts commit d35a15ea8e.

* Assume drive is not ready after having been stopped

* Updated status handling

* Make the csv config files store all relevant device data for reading

* Read 9 column csv config files

* Fixed typo

* Rebuild manpage

* Fixed issue #234 (MODE SENSE (10) returns wrong mode parameter header)

* Removed unused code

* Enum data type update

* Removed duplicate range check

* Removed duplicate code

* Removed more duplicate code

* Logging update

* SCCD sector size was not meant to be configurable

* Better error handling for csv reading and writing

* Updated configurable sector size properties

* Removed assertion

* Improved error handling

* Updated error handling

* Re-added special error handling only relevant for SASI

* Added TODOs

* Comment update

* Added override modifier

* Removed obsolete debug flag (related code was not called)

* Comment and logging updates

* Removed obsolete try/catch

* Revert "Removed obsolete try/catch"

This reverts commit 39ca12d8b1.

* Comment update

* Removed duplicate code

* Updated error messages, use more foreach loops

* Avoid storing RaSCSI generated product info in config file

* Updated logging

* Logging update

* Save config files in json instead of csv

* Fix bugs with json config loading

* Refactoring & remove unused code

* Refactoring

* Display upper case file endings in file management list

* Only show product vendor for non-RaSCSI devices in the device list

* Translate code comment

* Refactoring

* Fix bad identation

* Improve valid file extension handling

* Add validation when attaching removable media

* Display valid file endings under the file list

* Cleanup

* Don't store 0 block size

* Fix indentation

* Read and write config files in key:pair format

* Add section for controlling logging

* README update

* Added block_count

* Cleanup, fix typos

* Support attaching CD-ROM with custom block size

* Evaluate block size when inserting a media

* rasctl display capacity if available

* Info message update

* Use kwargs for device attachment

* Fix bugs in attach_image kwargs; make config file more readable

* POC for attaching device with profile

* Only list product types valid for the particular image file

* Perform validation of HDD image size based on the product profile

* Implement sidecar config files for drive images.

* Added missing product name to NEC vital product data

* MO block size depends on capacity only

* Better error handling for device sidecar config loading

* Extended property/status display

* Property display update

* Updated error handling

* Handle image sizes in bytes internally

* Revert change

* Resolve bad merge

Co-authored-by: Uwe Seimet <Uwe.Seimet@seimet.de>
2021-09-14 21:51:12 -05:00
Uwe Seimet
3e7f317c49
Configurable block size, controller/device cleanup, dispatchers per device, bridge setup (#203)
* Use foreach

* Renaming

* Revert "Renaming"

This reverts commit b0554b9c0a.

* Manpage updates

* Removed obsolete assertions

* Replaced QWORD by uint64_t and removed respective typedef

* Removed LPCSTR typedef

* Removed LPCTSTR typedef

* Removed LPTSTR typedef

* Renamed SCSI command interface classes

* Renamed xm6.h to rascsi.h

* Moved interface classes to new interfaces subfolder

* Added include

* Fixed compilation issues of 64 bit Ubuntu

* Renaming

* Sort block sizes

* protobuf interface description update

* Fixed handling for sector size for non-disk devices

* Fixed typo

* Fixed comment

* Translate code commends into English, removing redundant ones (#214)

* Comment update

* For other bridge interfaces than eth0 IP address and netmask can be provided

* Added special rule for testing on x86 PCs

* Translated code comments into English, removing some redundant ones in the process, plus fixing typos (#215)

* Translate code commends into English, removing redundant ones

* - Translated all remaining Japanese code comments in src/raspberrypi/ to English, with the exception of cfilesystem.cpp|h
- Removed some redundant comments where the context is obvious from the
  code
  - Fixed a few typos and mistakes

* Comment update

* Removed unused typedefs

* Added special rule for testing on x86 PCs

* Comment update

* Comment update

* Updated capacity calculation

* Updated protobuf interface to signal parameter support

* Simplified protobuf interface

* Updated rasctl server info output

* Updated logging

* protobuf interface has to return block only if it is configurable

* Updated block size handling

* Improved error message if ID is already in use

* Removed typedef

* Renamed protobuf interface method

* Renaming

* Use protobuf::Messsge instead of protobuf::MessageLite

* default_image_folder cannot be an empty string, removed obsolete check

* Logging update

* Made some error messages more concise

* Removed magic constant

* Updated error message

* Comment update

* Names of removable media drives must be constant and not contain the capacity

* Improved DeviceFactory error handling

* More error handing improvements

* Interface comment update

* Pass interface list to ctapdriver when creating bridge

* Moved initialization code

* Updated rasctl server information output

* Improved handling of MO capacities

* Renaming

* Comment update

* Reject inserting a medium when there is already a medium present (eject first)

* Save list of files in use before dry-run

* Updated rasctl server info message

* Comment update

* Fixed typo

* Cleaned list handling

* Sort devices list by ID *and unit*

* Improved block size check

* Fixed issue with missing method in old Raspberry Pi OS protobuf implementation

* Updated error message

* Improve and fix bugs with saving&loading configuration files for rascsi-web (#218)

* Translate code commends into English, removing redundant ones

* - Translated all remaining Japanese code comments in src/raspberrypi/ to English, with the exception of cfilesystem.cpp|h
- Removed some redundant comments where the context is obvious from the
  code
  - Fixed a few typos and mistakes

* - Store only file path and name to configuration csv
- Strip known non-file path strings when reading configuration csv (backwards compatibility)
- Validate SCSI ID before attempting to attach a device

* Add comment and TODO

* Partial translation of cfilesystem.h

* Move csv read/write logic into file_cmd.py

* Load default.csv on rascsi-web startup

* Add rudimentary error handling to config loading/saving

* Implement a delete configuration csv file feature. Also rename the delete_image method to delete_file and made it take the full file patch as argument to be consistent with other file operation methods.

* Catch the exception when attempting to exclude SCSI id that is already in use from a list of valid SCSI ids

* Fix error handling when failing to open a csv file for read or write

* Removed unused structures, code and type cleanup

* Use unscoped enums for commands

* SASI Format opcode is 0x06, not 0x04 (see comment in code)

* Removed duplicate command

* Code review, data type updates

* Data type updated, use #pragma once

* Logging update

* Renaming

* Renaming

* Removed duplicate code

* Renaming

* Refactoring

* Removed TODO

* Updated logging

* Comment update

* Comment update

* Updated GetEventStatusNotification

* Removed goto

* Options -h and -v do not require to be the root user (fixes issue #166)

* Updated error messages and exception handling

* Added number of supported LUNs to protobuf interface

* Updated list handling of protobuf interface

* Comment update

* Improved error handling

* Added missing return statement

* Allow empty device list

* Fixed unnecessary detach_all() when config file isn't read (#221)

* Translate code commends into English, removing redundant ones

* - Translated all remaining Japanese code comments in src/raspberrypi/ to English, with the exception of cfilesystem.cpp|h
- Removed some redundant comments where the context is obvious from the
  code
  - Fixed a few typos and mistakes

* - Store only file path and name to configuration csv
- Strip known non-file path strings when reading configuration csv (backwards compatibility)
- Validate SCSI ID before attempting to attach a device

* Add comment and TODO

* Partial translation of cfilesystem.h

* Move csv read/write logic into file_cmd.py

* Load default.csv on rascsi-web startup

* Add rudimentary error handling to config loading/saving

* Implement a delete configuration csv file feature. Also rename the delete_image method to delete_file and made it take the full file patch as argument to be consistent with other file operation methods.

* Catch the exception when attempting to exclude SCSI id that is already in use from a list of valid SCSI ids

* Fix error handling when failing to open a csv file for read or write

* Run detach_all() only after succeeding to open a file for reading

* Protecting/unprotecing a non-ready medium is considered not possible

* Updated error message

* Extract detaching all devices, add parameter list support

* Comment update

* Fixed typos

* Restore files in use if dry-run fails

* Feature configurable reserved id for rascsi-web (#223)

* Translate code commends into English, removing redundant ones

* - Translated all remaining Japanese code comments in src/raspberrypi/ to English, with the exception of cfilesystem.cpp|h
- Removed some redundant comments where the context is obvious from the
  code
  - Fixed a few typos and mistakes

* - Store only file path and name to configuration csv
- Strip known non-file path strings when reading configuration csv (backwards compatibility)
- Validate SCSI ID before attempting to attach a device

* Add comment and TODO

* Partial translation of cfilesystem.h

* Move csv read/write logic into file_cmd.py

* Load default.csv on rascsi-web startup

* Add rudimentary error handling to config loading/saving

* Implement a delete configuration csv file feature. Also rename the delete_image method to delete_file and made it take the full file patch as argument to be consistent with other file operation methods.

* Catch the exception when attempting to exclude SCSI id that is already in use from a list of valid SCSI ids

* Fix error handling when failing to open a csv file for read or write

* Run detach_all() only after succeeding to open a file for reading

* Make the reserved SCSI id configurable through an argument to start.sh; make the rascsi-web service reserve 7 by default to maintain current behavior.

* Make it possible to reserve multiple scsi ids in the web ui

* Added support for reserved IDs

* rasctl output update

* Re-ordered logging

* Logging update

* Make use of the newly introduced 'rasctl -r' to have the webui reserve ids on the backend side upon startup (#224)

* Translate code commends into English, removing redundant ones

* - Translated all remaining Japanese code comments in src/raspberrypi/ to English, with the exception of cfilesystem.cpp|h
- Removed some redundant comments where the context is obvious from the
  code
  - Fixed a few typos and mistakes

* - Store only file path and name to configuration csv
- Strip known non-file path strings when reading configuration csv (backwards compatibility)
- Validate SCSI ID before attempting to attach a device

* Add comment and TODO

* Partial translation of cfilesystem.h

* Move csv read/write logic into file_cmd.py

* Load default.csv on rascsi-web startup

* Add rudimentary error handling to config loading/saving

* Implement a delete configuration csv file feature. Also rename the delete_image method to delete_file and made it take the full file patch as argument to be consistent with other file operation methods.

* Catch the exception when attempting to exclude SCSI id that is already in use from a list of valid SCSI ids

* Fix error handling when failing to open a csv file for read or write

* Run detach_all() only after succeeding to open a file for reading

* Make use of the new 'rasctl -r' command to reserve IDs on the backend side as well.

* Updated string to integer conversions

* Improved string to integer conversion

* Move string to integer conversion to rasutil

* Removed unused variable

* Fixed detach, which did not remove the filename from the filenames set

* Re-added folder to gitignore

* Set/Display patch version

* Fix issue where reserved ids were not reserved again when restarting rascsi-service from within the web ui (#226)

* Translate code commends into English, removing redundant ones

* - Translated all remaining Japanese code comments in src/raspberrypi/ to English, with the exception of cfilesystem.cpp|h
- Removed some redundant comments where the context is obvious from the
  code
  - Fixed a few typos and mistakes

* - Store only file path and name to configuration csv
- Strip known non-file path strings when reading configuration csv (backwards compatibility)
- Validate SCSI ID before attempting to attach a device

* Add comment and TODO

* Partial translation of cfilesystem.h

* Move csv read/write logic into file_cmd.py

* Load default.csv on rascsi-web startup

* Add rudimentary error handling to config loading/saving

* Implement a delete configuration csv file feature. Also rename the delete_image method to delete_file and made it take the full file patch as argument to be consistent with other file operation methods.

* Catch the exception when attempting to exclude SCSI id that is already in use from a list of valid SCSI ids

* Fix error handling when failing to open a csv file for read or write

* Run detach_all() only after succeeding to open a file for reading

* Make use of the new 'rasctl -r' command to reserve IDs on the backend side as well.

* Make sure reserved SCSI IDs gets reserved again when restarting rascsi-service from within the web ui

* Updated interface comment

* Accept daynaport as legacy type

* Fixed typo

* Remove file from the list of files in use when ejected with a SCSI command

* Check for attached device for INSERT, EJECT, PROTECT, UNPROTECT

* Fixed error handling

* Fixed filepath handling

* Added more device shortcuts to rasctl

* Fixed function declaration

* Extraced ATTACH and DETACH

* Extracted INSERT

* Simplified ProcessCmd

* Comment update

* Fixed memory leak

* Log information on whether a new device is protected or read-only

* Updated errro message

* Updated error message

* Initialize private fields

* Updated rasctl help message

* Added DEVICE_INFO to protobuf interface

* Improved error handling

* DEVICE_INFO supports device list

* Updated server info handling

* Unified result handling with oneof, all commands now return PbResult

* A result can always return a message string

* Fixed typo

* Simplified sending of commands

* Improved error handling

* Removed unused code

* Updated error handling

* Code cleanup

* Comment update

* Updated logging

* Updated error handling

* Updated handling of removed status for devices without image file support

* Comment update

* Fixed typo

* Updated logging

* Updated parameter handling

* Updated setting default interfaces

* Revert "Updated setting default interfaces"

This reverts commit 210abc775d.

* Revert "Updated parameter handling"

This reverts commit 35302addd5.

* rascsi supports reserving IDs

* Updated help message

* Replaced BOOL by bool

* Logging update

* Logging update

* Added default parameters to device properties

* Return parameters a device was set up with

* Improved device initialization

* Updated default parameter handling

* Updated default parameter handling

* Fixed typo

* Comment updates

* Comment update

* Manage default parameters in the respective device

* Do not pass empty parameter string

* Added supports_params flag

* Made comparisons more consistent

* Updated error handling

* Updated exception handling

* Renaming

* Comment update

* NEC sectors size must be 512 bytes

* Updated logging

* Updated vendor name handling

* Updated handling of media loading/unloading

* Added stoppable property and stopped status

* Made MO stoppable

* Removed duplicate code

* Removed duplicate code

* Copy read-only property

* Renaming

* Removed duplicate code, added START/STOP

* Improved default parameter handling

* Updated load/eject handling

* Logging update

* Fixed typo

* Verified START/STOP UNIT

* Updated logging

* Updated status handling

* Updated status handling

* More status handling updates

* Logging update

* Made instance fields local variables

* Made disk_t private

* Made some data structures private

* Fixed ARM compile issue

* Fixed ctapdriver initialization issue

* Reset read-only status when opening an image file

* Made logging more consistent

* Updated log level

* Log load/eject on error level for testing

* Revert "Log load/eject on error level for testing"

This reverts commit d35a15ea8e.

* Assume drive is not ready after having been stopped

* Updated status handling

* Fixed typo

* Rebuild manpage

* Fixed issue #234 (MODE SENSE (10) returns wrong mode parameter header)

* Removed unused code

* Enum data type update

* Removed duplicate range check

* Removed duplicate code

* Removed more duplicate code

* Logging update

* SCCD sector size was not meant to be configurable

* Updated configurable sector size properties

* Removed assertion

* Improved error handling

* Updated error handling

* Re-added special error handling only relevant for SASI

* Added TODOs

* Comment update

* Added override modifier

* Removed obsolete debug flag (related code was not called)

* Comment and logging updates

* Removed obsolete try/catch

* Revert "Removed obsolete try/catch"

This reverts commit 39ca12d8b1.

* Comment update

* Removed duplicate code

* Updated error messages, use more foreach loops

* Updated logging

* Logging update

* README update

* Added block_count

* Evaluate block size when inserting a media

* rasctl display capacity if available

* Info message update

* Added missing product name to NEC vital product data

* MO block size depends on capacity only

* Extended property/status display

* Property display update

* Updated error handling

* (Doc only changes) Fix typos and add clarification that SASI is used on Unix workstations

Co-authored-by: Daniel Markstedt <markstedt@gmail.com>
Co-authored-by: Tony Kuker <akuker@gmail.com>
2021-09-14 20:23:04 -05:00
Donald Burr
62487e8e0e Fix link to ms-icon-70x70.png et al 2021-09-07 12:44:24 -07:00
Donald Burr
d12a1e3d73 Add PWA (Portable Web App) support
* make the app look a little less derpy on phone sized devices
* add "Add to home screen" support

Note: if you would like to replace my rather derpy rendition of the SCSI icon
(and I wouldn't blame you if you did) then run your icon through the online
favicon processor at https://www.favicon-generator.org/ to get all of the PWA
icons (apple-icon-114x114.png, etc.)
2021-09-07 12:38:56 -07:00
Eric Helgeson
62f6c8d948
Fix issue where pi thinks it should use ipv6 localhost (#209) 2021-08-24 18:37:54 -05:00
Daniel Markstedt
795286f4c4
Fix for issue#199. Also removed check for daynaport in attach_image() since that branch will never be reached in the current webui implementation. (#206) 2021-08-23 10:30:14 +02:00
Daniel Markstedt
66342dc18a
Fix for issue#197. Also removed the valid file extensions list from web/file_cmds.py since it wasn't used. (#205) 2021-08-22 21:37:43 +02:00
Uwe Seimet
0bd12e93f5
Refactoring, device handling extensions, additional settings, improved error handling, 64 bit OS support, fixed issues (#184)
* Device type unification, support of removable media

* Added support for .hdr extension

* Removable flag cleanup

* Manpage update

* Enriched PbOperation with PbDevice

* Added file size to PbImageFile

* Added device list support

* Set image_file

* Make remote interface more robust by ignoring SIGPIPE

* Return status only once

* Fixed typo

* Error handling update

* When starting rascsi parse everything before attaching devices

* Added dry run mode

* Comment update

* Updated logging

* Added Device base class, Disk class inherits from it

* Renaming

* Use vectors for controllers and disks, as preparation for using maps

* Updated file support handling

* Comment update

* DaynaPort and Bridge inherit from Device instead of Disk

* ProcessCmd() now works with devices instead of disks

* Renaming

* Added DeviceFactory

* Improved factory

* Comment update

* protected disk_t

* Code cleanup, added translations

* Device name can be set for rascsi

* rasctl can set device name

* Manpage update

* Manpage update

* Formatting update

* Check for missing name

* Initialize fd

* Initialize type

* Fixed string length issue

* Updated capacity formatting

* Fixed typo

* Split PbDevice into device and device definition

* Added TODO

* Renaming

* Renaming

* Device types can be explicitly specified with -t (no FILE:TYPE syntax anymore)

* Fixed compile-time issue

* Removed unused Append mode, updated read-only handling

* Type handling and manpage update

* Cleanup

* rasctl parser cleanup

* Review

* Constructor update

* Added .hdr (SCRM) support to web interface, tested web interface

* Default folder can be set remotely

* Removed deprecated operation

* DETACH supports all parameters in order to detach all devices

* include cleanup

* Logging should not depend on NDEBUG, for RaSCSI it is not peformance-critical

* INFO is default log level

* Exception renaming

* Updated GetPaddedName()

* Inheritance update

* Added BlockDevice class

* Removed unused code

* Updated typedefs

* Revert "Updated typedefs"

This reverts commit 546b46215a.

* Removed unused code

* Fixed warnign

* Use standard C++ integer types, use streams to resolve printf data type issues

* Added TODOs

* Added TODO

* Renaming

* Added TODO

* Added TODO

* Improved dry-run

* Code cleanup

* Updated handling of unknown options, code review and cleanup

* Manpage update

* Added PrimaryDevice

* Include cleanup

* Added pure virtual methods

* Comment updates

* Split rasutil

* Replaced some occurrences of BOOL

* Removed obsolete RASCSI definition in xm6.h

* Removed unused code, updated TODOs, replaced BOOL

* Added capacity check (issue #192)

* Fixed (most likely) https://github.com/akuker/RASCSI/issues/191

* Fixed wrong error messages

* For root the default image folder is /home/pi/images, updated error handling

* Dynaport code review

* Improved error handling

* Implemented READ CAPACITY(16)

* Comment update

* Commands can be 16 bytes long

* Implemented READ/WRITE/VERIFY(16)

* Comment update

* Renamed method to reflect the name of the respective SCSI command

* Do not created devices during dryRun

* Fixed padding of SCSIHD_APPLE vendor and product

* Initial implementation

* Updated ReportLuns

* Byte count update

* Fixed typo

* Finalized REPORT LUNS

* Removed TODO

* Updated TODO

* TODO update

* Updated device factory

* Comment update

* 64 bit update, tested on Ubuntu 64 bit system

* Removed assertion

* SCSI hard disks always have Apple specific mode pages (resolves issue #193)

* Error messsage update, 64 bit cleanup

* Reduced streams usage

* Updated handling of device flags

* MOs are protectable

* Removed duplicate error code handling

* Removed duplicate code

* Fixed CmdReadToc buffer overflow (https://github.com/akuker/RASCSI/issues/194)

* Added naive implementation of GET EVENT STATUS NOTIFICATION to avoid wranings

* HD must set removable device bit if the media is removable

* Removed duplicate logging

* Updated daynaport additional length

* Removed broken daynaport REQUEST SENSE. Successfully tested with my Mac.

* EnableInterface should not always return TRUE

* Updated Inquiry

* Updated LUN handling

* Replaced incorrect free by delete

* Updated comments and write-protection handling

* Made default HD name consistent

* STATUS_NOERROR is default

* Fixed Eject

* More eject handling updates

* Manpage updates

* Logging update

* Changed debug level

* Logging update

* Log capacity of all media types

* Logging update

* Encapsulated disk.blocks

* Encapsulated sector size

* Added overrides

* Added more overrides

* Fixed error message

* Fixed typos

* Fixed logging

* Added logging

* Use PrimaryDevice when calling Inquiry

* Comment update

* Changed default buffer size for testing

* Reverted last change

* Removed debug output

* De-inlined methods because optimized code did not work with them inlined

* Web interface can attach Daynaport again

* Improved handling of read-only hard disks

* Fixed issue with "all" semantics of DETACH

* rasctl supports adding removable media devices without providing a filename

* Removed unused flag in PbDeviceDefinition

* Updated rasctl output for ecjected media (resolves issue #199)

* Validate default folder name when changing default folder
2021-08-21 16:45:30 -05:00
Uwe Seimet
1c8c3600a7
Feature explicit device type (rascsi) (#177)
* Added support for explicit file type

* Check file type

* Manpage update

* Removed device file work-around, an explicit type can be used instead

Co-authored-by: akuker <akuker@gmail.com>
2021-08-09 21:20:58 -05:00
Uwe Seimet
79de9e29e0
Added PbDevices to PbServerInfo for client convenience (#176)
* Added device list to server info

* Updated loggin

* Added comment

* Added comment

* Added comment

* Comment update

* Deprecate LIST

* Comment update

* Updated duplicate ID/unit check

* Updated logging

* Updated logging

* Unified error message handling: Errors are now consistently logged

* REview

* Added missing field initialization (reported by Eclipse IDE)

* Added some translations

* Fixed typo

Co-authored-by: akuker <akuker@gmail.com>
2021-08-09 20:24:56 -05:00
Uwe Seimet
157172b566
Use existing ioexception for Disk::Open() error handling (#175)
* Use ioexception for file open error handling

* Use standard string comparison functions

* Error message update

* Improved CD-ROM handling error messages
2021-08-09 18:56:13 -05:00
Uwe Seimet
0a5298b8ac
Feature extended server information (#169)
* PbDevice returns information on whether a device is removable

* Fixed log message

* Added additional status data (ejectable, protctable, removable)

* Assume ejectable == removable

* Removed obsolete fields

* Added locked/lockable to interface

* Code review

* Logging update

* The user should be allowed to also write protect hard disk drives

* Updated error handling

* Testing

* INSERT also has to search in the default file folder

* Added TODO

* Manpage update

* Message updates

* Moved some sanity checks to the server, so that they are run for any client

* Updated error handling

* Moved CR/LF handling to the client, the server should not format too much

* rascsi should not mention "rasctl" in its messages, there may be other clients

* Improved error messages

* Improved error handling by returning an error string

* Added TODO

* Moved check for duplicate ID to ProcessCmd()

* Removed debug output

* Moved include

* Removed obsolete includes, updated includes

* Reverted ready check

* Fixed error messages

* Added convenience method

* Simplified error handling

* Socket/error handling review

* "NO MEDIA" is added by the client, not by the server

* Added missing include

* Only check for duplicate ID when attaching a device

* Added type/string converters for PbDeviceType

* PbDevice indicates whether image files are supported

* Write-protecing a read-only devices is not treated as an error anymore

* Updated read-only check

* Made difference between read-only and protected more explicit

* Added comment

* Comment update

* Made hard disk drives write-protectable by the user

* Resolved https://github.com/akuker/RASCSI/issues/166

* Addressing compiler error - type needs to be initialized

Co-authored-by: akuker <akuker@gmail.com>
2021-08-08 10:08:58 -05:00
akuker
3d14950548
Delete extraneous files (#171)
Co-authored-by: akuker <akuker@gmail.com>
2021-08-07 08:52:58 +02:00
Uwe Seimet
1ba3b6a2f6
PbDevice returns information on whether a device is removable (#167)
* PbDevice returns information on whether a device is removable

* Fixed log message
2021-08-06 19:50:20 -05:00
Uwe Seimet
eeef537bc0
Manpage updates (#165)
* Updated rasctl.1

* Updated rascsi manpage, synchronized case/format with rasctl

* Added default folder option

* Added missing upper case option

* Sorted options alphabetically, as far as possible

* Updated rascsi manpage

* More rascsi manpage updates

* Added -v option

* Fixed issue with detection of duplicate image files
2021-08-06 19:30:35 -05:00
Uwe Seimet
735aff6cd1
Feature server information (#163)
* Extended protobuf interface with rascsi server information

* Added default_image_folder (to be used in a different feature)

* Remember log level because not all versions of spdlog support get_log_level()

* Display enum names instead of values

* Added support for default image folder

* Added method that returns the available image files

* Added list of image files to protobuf interface

* Error handling update

* Filter image files

* Update setting up image file list

* Message update

* Replaced if/else cascade by switch

* Updated log level handling

* Renaming, sort rasctl list output

* Added -lstdc++fs (required by gcc 8.3.0)

* Changed option shortcut

* Sorted log levels by severity

* Fixed sorting of log levels

* Use map for storing available log levels

* Replaced explicit typ

* Revert "Replaced explicit typ"

This reverts commit 4106c15d6f.

* Revert "Use map for storing available log levels"

This reverts commit 505751e64a.

* Added comments

* Removed needless CR/LF when logging

Co-authored-by: akuker <akuker@gmail.com>
2021-08-05 20:56:07 -05:00
Uwe Seimet
dd7ce23adc
Reject duplicate image files (#162)
* Reject duplicate image files

* Renaming
2021-08-05 20:38:03 -05:00
Uwe Seimet
8601452b67
Feature testing improvement for X86 platforms (#164)
* Do not poll for RaSCSI hardware events on X86 platforms

* Fixed typo
2021-08-05 08:36:55 -05:00
Uwe Seimet
8cf24e7163
Feature serialization improvements (#159)
* Re-added lost code

* Avoid some potential serialization issues
2021-08-03 20:41:18 -05:00
Eric Helgeson
ea4486d1c0
Speed up web uploads and various fixes (#158)
* Move to bjoern

* Stream upload

* wip

* Streams

* check for filename

* Allow easyinstall to be scripted

* Tell user we're done

* show help

* ignore hfdisk

* fix var

* Allow override of remote by setting GIT_REMOTE, default to origin

* Better handling of local changes

* Give user more info

* Fix #156 - show all supported types in web interface

* *.mos does not seem to be valid - ractl throws error

* Try some minor optomizations
Error handling
2021-07-31 10:52:09 -05:00
Uwe Seimet
18633a748c
Re-added lost code (#152) 2021-07-27 09:47:22 -05:00
Uwe Seimet
e70469d344
FASTCALL/INLINE removal (#151)
* Removed FASTCALL and INLINE, added translations, update Disk constructor

* Disk ID cannot be empty, ensured by assertion in constructor

* Disk ID cannot be empty, ensured by assertion in constructor
2021-07-26 13:33:36 -05:00
Uwe Seimet
b3862c4726
Disk ID handling improvements (#149)
* Replaced DWORD ID by string

* Signature update

* Removed unused code

* Added getters for all device types

* Renaming

* Removed unused code

* Renaming

* Updated more ID checks

* Removed unused code

* Use IsSCSI()
2021-07-23 19:41:55 -05:00
akuker
55ec2291ef
fd needs to be initialized in order to compile (#150)
Co-authored-by: akuker <akuker@gmail.com>
2021-07-23 19:30:56 -05:00
Uwe Seimet
863feed611
Feature device list (#146)
* Removed all BAREMETAL ifdefs

* Cleaned up subfolders

* Fixed regression

* Re-added underscores

* Fixed merge conflicts

* Assume RASCSI is always defined

* Fixed mege issue

* Re-added result message

* Added Devices message to protobuf interface

* Fixed typo

* Fixed include file names

* Updated files to be ignored by git

* Merge with develop branch

* Synchronized output with develop branch

* Fixed missing dependency, causing issues when running "make -j1"

* Fixed handling of connection errors

* Improved protobuf interface upwards compatibility

* Use -g instead of -s, this has less conflict potential with future options

* Made log level options consistent (rascsi and rasctl used a different option)

* Serialization improvements (#142)

* Simplified serialization, extracted sending commands

* Simplified serialization

* Fixed warning

* Signature update

* Use Pb prefix for protobuf interface messages

* Moved ListDevices to rasutil

* Log device list

* Split initialization

* Moved code
2021-07-23 19:13:05 -05:00
Uwe Seimet
845d249d9b
Removed unused code (#147) 2021-07-23 08:41:07 -05:00
Uwe Seimet
56f1d99d4c
Made port selectable (#145)
* Made port selectable

* Added port number error handling

* Added checks for negative port
2021-07-23 08:40:01 -05:00
Uwe Seimet
62e7727a48
Added Devices message to protobuf interface (#141)
* Removed all BAREMETAL ifdefs

* Cleaned up subfolders

* Fixed regression

* Re-added underscores

* Fixed merge conflicts

* Assume RASCSI is always defined

* Fixed mege issue

* Re-added result message

* Added Devices message to protobuf interface

* Fixed typo

* Fixed include file names

* Updated files to be ignored by git

* Merge with develop branch

* Synchronized output with develop branch

* Fixed missing dependency, causing issues when running "make -j1"

* Fixed handling of connection errors

* Improved protobuf interface upwards compatibility

* Use -g instead of -s, this has less conflict potential with future options

* Made log level options consistent (rascsi and rasctl used a different option)
2021-07-22 07:47:08 -05:00
uweseimet
3c5a0003a4
Feature baremetal removal (#140)
* Removed all BAREMETAL ifdefs

* Cleaned up subfolders

* Fixed regression

* Re-added underscores

* Fixed merge conflicts

* Assume RASCSI is always defined

* Fixed mege issue

* Re-added result message

* Fix typo

Co-authored-by: akuker <34318535+akuker@users.noreply.github.com>
2021-07-20 08:32:44 -05:00
uweseimet
0032ce5010
Allow rasctl to connect from a different host (#134)
* Set hostname

* Added option for hostname

* Support connecting from a different host

* Squashed commit of the following:

commit 6698b8b90a
Author: akuker <34318535+akuker@users.noreply.github.com>
Date:   Mon Jul 19 01:19:41 2021 -0500

    Remove extraneous carriage return (#135)

    Co-authored-by: Tony Kuker <akuker@gmail.com>

commit af6e311e6e
Author: uweseimet <48174652+uweseimet@users.noreply.github.com>
Date:   Mon Jul 19 00:15:13 2021 +0200

    protobuf-based rasctl/rascsi command interface (#129)

    * Initial protobuf definition

    * protobuf result message draft

    * Merge with develop branch

    * Makefile generates protobuf-based source files

    * Interface update

    * Fixed typo

    * Fixed typo

    * Updated returning status

    * Serialize return data

    * Use correct descriptor

    * Made interface fields required

    * Deserialize result

    * Serialization update

    * Updated serialization

    * Serialization update

    * Updated deserialization

    * status handling update

    * Evaluate status

    * Revert "Evaluate status"

    This reverts commit 3d8f2c3252.

    * Completed sense_key enum

    * Renaming

    * Added protobuf Command

    * Updated command evaluation

    * Interface update

    * Interface update

    * Added DeviceType enum

    * Improved type-safety

    * Fixed typo

    * Type-safety update

    * Fixed typo

    * Error handling update

    * Updated list handling

    * Error handling update

    * Use more C++ strings

    * protobuf enums can provide their names

    * Fixed listing devices

    * Updated logging

    * Enum usage cleanup

    * More enum cleanup

    * Fixed command check

    * Updated type check

    * Updated enums

    * Removed unused variable

    * Removed goto, added exception

    * Socket handling cleanup

    * Code locality cleanup

    * Added helper method

    * Extracted code

    * Updated socket/file handling

    * Use C++ I/O

    * Use tolower()

    * Renaming

    * Simplified has_suffix

    * Fixed typo

    * Use spdlog namespace

    * Simplified formatting (endl) of error messages

    * Added -s option for changing the runtime log level to rasctl

    * Renaming

    * Renaming

    * Updated error reporting

    * Fixed log string formatting

    * String conversion cleanup

    * Fixed typo

    * Log mmap error (happens on 64 bit)

    * Improved proto3 compatibility, updated error handling

    * CHanges based on review

    * Fixed comment

    * Comment update

    * Updated ListDevice to not directly write to the stream

    * Use size_t

    * Renaming

    * Buffering update

    * MapController should not use fp

    * Use fd, not fp

    * rasctl has to display *all* results

    * rasctl has to display *all* results

    * Error handling update

    * Updated to proto3 protocol

    * Optimization by using protobuf-lite

    * RaspBian outdated protoc does not support _Name

    * Added protobuf-compiler to easyinstall.sh

    Co-authored-by: akuker <34318535+akuker@users.noreply.github.com>

* Resolved merge conflicts

* Updated help message

* Re-added CR/LF

* Updated error handling

* Use fd instead of fp

* Removed CR/LF

* Comment update

* Fixed data types

* Data type update

* Updated help message

* Added new option to usage info, rascsi: use -s instead of -l for consistency

* Display name of (remote) host in error message

* Fixed buffer overflow, cfilesystem.cpp:1185 assumes size of 11 bytes

* Revert "Fixed buffer overflow, cfilesystem.cpp:1185 assumes size of 11 bytes"

This reverts commit 126592d411.
2021-07-19 18:41:00 -05:00
akuker
6698b8b90a
Remove extraneous carriage return (#135)
Co-authored-by: Tony Kuker <akuker@gmail.com>
2021-07-19 08:19:41 +02:00
uweseimet
af6e311e6e
protobuf-based rasctl/rascsi command interface (#129)
* Initial protobuf definition

* protobuf result message draft

* Merge with develop branch

* Makefile generates protobuf-based source files

* Interface update

* Fixed typo

* Fixed typo

* Updated returning status

* Serialize return data

* Use correct descriptor

* Made interface fields required

* Deserialize result

* Serialization update

* Updated serialization

* Serialization update

* Updated deserialization

* status handling update

* Evaluate status

* Revert "Evaluate status"

This reverts commit 3d8f2c3252.

* Completed sense_key enum

* Renaming

* Added protobuf Command

* Updated command evaluation

* Interface update

* Interface update

* Added DeviceType enum

* Improved type-safety

* Fixed typo

* Type-safety update

* Fixed typo

* Error handling update

* Updated list handling

* Error handling update

* Use more C++ strings

* protobuf enums can provide their names

* Fixed listing devices

* Updated logging

* Enum usage cleanup

* More enum cleanup

* Fixed command check

* Updated type check

* Updated enums

* Removed unused variable

* Removed goto, added exception

* Socket handling cleanup

* Code locality cleanup

* Added helper method

* Extracted code

* Updated socket/file handling

* Use C++ I/O

* Use tolower()

* Renaming

* Simplified has_suffix

* Fixed typo

* Use spdlog namespace

* Simplified formatting (endl) of error messages

* Added -s option for changing the runtime log level to rasctl

* Renaming

* Renaming

* Updated error reporting

* Fixed log string formatting

* String conversion cleanup

* Fixed typo

* Log mmap error (happens on 64 bit)

* Improved proto3 compatibility, updated error handling

* CHanges based on review

* Fixed comment

* Comment update

* Updated ListDevice to not directly write to the stream

* Use size_t

* Renaming

* Buffering update

* MapController should not use fp

* Use fd, not fp

* rasctl has to display *all* results

* rasctl has to display *all* results

* Error handling update

* Updated to proto3 protocol

* Optimization by using protobuf-lite

* RaspBian outdated protoc does not support _Name

* Added protobuf-compiler to easyinstall.sh

Co-authored-by: akuker <34318535+akuker@users.noreply.github.com>
2021-07-18 17:15:13 -05:00
uweseimet
6136b29515
Daynaport: Fixed potential buffer overflow and removed INQUIRY excess bytes (#123)
* Fixed potential buffer overflow and removed INQUIRY excess bytes

* Daynaport: Report an error for LUNs > 0
2021-07-15 19:52:01 -05:00
uweseimet
f3978e6bd2
Removed minimum image size check. There is no such limit for SCSI drives. (#130) [Issue #72]
This fixes issue #72
2021-07-15 19:51:34 -05:00
uweseimet
fef21a6cf5
Support for providing sense data for REQUEST SENSE (#120)
* Error() supports passing Sense Key and ASC, REQUEST SENSE returns these data

* Synchronized error handlign with sasidev_ctrl

* Added warning for missing sense key

* Logging and comment update

* Updated invalid LUN handling

* Updated REQUEST SENSE

* Revert "Updated REQUEST SENSE"

This reverts commit 61a1ecbca7.

* Report MEDIUM NOT PRESENT if capacity cannot be determined

* Updated handling of non-existing LUNs. This change results issue #124.

* Log a warning if drive capacity cannot be determined

* Added enums for sense keys and ASCs

* Updated Error() signature to use enums

* Fixed compiler warnings

* Merge with develop branch
2021-07-15 19:49:54 -05:00
uweseimet
0f5baa8839
Cplusplus level update to c++-17 (#127)
* Raised C++ level to c++-20

* Raspberry PI OS compiler does not yet support c++-20
2021-07-09 11:38:48 -05:00
uweseimet
910d3af525
Changed scsi_command enum base type so that the dispatcher can use enum again (#128) 2021-07-09 11:37:46 -05:00
uweseimet
6d1f661ab8
Removed useless assertions (#125)
* Removed useless assertions

* Finalized removal

* Pointer was passed instead of integer value

* Fixed data type issue on 64 bit compile platforms

* Added missing virtual destructor (gcc warning)
2021-07-08 11:40:31 -05:00
uweseimet
da3629510d
Removed meaningless assertions, minor code locality cleanup (#122)
* Removed meaningless assertions, locality of code cleanup

* More assertion and code locality cleanup

* Added TODO

* More assertion and code locality cleanup

* Added missing initializations in constructors

* Added FIXMEs

* Revert "Added FIXMEs"

This reverts commit 2c83626862.
2021-07-07 16:46:45 -05:00
uweseimet
da70ce7055
Option for setting the log level at rascsi startup, improved device file support (#121)
* Added option for setting log level at rascsi startup

* Report an error if only an extension without a basename is provided

* Improved device file support
2021-07-07 16:34:55 -05:00
uweseimet
9898cb1a13
SCSI command dispatcher update, reduction of circular dependencies (#117)
* Unified command handling of SCSI command dispatcher

* Added missing cast

* Updated casts

* Comment update

* Moved enums to base class to reduce circular dependencies

* Added EXTRA_FLAGS to Makefile and fixed typo (#118)

* scsidev_ctrl inherited from sasidev without any need

* Reverted last change ...

* Removed unused include

* Added missing field initialization in constructor

* Formatting update

* Fixed command names used for logging

* Replaced SCSI command dispatch switch

* Source code formatting update

* Renaming

* Renaming

* Renaming

* Renaming

* For SCSI (scsidev_ctrl) the scsi_command enum is not relevant anymore

* Always log status code in status phase

* Log additional sense code (ASC)
2021-07-04 19:50:24 -05:00
uweseimet
e2409098dd
Added EXTRA_FLAGS to Makefile and fixed typo (#118) 2021-06-26 22:26:04 -05:00
uweseimet
b7011efd95
Removed unused code, added some translations (#114)
* Removed unused code, added some translations

* Fixed typo

* Added translation
2021-06-23 12:26:12 -05:00
uweseimet
86aeeb0a31
Segmentation fault fix for missing unit 0 (#115)
* Removed unused code, added some translations

* Fixed segmentation fault when there is no unit 0

* Removed unrelated changes
2021-06-23 12:16:27 -05:00
akuker
9e0ce1eacc update version of pillow 2021-06-22 19:37:52 -05:00
uweseimet
51210a7002
Use exception for unsupported LUN handling, reduces duplicate code (#111)
* Use exception for unsupported LUN handling in order to reduce duplicate code

* Code improvements based on review

* Added header
2021-06-22 19:05:47 -05:00
uweseimet
7e45d11215
Fixes for gcc 10.3.0 (#112)
* Fixes for gcc 10.3.0

* Fixes for gcc 10.3.0

* Removed obsolete declaration

* Changes based on review
2021-06-22 19:03:53 -05:00
PhrAx
ae07648551 fixing typo 2021-05-29 23:50:00 -07:00
PhrAx
e42adab4f9 improving stdout for logging by disabling buffering 2021-05-29 23:46:08 -07:00
akuker
dbf78b772b
Merge pull request #96 from akuker/daynaport3
Add DaynaPort Functionality into the Development branch
2021-05-26 10:50:13 -05:00
Tony Kuker
fa80c7fb9a Updates for pull request comments 2021-05-23 14:44:47 -05:00
Tony Kuker
4a72d2ecea Updates for pull request comments 2021-05-23 14:44:34 -05:00
akuker
a580562d03
Merge pull request #103 from akuker/eric/devupdates
Web and easy install updates.
2021-05-23 11:35:19 -05:00
Eric Helgeson
b5d82c1037 Update readme for dev setup of web 2021-05-23 10:55:24 -05:00
Tony Kuker
f779a1cbc2 Added comments 2021-05-21 22:13:33 -05:00
Tony Kuker
a28512e179 First draft of python test using loopback adapter from saybur 2021-05-21 22:05:00 -05:00
Eric Helgeson
968d34bb14 Increase nginx timeouts 2021-05-13 12:48:11 -05:00
Eric Helgeson
ffc9c36456 unlimited upload in nginx 2021-05-13 12:41:30 -05:00