RASCSI/python/web/src/templates/index.html

720 lines
33 KiB
HTML
Raw Normal View History

{% extends "base.html" %}
{% block content %}
<details>
<summary class="heading">
{{ _("Current RaSCSI Configuration") }}
</summary>
2021-09-28 20:39:08 +00:00
<ul>
<li>{{ _("Displays the currently attached devices for each available SCSI ID.") }}</li>
<li>{{ _("Save and load device configurations, stored as json files in <tt>%(config_dir)s</tt>", config_dir=CFG_DIR) }}</tt></li>
<li>{{ _("To have a particular device configuration load when RaSCSI starts, save it as <em>default</em>.") }}</li>
2021-09-28 20:39:08 +00:00
</ul>
</details>
<p><form action="/config/load" method="post">
<select name="name" required="" width="14">
{% if config_files %}
{% for config in config_files|sort %}
<option value="{{ config }}">
{{ config.replace(".json", '') }}
</option>
{% endfor %}
{% else %}
<option disabled>
{{ _("No saved configurations") }}
</option>
{% endif %}
</select>
<input name="load" type="submit" value="{{ _("Load") }}" onclick="return confirm('{{ _("Detach all current device and Load configuration?") }}')">
<input name="delete" type="submit" value="{{ _("Delete") }}" onclick="return confirm('{{ _("Delete configuration file?") }}')">
</form></p>
<p><form action="/config/save" method="post">
<input name="name" placeholder="default" size="20">
<input type="submit" value="{{ _("Save") }}">
</form></p>
<table border="black" cellpadding="3">
<tbody>
<tr>
<td><b>{{ _("ID") }}</b></td>
{% if units %}
<td><b>{{ _("LUN") }}</b></td>
{% endif %}
<td><b>{{ _("Type") }}</b></td>
<td><b>{{ _("Status") }}</b></td>
<td><b>{{ _("File") }}</b></td>
<td><b>{{ _("Product") }}</b></td>
<td><b>{{ _("Actions") }}</b></td>
</tr>
{% for device in devices %}
<tr>
Disk image profile management using a sidecar config file (#242) * Handle a case where reserved ids on the Web UI side are not actually reserved on the backend side * Better error handling when no device is found in list_devices * Better warning message * Tag message as error * Fix device_info * Get reserved ids from the server instead of storing a client side state, which caused front and backend to get out of sync in certain cases. * Initial implementation of sidecar configuration reading and writing * Use bytes for drive image creation internally * Add named drive section * Move header to base.html * Create the disk profile list page * Make lists of HDDs, CDRs, and Removable drives * Implement disk image + sidecar creation * Implement CD-ROM device sidecar creation method * Add more device configurations * Add disclaimer * Hide URL if none is provided * Make the web ui use the new protobuf parameter maps * Make daynaport attaching UI more flexible * Use the protobuf interface to create image files * Use new create image method for the sidecar flow as well * Move file deletion logic to protobuf commands; Refactor saving/loading config files * Update disk image creation * Fix error * Disk images the script makes are in Mac format * Add blurb about the risks with using Lido driver (issue#40) to the easyinstall script, while pushing less for using that feature. * Make shutdown and reboot async operations * More informative footer contents * Wordsmith the Mac drive options * Link to relevant section in the wiki * Added GET_IMAGE_FILES * Added default folder to GET_IMAGE_FILES * Renaming * Updated setting image folder * Lists available net interfaces as a drop down when attaching daynaport * Macs should use the hds image file ending * Fixed default image folder handling * Refer to device properties, instead of sidecars * Added NETWORK_INTERFACES_INFO * Filter "lo" * Use PF_INET in favor of PF_INET6 * Added network interfaces to server info * Drive property file ending defined in one place; Add handling of common urllib and file system exceptions. * Use protobuf interface to get network interface info * Use protobuf interface for list_files * Repeated field cleanup * Renaming * Added DEVICE_TYPES_INFO * Comment update * Added -y option to rasctl * Add the remaining recommended drive profiles provided by rpajarola * Fix typos * Add warnings to CD-ROM descriptions * Add more recommended Sun drives * Add capacity to name * Move footer into base.html * Handle removable drive insertion in the attach method (easy to do with protobuf) * Limit which arguments to pass to an image injection command * Cleanup * Sort image and config files alphabetically * Make compatible with updated protobuf interface * Sort drives alphabetically by name * Decriptive text for CD-ROM section * Better description * Hyperlink to disks page instead of button Co-authored-by: Uwe Seimet <Uwe.Seimet@seimet.de>
2021-09-19 21:29:01 +00:00
{% if device["id"] not in reserved_scsi_ids %}
<td style="text-align:center">{{ device.id }}</td>
{% if units %}
ID reservation in Web UI (#416) * Remove dead code * Clean up indentation * Cleanup * Move socket commands into its own file * Move non-rascsi command methods into its own file * Refactoring * Bring back list_config_files * Cleanup * Cleanup of status messages * Remove unused libraries * Resolve pylint warnings * Resolve pylint warnings * Remove unused library * Resolve pylint warnings * Clean up status messages * Add requests lib to requirements.txt * Clean up status messages * Resolve interpolation warnings for logging * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Cleanup * Add html/head/body tags to the base document * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Add .pylintrc and suppress warnings for the generated protobuf module * Resolve pylint warnings * Clean up docstrings * Fix error * Cleanup * Add info on pylint to README * Store .pylintrc in parent dir to allow other Python packages to use it * Tidy index.html * Cleanup * Resolve jinja-ninja warnings * Cleanup * Cleanup * Cleanup * Cleanup * Cleanup * Save and load id reservations in config file * Reserve and unreserve in the web ui * TODO * Add backwards compatibility with 21.10 config files * Comment cleanup * Save and load reservation memos into the config file * Cleanup * Resolve pylint warnings * Fix bugs * Fix bug * Fix bugs * Cleanup * Fix typo * Fix successful return clause * Cleanup * Fix bugs
2021-11-07 02:11:17 +00:00
<td style="text-align:center">{{ device.unit }}</td>
{% endif %}
<td style="text-align:center">{{ device.device_type }}</td>
<td style="text-align:center">{{ device.status }}</td>
<td style="text-align:left">
{% if "No Media" in device.status %}
<form action="/scsi/attach" method="post">
<input name="scsi_id" type="hidden" value="{{ device.id }}">
<input name="unit" type="hidden" value="{{ device.unit }}">
<input name="type" type="hidden" value="{{ device.device_type }}">
<input name="file_size" type="hidden" value="{{ device.size }}">
<select type="select" name="file_name">
{% for f in files|sort(attribute='name') %}
{% if device.device_type == "SCCD" %}
{% if f["name"].lower().endswith(cdrom_file_suffix) %}
<option value="{{ f["name"] }}">{{ f["name"].replace(base_dir, '') }}</option>
{% endif %}
{% elif device.device_type == "SCRM" %}
{% if f["name"].lower().endswith(removable_file_suffix) %}
<option value="{{ f["name"] }}">{{ f["name"].replace(base_dir, '') }}</option>
{% endif %}
{% elif device.device_type == "SCMO" %}
{% if f["name"].lower().endswith(mo_file_suffix) %}
<option value="{{ f["name"] }}">{{ f["name"].replace(base_dir, '') }}</option>
{% endif %}
{% endif %}
{% endfor %}
</select>
<input type="submit" value="{{ _("Attach") }}">
</form>
{% else %}
{{ device.file }}
{% endif %}
</td>
{% if device.vendor == "RaSCSI" %}
<td style="text-align:center">{{ device.product }}</td>
{% else %}
<td style="text-align:center">{{ device.vendor }} {{ device.product }}</td>
{% endif %}
ID reservation in Web UI (#416) * Remove dead code * Clean up indentation * Cleanup * Move socket commands into its own file * Move non-rascsi command methods into its own file * Refactoring * Bring back list_config_files * Cleanup * Cleanup of status messages * Remove unused libraries * Resolve pylint warnings * Resolve pylint warnings * Remove unused library * Resolve pylint warnings * Clean up status messages * Add requests lib to requirements.txt * Clean up status messages * Resolve interpolation warnings for logging * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Cleanup * Add html/head/body tags to the base document * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Add .pylintrc and suppress warnings for the generated protobuf module * Resolve pylint warnings * Clean up docstrings * Fix error * Cleanup * Add info on pylint to README * Store .pylintrc in parent dir to allow other Python packages to use it * Tidy index.html * Cleanup * Resolve jinja-ninja warnings * Cleanup * Cleanup * Cleanup * Cleanup * Cleanup * Save and load id reservations in config file * Reserve and unreserve in the web ui * TODO * Add backwards compatibility with 21.10 config files * Comment cleanup * Save and load reservation memos into the config file * Cleanup * Resolve pylint warnings * Fix bugs * Fix bug * Fix bugs * Cleanup * Fix typo * Fix successful return clause * Cleanup * Fix bugs
2021-11-07 02:11:17 +00:00
<td style="text-align:center">
{% if device.device_type != "-" %}
{% if device.device_type in REMOVABLE_DEVICE_TYPES and "No Media" not in device.status %}
<form action="/scsi/eject" method="post" onsubmit="return confirm('{{ _("Eject Disk? WARNING: On Mac OS, eject the Disk in the Finder instead!") }}')">
<input name="scsi_id" type="hidden" value="{{ device.id }}">
ID reservation in Web UI (#416) * Remove dead code * Clean up indentation * Cleanup * Move socket commands into its own file * Move non-rascsi command methods into its own file * Refactoring * Bring back list_config_files * Cleanup * Cleanup of status messages * Remove unused libraries * Resolve pylint warnings * Resolve pylint warnings * Remove unused library * Resolve pylint warnings * Clean up status messages * Add requests lib to requirements.txt * Clean up status messages * Resolve interpolation warnings for logging * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Cleanup * Add html/head/body tags to the base document * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Add .pylintrc and suppress warnings for the generated protobuf module * Resolve pylint warnings * Clean up docstrings * Fix error * Cleanup * Add info on pylint to README * Store .pylintrc in parent dir to allow other Python packages to use it * Tidy index.html * Cleanup * Resolve jinja-ninja warnings * Cleanup * Cleanup * Cleanup * Cleanup * Cleanup * Save and load id reservations in config file * Reserve and unreserve in the web ui * TODO * Add backwards compatibility with 21.10 config files * Comment cleanup * Save and load reservation memos into the config file * Cleanup * Resolve pylint warnings * Fix bugs * Fix bug * Fix bugs * Cleanup * Fix typo * Fix successful return clause * Cleanup * Fix bugs
2021-11-07 02:11:17 +00:00
<input name="unit" type="hidden" value="{{ device.unit }}">
<input type="submit" value="{{ _("Eject") }}">
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
</form>
{% else %}
<form action="/scsi/detach" method="post" onsubmit="return confirm('{{ _("Detach Device?") }}')">
<input name="scsi_id" type="hidden" value="{{ device.id }}">
ID reservation in Web UI (#416) * Remove dead code * Clean up indentation * Cleanup * Move socket commands into its own file * Move non-rascsi command methods into its own file * Refactoring * Bring back list_config_files * Cleanup * Cleanup of status messages * Remove unused libraries * Resolve pylint warnings * Resolve pylint warnings * Remove unused library * Resolve pylint warnings * Clean up status messages * Add requests lib to requirements.txt * Clean up status messages * Resolve interpolation warnings for logging * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Cleanup * Add html/head/body tags to the base document * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Add .pylintrc and suppress warnings for the generated protobuf module * Resolve pylint warnings * Clean up docstrings * Fix error * Cleanup * Add info on pylint to README * Store .pylintrc in parent dir to allow other Python packages to use it * Tidy index.html * Cleanup * Resolve jinja-ninja warnings * Cleanup * Cleanup * Cleanup * Cleanup * Cleanup * Save and load id reservations in config file * Reserve and unreserve in the web ui * TODO * Add backwards compatibility with 21.10 config files * Comment cleanup * Save and load reservation memos into the config file * Cleanup * Resolve pylint warnings * Fix bugs * Fix bug * Fix bugs * Cleanup * Fix typo * Fix successful return clause * Cleanup * Fix bugs
2021-11-07 02:11:17 +00:00
<input name="unit" type="hidden" value="{{ device.unit }}">
<input type="submit" value="{{ _("Detach") }}">
</form>
{% endif %}
2021-09-23 00:16:23 +00:00
<form action="/scsi/info" method="post">
<input name="scsi_id" type="hidden" value="{{ device.id }}">
ID reservation in Web UI (#416) * Remove dead code * Clean up indentation * Cleanup * Move socket commands into its own file * Move non-rascsi command methods into its own file * Refactoring * Bring back list_config_files * Cleanup * Cleanup of status messages * Remove unused libraries * Resolve pylint warnings * Resolve pylint warnings * Remove unused library * Resolve pylint warnings * Clean up status messages * Add requests lib to requirements.txt * Clean up status messages * Resolve interpolation warnings for logging * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Cleanup * Add html/head/body tags to the base document * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Add .pylintrc and suppress warnings for the generated protobuf module * Resolve pylint warnings * Clean up docstrings * Fix error * Cleanup * Add info on pylint to README * Store .pylintrc in parent dir to allow other Python packages to use it * Tidy index.html * Cleanup * Resolve jinja-ninja warnings * Cleanup * Cleanup * Cleanup * Cleanup * Cleanup * Save and load id reservations in config file * Reserve and unreserve in the web ui * TODO * Add backwards compatibility with 21.10 config files * Comment cleanup * Save and load reservation memos into the config file * Cleanup * Resolve pylint warnings * Fix bugs * Fix bug * Fix bugs * Cleanup * Fix typo * Fix successful return clause * Cleanup * Fix bugs
2021-11-07 02:11:17 +00:00
<input name="unit" type="hidden" value="{{ device.unit }}">
<input type="submit" value="{{ _("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
</form>
ID reservation in Web UI (#416) * Remove dead code * Clean up indentation * Cleanup * Move socket commands into its own file * Move non-rascsi command methods into its own file * Refactoring * Bring back list_config_files * Cleanup * Cleanup of status messages * Remove unused libraries * Resolve pylint warnings * Resolve pylint warnings * Remove unused library * Resolve pylint warnings * Clean up status messages * Add requests lib to requirements.txt * Clean up status messages * Resolve interpolation warnings for logging * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Cleanup * Add html/head/body tags to the base document * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Add .pylintrc and suppress warnings for the generated protobuf module * Resolve pylint warnings * Clean up docstrings * Fix error * Cleanup * Add info on pylint to README * Store .pylintrc in parent dir to allow other Python packages to use it * Tidy index.html * Cleanup * Resolve jinja-ninja warnings * Cleanup * Cleanup * Cleanup * Cleanup * Cleanup * Save and load id reservations in config file * Reserve and unreserve in the web ui * TODO * Add backwards compatibility with 21.10 config files * Comment cleanup * Save and load reservation memos into the config file * Cleanup * Resolve pylint warnings * Fix bugs * Fix bug * Fix bugs * Cleanup * Fix typo * Fix successful return clause * Cleanup * Fix bugs
2021-11-07 02:11:17 +00:00
{% else %}
<form action="/scsi/reserve" method="post" onsubmit="var memo = prompt('{{ _("Enter a memo for this reservation") }}'); if (memo === null) event.preventDefault(); document.getElementById('memo_{{ device.id }}').value = memo;">
ID reservation in Web UI (#416) * Remove dead code * Clean up indentation * Cleanup * Move socket commands into its own file * Move non-rascsi command methods into its own file * Refactoring * Bring back list_config_files * Cleanup * Cleanup of status messages * Remove unused libraries * Resolve pylint warnings * Resolve pylint warnings * Remove unused library * Resolve pylint warnings * Clean up status messages * Add requests lib to requirements.txt * Clean up status messages * Resolve interpolation warnings for logging * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Cleanup * Add html/head/body tags to the base document * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Add .pylintrc and suppress warnings for the generated protobuf module * Resolve pylint warnings * Clean up docstrings * Fix error * Cleanup * Add info on pylint to README * Store .pylintrc in parent dir to allow other Python packages to use it * Tidy index.html * Cleanup * Resolve jinja-ninja warnings * Cleanup * Cleanup * Cleanup * Cleanup * Cleanup * Save and load id reservations in config file * Reserve and unreserve in the web ui * TODO * Add backwards compatibility with 21.10 config files * Comment cleanup * Save and load reservation memos into the config file * Cleanup * Resolve pylint warnings * Fix bugs * Fix bug * Fix bugs * Cleanup * Fix typo * Fix successful return clause * Cleanup * Fix bugs
2021-11-07 02:11:17 +00:00
<input name="scsi_id" type="hidden" value="{{ device.id }}">
<input name="memo" id="memo_{{ device.id }}" type="hidden" value="">
<input type="submit" value="{{ _("Reserve") }}">
ID reservation in Web UI (#416) * Remove dead code * Clean up indentation * Cleanup * Move socket commands into its own file * Move non-rascsi command methods into its own file * Refactoring * Bring back list_config_files * Cleanup * Cleanup of status messages * Remove unused libraries * Resolve pylint warnings * Resolve pylint warnings * Remove unused library * Resolve pylint warnings * Clean up status messages * Add requests lib to requirements.txt * Clean up status messages * Resolve interpolation warnings for logging * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Cleanup * Add html/head/body tags to the base document * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Add .pylintrc and suppress warnings for the generated protobuf module * Resolve pylint warnings * Clean up docstrings * Fix error * Cleanup * Add info on pylint to README * Store .pylintrc in parent dir to allow other Python packages to use it * Tidy index.html * Cleanup * Resolve jinja-ninja warnings * Cleanup * Cleanup * Cleanup * Cleanup * Cleanup * Save and load id reservations in config file * Reserve and unreserve in the web ui * TODO * Add backwards compatibility with 21.10 config files * Comment cleanup * Save and load reservation memos into the config file * Cleanup * Resolve pylint warnings * Fix bugs * Fix bug * Fix bugs * Cleanup * Fix typo * Fix successful return clause * Cleanup * Fix bugs
2021-11-07 02:11:17 +00:00
</form>
{% endif %}
</td>
{% else %}
<td class="inactive">{{ device.id }}</td>
{% if units %}
Support for multiple SCSI LUNs (#318) * Updated logging * Updated logging * Updated logging * Updated ID/LUN parsing * Updated handling of max_id * The -HD option sets type to SAHD * Replaced is_sasi by device type * Updated logging * Logging update * Improved LUN evaluation * Check LUN against UnitMax * Comment update * LUN parsing update * Logging update * Logging update * Updated ReportLuns * Updated REPORT LUNS * Cleanup * Updated REPORT LUNS * Updated Execute() * Updated LUN handling * Check for consecutive LUNs * Added LUN check for remotely attached devices * Remember LUN selected by IDENTIFY * Evaluate LUN from IDENTIFY message * Added comment * Updated REPORT LUNS * Initlize LUN * Logging update * Support 32 LUNs * rasctl display update * Updated LUN check for LUNSs > 7 * Simplified LUN validation * Fixed wrong ID/LUN handling with values > 9 * Log level update * Manpage update * rascsi parser update * Updated error handling * Updated error handling * Updated LUN setup validation * Updated logging * Improved validation of consecutive LUNs * Renaming * Detach all LUNs equal to or higher than the one specified * Add support for LUN in the device list * Add ability to show device info for LUNs * Make it possible to detach and eject LUNs * Show full path to prop file * Show only LUN columns when non-0 LUNs present * Support for attaching LUNs * Add helptext * Fix handling of removable media * Retain the previous behavior of recommending the next unoccupied id * SCSI ID validation no longer needed due to changed logic * Make use of recommended id everywhere * Docstring Co-authored-by: Daniel Markstedt <markstedt@gmail.com>
2021-10-13 09:03:31 +00:00
<td class="inactive"></td>
{% endif %}
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
<td class="inactive"></td>
<td class="inactive">{{ _("Reserved ID") }}</td>
ID reservation in Web UI (#416) * Remove dead code * Clean up indentation * Cleanup * Move socket commands into its own file * Move non-rascsi command methods into its own file * Refactoring * Bring back list_config_files * Cleanup * Cleanup of status messages * Remove unused libraries * Resolve pylint warnings * Resolve pylint warnings * Remove unused library * Resolve pylint warnings * Clean up status messages * Add requests lib to requirements.txt * Clean up status messages * Resolve interpolation warnings for logging * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Cleanup * Add html/head/body tags to the base document * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Add .pylintrc and suppress warnings for the generated protobuf module * Resolve pylint warnings * Clean up docstrings * Fix error * Cleanup * Add info on pylint to README * Store .pylintrc in parent dir to allow other Python packages to use it * Tidy index.html * Cleanup * Resolve jinja-ninja warnings * Cleanup * Cleanup * Cleanup * Cleanup * Cleanup * Save and load id reservations in config file * Reserve and unreserve in the web ui * TODO * Add backwards compatibility with 21.10 config files * Comment cleanup * Save and load reservation memos into the config file * Cleanup * Resolve pylint warnings * Fix bugs * Fix bug * Fix bugs * Cleanup * Fix typo * Fix successful return clause * Cleanup * Fix bugs
2021-11-07 02:11:17 +00:00
<td class="inactive">{{ RESERVATIONS[device.id] }}</td>
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
<td class="inactive"></td>
ID reservation in Web UI (#416) * Remove dead code * Clean up indentation * Cleanup * Move socket commands into its own file * Move non-rascsi command methods into its own file * Refactoring * Bring back list_config_files * Cleanup * Cleanup of status messages * Remove unused libraries * Resolve pylint warnings * Resolve pylint warnings * Remove unused library * Resolve pylint warnings * Clean up status messages * Add requests lib to requirements.txt * Clean up status messages * Resolve interpolation warnings for logging * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Cleanup * Add html/head/body tags to the base document * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Add .pylintrc and suppress warnings for the generated protobuf module * Resolve pylint warnings * Clean up docstrings * Fix error * Cleanup * Add info on pylint to README * Store .pylintrc in parent dir to allow other Python packages to use it * Tidy index.html * Cleanup * Resolve jinja-ninja warnings * Cleanup * Cleanup * Cleanup * Cleanup * Cleanup * Save and load id reservations in config file * Reserve and unreserve in the web ui * TODO * Add backwards compatibility with 21.10 config files * Comment cleanup * Save and load reservation memos into the config file * Cleanup * Resolve pylint warnings * Fix bugs * Fix bug * Fix bugs * Cleanup * Fix typo * Fix successful return clause * Cleanup * Fix bugs
2021-11-07 02:11:17 +00:00
<td class="inactive">
<form action="/scsi/release" method="post">
ID reservation in Web UI (#416) * Remove dead code * Clean up indentation * Cleanup * Move socket commands into its own file * Move non-rascsi command methods into its own file * Refactoring * Bring back list_config_files * Cleanup * Cleanup of status messages * Remove unused libraries * Resolve pylint warnings * Resolve pylint warnings * Remove unused library * Resolve pylint warnings * Clean up status messages * Add requests lib to requirements.txt * Clean up status messages * Resolve interpolation warnings for logging * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Cleanup * Add html/head/body tags to the base document * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Add .pylintrc and suppress warnings for the generated protobuf module * Resolve pylint warnings * Clean up docstrings * Fix error * Cleanup * Add info on pylint to README * Store .pylintrc in parent dir to allow other Python packages to use it * Tidy index.html * Cleanup * Resolve jinja-ninja warnings * Cleanup * Cleanup * Cleanup * Cleanup * Cleanup * Save and load id reservations in config file * Reserve and unreserve in the web ui * TODO * Add backwards compatibility with 21.10 config files * Comment cleanup * Save and load reservation memos into the config file * Cleanup * Resolve pylint warnings * Fix bugs * Fix bug * Fix bugs * Cleanup * Fix typo * Fix successful return clause * Cleanup * Fix bugs
2021-11-07 02:11:17 +00:00
<input name="scsi_id" type="hidden" value="{{ device.id }}">
<input type="submit" value="{{ _("Release") }}">
ID reservation in Web UI (#416) * Remove dead code * Clean up indentation * Cleanup * Move socket commands into its own file * Move non-rascsi command methods into its own file * Refactoring * Bring back list_config_files * Cleanup * Cleanup of status messages * Remove unused libraries * Resolve pylint warnings * Resolve pylint warnings * Remove unused library * Resolve pylint warnings * Clean up status messages * Add requests lib to requirements.txt * Clean up status messages * Resolve interpolation warnings for logging * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Cleanup * Add html/head/body tags to the base document * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Resolve pylint warnings * Add .pylintrc and suppress warnings for the generated protobuf module * Resolve pylint warnings * Clean up docstrings * Fix error * Cleanup * Add info on pylint to README * Store .pylintrc in parent dir to allow other Python packages to use it * Tidy index.html * Cleanup * Resolve jinja-ninja warnings * Cleanup * Cleanup * Cleanup * Cleanup * Cleanup * Save and load id reservations in config file * Reserve and unreserve in the web ui * TODO * Add backwards compatibility with 21.10 config files * Comment cleanup * Save and load reservation memos into the config file * Cleanup * Resolve pylint warnings * Fix bugs * Fix bug * Fix bugs * Cleanup * Fix typo * Fix successful return clause * Cleanup * Fix bugs
2021-11-07 02:11:17 +00:00
</form>
</td>
{% endif %}
</tr>
{% endfor %}
</tbody>
</table>
<p><form action="/scsi/detach_all" method="post" onsubmit="return confirm('{{ _("Detach all SCSI Devices?") }}')">
<input type="submit" value="{{ _("Detach All Devices") }}">
</form></p>
<hr/>
<details>
<summary class="heading">
{{ _("Image File Management") }}
</summary>
2021-09-28 20:39:08 +00:00
<ul>
<li>{{ _("Manage image files in the active RaSCSI image directory: <tt>%(directory)s</tt> with a scan depth of %(scan_depth)s.", directory=base_dir, scan_depth=scan_depth) }}</li>
<li>{{ _("Select a valid SCSI ID and <a href=\"%(url)s\">LUN</a> to attach to. Unless you know what you're doing, always use LUN 0.", url="https://en.wikipedia.org/wiki/Logical_unit_number") }}
</li>
<li>{{ _("If RaSCSI was unable to detect the media type associated with the image, you get to choose the type from the dropdown.") }}</li>
<li>
{{ _("Recognized image file types:") }}
{% set comma = joiner(", ") %}
{% for extension in valid_image_suffixes %}{{ comma() }}.{{ extension}}{% endfor %}
</li>
<li>
{{ _("Recognized archive file types:") }}
{% set comma = joiner(", ") %}
{% for extension in ARCHIVE_FILE_SUFFIXES %}{{ comma() }}.{{ extension}}{% endfor %}
</li>
2021-09-28 20:39:08 +00:00
</ul>
</details>
2021-09-28 20:39:08 +00:00
<table border="black" cellpadding="3">
<tbody>
<tr style="font-weight: bold;">
<td>{{ _("File") }}</td>
<td>{{ _("Size") }}</td>
<td>{{ _("Parameters and Actions") }}</td>
</tr>
{% for file in files|sort(attribute='name') %}
<tr>
{% if file["prop"] %}
<td>
<details>
<summary>
{{ file["name"] }}
</summary>
<ul style="list-style: none;">
{% for key in file["prop"] %}
<li>{{ key }}: {{ file['prop'][key] }}</li>
{% endfor %}
<form action="/files/download" method="post">
<input name="file" type="hidden" value="{{ CFG_DIR }}/{{ file['name'].replace(base_dir, '') }}.{{ PROPERTIES_SUFFIX }}">
<input type="submit" value="{{ _("Properties File") }} &#8595;">
</form>
</ul>
</details>
</td>
{% elif file["archive_contents"] %}
<td>
<details>
<summary>
{{ file["name"] }}
</summary>
<ul style="list-style: none;">
{% for member in file["archive_contents"] %}
{% if not member["is_properties_file"] %}
<li>
{% if member["related_properties_file"] %}
<details>
<summary>
<label>{{ member["path"] }}</label>
<form action="/files/extract_image" method="post">
<input name="archive_file" type="hidden" value="{{ file['name'] }}">
<input name="archive_members" type="hidden" value="{{ member["path"] }}|{{ member["related_properties_file"] }}">
<input type="submit" value="{{ _("Extract") }}" onclick="processNotify('{{ _("Extracting a single file...") }}')">
</form>
</summary>
<ul style="list-style: none;">
<li>{{ member["related_properties_file"] }}</li>
</ul>
</details>
{% else %}
<label>{{ member["path"] }}</label>
<form action="/files/extract_image" method="post">
<input name="archive_file" type="hidden" value="{{ file["name"] }}">
<input name="archive_members" type="hidden" value="{{ member["path"] }}">
<input type="submit" value="{{ _("Extract") }}" onclick="processNotify('{{ _("Extracting a single file...") }}')">
</form>
{% endif %}
</li>
{% endif %}
{% endfor %}
</ul>
</details>
</td>
{% else %}
<td>{{ file["name"] }}</td>
{% endif %}
<td style="text-align:center">
2021-09-23 00:16:23 +00:00
<form action="/files/download" method="post">
<input name="file" type="hidden" value="{{ base_dir }}/{{ file['name'] }}">
<input type="submit" value="{{ file['size_mb'] }} {{ _("MiB") }} &#8595;">
</form>
</td>
<td>
{% if file["name"] in attached_images %}
<center>
{{ _("Attached!") }}
</center>
{% else %}
{% if file["archive_contents"] %}
<form action="/files/extract_image" method="post">
<input name="archive_file" type="hidden" value="{{ file['name'] }}">
{% set pipe = joiner("|") %}
<input name="archive_members" type="hidden" value="{% for member in file["archive_contents"] %}{{ pipe() }}{{ member["path"] }}{% endfor %}">
<input type="submit" value="{{ _("Extract All") }}" onclick="processNotify('{{ _("Extracting all files...") }}')">
</form>
{% else %}
<form action="/scsi/attach" method="post">
<input name="file_name" type="hidden" value="{{ file['name'] }}">
<input name="file_size" type="hidden" value="{{ file['size'] }}">
<label for="id">{{ _("ID") }}</label>
<select name="scsi_id">
{% for id in scsi_ids %}
<option name="id" value="{{id}}"{% if id == recommended_id %} selected{% endif %}>
{{ id }}
</option>
{% endfor %}
</select>
<label for="unit">{{ _("LUN") }}</label>
<input name="unit" type="number" value="0" min="0" max="31" step="1">
{% if file["detected_type"] != "UNDEFINED" %}
<input name="type" type="hidden" value="{{ file['detected_type'] }}">
{{ file['detected_type_name'] }}
{% else %}
<select name="type">
<option selected disabled value="">
{{ _("Select media type") }}
</option>
{% for key, value in device_types.items() %}
{% if key in DISK_DEVICE_TYPES %}
<option value="{{ key }}">
{{ value["name"] }}
</option>
{% endif %}
{% endfor %}
</select>
{% endif %}
<input type="submit" value="{{ _("Attach") }}">
{% endif %}
</form>
<form action="/files/rename" method="post" onsubmit="var new_file_name = prompt('{{ _("Enter new file name for: %(file_name)s", file_name=file["name"]) }}', '{{ file['name'] }}'); if (new_file_name === null) event.preventDefault(); document.getElementById('new_file_name_{{ loop.index }}').value = new_file_name;">
<input name="file_name" type="hidden" value="{{ file['name'] }}">
<input name="new_file_name" id="new_file_name_{{ loop.index }}" type="hidden" value="">
<input type="submit" value="{{ _("Rename") }}">
</form>
<form action="/files/copy" method="post" onsubmit="var copy_file_name = prompt('{{ _("Save copy of %(file_name)s as:", file_name=file["name"]) }}', '{{ file['name'] }}'); if (copy_file_name === null) event.preventDefault(); document.getElementById('copy_file_name_{{ loop.index }}').value = copy_file_name;">
<input name="file_name" type="hidden" value="{{ file['name'] }}">
<input name="copy_file_name" id="copy_file_name_{{ loop.index }}" type="hidden" value="">
<input type="submit" value="{{ _("Copy") }}">
</form>
<form action="/files/delete" method="post" onsubmit="return confirm('{{ _("Delete file: %(file_name)s?", file_name=file["name"]) }}')">
<input name="file_name" type="hidden" value="{{ file['name'] }}">
<input type="submit" value="{{ _("Delete") }}">
</form>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
<p><small>{{ _("%(disk_space)s MiB disk space remaining on the Pi", disk_space=env["free_disk_space"]) }}</small></p>
<hr/>
<details>
<summary class="heading">
{{ _("Attach Peripheral Device") }}
</summary>
2021-09-28 20:39:08 +00:00
<ul>
<li>{{ _("<a href=\"%(url1)s\">DaynaPORT SCSI/Link</a> and <a href=\"%(url2)s\">X68000 Host Bridge</a> are network devices.", url1="https://github.com/akuker/RASCSI/wiki/Dayna-Port-SCSI-Link", url2="https://github.com/akuker/RASCSI/wiki/X68000#Host_File_System_driver") }}
</li>
<ul>
<li>{{ _("If you have a DHCP setup, choose only the interface you have configured the bridge with. You can ignore the inet field when attaching.") }}</li>
<li>{{ _("Configure the network bridge by running easyinstall.sh, or follow the <a href=\"%(url)s\">manual steps in the wiki</a>.", url="https://github.com/akuker/RASCSI/wiki/Dayna-Port-SCSI-Link#manual-setup") }}
{% if bridge_configured %}
<li>{{ _("The <tt>rascsi_bridge</tt> network bridge is active and ready to be used by an emulated network adapter!") }}</li>
{% endif %}
</li>
</ul>
<li>{{ _("The Printer and Host Services device are currently supported on compatible Atari systems, and require <a href=\"%(url)s\">driver software</a> to be installed on the host system.", url="https://www.hddriver.net/en/rascsi_tools.html") }}
</li>
</ul>
</details>
<table border="black" cellpadding="3">
<tr style="font-weight: bold;">
<td>{{ _("Peripheral") }}</td>
<td>{{ _("Parameters and Actions") }}</td>
</tr>
{% for type in PERIPHERAL_DEVICE_TYPES %}
<tr>
<td>
<div>{{ device_types[type]["name"] }}</div>
</td>
<td>
<form action="/scsi/attach_device" method="post">
<input name="type" type="hidden" value="{{ type }}">
{% for key, value in device_types[type]["params"] | dictsort %}
<label for="{{ key }}">{{ key }}:</label>
{% if value.isnumeric() %}
<input name="{{ key }}" type="number" value="{{ value }}">
{% elif key == "interface" %}
<select name="interface">
{% for if in netinfo["ifs"] %}
<option value="{{ if }}">
{{ if }}
</option>
{% endfor %}
</select>
{% else %}
<input name="{{ key }}" type="text" size="{{ value|length }}" placeholder="{{ value }}">
{% endif %}
{% endfor %}
<label for="scsi_id">{{ _("SCSI ID:") }}</label>
<select name="scsi_id">
{% for id in scsi_ids %}
<option value="{{ id }}"{% if id == recommended_id %} selected{% endif %}>
{{ id }}
</option>
{% endfor %}
</select>
<label for="unit">{{ _("LUN") }}</label>
<input name="unit" type="number" value="0" min="0" max="31" step="1">
<input type="submit" value="{{ _("Attach") }}">
</form>
</td>
</tr>
{% endfor %}
</table>
{% if macproxy_configured %}
<p><small>{{ _("Macproxy is running at %(ip_addr)s (default port 5000)", ip_addr=ip_addr) }}</small></p>
{% else %}
<p><small>{{ _("Install <a href=\"%(url)s\">Macproxy</a> to browse the Web with any vintage browser. It's not just for Macs!", url="https://github.com/akuker/RASCSI/wiki/Vintage-Web-Proxy#macproxy") }}</small></p>
{% endif %}
<hr/>
<details>
<summary class="heading">
{{ _("Upload File") }}
</summary>
2021-09-28 20:39:08 +00:00
<ul>
<li>{{ _("Files are uploaded to <tt>%(directory)s</tt>.", directory=base_dir) }}</li>
<li>{{ _("The largest file size accepted in this form is %(max_file_size)s MiB. Use other file transfer means for larger files.", max_file_size=max_file_size) }}</li>
<li>{{ _("File uploads will progress only if you stay on this page. If you navigate away before the transfer is completed, you will end up with an incomplete file.") }}</li>
2021-09-28 20:39:08 +00:00
</ul>
</details>
<table style="border: none">
<tr style="border: none">
<td style="border: none; vertical-align:top;">
<form name="dropper" action="/files/upload" method="post" class="dropzone dz-clickable" enctype="multipart/form-data" id="dropper"></form>
</td>
</tr>
</table>
<script type="application/javascript">
Dropzone.options.dropper = {
paramName: 'file',
chunking: true,
forceChunking: true,
url: '/files/upload',
maxFilesize: {{ max_file_size }}, // MiB
chunkSize: 1000000, // bytes
dictDefaultMessage: "{{ _("Drop files here to upload") }}",
dictFallbackMessage: "{{ _("Your browser does not support drag'n'drop file uploads.") }}",
dictFallbackText: "{{ _("Please use the fallback form below to upload your files like in the olden days.") }}",
dictFileTooBig: "{{ _("File is too big: {{filesize}}MiB. Max filesize: {{maxFilesize}}MiB.") }}",
dictInvalidFileType: "{{ _("You can't upload files of this type.") }}",
dictResponseError: "{{ _("Server responded with code: {{statusCode}}") }}",
dictCancelUpload:" {{ _("Cancel upload") }}",
dictUploadCanceled: "{{ _("Upload canceled.") }}",
dictCancelUploadConfirmation: "{{ _("Are you sure you want to cancel this upload?") }}",
dictRemoveFile: "{{ _("Remove file") }}",
dictMaxFilesExceeded: "{{ _("You can not upload any more files.") }}",
dictFileSizeUnits: {
tb: "{{ _("TiB") }}",
gb: "{{ _("GiB") }}",
mb: "{{ _("MiB") }}",
kb: "{{ _("KiB") }}",
b: "{{ _("B") }}"
}
}
</script>
<hr/>
<details>
<summary class="heading">
{{ _("Download File to Images") }}
</summary>
2021-09-28 20:39:08 +00:00
<ul>
<li>{{ _("Given a URL, download that file to the <tt>%(directory)s</tt> directory.", directory=base_dir) }}</li>
2021-09-28 20:39:08 +00:00
</ul>
</details>
<table style="border: none">
<tr style="border: none">
<td style="border: none; vertical-align:top;">
<form action="/files/download_to_images" method="post">
<label for="url">{{ _("URL:") }}</label>
<input name="url" placeholder="{{ _("URL") }}" required="" type="url">
<input type="submit" value="{{ _("Download") }}" onclick="processNotify('{{ _("Downloading File to Images...") }}')">
</form>
</td>
</tr>
</table>
<hr/>
<details>
<summary class="heading">
{{ _("Download File to AppleShare") }}
</summary>
<ul>
<li>{{ _("Given a URL, download that file to the <tt>%(directory)s</tt> directory and share it over AFP.", directory=AFP_DIR) }}</li>
<li>{{ _("Manage the files you download here through AppleShare on your vintage Mac.") }}</li>
<li>{{ _("Requires <a href=\"%(url)s\">Netatalk</a> to be installed and configured correctly for your network.", url="https://github.com/akuker/RASCSI/wiki/AFP-File-Sharing") }}</li>
</ul>
</details>
{% if netatalk_configured %}
<table style="border: none">
<tr style="border: none">
<td style="border: none; vertical-align:top;">
<form action="/files/download_to_afp" method="post">
<label for="url">{{ _("URL:") }}</label>
<input name="url" placeholder="{{ _("URL") }}" required="" type="url">
<input type="submit" value="{{ _("Download") }}" onclick="processNotify('{{ _("Downloading File to AppleShare...") }}')">
</form>
</td>
</tr>
</table>
{% if netatalk_configured == 1 %}
<p><small>{{ _("The AppleShare server is running. No active connections.") }}</small></p>
{% elif netatalk_configured == 2 %}
<p><small>{{ _("%(value)d active AFP connection", value=(netatalk_configured - 1)) }}</small></p>
{% elif netatalk_configured > 2 %}
<p><small>{{ _("%(value)d active AFP connections", value=(netatalk_configured - 1)) }}</small></p>
{% endif %}
{% else %}
<p>{{ _("Install <a href=\"%(url)s\">Netatalk</a> to use the AppleShare File Server.", url="https://github.com/akuker/RASCSI/wiki/AFP-File-Sharing") }}</p>
{% endif %}
<hr/>
<details>
<summary class="heading">
{{ _("Download File and Create CD-ROM image") }}
</summary>
2021-09-28 20:39:08 +00:00
<ul>
<li>{{ _("Create an ISO file system CD-ROM image with the downloaded file, and mount it on the given SCSI ID.") }}</li>
<li>{{ _("HFS is for Mac OS, Joliet for Windows, and Rock Ridge for POSIX.") }}</li>
<li>{{ _("On Mac OS, a <a href=\"%(url)s\">compatible CD-ROM driver</a> is required.", url="https://github.com/akuker/RASCSI/wiki/Drive-Setup#Mounting_CD_ISO_or_MO_images") }}</li>
<li>{{ _("If the downloaded file is a zip archive, we will attempt to unzip it and store the resulting files.") }}</li>
2021-09-28 20:39:08 +00:00
</ul>
</details>
<table style="border: none">
<tr style="border: none">
<td style="border: none; vertical-align:top;">
<label for="scsi_id">{{ _("SCSI ID:") }}</label>
<form action="/files/download_to_iso" method="post">
<select name="scsi_id">
{% for id in scsi_ids %}
<option value="{{ id }}"{% if id == recommended_id %} selected{% endif %}>
{{ id }}
</option>
{% endfor %}
</select>
<label for="url">{{ _("URL:") }}</label>
<input name="url" placeholder="{{ _("URL") }}" required="" type="url">
<label for="type">{{ _("Type:") }}</label>
<select name="type">
<option value="-hfs">
HFS
</option>
<option value="-iso-level 1">
ISO-9660 Level 1
</option>
<option value="-iso-level 2">
ISO-9660 Level 2
</option>
<option value="-iso-level 3">
ISO-9660 Level 3
</option>
<option value="-J">
Joliet
</option>
<option value="-r">
Rock Ridge
</option>
</select>
<input type="submit" value="{{ _("Download and Mount CD-ROM image") }}" onclick="processNotify('{{ _("Downloading File and generating CD-ROM image...") }}')">
</form>
</td>
</tr>
</table>
<hr/>
<details>
<summary class="heading">
{{ _("Create Empty Disk Image File") }}
</summary>
2021-09-28 20:39:08 +00:00
<ul>
SASI code removal, error handling update, bug fixes, code cleanup (#806) Summary ov most important changes triggered by the SASI code removal: - Removed the SASI controller code - New controller management. There is a new controller base class AbstractController and a class ControllerManager managing the controller lifecycle. The lifecycle management was removed from rasci.cpp and is covered by unit tests. - New device management. The DeviceFactory manages the device lifecycle instead of rascsi.cpp. The new code is covered by unit tests. - The lifecycle managment uses C++ collections with variable size instead of arrays with hard-coded sizes. - The ScsiController method contains most of what was previously contained in scsidev_ctrl.cpp plus the code from sasidev_ctrl.cpp that was relevant for SCSI. - scsi_command_util contains helper methods used for identical SCSI command implementations of more than one device - Devices know their controllers, so that the controller instance does not need to be passed to each SCSI command. This change helps to decouple the devices from the controller. The phase_handler interface is also part of this decoupling. - Use scsi_command_exception for propagating SCSI command execution errors, This resolves issues with the previous error handling, which was based on return values and often on magic numbers. - Removed legacy SCSI error codes, all errors are now encoded by sense_key::, asc:: and status::. - Fixed various warnings reported with -Wextra, -Weffc++ and -Wpedantic. - Use constructor member initialization lists (recommended for ISO C++) - Consistently use new/delete instead of malloc/free (recommended for ISO C++), resulting in better type safety and error handling - Replaced variable sized arrays on the stack (violates ISO C++ and can cause a stack overflow) - Replaced NULL by nullptr (recommended for C++), resulting in better type safety - Use more const member functions in order to avoid side effects - The format device page can now also be changed for hard disk drives (Fujitsu M2624S supports this, for instance), not just for MOs. - Better encapsulation, updated access specifiers in many places - Removed unused methods and method arguments - Fixed a number of TODOs - Added/updated unit tests for a lot of non-legacy classes - Makefile support for creating HTML coverage reports with lcov/genhtml
2022-09-03 14:53:53 +00:00
<li>{{ _("The Generic Hard Disk image type is recommended for most computer platforms.") }}</li>
<li>{{ _("The Apple image type improves compatibility with Apple Macintosh computers.") }}</li>
<li>{{ _("The NEC image type improves compatibility with NEC PC-98 computers.") }}</li>
<li>{{ _("The SCSI-1 image type makes RaSCSI behave like a legacy SCSI-1 device, which may improve compatibility with very old SCSI controllers.") }}</li>
<li>{{ _("The Removable Disk image type can be used with SCSI floppy drives, SyQuest drives, Zip drives, etc.") }}</li>
2021-09-28 20:39:08 +00:00
</ul>
</details>
<table style="border: none">
<tr style="border: none">
<td style="border: none; vertical-align:top;">
<form action="/files/create" method="post">
<label for="file_name">{{ _("File Name:") }}</label>
<input name="file_name" placeholder="{{ _("File Name") }}" required="" type="text">
<label for="type">{{ _("Type:") }}</label>
<select name="type">
{% for key, value in image_suffixes_to_create.items() %}
<option value="{{ key }}">
{{ value }} [.{{ key }}]
</option>
{% endfor %}
</select>
<label for="size">{{ _("Size:") }}</label>
<input name="size" type="number" placeholder="{{ _("MiB") }}" min="1" max="262144" required>
<input type="submit" value="{{ _("Create") }}">
</form>
</td>
</tr>
</table>
<hr/>
<details>
<summary class="heading">
{{ _("Create Named Drive") }}
</summary>
2021-09-28 20:39:08 +00:00
<ul>
<li>{{ _("Create pairs of images and properties files from a list of real-life drives.") }}</li>
<li>{{ _("This will make RaSCSI use certain vendor strings and block sizes that may improve compatibility with certain systems.") }}</li>
2021-09-28 20:39:08 +00:00
</ul>
</details>
<p><a href="/drive/list">{{ _("Create a named disk image that mimics real-life drives") }}</a></p>
2021-09-28 20:39:08 +00:00
<hr/>
Disk image profile management using a sidecar config file (#242) * Handle a case where reserved ids on the Web UI side are not actually reserved on the backend side * Better error handling when no device is found in list_devices * Better warning message * Tag message as error * Fix device_info * Get reserved ids from the server instead of storing a client side state, which caused front and backend to get out of sync in certain cases. * Initial implementation of sidecar configuration reading and writing * Use bytes for drive image creation internally * Add named drive section * Move header to base.html * Create the disk profile list page * Make lists of HDDs, CDRs, and Removable drives * Implement disk image + sidecar creation * Implement CD-ROM device sidecar creation method * Add more device configurations * Add disclaimer * Hide URL if none is provided * Make the web ui use the new protobuf parameter maps * Make daynaport attaching UI more flexible * Use the protobuf interface to create image files * Use new create image method for the sidecar flow as well * Move file deletion logic to protobuf commands; Refactor saving/loading config files * Update disk image creation * Fix error * Disk images the script makes are in Mac format * Add blurb about the risks with using Lido driver (issue#40) to the easyinstall script, while pushing less for using that feature. * Make shutdown and reboot async operations * More informative footer contents * Wordsmith the Mac drive options * Link to relevant section in the wiki * Added GET_IMAGE_FILES * Added default folder to GET_IMAGE_FILES * Renaming * Updated setting image folder * Lists available net interfaces as a drop down when attaching daynaport * Macs should use the hds image file ending * Fixed default image folder handling * Refer to device properties, instead of sidecars * Added NETWORK_INTERFACES_INFO * Filter "lo" * Use PF_INET in favor of PF_INET6 * Added network interfaces to server info * Drive property file ending defined in one place; Add handling of common urllib and file system exceptions. * Use protobuf interface to get network interface info * Use protobuf interface for list_files * Repeated field cleanup * Renaming * Added DEVICE_TYPES_INFO * Comment update * Added -y option to rasctl * Add the remaining recommended drive profiles provided by rpajarola * Fix typos * Add warnings to CD-ROM descriptions * Add more recommended Sun drives * Add capacity to name * Move footer into base.html * Handle removable drive insertion in the attach method (easy to do with protobuf) * Limit which arguments to pass to an image injection command * Cleanup * Sort image and config files alphabetically * Make compatible with updated protobuf interface * Sort drives alphabetically by name * Decriptive text for CD-ROM section * Better description * Hyperlink to disks page instead of button Co-authored-by: Uwe Seimet <Uwe.Seimet@seimet.de>
2021-09-19 21:29:01 +00:00
<details>
<summary class="heading">
{{ _("Logging") }}
</summary>
2021-09-28 20:39:08 +00:00
<ul>
<li>{{ _("Fetch a certain number of lines of system logs with the given scope.") }}</li>
2021-09-28 20:39:08 +00:00
</ul>
</details>
<table style="border: none">
<tr style="border: none">
<td style="border: none; vertical-align:top;">
<form action="/logs/show" method="post">
<label for="lines">{{ _("Log Lines:") }}</label>
<input name="lines" type="number" value="200" min="0" max="99999" step="100">
<label for="scope">{{ _("Scope:") }}</label>
<select name="scope">
<option value="">
{{ _("All logs") }}
</option>
<option value="rascsi">
rascsi
</option>
<option value="rascsi-web">
rascsi-web
</option>
<option value="rascsi-oled">
rascsi-oled
</option>
<option value="rascsi-ctrlboard">
rascsi-ctrlboard
</option>
</select>
<input type="submit" value="{{ _("Show Logs") }}">
</form>
</td>
</tr>
</table>
<hr/>
<details>
<summary class="heading">
{{ _("Server Log Level") }}
</summary>
2021-09-28 20:39:08 +00:00
<ul>
<li>{{ _("Change the log level of the RaSCSI backend process.") }}</li>
<li>{{ _("The current dropdown selection indicates the active log level.") }}</li>
2021-09-28 20:39:08 +00:00
</ul>
</details>
<table style="border: none">
<tr style="border: none">
<td style="border: none; vertical-align:top;">
<form action="/logs/level" method="post">
<label for="level">{{ _("Log Level:") }}</label>
<select name="level">
{% for level in log_levels %}
<option value="{{ level }}"{% if level == current_log_level %} selected{% endif %}>
{{ level }}
</option>
{% endfor %}
</select>
<input type="submit" value="{{ _("Set Log Level") }}">
</form>
</td>
</tr>
</table>
<hr/>
2021-12-27 21:21:56 +00:00
<details>
<summary class="heading">
{{ _("Language") }}
</summary>
<ul>
<li>{{ _("Change the Web Interface language.") }}</li>
</ul>
</details>
<table style="border: none">
<tr style="border: none">
<td style="border: none; vertical-align:top;">
<form action="/language" method="post">
<label for="language">{{ _("Language:") }}</label>
<select name="locale">
{% for locale in locales %}
<option value="{{ locale.language }}">
{{ locale.language }} - {{ locale.display_name }}
</option>
{% endfor %}
</select>
<input type="submit" value="{{ _("Change Language") }}">
</form>
</td>
</tr>
</table>
<hr/>
<details>
<summary class="heading">
{{ _("Raspberry Pi Operations") }}
</summary>
2021-09-28 20:39:08 +00:00
<ul>
<li>{{ _("Reboot or shut down the Raspberry Pi that RaSCSI is running on.") }}</li>
<li>{{ _("IMPORTANT: Always shut down the Pi before turning off the power. Failing to do so may lead to data loss.") }}</li>
2021-09-28 20:39:08 +00:00
</ul>
</details>
<table style="border: none">
<tr style="border: none">
<td style="border: none; vertical-align:top;">
<form action="/pi/reboot" method="post" onclick="if (confirm('{{ _("Reboot the Raspberry Pi?") }}')) shutdownNotify('{{ _("Rebooting the Raspberry Pi...") }}'); else event.preventDefault();">
<input type="submit" value="{{ _("Reboot Raspberry Pi") }}">
</form>
</td>
<td style="border: none; vertical-align:top;">
<form action="/pi/shutdown" method="post" onclick="if (confirm('{{ _("Shut down the Raspberry Pi?") }}')) shutdownNotify('{{ _("Shutting down the Raspberry Pi...") }}'); else event.preventDefault();">
<input type="submit" value="{{ _("Shut Down Raspberry Pi") }}">
</form>
</td>
</tr>
</table>
{% endblock content %}