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[
Пример #3
0
    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"],