2020-12-31 01:39:32 +00:00
|
|
|
import os
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
import logging
|
Configurable block size, controller/device cleanup, dispatchers per device, bridge setup (#203)
* Use foreach
* Renaming
* Revert "Renaming"
This reverts commit b0554b9c0a052e282625a4565d429313af2b3cc7.
* 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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 01:23:04 +00:00
|
|
|
|
|
|
|
from ractl_cmds import (
|
2021-10-14 00:54:29 +00:00
|
|
|
get_server_info,
|
Configurable block size, controller/device cleanup, dispatchers per device, bridge setup (#203)
* Use foreach
* Renaming
* Revert "Renaming"
This reverts commit b0554b9c0a052e282625a4565d429313af2b3cc7.
* 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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 01:23:04 +00:00
|
|
|
attach_image,
|
|
|
|
detach_all,
|
|
|
|
list_devices,
|
2021-09-19 21:29:01 +00:00
|
|
|
send_pb_command,
|
Configurable block size, controller/device cleanup, dispatchers per device, bridge setup (#203)
* Use foreach
* Renaming
* Revert "Renaming"
This reverts commit b0554b9c0a052e282625a4565d429313af2b3cc7.
* 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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 01:23:04 +00:00
|
|
|
)
|
2020-12-31 01:39:32 +00:00
|
|
|
from settings import *
|
2021-09-19 21:29:01 +00:00
|
|
|
import rascsi_interface_pb2 as proto
|
2021-02-01 17:39:50 +00:00
|
|
|
|
2020-12-31 01:39:32 +00:00
|
|
|
|
2021-10-06 01:58:49 +00:00
|
|
|
def list_files(file_types, dir_path):
|
2021-10-02 16:33:31 +00:00
|
|
|
"""
|
|
|
|
Takes a list or tuple of str file_types - e.g. ('hda', 'hds')
|
|
|
|
Returns list of lists files_list:
|
|
|
|
index 0 is str file name and index 1 is int size in bytes
|
|
|
|
"""
|
|
|
|
files_list = []
|
2021-10-06 01:58:49 +00:00
|
|
|
for path, dirs, files in os.walk(dir_path):
|
2021-10-02 16:33:31 +00:00
|
|
|
# Only list selected file types
|
|
|
|
files = [f for f in files if f.lower().endswith(file_types)]
|
|
|
|
files_list.extend(
|
|
|
|
[
|
|
|
|
(
|
|
|
|
file,
|
|
|
|
os.path.getsize(os.path.join(path, file))
|
|
|
|
)
|
|
|
|
for file in files
|
|
|
|
]
|
|
|
|
)
|
|
|
|
return files_list
|
|
|
|
|
|
|
|
|
|
|
|
def list_config_files():
|
|
|
|
"""
|
2021-10-06 01:58:49 +00:00
|
|
|
Returns a list of RaSCSI config files in cfg_dir:
|
2021-10-02 16:33:31 +00:00
|
|
|
list of str files_list
|
|
|
|
"""
|
|
|
|
files_list = []
|
2021-10-06 01:58:49 +00:00
|
|
|
for root, dirs, files in os.walk(cfg_dir):
|
2021-10-02 16:33:31 +00:00
|
|
|
for file in files:
|
|
|
|
if file.endswith(".json"):
|
|
|
|
files_list.append(file)
|
|
|
|
return files_list
|
|
|
|
|
|
|
|
|
|
|
|
def list_images():
|
|
|
|
"""
|
|
|
|
Sends a IMAGE_FILES_INFO command to the server
|
|
|
|
Returns a dict with boolean status, str msg, and list of dicts files
|
|
|
|
|
|
|
|
"""
|
2021-09-19 21:29:01 +00:00
|
|
|
command = proto.PbCommand()
|
2021-09-30 17:22:57 +00:00
|
|
|
command.operation = proto.PbOperation.DEFAULT_IMAGE_FILES_INFO
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
|
2021-09-19 21:29:01 +00:00
|
|
|
data = send_pb_command(command.SerializeToString())
|
|
|
|
result = proto.PbResult()
|
|
|
|
result.ParseFromString(data)
|
2021-10-02 16:33:31 +00:00
|
|
|
|
2021-10-06 01:58:49 +00:00
|
|
|
# Get a list of all *.properties files in cfg_dir
|
2021-10-02 16:33:31 +00:00
|
|
|
from pathlib import PurePath
|
2021-10-06 01:58:49 +00:00
|
|
|
prop_data = list_files(PROPERTIES_SUFFIX, cfg_dir)
|
2021-10-02 16:33:31 +00:00
|
|
|
prop_files = [PurePath(x[0]).stem for x in prop_data]
|
|
|
|
|
2021-09-19 21:29:01 +00:00
|
|
|
files = []
|
|
|
|
for f in result.image_files_info.image_files:
|
2021-10-02 16:33:31 +00:00
|
|
|
# Add flag for whether an image file has an associated *.properties file
|
2021-10-14 01:51:45 +00:00
|
|
|
if f.name in prop_files:
|
2021-10-02 16:33:31 +00:00
|
|
|
prop = True
|
|
|
|
else:
|
|
|
|
prop = False
|
2021-09-19 21:29:01 +00:00
|
|
|
size_mb = "{:,.1f}".format(f.size / 1024 / 1024)
|
2021-09-26 03:27:43 +00:00
|
|
|
dtype = proto.PbDeviceType.Name(f.type)
|
2021-10-14 01:51:45 +00:00
|
|
|
files.append(
|
|
|
|
{
|
|
|
|
"name": f.name,
|
|
|
|
"size": f.size,
|
|
|
|
"size_mb": size_mb,
|
|
|
|
"detected_type": dtype,
|
|
|
|
"prop": prop,
|
|
|
|
}
|
|
|
|
)
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
|
2021-09-19 21:29:01 +00:00
|
|
|
return {"status": result.status, "msg": result.msg, "files": files}
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
|
|
|
|
|
2021-09-19 21:29:01 +00:00
|
|
|
def create_new_image(file_name, file_type, size):
|
2021-09-29 16:48:34 +00:00
|
|
|
"""
|
|
|
|
Takes str file_name, str file_type, and int size
|
|
|
|
Sends a CREATE_IMAGE command to the server
|
|
|
|
Returns dict with boolean status and str msg
|
|
|
|
"""
|
2021-09-19 21:29:01 +00:00
|
|
|
command = proto.PbCommand()
|
|
|
|
command.operation = proto.PbOperation.CREATE_IMAGE
|
2020-12-31 01:39:32 +00:00
|
|
|
|
2021-09-19 21:29:01 +00:00
|
|
|
command.params["file"] = file_name + "." + file_type
|
|
|
|
command.params["size"] = str(size)
|
|
|
|
command.params["read_only"] = "false"
|
|
|
|
|
|
|
|
data = send_pb_command(command.SerializeToString())
|
|
|
|
result = proto.PbResult()
|
|
|
|
result.ParseFromString(data)
|
|
|
|
return {"status": result.status, "msg": result.msg}
|
2020-12-31 01:39:32 +00:00
|
|
|
|
|
|
|
|
2021-10-06 01:58:49 +00:00
|
|
|
def delete_image(file_name):
|
2021-09-29 16:48:34 +00:00
|
|
|
"""
|
|
|
|
Takes str file_name
|
|
|
|
Sends a DELETE_IMAGE command to the server
|
|
|
|
Returns dict with boolean status and str msg
|
|
|
|
"""
|
2021-09-19 21:29:01 +00:00
|
|
|
command = proto.PbCommand()
|
|
|
|
command.operation = proto.PbOperation.DELETE_IMAGE
|
|
|
|
|
|
|
|
command.params["file"] = file_name
|
|
|
|
|
|
|
|
data = send_pb_command(command.SerializeToString())
|
|
|
|
result = proto.PbResult()
|
|
|
|
result.ParseFromString(data)
|
|
|
|
return {"status": result.status, "msg": result.msg}
|
2020-12-31 01:39:32 +00:00
|
|
|
|
|
|
|
|
2021-10-06 01:58:49 +00:00
|
|
|
def delete_file(file_path):
|
|
|
|
"""
|
|
|
|
Takes str file_path with the full path to the file to delete
|
|
|
|
Returns dict with boolean status and str msg
|
|
|
|
"""
|
|
|
|
if os.path.exists(file_path):
|
|
|
|
os.remove(file_path)
|
|
|
|
return {"status": True, "msg": "File deleted"}
|
|
|
|
else:
|
|
|
|
return {"status": False, "msg": "Could not delete file"}
|
|
|
|
|
|
|
|
|
2020-12-31 01:39:32 +00:00
|
|
|
def unzip_file(file_name):
|
2021-09-29 16:48:34 +00:00
|
|
|
"""
|
|
|
|
Takes str file_name
|
|
|
|
Returns dict with boolean status and str msg
|
|
|
|
"""
|
2021-09-24 21:48:54 +00:00
|
|
|
from subprocess import run
|
2021-10-14 00:54:29 +00:00
|
|
|
server_info = get_server_info()
|
2021-09-23 19:18:17 +00:00
|
|
|
|
2021-09-24 21:48:54 +00:00
|
|
|
unzip_proc = run(
|
2021-10-14 00:54:29 +00:00
|
|
|
["unzip", "-d", server_info["image_dir"], "-o", "-j", \
|
|
|
|
server_info["image_dir"] + file_name], capture_output=True
|
2021-09-24 21:48:54 +00:00
|
|
|
)
|
|
|
|
if unzip_proc.returncode != 0:
|
|
|
|
logging.warning(f"Unzipping failed: {unzip_proc}")
|
|
|
|
return {"status": False, "msg": unzip_proc}
|
|
|
|
|
|
|
|
return {"status": True, "msg": f"{file_name} unzipped"}
|
2020-12-31 01:39:32 +00:00
|
|
|
|
2021-02-01 17:39:50 +00:00
|
|
|
|
2020-12-31 01:39:32 +00:00
|
|
|
def download_file_to_iso(scsi_id, url):
|
2021-09-29 16:48:34 +00:00
|
|
|
"""
|
|
|
|
Takes int scsi_id and str url
|
|
|
|
Returns dict with boolean status and str msg
|
|
|
|
"""
|
2020-12-31 01:39:32 +00:00
|
|
|
import urllib.request
|
2021-09-19 21:29:01 +00:00
|
|
|
import urllib.error as error
|
|
|
|
import time
|
2021-09-24 21:48:54 +00:00
|
|
|
from subprocess import run
|
2021-02-01 17:39:50 +00:00
|
|
|
|
2021-10-14 00:54:29 +00:00
|
|
|
server_info = get_server_info()
|
|
|
|
|
2021-02-01 17:39:50 +00:00
|
|
|
file_name = url.split("/")[-1]
|
2020-12-31 01:39:32 +00:00
|
|
|
tmp_ts = int(time.time())
|
|
|
|
tmp_dir = "/tmp/" + str(tmp_ts) + "/"
|
|
|
|
os.mkdir(tmp_dir)
|
|
|
|
tmp_full_path = tmp_dir + file_name
|
2021-10-14 00:54:29 +00:00
|
|
|
iso_filename = server_info["image_dir"] + file_name + ".iso"
|
2020-12-31 01:39:32 +00:00
|
|
|
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
try:
|
|
|
|
urllib.request.urlretrieve(url, tmp_full_path)
|
2021-09-19 21:29:01 +00:00
|
|
|
except (error.URLError, error.HTTPError, error.ContentTooShortError) as e:
|
|
|
|
logging.error(str(e))
|
|
|
|
return {"status": False, "msg": str(e)}
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
except:
|
|
|
|
return {"status": False, "msg": "Error loading the URL"}
|
|
|
|
|
2020-12-31 01:39:32 +00:00
|
|
|
# iso_filename = make_cd(tmp_full_path, None, None) # not working yet
|
2021-09-24 21:48:54 +00:00
|
|
|
iso_proc = run(
|
2021-02-01 17:39:50 +00:00
|
|
|
["genisoimage", "-hfs", "-o", iso_filename, tmp_full_path], capture_output=True
|
|
|
|
)
|
2020-12-31 01:39:32 +00:00
|
|
|
if iso_proc.returncode != 0:
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
return {"status": False, "msg": iso_proc}
|
2021-09-29 16:48:34 +00:00
|
|
|
|
|
|
|
process = attach_image(scsi_id, type="SCCD", image=iso_filename)
|
|
|
|
return {"status": process["status"], "msg": process["msg"]}
|
2020-12-31 01:39:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
def download_image(url):
|
2021-09-29 16:48:34 +00:00
|
|
|
"""
|
|
|
|
Takes str url
|
|
|
|
Returns dict with boolean status and str msg
|
|
|
|
"""
|
2020-12-31 01:39:32 +00:00
|
|
|
import urllib.request
|
2021-09-19 21:29:01 +00:00
|
|
|
import urllib.error as error
|
2021-02-01 17:39:50 +00:00
|
|
|
|
2021-10-14 00:54:29 +00:00
|
|
|
server_info = get_server_info()
|
|
|
|
|
2021-02-01 17:39:50 +00:00
|
|
|
file_name = url.split("/")[-1]
|
2021-10-14 00:54:29 +00:00
|
|
|
full_path = server_info["image_dir"] + file_name
|
2020-12-31 01:39:32 +00:00
|
|
|
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
try:
|
|
|
|
urllib.request.urlretrieve(url, full_path)
|
|
|
|
return {"status": True, "msg": "Downloaded the URL"}
|
2021-09-19 21:29:01 +00:00
|
|
|
except (error.URLError, error.HTTPError, error.ContentTooShortError) as e:
|
|
|
|
logging.error(str(e))
|
|
|
|
return {"status": False, "msg": str(e)}
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
except:
|
|
|
|
return {"status": False, "msg": "Error loading the URL"}
|
Configurable block size, controller/device cleanup, dispatchers per device, bridge setup (#203)
* Use foreach
* Renaming
* Revert "Renaming"
This reverts commit b0554b9c0a052e282625a4565d429313af2b3cc7.
* 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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 01:23:04 +00:00
|
|
|
|
|
|
|
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
def write_config(file_name):
|
2021-09-29 16:48:34 +00:00
|
|
|
"""
|
|
|
|
Takes str file_name
|
|
|
|
Returns dict with boolean status and str msg
|
|
|
|
"""
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
from json import dump
|
2021-10-06 01:58:49 +00:00
|
|
|
file_name = cfg_dir + file_name
|
Configurable block size, controller/device cleanup, dispatchers per device, bridge setup (#203)
* Use foreach
* Renaming
* Revert "Renaming"
This reverts commit b0554b9c0a052e282625a4565d429313af2b3cc7.
* 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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 01:23:04 +00:00
|
|
|
try:
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
with open(file_name, "w") as json_file:
|
2021-09-19 21:29:01 +00:00
|
|
|
devices = list_devices()["device_list"]
|
2021-10-15 00:46:25 +00:00
|
|
|
if len(devices) == 0:
|
|
|
|
return {"status": False, "msg": "No attached devices."}
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
for device in devices:
|
|
|
|
# Remove keys that we don't want to store in the file
|
|
|
|
del device["status"]
|
|
|
|
del device["file"]
|
|
|
|
# It's cleaner not to store an empty parameter for every device without media
|
|
|
|
if device["image"] == "":
|
|
|
|
device["image"] = None
|
|
|
|
# RaSCSI product names will be generated on the fly by RaSCSI
|
|
|
|
if device["vendor"] == "RaSCSI":
|
|
|
|
device["vendor"] = device["product"] = device["revision"] = None
|
|
|
|
# A block size of 0 is how RaSCSI indicates N/A for block size
|
|
|
|
if device["block_size"] == 0:
|
|
|
|
device["block_size"] = None
|
|
|
|
# Convert to a data type that can be serialized
|
2021-09-20 17:46:48 +00:00
|
|
|
device["params"] = dict(device["params"])
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
dump(devices, json_file, indent=4)
|
|
|
|
return {"status": True, "msg": f"Successfully wrote to file: {file_name}"}
|
2021-09-19 21:29:01 +00:00
|
|
|
except (IOError, ValueError, EOFError, TypeError) as e:
|
|
|
|
logging.error(str(e))
|
|
|
|
return {"status": False, "msg": str(e)}
|
Configurable block size, controller/device cleanup, dispatchers per device, bridge setup (#203)
* Use foreach
* Renaming
* Revert "Renaming"
This reverts commit b0554b9c0a052e282625a4565d429313af2b3cc7.
* 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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 01:23:04 +00:00
|
|
|
except:
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
logging.error(f"Could not write to file: {file_name}")
|
|
|
|
return {"status": False, "msg": f"Could not write to file: {file_name}"}
|
|
|
|
|
Configurable block size, controller/device cleanup, dispatchers per device, bridge setup (#203)
* Use foreach
* Renaming
* Revert "Renaming"
This reverts commit b0554b9c0a052e282625a4565d429313af2b3cc7.
* 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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 01:23:04 +00:00
|
|
|
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
def read_config(file_name):
|
2021-09-29 16:48:34 +00:00
|
|
|
"""
|
|
|
|
Takes str file_name
|
|
|
|
Returns dict with boolean status and str msg
|
|
|
|
"""
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
from json import load
|
2021-10-06 01:58:49 +00:00
|
|
|
file_name = cfg_dir + file_name
|
Configurable block size, controller/device cleanup, dispatchers per device, bridge setup (#203)
* Use foreach
* Renaming
* Revert "Renaming"
This reverts commit b0554b9c0a052e282625a4565d429313af2b3cc7.
* 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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 01:23:04 +00:00
|
|
|
try:
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
with open(file_name) as json_file:
|
Configurable block size, controller/device cleanup, dispatchers per device, bridge setup (#203)
* Use foreach
* Renaming
* Revert "Renaming"
This reverts commit b0554b9c0a052e282625a4565d429313af2b3cc7.
* 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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 01:23:04 +00:00
|
|
|
detach_all()
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
devices = load(json_file)
|
|
|
|
for row in devices:
|
2021-09-20 17:46:48 +00:00
|
|
|
kwargs = {"device_type": row["device_type"], \
|
|
|
|
"image": row["image"], "unit": int(row["un"]), \
|
|
|
|
"vendor": row["vendor"], "product": row["product"], \
|
|
|
|
"revision": row["revision"], "block_size": row["block_size"]}
|
|
|
|
params = dict(row["params"])
|
|
|
|
for p in params.keys():
|
|
|
|
kwargs[p] = params[p]
|
|
|
|
process = attach_image(row["id"], **kwargs)
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
if process["status"] == True:
|
|
|
|
return {"status": process["status"], "msg": f"Successfully read from file: {file_name}"}
|
|
|
|
else:
|
|
|
|
return {"status": process["status"], "msg": process["msg"]}
|
2021-09-19 21:29:01 +00:00
|
|
|
except (IOError, ValueError, EOFError, TypeError) as e:
|
|
|
|
logging.error(str(e))
|
|
|
|
return {"status": False, "msg": str(e)}
|
Configurable block size, controller/device cleanup, dispatchers per device, bridge setup (#203)
* Use foreach
* Renaming
* Revert "Renaming"
This reverts commit b0554b9c0a052e282625a4565d429313af2b3cc7.
* 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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 01:23:04 +00:00
|
|
|
except:
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
logging.error(f"Could not read file: {file_name}")
|
|
|
|
return {"status": False, "msg": f"Could not read file: {file_name}"}
|
|
|
|
|
|
|
|
|
2021-09-19 21:29:01 +00:00
|
|
|
def write_drive_properties(file_name, conf):
|
|
|
|
"""
|
|
|
|
Writes a drive property configuration file to the images dir.
|
|
|
|
Takes file name base (str) and conf (list of dicts) as arguments
|
2021-09-29 16:48:34 +00:00
|
|
|
Returns dict with boolean status and str msg
|
2021-09-19 21:29:01 +00:00
|
|
|
"""
|
|
|
|
from json import dump
|
|
|
|
try:
|
2021-10-06 01:58:49 +00:00
|
|
|
with open(cfg_dir + file_name, "w") as json_file:
|
2021-09-19 21:29:01 +00:00
|
|
|
dump(conf, json_file, indent=4)
|
|
|
|
return {"status": True, "msg": f"Successfully wrote to file: {file_name}"}
|
|
|
|
except (IOError, ValueError, EOFError, TypeError) as e:
|
|
|
|
logging.error(str(e))
|
|
|
|
return {"status": False, "msg": str(e)}
|
|
|
|
except:
|
|
|
|
logging.error(f"Could not write to file: {file_name}")
|
|
|
|
return {"status": False, "msg": f"Could not write to file: {file_name}"}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def read_drive_properties(path_name):
|
|
|
|
"""
|
|
|
|
Reads drive properties to any dir.
|
|
|
|
Either ones deployed to the images dir, or the canonical database.
|
|
|
|
Takes file path and bas (str) as argument
|
2021-09-29 16:48:34 +00:00
|
|
|
Returns dict with boolean status and str msg
|
2021-09-19 21:29:01 +00:00
|
|
|
"""
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
from json import load
|
|
|
|
try:
|
2021-09-19 21:29:01 +00:00
|
|
|
with open(path_name) as json_file:
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
conf = load(json_file)
|
2021-09-19 21:29:01 +00:00
|
|
|
return {"status": True, "msg": f"Read data from file: {path_name}", "conf": conf}
|
|
|
|
except (IOError, ValueError, EOFError, TypeError) as e:
|
|
|
|
logging.error(str(e))
|
|
|
|
return {"status": False, "msg": str(e)}
|
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 210abc775d9a79dd0c631cf3877966a2923f4d5b.
* Revert "Updated parameter handling"
This reverts commit 35302addd59f5f5e1cc032888ba32dcbb426a846.
* 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 d35a15ea8e520517d25e1e1054ad1aeda9f85f2e.
* 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 39ca12d8b153c706316ce79f4fec65c9abc60024.
* 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-15 02:51:12 +00:00
|
|
|
except:
|
|
|
|
logging.error(f"Could not read file: {file_name}")
|
2021-09-19 21:29:01 +00:00
|
|
|
return {"status": False, "msg": f"Could not read file: {path_name}"}
|