class Token:
    def __init__(self):
        self.repo = Repository(METRICS_NETWORK_ID)

    def process_token(self, daemon_id):
        print("process_token::daemon_id: ", daemon_id);
        result = {}
        token = secrets.token_urlsafe(64)
        exist_info = self.daemon_id_exist(daemon_id=daemon_id)
        if exist_info.get('status', False):
            qry = "UPDATE daemon_token set token = %s WHERE daemon_id = %s "
            updt_info = self.repo.execute(qry, [token, daemon_id])
            print(updt_info)
            if updt_info[0] > 0:
                return {"token": token}
            else:
                return {"error": "unable to generate token"}
        ctime_epoch = calendar.timegm(time.gmtime())
        expiration = ctime_epoch + (6 * 60 * 60)
        qry = "INSERT INTO daemon_token (daemon_id, token, expiration, row_updated, row_created) " \
              "VALUES(%s, %s, %s, %s, %s)"
        res = self.repo.execute(qry, [daemon_id, token, expiration, dt.utcnow(), dt.utcnow()])
        if len(res) > 0 and res[0] > 0:
            result["token"] = token
        return result

    def daemon_id_exist(self, daemon_id):
        print("daemon_id_exist::daemon_id: ", daemon_id);
        qry = "SELECT * FROM daemon_token WHERE daemon_id = %s"
        res = self.repo.execute(qry, [daemon_id])
        if len(res) > 0:
            return {'status': True, "token": res[0]['token']}
        return {'status': False}
class Metrics:
    def __init__(self):
        self.repo = Repository(METRICS_NETWORK_ID)

    def handle_request_type(self, params):
        try:
            version = params.get('version', '')
            insrt_dm_rq_sts = "INSERT INTO daemon_request_stats (ethereum_json_rpc_endpoint, group_id, input_data_size, " \
                              "organization_id, registry_address_key, request_id, request_received_time, service_id, " \
                              "service_method, version, row_created, row_updated) " \
                              "VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
            dm_req_params = (params['ethereum_json_rpc_endpoint'],
                             params['group_id'], params['input_data_size'],
                             params['organization_id'],
                             params['registry_address_key'],
                             params['request_id'],
                             params['request_received_time'][:19],
                             params['service_id'], params['service_method'],
                             version, dt.utcnow(), dt.utcnow())
            self.repo.execute(insrt_dm_rq_sts, dm_req_params)
        except Exception as e:
            print(repr(e))
            raise e

    def handle_response_type(self, params):
        try:
            version = params.get('version', '')
            insrt_dm_rs_sts = "INSERT INTO daemon_response_stats (error_message, ethereum_json_rpc_endpoint, group_id, " \
                              "organization_id, registry_address_key, request_id, request_received_time, response_code, " \
                              "response_sent_time, response_time, service_id, service_method, version, row_created, " \
                              "row_updated) " \
                              "VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
            dm_rs_params = (params['error_message'],
                            params['ethereum_json_rpc_endpoint'],
                            params['group_id'], params['organization_id'],
                            params['registry_address_key'],
                            params['request_id'],
                            params['request_received_time'][:19],
                            params['response_code'],
                            params['response_sent_time'][:19],
                            params['response_time'], params['service_id'],
                            params['service_method'], version, dt.utcnow(),
                            dt.utcnow())
            self.repo.execute(insrt_dm_rs_sts, dm_rs_params)
        except Exception as e:
            print(repr(e))
            raise e
示例#3
0
class Token:
    def __init__(self):
        self.repo = Repository(METRICS_NETWORK_ID)

    def validate_token(self, daemon_id, token):
        print("validate_token::daemon_id: ", daemon_id)
        qry = "SELECT * FROM daemon_token WHERE daemon_id = %s and token = %s "
        res = self.repo.execute(qry, [daemon_id, token])
        if len(res) > 0:
            return {'validated': True}
        return {'validated': False}