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