Bugfix on missing piCtory config, cleanup

This commit is contained in:
2020-05-16 11:55:14 +02:00
parent 724d785a12
commit e7c6899101
8 changed files with 33 additions and 18 deletions

View File

@@ -1,3 +1,4 @@
# XML-RPC Access Control List (acl)
# One entry per Line IPADRESS,LEVEL
#
127.0.0.1,4

View File

@@ -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":

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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"""
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
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

View File

@@ -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=[

View File

@@ -1,5 +1,5 @@
[DEFAULT]
Debian-Version: 1
Depends3: python3-revpimodio2 (>= 2.4.5)
Depends3: python3-revpimodio2 (>= 2.5.0)
Package: revpipyload
Suite: stable