def post(self, request, args: str = None): try: id = request.data['id'] info = json.loads(request.data['opid']) except KeyError as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) else: try: sql = [] for i in info: info = SqlOrder.objects.raw( "select core_sqlorder.*,core_databaselist.connection_name,\ core_databaselist.computer_room from core_sqlorder INNER JOIN \ core_databaselist on core_sqlorder.bundle_id = core_databaselist.id \ WHERE core_sqlorder.id = %s" % id) data = util.ser(info) _data = SqlRecord.objects.filter(sequence=i).first() roll = rollback.rollbackSQL(db=_data.backup_dbname, opid=i) link = _data.backup_dbname + '.' + roll spa = rollback.roll(backdb=link, opid=i) sql.append(spa) _h = sorted([i[0][0] for i in sql]) return Response({'data': data[0], 'sql': _h, 'type': 1}) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500)
def post(self, request, args: str = None): ''' :argument 当工单执行后sql回滚功能接口api :param args: 根据获得order_id 返回对应的回滚sql :return: {'data': data[0], 'sql': rollback_sql, 'type': 1} ''' try: order_id = request.data['id'] tmp = list(set(json.loads(request.data['opid']))) info = [x for x in tmp if x.find("0_0_") == -1] except KeyError as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) else: try: sql = [] rollback_sql = [] dataset = SqlOrder.objects.raw( "select core_sqlorder.*,core_databaselist.connection_name,\ core_databaselist.computer_room from core_sqlorder INNER JOIN \ core_databaselist on core_sqlorder.bundle_id = core_databaselist.id \ WHERE core_sqlorder.id = %s" % order_id) data = util.ser(dataset) for i in info: _data = SqlRecord.objects.filter(sequence=i).first() roll = rollback.rollbackSQL(db=_data.backup_dbname, opid=i) link = _data.backup_dbname + '.' + roll['tablename'] sql.append(rollback.roll(backdb=link, opid=i)) for i in sql: for c in i: rollback_sql.append(c['rollback_statement']) rollback_sql = sorted(rollback_sql) if rollback_sql == []: return HttpResponse(status=500) rollback_sql = [{'sql': x} for x in rollback_sql] return Response({ 'data': data[0], 'sql': rollback_sql, 'type': 1 }) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500)
def post(self, request, args: str = None): ''' :argument 当工单执行后sql回滚功能接口api :param args: 根据获得order_id 返回对应的回滚sql :return: {'data': data[0], 'sql': rollback_sql, 'type': 1} ''' try: order_id = request.data['id'] info = list(set(json.loads(request.data['opid']))) except KeyError as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500) else: try: sql = [] rollback_sql = [] for i in info: info = SqlOrder.objects.raw( "select core_sqlorder.*,core_databaselist.connection_name,\ core_databaselist.computer_room from core_sqlorder INNER JOIN \ core_databaselist on core_sqlorder.bundle_id = core_databaselist.id \ WHERE core_sqlorder.id = %s" % order_id) data = util.ser(info) _data = SqlRecord.objects.filter(sequence=i).first() roll = rollback.rollbackSQL(db=_data.backup_dbname, opid=i) link = _data.backup_dbname + '.' + roll['tablename'] sql.append(rollback.roll(backdb=link, opid=i)) for i in sql: for c in i: rollback_sql.append(c['rollback_statement']) rollback_sql = sorted(rollback_sql) if rollback_sql == []: return HttpResponse(status=500) rollback_sql = [{'sql': x} for x in rollback_sql] return Response({'data': data[0], 'sql': rollback_sql, 'type': 1}) except Exception as e: CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}') return HttpResponse(status=500)