def assemble_data_structures(self, controller_name): query_list = [] query_list = self.qs.add_match_relationship( query_list, relationship="SITE", label=self.site_data["site"]) query_list = self.qs.add_match_relationship(query_list, relationship="PROCESSOR", label=controller_name) query_list = self.qs.add_match_relationship( query_list, relationship="NODE_PROCESSES", label=controller_name) query_list = self.qs.add_match_terminal(query_list, relationship="PACKAGE") package_sets, package_sources = self.qs.match_list(query_list) package = package_sources[0] data_structures = package["data_structures"] generate_handlers = Generate_Handlers(package, self.qs) handlers = {} handlers[ "ERROR_STREAM"] = generate_handlers.construct_redis_stream_reader( data_structures["ERROR_STREAM"]) handlers["ERROR_HASH"] = generate_handlers.construct_hash( data_structures["ERROR_HASH"]) handlers[ "WEB_COMMAND_QUEUE"] = generate_handlers.construct_job_queue_client( data_structures["WEB_COMMAND_QUEUE"]) handlers["WEB_DISPLAY_DICTIONARY"] = generate_handlers.construct_hash( data_structures["WEB_DISPLAY_DICTIONARY"]) return handlers
def __init__(self, redis_site, topic_prefix, qs): self.topic_prefix = topic_prefix query_list = [] query_list = qs.add_match_relationship(query_list, relationship="SITE", label=redis_site["site"]) query_list = qs.add_match_terminal( query_list, relationship="PACKAGE", property_mask={"name": "MQTT_DEVICES_DATA"}) package_sets, package_sources = qs.match_list(query_list) package = package_sources[0] generate_handlers = Generate_Handlers(package, qs) data_structures = package["data_structures"] self.job_queue_client = generate_handlers.construct_job_queue_client( data_structures["MQTT_PUBLISH_QUEUE"])
def assemble_container_data_structures(self, container_name): query_list = [] query_list = self.qs.add_match_relationship( query_list, relationship="SITE", label=self.site_data["site"]) query_list = self.qs.add_match_relationship(query_list, relationship="CONTAINER", label=container_name) query_list = self.qs.add_match_terminal(query_list, relationship="PACKAGE", label="DATA_STRUCTURES") package_sets, package_nodes = self.qs.match_list(query_list) #print("package_nodes",package_nodes) generate_handlers = Generate_Handlers(package_nodes[0], self.qs) data_structures = package_nodes[0]["data_structures"] handlers = {} handlers[ "ERROR_STREAM"] = generate_handlers.construct_redis_stream_reader( data_structures["ERROR_STREAM"]) handlers["ERROR_HASH"] = generate_handlers.construct_hash( data_structures["ERROR_HASH"]) handlers[ "WEB_COMMAND_QUEUE"] = generate_handlers.construct_job_queue_client( data_structures["WEB_COMMAND_QUEUE"]) handlers["WEB_DISPLAY_DICTIONARY"] = generate_handlers.construct_hash( data_structures["WEB_DISPLAY_DICTIONARY"]) handlers[ "PROCESS_VSZ"] = generate_handlers.construct_redis_stream_reader( data_structures["PROCESS_VSZ"]) handlers[ "PROCESS_RSS"] = generate_handlers.construct_redis_stream_reader( data_structures["PROCESS_RSS"]) handlers[ "PROCESS_CPU"] = generate_handlers.construct_redis_stream_reader( data_structures["PROCESS_CPU"]) return handlers
def determine_container_structure(self, processor_name): query_list = [] query_list = self.qs.add_match_relationship( query_list, relationship="SITE", label=self.site_data["site"]) query_list = self.qs.add_match_relationship(query_list, relationship="PROCESSOR", label=processor_name) query_list = self.qs.add_match_relationship( query_list, relationship="DOCKER_MONITOR") query_list = self.qs.add_match_terminal(query_list, relationship="PACKAGE", label="DATA_STRUCTURES") package_sets, package_nodes = self.qs.match_list(query_list) #print("package_nodes",package_nodes) generate_handlers = Generate_Handlers(package_nodes[0], self.qs) package_node = package_nodes[0] data_structures = package_node["data_structures"] #print(data_structures.keys()) handlers = {} handlers[ "ERROR_STREAM"] = generate_handlers.construct_redis_stream_reader( data_structures["ERROR_STREAM"]) handlers[ "WEB_COMMAND_QUEUE"] = generate_handlers.construct_job_queue_client( data_structures["WEB_COMMAND_QUEUE"]) handlers["WEB_DISPLAY_DICTIONARY"] = generate_handlers.construct_hash( data_structures["WEB_DISPLAY_DICTIONARY"]) queue_name = data_structures["DOCKER_UPDATE_QUEUE"]['queue'] handlers[ "DOCKER_UPDATE_QUEUE"] = generate_handlers.construct_rpc_client() handlers["DOCKER_UPDATE_QUEUE"].set_rpc_queue(queue_name) return handlers
def __init__(self, redis_site): qs = Query_Support(redis_site) query_list = [] query_list = qs.add_match_relationship(query_list, relationship="SITE", label=redis_site["site"]) query_list = qs.add_match_terminal( query_list, relationship="PACKAGE", property_mask={"name": "MQTT_DEVICES_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) self.job_queue_client = generate_handlers.construct_job_queue_client( data_structures["MQTT_PUBLISH_QUEUE"]) self.send_request("REBOOT") while 1: self.send_request("HEART_BEAT") self.send_request("SERVER_CHECK") time.sleep(15.)
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( data_structures["IRRIGATION_PENDING"]) ds_handlers["IRRIGATION_VALVE_TEST"] = generate_handlers.construct_hash( data_structures["IRRIGATION_VALVE_TEST"])
package_sets, package_sources = qs.match_list(query_list) #print("package sources",package_sources) package = package_sources[0] # # do verifications of data package # # # data_structures = package["data_structures"] generate_handlers = Generate_Handlers(package, qs) data_structures = package["data_structures"] job_queue = generate_handlers.construct_job_queue_client( data_structures["IRRIGATION_JOB_SCHEDULING"]) job_queue.delete_all() completion_dictionary = generate_handlers.construct_hash( data_structures["SYSTEM_COMPLETION_DICTIONARY"]) irrigation_control = generate_irrigation_control(redis_site, qs) sched = Irrigation_Schedule_Monitoring(file_server_library, completion_dictionary, job_queue, irrigation_control) action = System_Monitoring(file_server_library, completion_dictionary, job_queue) ntpd = Ntpd() # # Adding chains
def __init__(base_self, self): query_list = [] query_list = self.qs.add_match_relationship( query_list, relationship="SITE", label=self.site_data["site"]) query_list = self.qs.add_match_terminal( query_list, relationship="PACKAGE", property_mask={"name": "IRRIGIGATION_SCHEDULING_CONTROL_DATA"}) package_sets, package_sources = self.qs.match_list(query_list) package = package_sources[0] data_structures = package["data_structures"] generate_handlers = Generate_Handlers(package, self.qs) ds_handlers = {} ds_handlers[ "IRRIGATION_JOB_SCHEDULING"] = generate_handlers.construct_job_queue_client( data_structures["IRRIGATION_JOB_SCHEDULING"]) ds_handlers[ "IRRIGATION_PENDING"] = generate_handlers.construct_job_queue_client( data_structures["IRRIGATION_PENDING"]) ds_handlers[ "IRRIGATION_PAST_ACTIONS"] = generate_handlers.construct_redis_stream_reader( data_structures["IRRIGATION_PAST_ACTIONS"]) query_list = [] query_list = self.qs.add_match_relationship( query_list, relationship="SITE", label=self.site_data["site"]) query_list = self.qs.add_match_terminal( query_list, relationship="PACKAGE", property_mask={"name": "MQTT_DEVICES_DATA"}) package_sets, package_sources = self.qs.match_list(query_list) package = package_sources[0] generate_handlers = Generate_Handlers(package, self.qs) data_structures = package["data_structures"] ds_handlers[ "MQTT_SENSOR_QUEUE"] = generate_handlers.construct_redis_stream_reader( data_structures["MQTT_SENSOR_QUEUE"]) irrigation_control = generate_irrigation_control( self.site_data, self.qs) query_list = [] query_list = self.qs.add_match_relationship( query_list, relationship="SITE", label=self.site_data["site"]) query_list = self.qs.add_match_relationship( query_list, relationship="PLC_MEASUREMENTS") query_list = self.qs.add_match_terminal( query_list, relationship="PACKAGE", property_mask={"name": "PLC_MEASUREMENTS_PACKAGE"}) package_sets, package_sources = self.qs.match_list(query_list) package = package_sources[0] data_structures = package["data_structures"] generate_handlers = Generate_Handlers(package, self.qs) ds_handlers[ "PLC_MEASUREMENTS_STREAM"] = generate_handlers.construct_redis_stream_reader( data_structures["PLC_MEASUREMENTS_STREAM"]) irrigation_control = generate_irrigation_control( self.site_data, self.qs) Load_Irrigation_Pages(self.app, self.auth, render_template, request, file_server_library=self.file_server_library, handlers=ds_handlers, irrigation_control=irrigation_control, subsystem_name="Irrigation_Control", path="irrigation_control", url_rule_class=self.url_rule_class)