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_server = generate_handlers.construct_job_queue_server( data_structures["MQTT_PUBLISH_QUEUE"]) 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="MQTT_SERVER") host_sets, host_sources = qs.match_list(query_list) self.mqtt_server_data = host_sources[0] self.client = mqtt.Client(client_id="", clean_session=True, userdata=None, transport="tcp") self.client.on_connect = self.on_connect self.client.on_disconnect = self.on_disconnect self.client.on_publish = self.on_publish self.connection_flag = False print("connection attempting") while self.connection_flag == False: try: self.client.connect(self.mqtt_server_data["HOST"], self.mqtt_server_data["PORT"], 60) except: time.sleep(5) else: self.connection_flag = True print("connection achieved") self.client.loop_start() self.server_job_queue()
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"]) ds_handlers["IRRIGATION_TIME_HISTORY"] = generate_handlers.construct_hash( data_structures["IRRIGATION_TIME_HISTORY"]) ds_handlers[
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": "CLOUD_SERVICE_QUEUE_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) local_queue = generate_handlers.construct_job_queue_server( data_structures["CLOUD_JOB_SERVER"]) 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="CLOUD_SERVICE_HOST_INTERFACE") query_list = qs.add_match_terminal(query_list, relationship="HOST_INFORMATION") host_sets, host_sources = qs.match_list(query_list) host_source = host_sources[0] remote_redis_handle = redis.StrictRedis(host=host_source["host"],