mirror of
https://github.com/akuker/RASCSI.git
synced 2024-10-11 20:24:02 +00:00
Check for network bridge configuration before attaching daynaport (#428)
This commit is contained in:
parent
988a2ffe1a
commit
59e9d8584c
@ -81,3 +81,19 @@ def disk_space():
|
|||||||
from shutil import disk_usage
|
from shutil import disk_usage
|
||||||
total, used, free = disk_usage(__file__)
|
total, used, free = disk_usage(__file__)
|
||||||
return {"total": total, "used": used, "free": free}
|
return {"total": total, "used": used, "free": free}
|
||||||
|
|
||||||
|
def introspect_file(file_path, re_term):
|
||||||
|
"""
|
||||||
|
Takes a (str) file_path and (str) re_term in regex format
|
||||||
|
Will introspect file_path for the existance of re_term
|
||||||
|
and return True if found, False if not found
|
||||||
|
"""
|
||||||
|
from re import match
|
||||||
|
try:
|
||||||
|
ifile = open(file_path, "r")
|
||||||
|
except:
|
||||||
|
return False
|
||||||
|
for line in ifile:
|
||||||
|
if match(re_term, line):
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
@ -39,6 +39,7 @@ from pi_cmds import (
|
|||||||
running_netatalk,
|
running_netatalk,
|
||||||
is_bridge_setup,
|
is_bridge_setup,
|
||||||
disk_space,
|
disk_space,
|
||||||
|
introspect_file,
|
||||||
)
|
)
|
||||||
from ractl_cmds import (
|
from ractl_cmds import (
|
||||||
attach_image,
|
attach_image,
|
||||||
@ -366,6 +367,24 @@ def daynaport_attach():
|
|||||||
ip_addr = request.form.get("ip")
|
ip_addr = request.form.get("ip")
|
||||||
mask = request.form.get("mask")
|
mask = request.form.get("mask")
|
||||||
|
|
||||||
|
error_msg = ("Please follow the instructions at "
|
||||||
|
"https://github.com/akuker/RASCSI/wiki/Dayna-Port-SCSI-Link")
|
||||||
|
|
||||||
|
if interface.startswith("wlan"):
|
||||||
|
if not introspect_file("/etc/sysctl.conf", "^net\.ipv4\.ip_forward=1$"):
|
||||||
|
flash("IPv4 forwarding is not enabled. " + error_msg, "error")
|
||||||
|
return redirect(url_for("index"))
|
||||||
|
if not Path("/etc/iptables/rules.v4").is_file():
|
||||||
|
flash("NAT has not been configured. " + error_msg, "error")
|
||||||
|
return redirect(url_for("index"))
|
||||||
|
else:
|
||||||
|
if not introspect_file("/etc/dhcpcd.conf", "^denyinterfaces " + interface + "$"):
|
||||||
|
flash("The network bridge hasn't been configured. " + error_msg, "error")
|
||||||
|
return redirect(url_for("index"))
|
||||||
|
if not Path("/etc/network/interfaces.d/rascsi_bridge").is_file():
|
||||||
|
flash(f"The network bridge hasn't been configured. " + error_msg, "error")
|
||||||
|
return redirect(url_for("index"))
|
||||||
|
|
||||||
kwargs = {"device_type": "SCDP"}
|
kwargs = {"device_type": "SCDP"}
|
||||||
if interface != "":
|
if interface != "":
|
||||||
arg = interface
|
arg = interface
|
||||||
|
Loading…
Reference in New Issue
Block a user