mirror of
https://github.com/naruxde/revpipyload.git
synced 2025-11-08 15:13:52 +01:00
Bugfix on missing piCtory config, cleanup
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
# XML-RPC Access Control List (acl)
|
||||
# One entry per Line IPADRESS,LEVEL
|
||||
#
|
||||
127.0.0.1,4
|
||||
|
||||
@@ -131,6 +131,10 @@ def get_revpiled_address(configrsc_bytes):
|
||||
except Exception:
|
||||
return -1
|
||||
|
||||
# Check the result does match
|
||||
if not type(rsc) == dict:
|
||||
return -1
|
||||
|
||||
byte_address = -1
|
||||
for device in rsc.get("Devices", ()): # type: dict
|
||||
if device.get("type", "") == "BASE":
|
||||
|
||||
@@ -162,10 +162,11 @@ class MqttServer(Thread):
|
||||
"defaults now | {0}".format(e)
|
||||
)
|
||||
|
||||
except Exception:
|
||||
except Exception as e:
|
||||
self._rpi = None
|
||||
proginit.logger.error(
|
||||
"piCtory configuration not loadable for MQTT"
|
||||
"piCtory configuration not loadable for MQTT | "
|
||||
"{0}".format(e)
|
||||
)
|
||||
raise e
|
||||
|
||||
|
||||
@@ -452,11 +452,11 @@ class RevPiSlaveDev(Thread):
|
||||
|
||||
elif cmd == b'RP':
|
||||
# Replace_IOs Konfiguration senden, wenn hash existiert
|
||||
replace_ios = proginit.conf["DEFAULT"].get("replace_ios", "")
|
||||
proginit.logger.debug(
|
||||
"transfair replace_io configuration: {0}"
|
||||
"".format(proginit.pargs.configrsc)
|
||||
"".format(replace_ios)
|
||||
)
|
||||
replace_ios = proginit.conf["DEFAULT"].get("replace_ios", "")
|
||||
if HASH_RPIO != HASH_NULL and replace_ios:
|
||||
try:
|
||||
with open(replace_ios, "rb") as fh:
|
||||
|
||||
@@ -126,10 +126,11 @@ class ProcimgServer():
|
||||
"replace_ios_file not loadable for ProcimgServer - using "
|
||||
"defaults now | {0}".format(e)
|
||||
)
|
||||
except Exception:
|
||||
except Exception as e:
|
||||
self.rpi = None
|
||||
proginit.logger.error(
|
||||
"piCtory configuration not loadable for ProcimgServer"
|
||||
"piCtory configuration not loadable for ProcimgServer | "
|
||||
"{0}".format(e)
|
||||
)
|
||||
return e
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ begrenzt werden!
|
||||
__author__ = "Sven Sager"
|
||||
__copyright__ = "Copyright (C) 2020 Sven Sager"
|
||||
__license__ = "GPLv3"
|
||||
__version__ = "0.8.5"
|
||||
__version__ = "0.9.0"
|
||||
|
||||
import gzip
|
||||
import os
|
||||
@@ -53,7 +53,7 @@ from shared.ipaclmanager import IpAclManager
|
||||
from watchdogs import ResetDriverWatchdog
|
||||
from xrpcserver import SaveXMLRPCServer
|
||||
|
||||
min_revpimodio = "2.4.5"
|
||||
min_revpimodio = "2.5.0"
|
||||
|
||||
|
||||
class RevPiPyLoad():
|
||||
@@ -634,15 +634,23 @@ class RevPiPyLoad():
|
||||
def check_pictory_changed(self):
|
||||
"""Prueft ob sich die piCtory Datei veraendert hat.
|
||||
@return True, wenn veraendert wurde"""
|
||||
mtime = os.path.getmtime(proginit.pargs.configrsc)
|
||||
try:
|
||||
mtime = os.path.getmtime(proginit.pargs.configrsc)
|
||||
except FileNotFoundError:
|
||||
self.pictorymtime = 0
|
||||
return False
|
||||
|
||||
if self.pictorymtime == mtime:
|
||||
return False
|
||||
self.pictorymtime = mtime
|
||||
|
||||
# TODO: Nur "Devices" list vergleich da HASH immer neu wegen timestamp
|
||||
|
||||
with open(proginit.pargs.configrsc, "rb") as fh:
|
||||
rsc_buff = fh.read()
|
||||
try:
|
||||
with open(proginit.pargs.configrsc, "rb") as fh:
|
||||
rsc_buff = fh.read()
|
||||
except Exception:
|
||||
return False
|
||||
|
||||
# Check change of RevPiLED address
|
||||
self.revpi_led_address = get_revpiled_address(rsc_buff)
|
||||
@@ -675,7 +683,7 @@ class RevPiPyLoad():
|
||||
|
||||
if not self.replaceiofail:
|
||||
proginit.logger.error(
|
||||
"can not access (r/w) the replace_ios file '{0}' "
|
||||
"can not access the replace_ios file '{0}' "
|
||||
"using defaults".format(self.replace_ios_config)
|
||||
)
|
||||
self.replaceiofail = True
|
||||
@@ -737,7 +745,7 @@ class RevPiPyLoad():
|
||||
fh_pack.write(
|
||||
os.path.join(tup_dir[0], file), arcname=arcname
|
||||
)
|
||||
if pictory:
|
||||
if pictory and os.access(proginit.pargs.configrsc, os.R_OK):
|
||||
fh_pack.write(
|
||||
proginit.pargs.configrsc, arcname="config.rsc"
|
||||
)
|
||||
@@ -751,7 +759,7 @@ class RevPiPyLoad():
|
||||
name=filename, mode="w:gz", dereference=True)
|
||||
try:
|
||||
fh_pack.add(".", arcname=os.path.basename(self.plcworkdir))
|
||||
if pictory:
|
||||
if pictory and os.access(proginit.pargs.configrsc, os.R_OK):
|
||||
fh_pack.add(proginit.pargs.configrsc, arcname="config.rsc")
|
||||
except Exception:
|
||||
filename = ""
|
||||
@@ -943,7 +951,7 @@ class RevPiPyLoad():
|
||||
dc["autoreloaddelay"] = self.autoreloaddelay
|
||||
dc["autostart"] = int(self.autostart)
|
||||
dc["plcworkdir"] = self.plcworkdir
|
||||
dc["plcworkdir_set_uid"] = self.plcworkdir_set_uid
|
||||
dc["plcworkdir_set_uid"] = int(self.plcworkdir_set_uid)
|
||||
dc["plcprogram"] = self.plcprogram
|
||||
dc["plcprogram_watchdog"] = self.plcprogram_watchdog
|
||||
dc["plcarguments"] = self.plcarguments
|
||||
|
||||
4
setup.py
4
setup.py
@@ -27,11 +27,11 @@ setup(
|
||||
|
||||
license="LGPLv3",
|
||||
name="revpipyload",
|
||||
version="0.8.5d",
|
||||
version="0.9.0",
|
||||
|
||||
scripts=["data/revpipyload"],
|
||||
|
||||
install_requires=["revpimodio2 >= 2.4.5"],
|
||||
install_requires=["revpimodio2 >= 2.5.0"],
|
||||
python_requires=">=3.2",
|
||||
|
||||
data_files=[
|
||||
|
||||
Reference in New Issue
Block a user