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
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}