added stream checks

This commit is contained in:
Tobias Kurze
2020-02-21 07:22:26 +01:00
parent bb4db25dcd
commit 6971b4b618
10 changed files with 324 additions and 202 deletions

View File

@@ -69,9 +69,12 @@ def update_recorder_models_database(drop: bool = False):
for r_a in r_as:
if r_a.get('class') is None: # skip modules without class (helpers.py, e.g.)
continue
logger.info("Checking Recorder Adapter {} for possible updates".format(r_a["id"]))
try:
r_m = RecorderModel.get_by_adapter_id(r_a["id"])
model_checksum = calculate_md5_checksum(dumps(r_a["commands"]))
logger.debug("Recorder Adapter commands checksum: {}".format(model_checksum))
logger.debug(r_m)
if r_m is None:
r_m = RecorderModel(record_adapter_id=r_a["id"], model_name=r_a["name"], checksum=model_checksum,
**r_a.get('class').get_recorder_params())
@@ -81,22 +84,23 @@ def update_recorder_models_database(drop: bool = False):
logger.debug("Creating command definitions for rec mod adapter {}".format(r_m.record_adapter_id))
create_recorder_commands_for_recorder_adapter(r_a["commands"], r_m)
else:
logger.debug("Model command checksum already in db: {}".format(r_m.checksum))
if r_m.model_name != r_a["name"]:
r_m.model_name = r_a["name"]
r_m.last_time_modified = datetime.utcnow()
if model_checksum != r_m.checksum:
create_recorder_commands_for_recorder_adapter(r_a["commands"], r_m)
r_m.last_time_modified = datetime.utcnow()
r_m.checksum = model_checksum
r_m.last_checksum_change = datetime.utcnow()
logger.debug("Updating command definitions for rec mod adapter {}".format(r_m.record_adapter_id))
create_recorder_commands_for_recorder_adapter(r_a["commands"], r_m)
except IntegrityError as e:
logger.error(e)
db.session.rollback()
db.session.commit()
def get_recorder_room(rec: dict) -> Room():
def get_recorder_room(rec: dict):
rooms = Room.get_by_building_number(rec.get('building', None))
if rooms.count() <= 0:
logger.warning("Building {} unknown! Can not find room for recorder {}.".format(rec['building'], rec['name']))