Rebrand project to PiSCSI (#1016)

* Rebrand project to PiSCSI
- rascsi ->piscsi
- rasctl -> scsictl
- rasdump -> scsidump
- ras* -> piscsi* (rasutil -> piscsi_util, etc.)

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

Co-authored-by: nucleogenic <nr@nucleogenic.com>
Co-authored-by: Uwe Seimet <Uwe.Seimet@seimet.de>
This commit is contained in:
Daniel Markstedt
2022-12-05 09:58:23 -08:00
committed by GitHub
parent 12068cafb8
commit 52c2aa474f
274 changed files with 2341 additions and 2380 deletions
+9 -9
View File
@@ -1,4 +1,4 @@
# RaSCSI Web
# PiSCSI Web
## Setup local dev env
@@ -18,16 +18,16 @@ $ BASE_DIR=/tmp/images/ PATH=$PATH:`pwd`/mock/bin/ cd python/web && PYTHON_COMMO
### Mocks for local development
You may edit the files under `mock/bin` to simulate Linux command responses.
TODO: rascsi-web uses protobuf commands to send and receive data from rascsi.
TODO: piscsi-web uses protobuf commands to send and receive data from piscsi.
A separate mocking solution will be needed for this interface.
## (Optional) Pushing to the Pi via git
This is a setup for pushing code changes from your local development environment to the Raspberry Pi without a roundtrip to the remote GitHub repository.
Setup a bare repo on the rascsi
Setup a bare repo on the piscsi
```
$ ssh pi@rascsi
$ ssh pi@piscsi
$ mkdir /home/pi/dev.git && cd /home/pi/dev.git
$ git --bare init
Initialized empty Git repository in /home/pi/dev.git
@@ -35,8 +35,8 @@ Initialized empty Git repository in /home/pi/dev.git
Locally
```
$ cd ~/source/RASCSI
$ git remote add pi ssh://pi@rascsi/home/pi/dev.git
$ cd ~/source/PISCSI
$ git remote add pi ssh://pi@piscsi/home/pi/dev.git
$ git push pi master
```
@@ -54,8 +54,8 @@ $ pybabel --help
```
To create a new localization, it needs to be added to the LANGAUGES constant in
web/settings.py. To localize messages coming from the RaSCSI backend, update also code in
raspberrypi/localizer.cpp in the RaSCSI C++ code.
web/settings.py. To localize messages coming from the PiSCSI backend, update also code in
raspberrypi/localizer.cpp in the PiSCSI C++ code.
Once this is done, it is time to localize the Python code. The below steps are derived from the [Flask-Babel documentation](https://python-babel.github.io/flask-babel/index.html#translating-applications).
@@ -118,7 +118,7 @@ msgstr ""
### Contributing to the project
New or updated localizations are treated just like any other code change. See the [project README](https://github.com/akuker/RASCSI/tree/rdmark-readme-contributions#how-do-i-contribute) for further information.
New or updated localizations are treated just like any other code change. See the [project README](https://github.com/PiSCSI/piscsi/tree/master#how-do-i-contribute) for further information.
### (Optional) See translation stats for a localization
Install the gettext package and use msgfmt to see the translation progress.
+2 -2
View File
@@ -1,9 +1,9 @@
#!/usr/bin/env bash
# Mock responses to rascsi-web
# Mock responses to piscsi-web
case $1 in
"show")
echo "rascsi_bridge 8000.dca632b05dd1 no eth0"
echo "piscsi_bridge 8000.dca632b05dd1 no eth0"
;;
**)
+1 -1
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
# Mock responses to rascsi-web
# Mock responses to piscsi-web
case $1 in
-n)
echo "logs $*"
+1 -1
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
# Mock responses to rascsi-web
# Mock responses to piscsi-web
case $1 in
is-active)
echo "is-active"
+3 -3
View File
@@ -1,15 +1,15 @@
<!doctype html>
<html lang="en">
<head>
<title>RaSCSI-Web is Starting</title>
<title>PiSCSI Web UI is Starting</title>
<meta http-equiv="refresh" content="2">
</head>
</html>
<body>
<center>
<h1>RaSCSI-Web is Starting....</h1>
<h1>PiSCSI Web UI is Starting....</h1>
<h2>This page will automatically refresh.</h2>
<p>First boot and upgrades can take a second while resolving dependencies.</p>
<p>If you're seeing this page for over a minute please check the logs at <tt>sudo journalctl -f</tt></p>
<p>If you're seeing this page for over a minute, please check the logs at <tt>sudo journalctl -f</tt></p>
</center>
</body>
+3 -3
View File
@@ -1,13 +1,13 @@
# /etc/nginx/sites-available/default
# Simple proxy_pass for RaSCSI-web
# Simple proxy_pass for PiSCSI-web
server {
listen [::]:80 default_server;
listen 80 default_server;
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/ssl/certs/rascsi-web.crt;
ssl_certificate_key /etc/ssl/private/rascsi-web.key;
ssl_certificate /etc/ssl/certs/piscsi-web.crt;
ssl_certificate_key /etc/ssl/private/piscsi-web.key;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
@@ -1,12 +1,12 @@
[Unit]
Description=RaSCSI-Web service
Description=PiSCSI-Web service
After=network.target
[Service]
Type=simple
Restart=always
ExecStart=/home/pi/RASCSI/python/web/start.sh
SyslogIdentifier=RASCSIWEB
ExecStart=/home/pi/piscsi/python/web/start.sh
SyslogIdentifier=PISCSIWEB
[Install]
WantedBy=multi-user.target
+1 -1
View File
@@ -357,7 +357,7 @@
"name": "Iomega Floptical 1.44MB",
"file_type": "hdr",
"description": "Iomega Floptical 1.44MB SCSI drive",
"url": "https://github.com/akuker/RASCSI/wiki/Iomega-Floptical"
"url": "https://github.com/PiSCSI/piscsi/wiki/Iomega-Floptical"
},
{
"device_type": "SCRM",
+1 -1
View File
@@ -1,5 +1,5 @@
{
"name": "RaSCSI",
"name": "PiSCSI",
"icons": [
{
"src": "\/pwa\/android-icon-36x36.png",
+1 -1
View File
@@ -1,6 +1,6 @@
"""Module for mapping between return codes and translated strings"""
from rascsi.return_codes import ReturnCodes
from piscsi.return_codes import ReturnCodes
from flask_babel import _, lazy_gettext
+5 -5
View File
@@ -3,7 +3,7 @@ Constant definitions used by other modules
"""
from os import getenv, getcwd
import rascsi.common_settings
import piscsi.common_settings
WEB_DIR = getcwd()
HOME_DIR = "/".join(WEB_DIR.split("/")[0:3])
@@ -12,15 +12,15 @@ FILE_SERVER_DIR = f"{HOME_DIR}/shared_files"
MAX_FILE_SIZE = getenv("MAX_FILE_SIZE", str(1024 * 1024 * 1024 * 4)) # 4gb
# The file name of the default config file that loads when rascsi-web starts
DEFAULT_CONFIG = f"default.{rascsi.common_settings.CONFIG_FILE_SUFFIX}"
# The file name of the default config file that loads when piscsi-web starts
DEFAULT_CONFIG = f"default.{piscsi.common_settings.CONFIG_FILE_SUFFIX}"
# File containing canonical drive properties
DRIVE_PROPERTIES_FILE = WEB_DIR + "/drive_properties.json"
# The user group that is used for webapp authentication
AUTH_GROUP = "rascsi"
AUTH_GROUP = "piscsi"
# The language locales supported by RaSCSI
# The language locales supported by PiSCSI
LANGUAGES = ["en", "de", "sv", "fr", "es"]
# Available themes
+9 -9
View File
@@ -1,21 +1,21 @@
"""
Module for sending and receiving data over a socket connection with the RaSCSI backend
Module for sending and receiving data over a socket connection with the PiSCSI backend
"""
from flask import abort
from flask_babel import _
from rascsi.exceptions import (
from piscsi.exceptions import (
EmptySocketChunkException,
InvalidProtobufResponse,
FailedSocketConnectionException,
)
from rascsi.socket_cmds import SocketCmds
from piscsi.socket_cmds import SocketCmds
class SocketCmdsFlask(SocketCmds):
"""
Class for sending and receiving data over a socket connection with the RaSCSI backend
Class for sending and receiving data over a socket connection with the PiSCSI backend
"""
# pylint: disable=useless-super-delegation
@@ -25,7 +25,7 @@ class SocketCmdsFlask(SocketCmds):
def send_pb_command(self, payload):
"""
Takes a (str) containing a serialized protobuf as argument.
Establishes a socket connection with RaSCSI.
Establishes a socket connection with PiSCSI.
"""
try:
return super().send_pb_command(payload)
@@ -34,8 +34,8 @@ class SocketCmdsFlask(SocketCmds):
abort(
404,
_(
"The RaSCSI Web Interface failed to connect to RaSCSI at "
"%(host)s:%(port)s with error: %(error_msg)s. The RaSCSI "
"The PiSCSI Web Interface failed to connect to PiSCSI at "
"%(host)s:%(port)s with error: %(error_msg)s. The PiSCSI "
"process is not running or may have crashed.",
host=self.host,
port=self.port,
@@ -52,7 +52,7 @@ class SocketCmdsFlask(SocketCmds):
abort(
503,
_(
"The RaSCSI Web Interface lost connection to RaSCSI. "
"The PiSCSI Web Interface lost connection to PiSCSI. "
"Please go back and try again. "
"If the issue persists, please report a bug."
),
@@ -62,7 +62,7 @@ class SocketCmdsFlask(SocketCmds):
abort(
500,
_(
"The RaSCSI Web Interface did not get a valid response from RaSCSI. "
"The PiSCSI Web Interface did not get a valid response from PiSCSI. "
"Please go back and try again. "
"If the issue persists, please report a bug."
),
@@ -525,7 +525,7 @@ section > details ul {
/*
------------------------------------------------------------------------------
Index > Section: Current RaSCSI configuration
Index > Section: Current PiSCSI configuration
------------------------------------------------------------------------------
*/
body:not(.logged-in) section:not(#current-config, #manual) {
+4 -4
View File
@@ -1,7 +1,7 @@
<!doctype html>
<html lang="{{ env["locale"] }}">
<head>
<title>{{ _("RaSCSI Reloaded Control Page") }} [{{ env["host"] }}]</title>
<title>{{ _("PiSCSI Control Page") }} [{{ env["host"] }}]</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<link rel="apple-touch-icon" sizes="57x57" href="/pwa/apple-icon-57x57.png">
@@ -66,13 +66,13 @@
{% endif %}
{% else %}
<div align="center" class="login-status authentication-disabled">
{{ _("Web Interface Authentication Disabled") }} - {{ _("See <a href=\"%(url)s\" target=\"_blank\">Wiki</a> for more information", url="https://github.com/akuker/RASCSI/wiki/Web-Interface#enable-authentication") }}
{{ _("Web Interface Authentication Disabled") }} - {{ _("See <a href=\"%(url)s\" target=\"_blank\">Wiki</a> for more information", url="https://github.com/PiSCSI/piscsi/wiki/Web-Interface#enable-authentication") }}
</div>
{% endif %}
<div align="center" class="title">
<a href="/">
<h1>{{ _("RaSCSI Reloaded") }}</h1>
<h1>{{ _("PiSCSI") }}</h1>
</a>
</div>
@@ -125,7 +125,7 @@
{% endif %}
</div>
<div>
{{ _("RaSCSI Reloaded version:") }} <b>{{ env["version"] }} <a href="https://github.com/akuker/RASCSI/commit/{{ env["running_env"]["git"] }}" target="_blank">{{ env["running_env"]["git"][:7] }}</a></b>
{{ _("PiSCSI version:") }} <b>{{ env["version"] }} <a href="https://github.com/PiSCSI/piscsi/commit/{{ env["running_env"]["git"] }}" target="_blank">{{ env["running_env"]["git"][:7] }}</a></b>
</div>
<div>
{{ _("Hardware and OS:") }} {{ env["running_env"]["env"] }}
+1 -1
View File
@@ -2,7 +2,7 @@
{% block content %}
<h2>{{ _("Disclaimer") }}</h2>
<p>{{ _("These device profiles are provided as-is with no guarantee to work equally to the actual physical device they are named after. You may need to provide appropirate device drivers and/or configuration parameters for them to function properly. If you would like to see data modified, or have additional devices to add to the list, please raise an issue ticket at <a href=\"%(url)s\">GitHub</a>.", url="https://github.com/akuker/RASCSI/issues") }}</p>
<p>{{ _("These device profiles are provided as-is with no guarantee to work equally to the actual physical device they are named after. You may need to provide appropirate device drivers and/or configuration parameters for them to function properly. If you would like to see data modified, or have additional devices to add to the list, please raise an issue ticket at <a href=\"%(url)s\">GitHub</a>.", url="https://github.com/PiSCSI/piscsi/issues") }}</p>
<h2>{{ _("Hard Disk Drives") }}</h2>
<table cellpadding="3" border="black" summary="List of hard drives">
+19 -19
View File
@@ -4,11 +4,11 @@
<section id="current-config">
<details>
<summary class="heading">
{{ _("Current RaSCSI Configuration") }}
{{ _("Current PiSCSI Configuration") }}
</summary>
<ul>
<li>{{ _("Save and load device configurations, stored as json files in <tt>%(config_dir)s</tt>", config_dir=CFG_DIR) }}</li>
<li>{{ _("To have a particular device configuration load when RaSCSI starts, save it as <em>default</em>.") }}</li>
<li>{{ _("To have a particular device configuration load when PiSCSI starts, save it as <em>default</em>.") }}</li>
</ul>
</details>
@@ -112,11 +112,11 @@
{% endif %}
</td>
<td class="product" align="center">
{% if device.vendor != "RaSCSI" %}
{% if device.vendor != "PiSCSI" %}
{{ device.vendor }}
{% endif %}
{{ device.product }}
{% if device.vendor != "RaSCSI" %}
{% if device.vendor != "PiSCSI" %}
{{ device.revision }}
{% endif %}
</td>
@@ -180,7 +180,7 @@
{{ _("Image File Management") }}
</summary>
<ul>
<li>{{ _("Manage image files in the active RaSCSI image directory: <tt>%(directory)s</tt> with a scan depth of %(scan_depth)s.", directory=env["image_dir"], scan_depth=scan_depth) }}</li>
<li>{{ _("Manage image files in the active PiSCSI image directory: <tt>%(directory)s</tt> with a scan depth of %(scan_depth)s.", directory=env["image_dir"], scan_depth=scan_depth) }}</li>
<li>{{ _("Select a valid SCSI ID and <a href=\"%(url)s\" target=\"_blank\">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>
@@ -361,13 +361,13 @@
<ul>
</li>
{% if bridge_configured %}
<li>{{ _("The <tt>rascsi_bridge</tt> network bridge is active and ready to be used by an emulated network adapter!") }}</li>
<li>{{ _("The <tt>piscsi_bridge</tt> network bridge is active and ready to be used by an emulated network adapter!") }}</li>
{% else %}
<li>{{ _("Please configure the <tt>rascsi_bridge</tt> network bridge before attaching an emulated network adapter!") }}</li>
<li>{{ _("Please configure the <tt>piscsi_bridge</tt> network bridge before attaching an emulated network adapter!") }}</li>
{% endif %}
<li>{{ _("To browse the modern web, install a vintage web proxy such as <a href=\"%(url)s\" target=\"_blank\">Macproxy</a>.", url="https://github.com/akuker/RASCSI/wiki/Vintage-Web-Proxy#macproxy") }}</li>
<li>{{ _("To browse the modern web, install a vintage web proxy such as <a href=\"%(url)s\" target=\"_blank\">Macproxy</a>.", url="https://github.com/PiSCSI/piscsi/wiki/Vintage-Web-Proxy#macproxy") }}</li>
</li>
<li>{{ _("Read more about <a href=\"%(url)s\" target=\"_blank\">supported device types</a> on the wiki.", url="https://github.com/akuker/RASCSI/wiki/Supported-Device-Types") }}
<li>{{ _("Read more about <a href=\"%(url)s\" target=\"_blank\">supported device types</a> on the wiki.", url="https://github.com/PiSCSI/piscsi/wiki/Supported-Device-Types") }}
</li>
</ul>
</details>
@@ -587,7 +587,7 @@
{{ _("Create Empty Disk Image File") }}
</summary>
<ul>
<li>{{ _("Please refer to <a href=\"%(url)s\" target=\"_blank\">wiki documentation</a> to learn more about the supported image file types.", url="https://github.com/akuker/RASCSI/wiki/Supported-Device-Types#image-types") }}</li>
<li>{{ _("Please refer to <a href=\"%(url)s\" target=\"_blank\">wiki documentation</a> to learn more about the supported image file types.", url="https://github.com/PiSCSI/piscsi/wiki/Supported-Device-Types#image-types") }}</li>
<li>{{ _("It is not recommended to use the Lido hard disk driver with the Macintosh Plus.") }}</li>
</ul>
</details>
@@ -661,17 +661,17 @@
<option value="">
{{ _("All logs") }}
</option>
<option value="rascsi">
rascsi
<option value="piscsi">
piscsi
</option>
<option value="rascsi-web">
rascsi-web
<option value="piscsi-web">
piscsi-web
</option>
<option value="rascsi-oled">
rascsi-oled
<option value="piscsi-oled">
piscsi-oled
</option>
<option value="rascsi-ctrlboard">
rascsi-ctrlboard
<option value="piscsi-ctrlboard">
piscsi-ctrlboard
</option>
</select>
<input type="submit" value="{{ _("Show Logs") }}">
@@ -759,7 +759,7 @@
<hr/>
<section id="manual">
<a href="/sys/manpage?app=rascsi"><p>{{ _("Read the RaSCSI Manual") }}</p></a>
<a href="/sys/manpage?app=piscsi"><p>{{ _("Read the PiSCSI Manual") }}</p></a>
</section>
{% endblock content %}
@@ -1,12 +1,12 @@
# German translations for RaSCSI.
# German translations for PiSCSI.
# Copyright (C) 2021 akuker
# This file is distributed under the same license as the RaSCSI project.
# This file is distributed under the same license as the PiSCSI project.
# Christian Victor <christian.victor@gmail.com>, 2021.
#
msgid ""
msgstr ""
"Project-Id-Version: RaSCSI 68kmla Edition\n"
"Report-Msgid-Bugs-To: https://github.com/akuker/RASCSI/issues\n"
"Project-Id-Version: PiSCSI 68kmla Edition\n"
"Report-Msgid-Bugs-To: https://github.com/akuker/PISCSI/issues\n"
"POT-Creation-Date: 2022-05-06 18:47+0200\n"
"PO-Revision-Date: 2022-05-06 20:22+0200\n"
"Last-Translator: Christian Victor <christian.victor@gmail.com>\n"
@@ -104,36 +104,36 @@ msgstr ""
#: src/socket_cmds_flask.py:34
#, python-format
msgid ""
"The RaSCSI Web Interface failed to connect to RaSCSI at %(host)s:%(port)s with "
"error: %(error_msg)s. The RaSCSI process is not running or may have crashed."
"The PiSCSI Web Interface failed to connect to PiSCSI at %(host)s:%(port)s with "
"error: %(error_msg)s. The PiSCSI process is not running or may have crashed."
msgstr ""
"Das RaSCSI-Webinterface konnte sich mit Fehler %(error_msg)s nicht mit RaSCSI "
"an %(host)s:%(port)s verbinden. Der RaSCSI-Prozess läuft nicht oder könnte "
"Das PiSCSI-Webinterface konnte sich mit Fehler %(error_msg)s nicht mit PiSCSI "
"an %(host)s:%(port)s verbinden. Der PiSCSI-Prozess läuft nicht oder könnte "
"abgestürzt sein."
#: src/socket_cmds_flask.py:45
msgid ""
"The RaSCSI Web Interface lost connection to RaSCSI. Please go back and try "
"The PiSCSI Web Interface lost connection to PiSCSI. Please go back and try "
"again. If the issue persists, please report a bug."
msgstr ""
"Das RaSCSI-Webinterface hat die Verbindung verloren. Bitte gehe zurück und "
"Das PiSCSI-Webinterface hat die Verbindung verloren. Bitte gehe zurück und "
"versuche es nochmals. Wenn das Problem bestehen bleibt, melde bitte einen Bug."
#: src/socket_cmds_flask.py:54
msgid ""
"The RaSCSI Web Interface did not get a valid response from RaSCSI. Please go "
"The PiSCSI Web Interface did not get a valid response from PiSCSI. Please go "
"back and try again. If the issue persists, please report a bug."
msgstr ""
"Das RaSCSI-Webinterface hat keine gültige Antwort von RaSCSI bekommen. Bitte "
"Das PiSCSI-Webinterface hat keine gültige Antwort von PiSCSI bekommen. Bitte "
"gehe zurück und versuche es nochmals. Wenn das Problem bestehen bleibt, melde "
"bitte einen Bug."
#: src/web.py:105
msgid ""
"RaSCSI is password protected. Start the Web Interface with the --password "
"PiSCSI is password protected. Start the Web Interface with the --password "
"parameter."
msgstr ""
"RaSCSI ist passwortgeschützt. Starte das Webinterface mit dem —password "
"PiSCSI ist passwortgeschützt. Starte das Webinterface mit dem —password "
"Parameter."
#: src/web.py:209
@@ -184,11 +184,11 @@ msgstr ""
#, python-format
msgid ""
"The image file size %(file_size)s bytes is not a multiple of %(block_size)s. "
"RaSCSI will ignore the trailing data. The image may be corrupted, so proceed "
"PiSCSI will ignore the trailing data. The image may be corrupted, so proceed "
"with caution."
msgstr ""
"Die Imagedateigröße %(file_size)s Bytes ist kein Vielfaches von %(block_size)s. "
"RaSCSI wird die hinten überstehenden Daten ignorieren. Das Image könnte "
"PiSCSI wird die hinten überstehenden Daten ignorieren. Das Image könnte "
"beschädigt werden. Verfahre bitte mit Vorsicht."
#: src/web.py:576
@@ -434,8 +434,8 @@ msgid "File upload successful!"
msgstr "Dateiupload erfolgreich!"
#: src/templates/base.html:4 src/templates/base.html:67
msgid "RaSCSI Control Page"
msgstr "RaSCSI Kontrollseite"
msgid "PiSCSI Control Page"
msgstr "PiSCSI Kontrollseite"
#: src/templates/base.html:29
msgid ""
@@ -484,8 +484,8 @@ msgid "See <a href=\"%(url)s\" target=\"_blank\">Wiki</a> for more information"
msgstr "Siehe <a href=„%(url)s“ target=„_blank“>Wiki</a> für mehr Informationen"
#: src/templates/base.html:92
msgid "RaSCSI version: "
msgstr "RaSCSI-Version: "
msgid "PiSCSI version: "
msgstr "PiSCSI-Version: "
#: src/templates/base.html:93
msgid "Pi environment: "
@@ -585,8 +585,8 @@ msgid "%(disk_space)s MB disk space remaining on the Pi"
msgstr "%(disk_space)s MB Festplattenplatz auf dem Pi übrig"
#: src/templates/index.html:6
msgid "Current RaSCSI Configuration"
msgstr "Aktuelle RaSCSI-Konfiguration"
msgid "Current PiSCSI Configuration"
msgstr "Aktuelle PiSCSI-Konfiguration"
#: src/templates/index.html:9
msgid "Displays the currently attached devices for each available SCSI ID."
@@ -603,10 +603,10 @@ msgstr ""
#: src/templates/index.html:11
msgid ""
"To have a particular device configuration load when RaSCSI starts, save it as "
"To have a particular device configuration load when PiSCSI starts, save it as "
"<em>default</em>."
msgstr ""
"Um eine bestimmte Gerätekonfiguration zu laden wenn RaSCSI startet, speichere "
"Um eine bestimmte Gerätekonfiguration zu laden wenn PiSCSI startet, speichere "
"sie als <em>default</em>."
#: src/templates/index.html:25
@@ -718,10 +718,10 @@ msgstr "Image-Dateiverwaltung"
#: src/templates/index.html:155
#, python-format
msgid ""
"Manage image files in the active RaSCSI image directory: <tt>%(directory)s</tt> "
"Manage image files in the active PiSCSI image directory: <tt>%(directory)s</tt> "
"with a scan depth of %(scan_depth)s."
msgstr ""
"Verwalte Imagedateien im aktiven RaSCSI Imageverzeichnis <tt>%(directory)s</tt> "
"Verwalte Imagedateien im aktiven PiSCSI Imageverzeichnis <tt>%(directory)s</tt> "
"mit einer Scantiefe von %(scan_depth)s."
#: src/templates/index.html:156
@@ -735,10 +735,10 @@ msgstr ""
#: src/templates/index.html:158
msgid ""
"If RaSCSI was unable to detect the media type associated with the image, you "
"If PiSCSI was unable to detect the media type associated with the image, you "
"get to choose the type from the dropdown."
msgstr ""
"Wenn RaSCSI den zugehörigen Medientyp des Images nicht erkennen konnte, kannst "
"Wenn PiSCSI den zugehörigen Medientyp des Images nicht erkennen konnte, kannst "
"Du ihn im Dropdown auswählen."
#: src/templates/index.html:166
@@ -828,10 +828,10 @@ msgstr ""
#: src/templates/index.html:310
msgid ""
"The <tt>rascsi_bridge</tt> network bridge is active and ready to be used by an "
"The <tt>piscsi_bridge</tt> network bridge is active and ready to be used by an "
"emulated network adapter!"
msgstr ""
"Die <tt>rascsi_bridge</tt>-Netzwerk-Bridge ist aktiv und bereit vom emulierten "
"Die <tt>piscsi_bridge</tt>-Netzwerk-Bridge ist aktiv und bereit vom emulierten "
"Netzwerkadapter verwendet zu werden!"
#: src/templates/index.html:314
@@ -1090,11 +1090,11 @@ msgstr ""
#: src/templates/index.html:540
msgid ""
"APPLE GENUINE (.hda) and NEC GENUINE (.hdn) image types will make RaSCSI behave "
"APPLE GENUINE (.hda) and NEC GENUINE (.hdn) image types will make PiSCSI behave "
"as a particular drive type that are recognized by Mac and PC98 systems, "
"respectively."
msgstr ""
"APPLE GENUINE (.hda) und NEC GENUINE (.hdn) Imagetypen lassen RaSCSI sich wie "
"APPLE GENUINE (.hda) und NEC GENUINE (.hdn) Imagetypen lassen PiSCSI sich wie "
"ein bestimmter Laufwerkstyp, der von jeweils Mac und PC98-Systemen erkannt "
"wird, verhalten."
@@ -1151,10 +1151,10 @@ msgstr ""
#: src/templates/index.html:584
msgid ""
"This will make RaSCSI use certain vendor strings and block sizes that may "
"This will make PiSCSI use certain vendor strings and block sizes that may "
"improve compatibility with certain systems."
msgstr ""
"Dies bewirkt daß RaSCSI bestimmte Vendor-Strings und Blockgrößen verwendet die "
"Dies bewirkt daß PiSCSI bestimmte Vendor-Strings und Blockgrößen verwendet die "
"die Kompatibilität mit bestimmten Systemen verbessern könnten."
#: src/templates/index.html:587
@@ -1191,8 +1191,8 @@ msgid "Server Log Level"
msgstr "Server Log Level"
#: src/templates/index.html:636
msgid "Change the log level of the RaSCSI backend process."
msgstr "Ändere den Log-Level des RaSCSI Hintergrundprozesses."
msgid "Change the log level of the PiSCSI backend process."
msgstr "Ändere den Log-Level des PiSCSI Hintergrundprozesses."
#: src/templates/index.html:637
msgid "The current dropdown selection indicates the active log level."
@@ -1227,8 +1227,8 @@ msgid "Raspberry Pi Operations"
msgstr "Raspberry Pi Operationen"
#: src/templates/index.html:693
msgid "Reboot or shut down the Raspberry Pi that RaSCSI is running on."
msgstr "Den Raspberry Pi auf dem RaSCSI läuft neustarten oder herunterfahren."
msgid "Reboot or shut down the Raspberry Pi that PiSCSI is running on."
msgstr "Den Raspberry Pi auf dem PiSCSI läuft neustarten oder herunterfahren."
#: src/templates/index.html:694
msgid ""
@@ -1,13 +1,13 @@
# Spanish translations for RaSCSI.
# Spanish translations for PiSCSI.
# Copyright (C) 2022 akuker
# This file is distributed under the same license as the RaSCSI 68kmla
# This file is distributed under the same license as the PiSCSI 68kmla
# project.
# Nemanja Lukic <nemluk@pm.me>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: RaSCSI 68kmla Edition\n"
"Report-Msgid-Bugs-To: https://github.com/akuker/RASCSI/issues\n"
"Project-Id-Version: PiSCSI 68kmla Edition\n"
"Report-Msgid-Bugs-To: https://github.com/akuker/PISCSI/issues\n"
"POT-Creation-Date: 2022-10-09 17:19+0200\n"
"PO-Revision-Date: 2022-10-10 08:38+0200\n"
"Last-Translator: n4al <n4al@pm.me>\n"
@@ -113,35 +113,35 @@ msgstr "No se puede extraer el archivo: %(error)s"
#: src/socket_cmds_flask.py:34
#, python-format
msgid ""
"The RaSCSI Web Interface failed to connect to RaSCSI at %(host)s:%(port)s with "
"error: %(error_msg)s. The RaSCSI process is not running or may have crashed."
"The PiSCSI Web Interface failed to connect to PiSCSI at %(host)s:%(port)s with "
"error: %(error_msg)s. The PiSCSI process is not running or may have crashed."
msgstr ""
"La interfaz web de RaSCSI no pudo conectarse a RaSCSI en %(host)s:%(port)s con "
"el error: %(error_msg)s. El proceso RaSCSI no se está ejecutando o puede haber "
"La interfaz web de PiSCSI no pudo conectarse a PiSCSI en %(host)s:%(port)s con "
"el error: %(error_msg)s. El proceso PiSCSI no se está ejecutando o puede haber "
"fallado."
#: src/socket_cmds_flask.py:45
msgid ""
"The RaSCSI Web Interface lost connection to RaSCSI. Please go back and try "
"The PiSCSI Web Interface lost connection to PiSCSI. Please go back and try "
"again. If the issue persists, please report a bug."
msgstr ""
"La interfaz web de RaSCSI ha perdido la conexión con RaSCSI. Por favor, vuelva "
"La interfaz web de PiSCSI ha perdido la conexión con PiSCSI. Por favor, vuelva "
"a intentarlo. Si el problema persiste, informe de un error."
#: src/socket_cmds_flask.py:54
msgid ""
"The RaSCSI Web Interface did not get a valid response from RaSCSI. Please go "
"The PiSCSI Web Interface did not get a valid response from PiSCSI. Please go "
"back and try again. If the issue persists, please report a bug."
msgstr ""
"La interfaz web de RaSCSI no ha obtenido una respuesta válida de RaSCSI. Por "
"La interfaz web de PiSCSI no ha obtenido una respuesta válida de PiSCSI. Por "
"favor, vuelva a intentarlo. Si el problema persiste, informe de un error."
#: src/web.py:182
msgid ""
"RaSCSI is password protected. Start the Web Interface with the --password "
"PiSCSI is password protected. Start the Web Interface with the --password "
"parameter."
msgstr ""
"RaSCSI está protegido por contraseña. Inicie la Interfaz Web con el parámetro —"
"PiSCSI está protegido por contraseña. Inicie la Interfaz Web con el parámetro —"
"password."
#: src/web.py:318
@@ -162,8 +162,8 @@ msgstr "Se ha producido un error al obtener la información del disco: %(error)s
#: src/web.py:493
#, python-format
msgid "%(app)s is not a recognized RaSCSI app"
msgstr "%(app)s no es una aplicación RaSCSI reconocida"
msgid "%(app)s is not a recognized PiSCSI app"
msgstr "%(app)s no es una aplicación PiSCSI reconocida"
#: src/web.py:527
#, python-format
@@ -211,11 +211,11 @@ msgstr ""
#, python-format
msgid ""
"The image file size %(file_size)s bytes is not a multiple of %(block_size)s. "
"RaSCSI will ignore the trailing data. The image may be corrupted, so proceed "
"PiSCSI will ignore the trailing data. The image may be corrupted, so proceed "
"with caution."
msgstr ""
"El tamaño del archivo de imagen %(file_size)s bytes no es un múltiplo de "
"%(block_size)s. RaSCSI ignorará los datos finales. La imagen puede estar "
"%(block_size)s. PiSCSI ignorará los datos finales. La imagen puede estar "
"corrupta, así que proceda con precaución."
#: src/web.py:698
@@ -428,8 +428,8 @@ msgid "File upload successful!"
msgstr "¡La carga de archivos se ha realizado con éxito!"
#: src/templates/base.html:4 src/templates/base.html:68
msgid "RaSCSI Reloaded Control Page"
msgstr "Página de control RaSCSI Reloaded"
msgid "PiSCSI Control Page"
msgstr "Página de control PiSCSI"
#: src/templates/base.html:29
msgid ""
@@ -498,8 +498,8 @@ msgid "Macproxy is running at %(ip_addr)s (default port 5000)"
msgstr "Macproxy se está ejecutando en %(ip_addr)s (puerto por defecto: 5000)"
#: src/templates/base.html:104
msgid "RaSCSI Reloaded version: "
msgstr "Versión de RaSCSI Reloaded: "
msgid "PiSCSI version: "
msgstr "Versión de PiSCSI: "
#: src/templates/base.html:107
msgid "Pi environment: "
@@ -643,8 +643,8 @@ msgid "%(disk_space)s MiB disk space remaining on the Pi"
msgstr "%(disk_space)s MiB de espacio en disco restante en la Pi"
#: src/templates/index.html:6
msgid "Current RaSCSI Configuration"
msgstr "Configuración actual de RaSCSI"
msgid "Current PiSCSI Configuration"
msgstr "Configuración actual de PiSCSI"
#: src/templates/index.html:9
#, python-format
@@ -657,11 +657,11 @@ msgstr ""
#: src/templates/index.html:10
msgid ""
"To have a particular device configuration load when RaSCSI starts, save it as "
"To have a particular device configuration load when PiSCSI starts, save it as "
"<em>default</em>."
msgstr ""
"Para que se cargue una configuración de dispositivo concreta cuando se inicie "
"RaSCSI, guárdela como <em>default</em>."
"PiSCSI, guárdela como <em>default</em>."
#: src/templates/index.html:16 src/templates/index.html:37
#: src/templates/index.html:71
@@ -762,11 +762,11 @@ msgstr "Gestión de archivos de imagen"
#: src/templates/index.html:174
#, python-format
msgid ""
"Manage image files in the active RaSCSI image directory: <tt>%(directory)s</tt> "
"Manage image files in the active PiSCSI image directory: <tt>%(directory)s</tt> "
"with a scan depth of %(scan_depth)s."
msgstr ""
"Gestionar los archivos de imagen en el directorio activo de las imágenes de "
"RaSCSI: <tt>%(directory)s</tt> con la profundidad de escaneo de %(scan_depth)s."
"PiSCSI: <tt>%(directory)s</tt> con la profundidad de escaneo de %(scan_depth)s."
#: src/templates/index.html:175
#, python-format
@@ -857,18 +857,18 @@ msgstr "Conectar dispositivo periférico"
#: src/templates/index.html:345
msgid ""
"The <tt>rascsi_bridge</tt> network bridge is active and ready to be used by an "
"The <tt>piscsi_bridge</tt> network bridge is active and ready to be used by an "
"emulated network adapter!"
msgstr ""
"¡El puente de red <tt>rascsi_bridge</tt> está activo y listo para ser utilizado "
"¡El puente de red <tt>piscsi_bridge</tt> está activo y listo para ser utilizado "
"por un adaptador de red emulado!"
#: src/templates/index.html:347
msgid ""
"Please configure the <tt>rascsi_bridge</tt> network bridge before attaching an "
"Please configure the <tt>piscsi_bridge</tt> network bridge before attaching an "
"emulated network adapter!"
msgstr ""
"Configure el puente de red <tt>rascsi_bridge</tt> antes de conectar un "
"Configure el puente de red <tt>piscsi_bridge</tt> antes de conectar un "
"adaptador de red emulado!"
#: src/templates/index.html:349
@@ -1171,8 +1171,8 @@ msgid "Shut Down Raspberry Pi"
msgstr "Apagar la Raspberry Pi"
#: src/templates/index.html:689
msgid "Read the RaSCSI Manual"
msgstr "Lea el manual de RaSCSI"
msgid "Read the PiSCSI Manual"
msgstr "Lea el manual de PiSCSI"
#: src/templates/logs.html:4
#, python-format
@@ -1,12 +1,12 @@
# French translations for RaSCSI.
# French translations for PiSCSI.
# Copyright (C) 2021 akuker
# This file is distributed under the same license as the RaSCSI project.
# This file is distributed under the same license as the PiSCSI project.
# Kamel Makhloufi <melkalehun@gmail.com>, 2021.
#
msgid ""
msgstr ""
"Project-Id-Version: RaSCSI 68kmla Edition\n"
"Report-Msgid-Bugs-To: https://github.com/akuker/RASCSI/issues\n"
"Project-Id-Version: PiSCSI 68kmla Edition\n"
"Report-Msgid-Bugs-To: https://github.com/akuker/PISCSI/issues\n"
"POT-Creation-Date: 2022-05-07 17:26+0200\n"
"PO-Revision-Date: 2022-05-07 17:28+0200\n"
"Last-Translator: Kamel Makhloufi <melkalehun@gmail.com>\n"
@@ -108,35 +108,35 @@ msgstr "code_retour"
#: src/socket_cmds_flask.py:34
#, python-format
msgid ""
"The RaSCSI Web Interface failed to connect to RaSCSI at %(host)s:%(port)s with "
"error: %(error_msg)s. The RaSCSI process is not running or may have crashed."
"The PiSCSI Web Interface failed to connect to PiSCSI at %(host)s:%(port)s with "
"error: %(error_msg)s. The PiSCSI process is not running or may have crashed."
msgstr ""
"Linterface web RaSCSI nas pas pu se connecter à RaSCSI à ladresse %(host)s:"
"%(port)s avec lerreur : %(error_msg)s. Le processus RaSCSI nest peut-être pas "
"Linterface web PiSCSI nas pas pu se connecter à PiSCSI à ladresse %(host)s:"
"%(port)s avec lerreur : %(error_msg)s. Le processus PiSCSI nest peut-être pas "
"en cours dexécution ou a planté."
#: src/socket_cmds_flask.py:45
msgid ""
"The RaSCSI Web Interface lost connection to RaSCSI. Please go back and try "
"The PiSCSI Web Interface lost connection to PiSCSI. Please go back and try "
"again. If the issue persists, please report a bug."
msgstr ""
"Linterface web RaSCSI à perdu la connexion à RaSCSI. Merci de réessayer. Si le "
"Linterface web PiSCSI à perdu la connexion à PiSCSI. Merci de réessayer. Si le "
"problème persiste, merci de faire remonter un bug."
#: src/socket_cmds_flask.py:54
msgid ""
"The RaSCSI Web Interface did not get a valid response from RaSCSI. Please go "
"The PiSCSI Web Interface did not get a valid response from PiSCSI. Please go "
"back and try again. If the issue persists, please report a bug."
msgstr ""
"Linterface web RaSCSI à reçu une réponse invalide de RaSCSI. Merci de "
"Linterface web PiSCSI à reçu une réponse invalide de PiSCSI. Merci de "
"réessayer. Si le problème persiste, merci de faire remonter un bug."
#: src/web.py:105
msgid ""
"RaSCSI is password protected. Start the Web Interface with the --password "
"PiSCSI is password protected. Start the Web Interface with the --password "
"parameter."
msgstr ""
"RaSCSI est protégé par un mot de passe. Merci de démarrer linterface web avec "
"PiSCSI est protégé par un mot de passe. Merci de démarrer linterface web avec "
"le paramètre --password."
#: src/web.py:209
@@ -189,11 +189,11 @@ msgstr ""
#, python-format
msgid ""
"The image file size %(file_size)s bytes is not a multiple of %(block_size)s. "
"RaSCSI will ignore the trailing data. The image may be corrupted, so proceed "
"PiSCSI will ignore the trailing data. The image may be corrupted, so proceed "
"with caution."
msgstr ""
"La taille du fichier image %(file_size)s octets nest pas un multiple de "
"%(block_size)s. RaSCSI va ignorer les données de fin. Limage peut être "
"%(block_size)s. PiSCSI va ignorer les données de fin. Limage peut être "
"corrompue, merci de continuer avec précaution."
#: src/web.py:576
@@ -439,8 +439,8 @@ msgid "File upload successful!"
msgstr "Transfert de fichier réussi !"
#: src/templates/base.html:4 src/templates/base.html:67
msgid "RaSCSI Control Page"
msgstr "Page de contrôle de RaSCSI"
msgid "PiSCSI Control Page"
msgstr "Page de contrôle de PiSCSI"
#: src/templates/base.html:29
msgid ""
@@ -490,8 +490,8 @@ msgstr ""
"Voir le <a href=\"%(url)s\" target=\"_blank\">Wiki</a> pour plus dinformations"
#: src/templates/base.html:92
msgid "RaSCSI version: "
msgstr "RaSCSI version : "
msgid "PiSCSI version: "
msgstr "PiSCSI version : "
#: src/templates/base.html:93
msgid "Pi environment: "
@@ -591,8 +591,8 @@ msgid "%(disk_space)s MB disk space remaining on the Pi"
msgstr "%(disk_space)s MO despace disque restant sur le Pi"
#: src/templates/index.html:6
msgid "Current RaSCSI Configuration"
msgstr "Configuration RaSCSI actuelle"
msgid "Current PiSCSI Configuration"
msgstr "Configuration PiSCSI actuelle"
#: src/templates/index.html:9
msgid "Displays the currently attached devices for each available SCSI ID."
@@ -609,11 +609,11 @@ msgstr ""
#: src/templates/index.html:11
msgid ""
"To have a particular device configuration load when RaSCSI starts, save it as "
"To have a particular device configuration load when PiSCSI starts, save it as "
"<em>default</em>."
msgstr ""
"Pour avoir une configuration de périphérique en particulier chargée au "
"démarrage de RaSCSI, sauvegardez la en tant que <em>default</em>."
"démarrage de PiSCSI, sauvegardez la en tant que <em>default</em>."
#: src/templates/index.html:25
msgid "No saved configurations"
@@ -726,10 +726,10 @@ msgstr "Gestion des fichiers d'image"
#: src/templates/index.html:155
#, python-format
msgid ""
"Manage image files in the active RaSCSI image directory: <tt>%(directory)s</tt> "
"Manage image files in the active PiSCSI image directory: <tt>%(directory)s</tt> "
"with a scan depth of %(scan_depth)s."
msgstr ""
"Gérer les fichiers image dans le dossier image RaSCSI actif : <tt>"
"Gérer les fichiers image dans le dossier image PiSCSI actif : <tt>"
"%(directory)s</tt> avec un profondeur de scan de %(scan_depth)s."
#: src/templates/index.html:156
@@ -743,10 +743,10 @@ msgstr ""
#: src/templates/index.html:158
msgid ""
"If RaSCSI was unable to detect the media type associated with the image, you "
"If PiSCSI was unable to detect the media type associated with the image, you "
"get to choose the type from the dropdown."
msgstr ""
"Si RaSCSI n'as pas pu détecter le type de média associé à l'image, vous pouvez "
"Si PiSCSI n'as pas pu détecter le type de média associé à l'image, vous pouvez "
"choisir le type depuis le menu déroulant."
#: src/templates/index.html:166
@@ -837,10 +837,10 @@ msgstr ""
#: src/templates/index.html:310
msgid ""
"The <tt>rascsi_bridge</tt> network bridge is active and ready to be used by an "
"The <tt>piscsi_bridge</tt> network bridge is active and ready to be used by an "
"emulated network adapter!"
msgstr ""
"L'interface <tt>rascsi_bridge</tt> est active et prête à être utilisée par un "
"L'interface <tt>piscsi_bridge</tt> est active et prête à être utilisée par un "
"adaptateur réseau émulé!"
#: src/templates/index.html:314
@@ -1103,12 +1103,12 @@ msgstr "Le type d'image générique est recommandé pour la plupart des platefor
#: src/templates/index.html:540
msgid ""
"APPLE GENUINE (.hda) and NEC GENUINE (.hdn) image types will make RaSCSI behave "
"APPLE GENUINE (.hda) and NEC GENUINE (.hdn) image types will make PiSCSI behave "
"as a particular drive type that are recognized by Mac and PC98 systems, "
"respectively."
msgstr ""
"Les types d'image APPLE AUTHENTIQUE (.hda) et NEC AUTHENTIQUE (.hdn) feront que "
"RaSCSI se comportera comme un type de disque particulier qui sont reconnus par "
"PiSCSI se comportera comme un type de disque particulier qui sont reconnus par "
"les systèmes Mac et PC98 respectivement."
#: src/templates/index.html:541
@@ -1164,10 +1164,10 @@ msgstr ""
#: src/templates/index.html:584
msgid ""
"This will make RaSCSI use certain vendor strings and block sizes that may "
"This will make PiSCSI use certain vendor strings and block sizes that may "
"improve compatibility with certain systems."
msgstr ""
"RaSCSI utilisera certains noms de vendeurs et tailles de blocs afin d'améliorer "
"PiSCSI utilisera certains noms de vendeurs et tailles de blocs afin d'améliorer "
"la compatibilité avec certains systèmes."
#: src/templates/index.html:587
@@ -1205,8 +1205,8 @@ msgid "Server Log Level"
msgstr "Niveau de journalisation du serveur"
#: src/templates/index.html:636
msgid "Change the log level of the RaSCSI backend process."
msgstr "Changer le niveau de journalisation des processus principaux RaSCSI."
msgid "Change the log level of the PiSCSI backend process."
msgstr "Changer le niveau de journalisation des processus principaux PiSCSI."
#: src/templates/index.html:637
msgid "The current dropdown selection indicates the active log level."
@@ -1241,8 +1241,8 @@ msgid "Raspberry Pi Operations"
msgstr "Opérations Raspberry Pi"
#: src/templates/index.html:693
msgid "Reboot or shut down the Raspberry Pi that RaSCSI is running on."
msgstr "Redémarrer ou éteindre le Raspberry Pi sur lequel RaSCSI s'exécute."
msgid "Reboot or shut down the Raspberry Pi that PiSCSI is running on."
msgstr "Redémarrer ou éteindre le Raspberry Pi sur lequel PiSCSI s'exécute."
#: src/templates/index.html:694
msgid ""
@@ -1,12 +1,12 @@
# Swedish translations for RaSCSI.
# Swedish translations for PiSCSI.
# Copyright (C) 2021 akuker
# This file is distributed under the same license as the RaSCSI project.
# This file is distributed under the same license as the PiSCSI project.
# Daniel Markstedt <markstedt@gmail.com>, 2021.
#
msgid ""
msgstr ""
"Project-Id-Version: RaSCSI Reloaded\n"
"Report-Msgid-Bugs-To: https://github.com/akuker/RASCSI/issues\n"
"Project-Id-Version: PiSCSI\n"
"Report-Msgid-Bugs-To: https://github.com/akuker/PISCSI/issues\n"
"POT-Creation-Date: 2022-10-07 21:10-0700\n"
"PO-Revision-Date: 2022-10-07 20:16-0800\n"
"Last-Translator: Daniel Markstedt <markstedt@gmail.com>\n"
@@ -112,36 +112,36 @@ msgstr "Kunde ej packa upp arkivet: %(error)s"
#: src/socket_cmds_flask.py:34
#, python-format
msgid ""
"The RaSCSI Web Interface failed to connect to RaSCSI at %(host)s:%(port)s"
" with error: %(error_msg)s. The RaSCSI process is not running or may have"
"The PiSCSI Web Interface failed to connect to PiSCSI at %(host)s:%(port)s"
" with error: %(error_msg)s. The PiSCSI process is not running or may have"
" crashed."
msgstr ""
"RaSCSIs webbgränssnitt kunde inte ansluta till RaSCSI på "
"%(host)s:%(port)s med felmeddelandet %(error_msg)s. RaSCSI-processen är "
"PiSCSIs webbgränssnitt kunde inte ansluta till PiSCSI på "
"%(host)s:%(port)s med felmeddelandet %(error_msg)s. PiSCSI-processen är "
"antingen avslagen eller har krashat."
#: src/socket_cmds_flask.py:45
msgid ""
"The RaSCSI Web Interface lost connection to RaSCSI. Please go back and "
"The PiSCSI Web Interface lost connection to PiSCSI. Please go back and "
"try again. If the issue persists, please report a bug."
msgstr ""
"RaSCSIs webbgränssnitt tappade kontaken med RaSCSI. Gå tillbaks och "
"PiSCSIs webbgränssnitt tappade kontaken med PiSCSI. Gå tillbaks och "
"försök igen. Om samma fel upprepas så rapportera en bugg."
#: src/socket_cmds_flask.py:54
msgid ""
"The RaSCSI Web Interface did not get a valid response from RaSCSI. Please"
"The PiSCSI Web Interface did not get a valid response from PiSCSI. Please"
" go back and try again. If the issue persists, please report a bug."
msgstr ""
"RaSCSIs webbgränssnitt fick en ogiltig respons från RaSCSI. Gå tillbaks "
"PiSCSIs webbgränssnitt fick en ogiltig respons från PiSCSI. Gå tillbaks "
"och försök igen. Om samma fel upprepas så rapportera en bugg."
#: src/web.py:182
msgid ""
"RaSCSI is password protected. Start the Web Interface with the --password"
"PiSCSI is password protected. Start the Web Interface with the --password"
" parameter."
msgstr ""
"RaSCSI är lösenordsskyddat. Start webbgränssnittet med parametern "
"PiSCSI är lösenordsskyddat. Start webbgränssnittet med parametern "
"--password ."
#: src/web.py:318
@@ -161,8 +161,8 @@ msgstr "Ett fel inträffade när vi hämtade skivinfo: %(error)s"
#: src/web.py:493
#, python-format
msgid "%(app)s is not a recognized RaSCSI app"
msgstr "%(app)s är inte en giltig RaSCSI-app"
msgid "%(app)s is not a recognized PiSCSI app"
msgstr "%(app)s är inte en giltig PiSCSI-app"
#: src/web.py:527
#, python-format
@@ -212,11 +212,11 @@ msgstr ""
#, python-format
msgid ""
"The image file size %(file_size)s bytes is not a multiple of "
"%(block_size)s. RaSCSI will ignore the trailing data. The image may be "
"%(block_size)s. PiSCSI will ignore the trailing data. The image may be "
"corrupted, so proceed with caution."
msgstr ""
"Filstorleken %(file_size)s byte är inte en multipel av %(block_size)s. "
"RaSCSI ignorerar den överflödiga datan. Skivbilden är möjligen förstörd, "
"PiSCSI ignorerar den överflödiga datan. Skivbilden är möjligen förstörd, "
"så var försiktig när du använder den."
#: src/web.py:698
@@ -432,8 +432,8 @@ msgid "File upload successful!"
msgstr "Filen har laddas upp!"
#: src/templates/base.html:4 src/templates/base.html:68
msgid "RaSCSI Reloaded Control Page"
msgstr "RaSCSI Reloaded kontrollsida"
msgid "PiSCSI Control Page"
msgstr "PiSCSI kontrollsida"
#: src/templates/base.html:29
msgid ""
@@ -501,8 +501,8 @@ msgid "Macproxy is running at %(ip_addr)s (default port 5000)"
msgstr "Macproxy är tillgängligt på %(ip_addr)s (vanligtvis port 5000)"
#: src/templates/base.html:104
msgid "RaSCSI Reloaded version: "
msgstr "RaSCSI Reloaded-version: "
msgid "PiSCSI version: "
msgstr "PiSCSI-version: "
#: src/templates/base.html:107
msgid "Pi environment: "
@@ -646,8 +646,8 @@ msgid "%(disk_space)s MiB disk space remaining on the Pi"
msgstr "%(disk_space)s MiB återstår på Pi-systemets skiva"
#: src/templates/index.html:6
msgid "Current RaSCSI Configuration"
msgstr "Nuvarande RaSCSI-konfiguration"
msgid "Current PiSCSI Configuration"
msgstr "Nuvarande PiSCSI-konfiguration"
#: src/templates/index.html:9
#, python-format
@@ -660,11 +660,11 @@ msgstr ""
#: src/templates/index.html:10
msgid ""
"To have a particular device configuration load when RaSCSI starts, save "
"To have a particular device configuration load when PiSCSI starts, save "
"it as <em>default</em>."
msgstr ""
"Om du sparar en enhetskonfiguration som <em>default</em> så laddas den "
"när RaSCSI startar."
"när PiSCSI startar."
#: src/templates/index.html:16 src/templates/index.html:37
#: src/templates/index.html:71
@@ -764,7 +764,7 @@ msgstr "Bildfilshanterare"
#: src/templates/index.html:174
#, python-format
msgid ""
"Manage image files in the active RaSCSI image directory: "
"Manage image files in the active PiSCSI image directory: "
"<tt>%(directory)s</tt> with a scan depth of %(scan_depth)s."
msgstr ""
"Hantera filer i den aktiva bildfilskatalogen: <tt>%(directory)s</tt> med "
@@ -858,18 +858,18 @@ msgstr "Anslut tillbehör"
#: src/templates/index.html:345
msgid ""
"The <tt>rascsi_bridge</tt> network bridge is active and ready to be used "
"The <tt>piscsi_bridge</tt> network bridge is active and ready to be used "
"by an emulated network adapter!"
msgstr ""
"Nätverksbryggan <tt>rascsi_bridge</tt> är påslagen och kan användas av "
"Nätverksbryggan <tt>piscsi_bridge</tt> är påslagen och kan användas av "
"det emulerade gränssnittet!"
#: src/templates/index.html:347
msgid ""
"Please configure the <tt>rascsi_bridge</tt> network bridge before "
"Please configure the <tt>piscsi_bridge</tt> network bridge before "
"attaching an emulated network adapter!"
msgstr ""
"Se till att ställa in och sätta på <tt>rascsi_bridge</tt> innan du "
"Se till att ställa in och sätta på <tt>piscsi_bridge</tt> innan du "
"ansluter det emulerade nätverksgränssnittet!"
#: src/templates/index.html:349
@@ -1170,8 +1170,8 @@ msgid "Shut Down Raspberry Pi"
msgstr "Stäng av Raspberry Pi"
#: src/templates/index.html:689
msgid "Read the RaSCSI Manual"
msgstr "Läs manualen för RaSCSI"
msgid "Read the PiSCSI Manual"
msgstr "Läs manualen för PiSCSI"
#: src/templates/logs.html:4
#, python-format
+58 -58
View File
@@ -10,7 +10,7 @@ from functools import wraps
from grp import getgrall
import bjoern
from rascsi.return_codes import ReturnCodes
from piscsi.return_codes import ReturnCodes
from simplepam import authenticate
from flask_babel import Babel, Locale, refresh, _
@@ -28,11 +28,11 @@ from flask import (
jsonify,
)
from rascsi.ractl_cmds import RaCtlCmds
from rascsi.file_cmds import FileCmds
from rascsi.sys_cmds import SysCmds
from piscsi.piscsi_cmds import PiscsiCmds
from piscsi.file_cmds import FileCmds
from piscsi.sys_cmds import SysCmds
from rascsi.common_settings import (
from piscsi.common_settings import (
CFG_DIR,
CONFIG_FILE_SUFFIX,
PROPERTIES_SUFFIX,
@@ -79,7 +79,7 @@ def get_env_info():
"""
Get information about the app/host environment
"""
server_info = ractl_cmd.get_server_info()
server_info = piscsi_cmd.get_server_info()
ip_addr, host = sys_cmd.get_ip_and_host()
if "username" in session:
@@ -198,18 +198,18 @@ def index():
"""
Sets up data structures for and renders the index page
"""
if not ractl_cmd.is_token_auth()["status"] and not APP.config["RASCSI_TOKEN"]:
if not piscsi_cmd.is_token_auth()["status"] and not APP.config["PISCSI_TOKEN"]:
abort(
403,
_(
"RaSCSI is password protected. "
"PiSCSI is password protected. "
"Start the Web Interface with the --password parameter."
),
)
server_info = ractl_cmd.get_server_info()
devices = ractl_cmd.list_devices()
device_types = map_device_types_and_names(ractl_cmd.get_device_types()["device_types"])
server_info = piscsi_cmd.get_server_info()
devices = piscsi_cmd.list_devices()
device_types = map_device_types_and_names(piscsi_cmd.get_device_types()["device_types"])
image_files = file_cmd.list_images()
config_files = file_cmd.list_config_files()
ip_addr, host = sys_cmd.get_ip_and_host()
@@ -251,7 +251,7 @@ def index():
return response(
template="index.html",
locales=get_supported_locales(),
netinfo=ractl_cmd.get_network_info(),
netinfo=piscsi_cmd.get_network_info(),
bridge_configured=sys_cmd.is_bridge_setup(),
devices=formatted_devices,
attached_images=attached_images,
@@ -267,16 +267,16 @@ def index():
image_suffixes_to_create=image_suffixes_to_create,
valid_image_suffixes=valid_image_suffixes,
max_file_size=int(int(MAX_FILE_SIZE) / 1024 / 1024),
drive_properties=format_drive_properties(APP.config["RASCSI_DRIVE_PROPERTIES"]),
drive_properties=format_drive_properties(APP.config["PISCSI_DRIVE_PROPERTIES"]),
RESERVATIONS=RESERVATIONS,
CFG_DIR=CFG_DIR,
FILE_SERVER_DIR=FILE_SERVER_DIR,
PROPERTIES_SUFFIX=PROPERTIES_SUFFIX,
ARCHIVE_FILE_SUFFIXES=ARCHIVE_FILE_SUFFIXES,
CONFIG_FILE_SUFFIX=CONFIG_FILE_SUFFIX,
REMOVABLE_DEVICE_TYPES=ractl_cmd.get_removable_device_types(),
DISK_DEVICE_TYPES=ractl_cmd.get_disk_device_types(),
PERIPHERAL_DEVICE_TYPES=ractl_cmd.get_peripheral_device_types(),
REMOVABLE_DEVICE_TYPES=piscsi_cmd.get_removable_device_types(),
DISK_DEVICE_TYPES=piscsi_cmd.get_disk_device_types(),
PERIPHERAL_DEVICE_TYPES=piscsi_cmd.get_peripheral_device_types(),
)
@@ -297,7 +297,7 @@ def drive_list():
return response(
template="drives.html",
files=file_cmd.list_images()["files"],
drive_properties=format_drive_properties(APP.config["RASCSI_DRIVE_PROPERTIES"]),
drive_properties=format_drive_properties(APP.config["PISCSI_DRIVE_PROPERTIES"]),
)
@@ -365,7 +365,7 @@ def drive_create():
drive_name = request.form.get("drive_name")
file_name = Path(request.form.get("file_name")).name
properties = get_properties_by_drive_name(APP.config["RASCSI_DRIVE_PROPERTIES"], drive_name)
properties = get_properties_by_drive_name(APP.config["PISCSI_DRIVE_PROPERTIES"], drive_name)
if not properties:
return response(
@@ -409,7 +409,7 @@ def drive_cdrom():
# Creating the drive properties file
file_name = f"{file_name}.{PROPERTIES_SUFFIX}"
properties = get_properties_by_drive_name(APP.config["RASCSI_DRIVE_PROPERTIES"], drive_name)
properties = get_properties_by_drive_name(APP.config["PISCSI_DRIVE_PROPERTIES"], drive_name)
if not properties:
return response(
@@ -478,7 +478,7 @@ def show_diskinfo():
safe_path = is_safe_path(file_name)
if not safe_path["status"]:
return response(error=True, message=safe_path["msg"])
server_info = ractl_cmd.get_server_info()
server_info = piscsi_cmd.get_server_info()
returncode, diskinfo = sys_cmd.get_diskinfo(Path(server_info["image_dir"]) / file_name)
if returncode == 0:
return response(
@@ -498,12 +498,12 @@ def show_manpage():
"""
Displays manpage
"""
app_allowlist = ["rascsi", "rasctl", "rasdump", "scsimon"]
app_allowlist = ["piscsi", "scsictl", "scsidump", "scsimon"]
app = request.args.get("app", type=str)
if app not in app_allowlist:
return response(error=True, message=_("%(app)s is not a recognized RaSCSI app", app=app))
return response(error=True, message=_("%(app)s is not a recognized PiSCSI app", app=app))
file_path = f"{WEB_DIR}/../../../doc/{app}.1"
html_to_strip = [
@@ -567,11 +567,11 @@ def show_logs():
@login_required
def log_level():
"""
Sets RaSCSI backend log level
Sets PiSCSI backend log level
"""
level = request.form.get("level") or "info"
process = ractl_cmd.set_log_level(level)
process = piscsi_cmd.set_log_level(level)
if process["status"]:
return response(message=_("Log level set to %(value)s", value=level))
@@ -595,7 +595,7 @@ def attach_device():
# Attempt to fetch the drive properties based on drive name
drive_props = None
if drive_name:
for drive in APP.config["RASCSI_DRIVE_PROPERTIES"]:
for drive in APP.config["PISCSI_DRIVE_PROPERTIES"]:
if drive["name"] == drive_name:
drive_props = drive
break
@@ -625,7 +625,7 @@ def attach_device():
kwargs["revision"] = drive_props["revision"]
kwargs["block_size"] = drive_props["block_size"]
process = ractl_cmd.attach_device(scsi_id, **kwargs)
process = piscsi_cmd.attach_device(scsi_id, **kwargs)
process = ReturnCodeMapper.add_msg(process)
if process["status"]:
return response(
@@ -661,7 +661,7 @@ def attach_image():
if device_type:
kwargs["device_type"] = device_type
device_types = ractl_cmd.get_device_types()
device_types = piscsi_cmd.get_device_types()
expected_block_size = min(device_types["device_types"][device_type]["block_sizes"])
# Attempt to load the device properties file:
@@ -679,13 +679,13 @@ def attach_image():
kwargs["block_size"] = conf["block_size"]
expected_block_size = conf["block_size"]
process = ractl_cmd.attach_device(scsi_id, **kwargs)
process = piscsi_cmd.attach_device(scsi_id, **kwargs)
process = ReturnCodeMapper.add_msg(process)
if process["status"]:
if int(file_size) % int(expected_block_size):
logging.warning(
"The image file size %s bytes is not a multiple of %s. "
"RaSCSI will ignore the trailing data. "
"PiSCSI will ignore the trailing data. "
"The image may be corrupted, so proceed with caution.",
file_size,
expected_block_size,
@@ -710,7 +710,7 @@ def detach_all_devices():
"""
Detaches all currently attached devices
"""
process = ractl_cmd.detach_all()
process = piscsi_cmd.detach_all()
if process["status"]:
return response(message=_("Detached all SCSI devices"))
@@ -725,7 +725,7 @@ def detach():
"""
scsi_id = request.form.get("scsi_id")
unit = request.form.get("unit")
process = ractl_cmd.detach_by_id(scsi_id, unit)
process = piscsi_cmd.detach_by_id(scsi_id, unit)
if process["status"]:
return response(
message=_(
@@ -747,7 +747,7 @@ def eject():
scsi_id = request.form.get("scsi_id")
unit = request.form.get("unit")
process = ractl_cmd.eject_by_id(scsi_id, unit)
process = piscsi_cmd.eject_by_id(scsi_id, unit)
if process["status"]:
return response(
message=_(
@@ -765,7 +765,7 @@ def device_info():
"""
Displays detailed info for all attached devices
"""
process = ractl_cmd.list_devices()
process = piscsi_cmd.list_devices()
if process["status"]:
return response(
template="deviceinfo.html",
@@ -783,9 +783,9 @@ def reserve_id():
"""
scsi_id = request.form.get("scsi_id")
memo = request.form.get("memo")
reserved_ids = ractl_cmd.get_reserved_ids()["ids"]
reserved_ids = piscsi_cmd.get_reserved_ids()["ids"]
reserved_ids.extend(scsi_id)
process = ractl_cmd.reserve_scsi_ids(reserved_ids)
process = piscsi_cmd.reserve_scsi_ids(reserved_ids)
if process["status"]:
RESERVATIONS[int(scsi_id)] = memo
return response(message=_("Reserved SCSI ID %(id_number)s", id_number=scsi_id))
@@ -800,9 +800,9 @@ def release_id():
Releases the reservation of a SCSI ID as well as the memo for the reservation
"""
scsi_id = request.form.get("scsi_id")
reserved_ids = ractl_cmd.get_reserved_ids()["ids"]
reserved_ids = piscsi_cmd.get_reserved_ids()["ids"]
reserved_ids.remove(scsi_id)
process = ractl_cmd.reserve_scsi_ids(reserved_ids)
process = piscsi_cmd.reserve_scsi_ids(reserved_ids)
if process["status"]:
RESERVATIONS[int(scsi_id)] = ""
return response(
@@ -896,7 +896,7 @@ def download_to_iso():
),
)
process_attach = ractl_cmd.attach_device(
process_attach = piscsi_cmd.attach_device(
scsi_id,
device_type="SCCD",
params={"file": process["file_name"]},
@@ -936,7 +936,7 @@ def download_file():
if destination == "file_server":
destination_dir = FILE_SERVER_DIR
else:
server_info = ractl_cmd.get_server_info()
server_info = piscsi_cmd.get_server_info()
destination_dir = server_info["image_dir"]
process = file_cmd.download_to_dir(url, destination_dir, Path(url).name)
process = ReturnCodeMapper.add_msg(process)
@@ -967,7 +967,7 @@ def upload_file():
if destination == "file_server":
destination_dir = FILE_SERVER_DIR
else:
server_info = ractl_cmd.get_server_info()
server_info = piscsi_cmd.get_server_info()
destination_dir = server_info["image_dir"]
return upload_with_dropzonejs(destination_dir)
@@ -1056,7 +1056,7 @@ def create_file():
# Creating the drive properties file, if one is chosen
if drive_name:
properties = get_properties_by_drive_name(APP.config["RASCSI_DRIVE_PROPERTIES"], drive_name)
properties = get_properties_by_drive_name(APP.config["PISCSI_DRIVE_PROPERTIES"], drive_name)
if properties:
prop_file_name = f"{full_file_name}.{PROPERTIES_SUFFIX}"
process = file_cmd.write_drive_properties(prop_file_name, properties)
@@ -1095,7 +1095,7 @@ def download():
safe_path = is_safe_path(file_name)
if not safe_path["status"]:
return response(error=True, message=safe_path["msg"])
server_info = ractl_cmd.get_server_info()
server_info = piscsi_cmd.get_server_info()
return send_from_directory(server_info["image_dir"], str(file_name), as_attachment=True)
@@ -1262,7 +1262,7 @@ def change_language():
"""
locale = request.form.get("locale")
session["language"] = locale
ractl_cmd.locale = session["language"]
piscsi_cmd.locale = session["language"]
file_cmd.locale = session["language"]
refresh()
@@ -1297,7 +1297,7 @@ def detect_locale():
This requires the Flask app to have started first.
"""
session["language"] = get_locale()
ractl_cmd.locale = session["language"]
piscsi_cmd.locale = session["language"]
file_cmd.locale = session["language"]
@@ -1318,11 +1318,11 @@ def log_http_request():
if __name__ == "__main__":
APP.secret_key = "rascsi_is_awesome_insecure_secret_key"
APP.secret_key = "piscsi_is_awesome_insecure_secret_key"
APP.config["SESSION_TYPE"] = "filesystem"
APP.config["MAX_CONTENT_LENGTH"] = int(MAX_FILE_SIZE)
parser = argparse.ArgumentParser(description="RaSCSI Web Interface command line arguments")
parser = argparse.ArgumentParser(description="PiSCSI Web Interface command line arguments")
parser.add_argument(
"--port",
type=int,
@@ -1335,21 +1335,21 @@ if __name__ == "__main__":
type=str,
default="",
action="store",
help="Token password string for authenticating with RaSCSI",
help="Token password string for authenticating with PiSCSI",
)
parser.add_argument(
"--rascsi-host",
"--backend-host",
type=str,
default="localhost",
action="store",
help="RaSCSI host. Default: localhost",
help="PiSCSI backend hostname. Default: localhost",
)
parser.add_argument(
"--rascsi-port",
"--backend-port",
type=int,
default=6868,
action="store",
help="RaSCSI port. Default: 6868",
help="PiSCSI backend port number. Default: 6868",
)
parser.add_argument(
"--log-level",
@@ -1366,7 +1366,7 @@ if __name__ == "__main__":
)
arguments = parser.parse_args()
APP.config["RASCSI_TOKEN"] = arguments.password
APP.config["PISCSI_TOKEN"] = arguments.password
logging.config.dictConfig(
{
@@ -1389,9 +1389,9 @@ if __name__ == "__main__":
}
)
sock_cmd = SocketCmdsFlask(host=arguments.rascsi_host, port=arguments.rascsi_port)
ractl_cmd = RaCtlCmds(sock_cmd=sock_cmd, token=APP.config["RASCSI_TOKEN"])
file_cmd = FileCmds(sock_cmd=sock_cmd, ractl=ractl_cmd, token=APP.config["RASCSI_TOKEN"])
sock_cmd = SocketCmdsFlask(host=arguments.backend_host, port=arguments.backend_port)
piscsi_cmd = PiscsiCmds(sock_cmd=sock_cmd, token=APP.config["PISCSI_TOKEN"])
file_cmd = FileCmds(sock_cmd=sock_cmd, piscsi=piscsi_cmd, token=APP.config["PISCSI_TOKEN"])
sys_cmd = SysCmds()
if Path(f"{CFG_DIR}/{DEFAULT_CONFIG}").is_file():
@@ -1399,12 +1399,12 @@ if __name__ == "__main__":
if Path(f"{DRIVE_PROPERTIES_FILE}").is_file():
process = file_cmd.read_drive_properties(DRIVE_PROPERTIES_FILE)
if process["status"]:
APP.config["RASCSI_DRIVE_PROPERTIES"] = process["conf"]
APP.config["PISCSI_DRIVE_PROPERTIES"] = process["conf"]
else:
APP.config["RASCSI_DRIVE_PROPERTIES"] = []
APP.config["PISCSI_DRIVE_PROPERTIES"] = []
logging.error(process["msg"])
else:
APP.config["RASCSI_DRIVE_PROPERTIES"] = []
APP.config["PISCSI_DRIVE_PROPERTIES"] = []
logging.warning("Could not read drive properties from %s", DRIVE_PROPERTIES_FILE)
logging.info("Starting WSGI server...")
+4 -4
View File
@@ -1,5 +1,5 @@
"""
Module for RaSCSI Web Interface utility methods
Module for PiSCSI Web Interface utility methods
"""
import logging
@@ -12,7 +12,7 @@ from flask import request, make_response
from flask_babel import _
from werkzeug.utils import secure_filename
from rascsi.sys_cmds import SysCmds
from piscsi.sys_cmds import SysCmds
def get_valid_scsi_ids(devices, reserved_ids):
@@ -79,7 +79,7 @@ def sort_and_format_devices(devices):
def map_device_types_and_names(device_types):
"""
Takes a (dict) corresponding to the data structure returned by RaCtlCmds.get_device_types()
Takes a (dict) corresponding to the data structure returned by PiscsiCmds.get_device_types()
Returns a (dict) of device_type:device_name mappings of localized device names
"""
for device in device_types.keys():
@@ -229,7 +229,7 @@ def is_bridge_configured(interface):
PATH_SYSCTL = "/etc/sysctl.conf"
PATH_IPTV4 = "/etc/iptables/rules.v4"
PATH_DHCPCD = "/etc/dhcpcd.conf"
PATH_BRIDGE = "/etc/network/interfaces.d/rascsi_bridge"
PATH_BRIDGE = "/etc/network/interfaces.d/piscsi_bridge"
return_msg = _("Configure the network bridge for %(interface)s first: ", interface=interface)
to_configure = []
sys_cmd = SysCmds()
+10 -10
View File
@@ -100,11 +100,11 @@ while [ "$1" != "" ]; do
-P | --password)
ARG_PASSWORD="--password $VALUE"
;;
-h | --rascsi-host)
ARG_RASCSI_HOST="--rascsi-host $VALUE"
-h | --backend-host)
ARG_BACKEND_HOST="--backend-host $VALUE"
;;
-o | --rascsi-port)
ARG_RASCSI_PORT="--rascsi-port $VALUE"
-o | --backend-port)
ARG_BACKEND_PORT="--backend-port $VALUE"
;;
-l | --log-level)
ARG_LOG_LEVEL="--log-level $VALUE"
@@ -122,13 +122,13 @@ done
PYTHON_COMMON_PATH=$(dirname $PWD)/common/src
export PYTHONPATH=$PWD/src:${PYTHON_COMMON_PATH}
cd src
cd src || exit 1
if [[ $ARG_DEV_MODE ]]; then
echo "Starting web UI (dev mode) ..."
echo "Starting PiSCSI Web UI (dev mode) ..."
watchmedo auto-restart --directory=../../ --pattern=*.py --recursive -- \
python3 web.py ${ARG_PORT} ${ARG_PASSWORD} ${ARG_RASCSI_HOST} ${ARG_RASCSI_PORT} ${ARG_LOG_LEVEL} ${ARG_DEV_MODE}
python3 web.py ${ARG_PORT} ${ARG_PASSWORD} ${ARG_BACKEND_HOST} ${ARG_BACKEND_PORT} ${ARG_LOG_LEVEL} ${ARG_DEV_MODE}
else
echo "Starting web UI ..."
python3 web.py ${ARG_PORT} ${ARG_PASSWORD} ${ARG_RASCSI_HOST} ${ARG_RASCSI_PORT} ${ARG_LOG_LEVEL} ${ARG_DEV_MODE}
fi
echo "Starting PiSCSI Web UI ..."
python3 web.py ${ARG_PORT} ${ARG_PASSWORD} ${ARG_BACKEND_HOST} ${ARG_BACKEND_PORT} ${ARG_LOG_LEVEL} ${ARG_DEV_MODE}
fi
+4 -4
View File
@@ -3,12 +3,12 @@ from conftest import STATUS_SUCCESS, STATUS_ERROR
# route("/login", methods=["POST"])
def test_login_with_valid_credentials(pytestconfig, http_client_unauthenticated):
# Note: This test depends on the rascsi group existing and 'username' a member the group
# Note: This test depends on the piscsi group existing and 'username' a member the group
response = http_client_unauthenticated.post(
"/login",
data={
"username": pytestconfig.getoption("rascsi_username"),
"password": pytestconfig.getoption("rascsi_password"),
"username": pytestconfig.getoption("piscsi_username"),
"password": pytestconfig.getoption("piscsi_password"),
},
)
@@ -34,7 +34,7 @@ def test_login_with_invalid_credentials(http_client_unauthenticated):
assert response.status_code == 401
assert response_data["status"] == STATUS_ERROR
assert response_data["messages"][0]["message"] == (
"You must log in with valid credentials for a user in the 'rascsi' group"
"You must log in with valid credentials for a user in the 'piscsi' group"
)
+2 -2
View File
@@ -107,11 +107,11 @@ def test_create_image_with_properties_file(http_client, delete_file):
# route("/sys/manpage", methods=["POST"])
def test_show_manpage(http_client):
response = http_client.get("/sys/manpage?app=rascsi")
response = http_client.get("/sys/manpage?app=piscsi")
response_data = response.json()
assert response.status_code == 200
assert "rascsi" in response_data["data"]["manpage"]
assert "piscsi" in response_data["data"]["manpage"]
# route("/healthcheck", methods=["GET"])
+2 -2
View File
@@ -61,7 +61,7 @@ def test_show_logs(http_client):
"/logs/show",
data={
"lines": 100,
"scope": "rascsi",
"scope": "piscsi",
},
)
@@ -69,7 +69,7 @@ def test_show_logs(http_client):
assert response.status_code == 200
assert response_data["data"]["lines"] == "100"
assert response_data["data"]["scope"] == "rascsi"
assert response_data["data"]["scope"] == "piscsi"
# route("/config/save", methods=["POST"])
+5 -5
View File
@@ -11,8 +11,8 @@ def pytest_addoption(parser):
parser.addoption("--base_url", action="store", default=default_base_url)
parser.addoption("--httpserver_host", action="store", default=socket.gethostname())
parser.addoption("--httpserver_listen_address", action="store", default="0.0.0.0")
parser.addoption("--rascsi_username", action="store", default="pi")
parser.addoption("--rascsi_password", action="store", default="rascsi")
parser.addoption("--piscsi_username", action="store", default="pi")
parser.addoption("--piscsi_password", action="store", default="piscsi")
@pytest.fixture(scope="session")
@@ -21,7 +21,7 @@ def env(pytestconfig):
return {
"is_docker": bool(os.getenv("DOCKER")),
"home_dir": home_dir,
"cfg_dir": f"{home_dir}/.config/rascsi",
"cfg_dir": f"{home_dir}/.config/piscsi",
"images_dir": f"{home_dir}/images",
"file_server_dir": f"{home_dir}/shared_files",
}
@@ -63,8 +63,8 @@ def create_http_client(pytestconfig):
session.post(
"/login",
data={
"username": pytestconfig.getoption("rascsi_username"),
"password": pytestconfig.getoption("rascsi_password"),
"username": pytestconfig.getoption("piscsi_username"),
"password": pytestconfig.getoption("piscsi_password"),
},
)
return session