def generate_data_handlers(self,qs): data_structures = self.package["data_structures"] generate_handlers = Generate_Handlers(self.package,qs) self.ds_handlers = {} self.ds_handlers["MQTT_PAST_ACTION_QUEUE"] = generate_handlers.construct_redis_stream_writer(data_structures["MQTT_PAST_ACTION_QUEUE"]) self.ds_handlers["MQTT_INPUT_QUEUE"] = generate_handlers.construct_redis_stream_writer(data_structures["MQTT_INPUT_QUEUE"]) self.ds_handlers["MQTT_DEVICES"] = generate_handlers.construct_hash(data_structures["MQTT_DEVICES"]) self.ds_handlers["MQTT_SUBSCRIPTIONS"] = generate_handlers.construct_hash(data_structures["MQTT_SUBSCRIPTIONS"]) self.ds_handlers["MQTT_CONTACT_LOG"] = generate_handlers.construct_hash(data_structures["MQTT_CONTACT_LOG"]) self.ds_handlers["MQTT_REBOOT_LOG"] = generate_handlers.construct_hash(data_structures["MQTT_REBOOT_LOG"]) self.ds_handlers["MQTT_UNKNOWN_DEVICES"] = generate_handlers.construct_hash(data_structures["MQTT_UNKNOWN_DEVICES"]) self.ds_handlers["MQTT_UNKNOWN_SUBSCRIPTIONS"] = generate_handlers.construct_hash(data_structures["MQTT_UNKNOWN_SUBSCRIPTIONS"])
def generate_data_handlers(self, package, qs): self.handlers = {} data_structures = package["data_structures"] generate_handlers = Generate_Handlers(package, qs) self.ds_handlers = {} self.ds_handlers[ "MQTT_INPUT_QUEUE"] = generate_handlers.construct_redis_stream_reader( data_structures["MQTT_INPUT_QUEUE"]) self.ds_handlers[ "MQTT_PAST_ACTION_QUEUE"] = generate_handlers.construct_redis_stream_writer( data_structures["MQTT_PAST_ACTION_QUEUE"]) self.ds_handlers[ "MQTT_SENSOR_QUEUE"] = generate_handlers.construct_redis_stream_writer( data_structures["MQTT_SENSOR_QUEUE"]) self.ds_handlers[ "MQTT_CONTACT_LOG"] = generate_handlers.construct_hash( data_structures["MQTT_CONTACT_LOG"]) self.ds_handlers["MQTT_REBOOT_LOG"] = generate_handlers.construct_hash( data_structures["MQTT_REBOOT_LOG"]) self.ds_handlers[ "MQTT_SENSOR_STATUS"] = generate_handlers.construct_hash( data_structures["MQTT_SENSOR_STATUS"]) contact_set = set(self.ds_handlers["MQTT_CONTACT_LOG"].hkeys()) device_set = set(self.mqtt_devices.keys()) difference_set = contact_set - device_set for i in list(difference_set): self.ds_handlers["MQTT_CONTACT_LOG"].hdelete(i) return contact_set = set(self.ds_handlers["MQTT_CONTACT_LOG"].hkeys()) difference_set = device_set - contact_set print("contact_set", contact_set) print("difference_set", difference_set) for i in list(difference_set): data = {} data["time"] = time.time() data["status"] = status data["name"] = name data["device_id"] = name # redundant with name self.ds_handlers["MQTT_PAST_ACTION_QUEUE"].push({ "action": "Device_Change", "device_id": name, "status": status }) self.ds_handlers["MQTT_CONTACT_LOG"].hset(name, data)
def generate_data_handlers(self, qs): self.handlers = {} data_structures = self.package["data_structures"] generate_handlers = Generate_Handlers(self.package, qs) self.ds_handlers = {} self.ds_handlers[ "MQTT_INPUT_QUEUE"] = generate_handlers.construct_redis_stream_reader( data_structures["MQTT_INPUT_QUEUE"]) self.ds_handlers[ "MQTT_PAST_ACTION_QUEUE"] = generate_handlers.construct_redis_stream_writer( data_structures["MQTT_PAST_ACTION_QUEUE"]) self.ds_handlers[ "MQTT_SENSOR_QUEUE"] = generate_handlers.construct_redis_stream_writer( data_structures["MQTT_SENSOR_QUEUE"]) self.ds_handlers[ "MQTT_CONTACT_LOG"] = generate_handlers.construct_hash( data_structures["MQTT_CONTACT_LOG"]) self.ds_handlers[ "MQTT_SENSOR_STATUS"] = generate_handlers.construct_hash( data_structures["MQTT_SENSOR_STATUS"])
def generate_data_handlers(self,redis_site,qs): query_list = [] query_list = qs.add_match_relationship( query_list,relationship="SITE",label=redis_site["site"] ) query_list = qs.add_match_relationship( query_list,relationship="PLC_MEASUREMENTS" ) query_list = qs.add_match_terminal( query_list, relationship = "PACKAGE", property_mask={"name":"PLC_MEASUREMENTS_PACKAGE"} ) package_sets, package_sources = qs.match_list(query_list) package = package_sources[0] data_structures = package["data_structures"] generate_handlers = Generate_Handlers(package,qs) self.ds_handlers = {} self.ds_handlers["PLC_MEASUREMENTS_STREAM"] = generate_handlers.construct_redis_stream_writer(data_structures["PLC_MEASUREMENTS_STREAM"]) self.construct_access_class = Construct_Access_Classes(generate_handlers)
def generate_data_handlers(self, package, qs): self.handlers = {} data_structures = package["data_structures"] generate_handlers = Generate_Handlers(package, qs) self.ds_handlers = {} self.ds_handlers[ "MQTT_PAST_ACTION_QUEUE"] = generate_handlers.construct_redis_stream_writer( data_structures["MQTT_PAST_ACTION_QUEUE"]) self.ds_handlers[ "MQTT_CONTACT_LOG"] = generate_handlers.construct_hash( data_structures["MQTT_CONTACT_LOG"]) self.ds_handlers["MQTT_REBOOT_LOG"] = generate_handlers.construct_hash( data_structures["MQTT_REBOOT_LOG"]) contact_set = set(self.ds_handlers["MQTT_CONTACT_LOG"].hkeys()) device_set = set(self.mqtt_devices.keys()) difference_set = contact_set - device_set for i in list(difference_set): self.ds_handlers["MQTT_CONTACT_LOG"].hdelete(i)
query_list = qs.add_match_terminal( query_list, relationship="PACKAGE", property_mask={"name": "IRRIGIGATION_SCHEDULING_CONTROL_DATA"}) package_sets, package_sources = qs.match_list(query_list) package = package_sources[0] data_structures = package["data_structures"] generate_handlers = Generate_Handlers(package, qs) app_files = APP_FILES(qs.get_redis_data_handle(), redis_site) sys_files = SYS_FILES(qs.get_redis_data_handle(), redis_site) ds_handlers = {} ds_handlers[ "IRRIGATION_PAST_ACTIONS"] = generate_handlers.construct_redis_stream_writer( data_structures["IRRIGATION_PAST_ACTIONS"]) ds_handlers[ "IRRIGATION_CURRENT_CLIENT"] = generate_handlers.construct_job_queue_client( data_structures["IRRIGATION_CURRENT"]) ds_handlers[ "IRRIGATION_CURRENT_SERVER"] = generate_handlers.construct_job_queue_server( data_structures["IRRIGATION_CURRENT"]) ds_handlers[ "IRRIGATION_JOB_SCHEDULING"] = generate_handlers.construct_job_queue_server( data_structures["IRRIGATION_JOB_SCHEDULING"]) ds_handlers[ "IRRIGATION_PENDING_CLIENT"] = generate_handlers.construct_job_queue_client( data_structures["IRRIGATION_PENDING"]) ds_handlers[ "IRRIGATION_PENDING_SERVER"] = generate_handlers.construct_job_queue_server(
if len(initialization_nodes) > 0: initialization_list = initialization_nodes[0]["command_list"] else: initialization_list= [] query_list = [] query_list = qs.add_match_relationship( query_list,relationship="SITE",label=site_data["site"] ) query_list = qs.add_match_relationship( query_list,relationship="PROCESSOR",label=site_data["local_node"] ) query_list = qs.add_match_terminal( query_list, relationship = "PACKAGE", label = "DATA_STRUCTURES" ) package_sets, package_nodes = qs.match_list(query_list) print(package_nodes) data_structures = package_nodes[0]["data_structures"] generate_handlers = Generate_Handlers(package_nodes[0],qs) ds_handlers = {} ds_handlers["ERROR_STREAM"] = generate_handlers.construct_redis_stream_writer(data_structures["ERROR_STREAM"]) ds_handlers["ERROR_STREAM"].push( data = { "script":"Reboot", "error_output" : "Process Manager is Rebooting" } ) for i in results: print(i) ds_handlers["ERROR_STREAM"].push( data = { "script":i[1], "error_output" : i[0][1] } ) for j in initialization_list: i = j["file"] results.append( [run_process_to_completion_no_log(i), i]) for i in results: