Übertragung piCtory Datei trennt bei Fehler Verbindung

Übertragung replace_io Datei trennt bei Fehler Verbindung
Replace IO wird nur übertragen, wenn HASH nicht HASH_NULL ist
This commit is contained in:
2019-08-26 13:18:47 +02:00
parent 43969d8162
commit 1eb38407f5
4 changed files with 26 additions and 26 deletions

View File

@@ -403,10 +403,9 @@ class RevPiSlaveDev(Thread):
)
break
else:
continue
finally:
# End-of-Transmission character immer senden
self._devcon.send(b'\x04')
continue
elif cmd == b'PH':
# piCtory md5 Hashwert senden (16 Byte)
@@ -416,26 +415,26 @@ class RevPiSlaveDev(Thread):
self._devcon.sendall(HASH_PICT)
elif cmd == b'RP':
# Replace_IOs Konfiguration senden
# Replace_IOs Konfiguration senden, wenn hash existiert
proginit.logger.debug(
"transfair replace_io configuration: {0}"
"".format(proginit.pargs.configrsc)
)
replace_ios = proginit.conf["DEFAULT"].get("replace_ios", None)
replace_ios = proginit.conf["DEFAULT"].get("replace_ios", "")
try:
if replace_ios:
if HASH_RPIO != HASH_NULL and replace_ios:
with open(replace_ios, "rb") as fh:
# Komplette piCtory Datei senden
# Komplette replace_io Datei senden
self._devcon.sendall(fh.read())
except Exception as e:
proginit.logger.error(
"error on replace_io transfair: {0}".format(e)
)
break
else:
continue
finally:
# End-of-Transmission character immer senden
self._devcon.send(b'\x04')
continue
elif cmd == b'RH':
# Replace_IOs md5 Hashwert senden (16 Byte)

View File

@@ -428,17 +428,18 @@ class RevPiPyLoad():
"revpimodio2: 'apt-get install python3-revpimodio2'"
"".format(min_revpimodio)
)
try:
self.xml_ps = procimgserver.ProcimgServer(
self.xsrv,
None if not self.replace_ios_config
else self.replace_ios_config,
)
self.xsrv.register_function(1, self.xml_psstart, "psstart")
self.xsrv.register_function(1, self.xml_psstop, "psstop")
except Exception as e:
self.xml_ps = None
proginit.logger.error(e)
else:
try:
self.xml_ps = procimgserver.ProcimgServer(
self.xsrv,
None if not self.replace_ios_config
else self.replace_ios_config,
)
self.xsrv.register_function(1, self.xml_psstart, "psstart")
self.xsrv.register_function(1, self.xml_psstop, "psstop")
except Exception as e:
self.xml_ps = None
proginit.logger.error(e)
# XML Modus 2 Einstellungen lesen und Programm herunterladen
self.xsrv.register_function(
@@ -612,7 +613,7 @@ class RevPiPyLoad():
# TODO: Nur "Devices" list vergleich
with open(proginit.pargs.configrsc, "rb") as fh:
file_hash = md5(fh.read()).hexdigest()
file_hash = md5(fh.read()).digest()
if picontrolserver.HASH_PICT == file_hash:
return False
picontrolserver.HASH_PICT = file_hash
@@ -650,14 +651,14 @@ class RevPiPyLoad():
return False
self.replaceiosmtime = mtime
# TODO: Instanz von ConfigParser vergleichen
with open(self.replace_ios_config, "rb") as fh:
file_hash = md5(fh.read()).hexdigest()
file_hash = md5(fh.read()).digest()
if picontrolserver.HASH_RPIO == file_hash:
return False
picontrolserver.HASH_RPIO = file_hash
# TODO: Instanz von ConfigParser vergleichen
return True
return False