Wenn replace_ios nicht gefunden wurde, wird HASH_FAIL übertragen

UID kann nun auf Workdirectory gesetzt werden
This commit is contained in:
2019-08-20 14:41:23 +02:00
parent 5542f5d63b
commit e3cedd6f39
5 changed files with 16 additions and 4 deletions

View File

@@ -3,6 +3,7 @@ autoreload = 1
autoreloaddelay = 5 autoreloaddelay = 5
autostart = 1 autostart = 1
plcworkdir = /var/lib/revpipyload plcworkdir = /var/lib/revpipyload
plcworkdir_set_uid = 0
plcprogram = program.py plcprogram = program.py
plcarguments = plcarguments =
plcuid = 1000 plcuid = 1000

View File

@@ -12,7 +12,7 @@ Modul fuer die Verwaltung der PLC-Slave Funktionen.
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
Global Attributes</h3> Global Attributes</h3>
<table> <table>
<tr><td>__author__</td></tr><tr><td>__copyright__</td></tr><tr><td>__license__</td></tr> <tr><td>HASH_FAIL</td></tr><tr><td>HASH_NULL</td></tr><tr><td>__author__</td></tr><tr><td>__copyright__</td></tr><tr><td>__license__</td></tr>
</table> </table>
<h3 style="background-color:#FFFFFF;color:#FF0000"> <h3 style="background-color:#FFFFFF;color:#FF0000">
Classes</h3> Classes</h3>

View File

@@ -32,6 +32,8 @@ mqttserver.MqttServer?1(basetopic, sendinterval, broker_address, port=1883, tls_
mqttserver.__author__?9 mqttserver.__author__?9
mqttserver.__copyright__?9 mqttserver.__copyright__?9
mqttserver.__license__?9 mqttserver.__license__?9
picontrolserver.HASH_FAIL?7
picontrolserver.HASH_NULL?7
picontrolserver.RevPiSlave.check_connectedacl?4() picontrolserver.RevPiSlave.check_connectedacl?4()
picontrolserver.RevPiSlave.disconnect_all?4() picontrolserver.RevPiSlave.disconnect_all?4()
picontrolserver.RevPiSlave.disconnect_replace_ios?4() picontrolserver.RevPiSlave.disconnect_replace_ios?4()

View File

@@ -11,6 +11,10 @@ from shared.ipaclmanager import IpAclManager
from threading import Event, Thread from threading import Event, Thread
from timeit import default_timer from timeit import default_timer
# Hashvalues
HASH_NULL = b'\x00' * 16
HASH_FAIL = b'\xff' * 16
class RevPiSlave(Thread): class RevPiSlave(Thread):
@@ -438,7 +442,6 @@ class RevPiSlaveDev(Thread):
proginit.logger.error( proginit.logger.error(
"error on replace_io transfair: {0}".format(e) "error on replace_io transfair: {0}".format(e)
) )
break
else: else:
continue continue
finally: finally:
@@ -456,7 +459,7 @@ class RevPiSlaveDev(Thread):
# Hashwert erzeugen und senden # Hashwert erzeugen und senden
file_hash = md5(fh.read()).digest() file_hash = md5(fh.read()).digest()
else: else:
file_hash = b'\x00' * 16 file_hash = HASH_NULL
proginit.logger.debug( proginit.logger.debug(
"send replace_ios hashvalue: {0}" "send replace_ios hashvalue: {0}"
"".format(file_hash) "".format(file_hash)
@@ -467,7 +470,7 @@ class RevPiSlaveDev(Thread):
"error on replace_ios hash value transfair: {0}" "error on replace_ios hash value transfair: {0}"
"".format(e) "".format(e)
) )
break self._devcon.sendall(HASH_FAIL)
else: else:
continue continue

View File

@@ -224,6 +224,8 @@ class RevPiPyLoad():
self.globalconfig["DEFAULT"].get("plcprogram", "none.py") self.globalconfig["DEFAULT"].get("plcprogram", "none.py")
self.plcarguments = \ self.plcarguments = \
self.globalconfig["DEFAULT"].get("plcarguments", "") self.globalconfig["DEFAULT"].get("plcarguments", "")
self.plcworkdir_set_uid = self.globalconfig["DEFAULT"].getboolean(
"plcworkdir_set_uid", False)
self.plcuid = \ self.plcuid = \
self.globalconfig["DEFAULT"].getint("plcuid", 65534) self.globalconfig["DEFAULT"].getint("plcuid", 65534)
self.plcgid = \ self.plcgid = \
@@ -333,6 +335,10 @@ class RevPiPyLoad():
) )
os.chdir(self.plcworkdir) os.chdir(self.plcworkdir)
# Workdirectory owner setzen
if self.plcworkdir_set_uid:
os.chown(self.plcworkdir, self.plcuid, -1)
# MQTT konfigurieren # MQTT konfigurieren
if restart_plcmqtt: if restart_plcmqtt:
self.stop_plcmqtt() self.stop_plcmqtt()