コード例 #1
0
ファイル: tasks.py プロジェクト: xuejunshuang/hue
def execute(*args, **kwargs):
    notebook = args[0]
    snippet = args[1]
    kwargs['max_rows'] = TASK_SERVER.FETCH_RESULT_LIMIT.get()
    _patch_status(notebook)

    task = download_to_file.apply_async(args=args,
                                        kwargs=kwargs,
                                        task_id=notebook['uuid'])

    should_close, resp = get_current_statement(
        snippet
    )  # This redoes some of the work in api.execute. Other option is to pass statement, but then we'd have to modify notebook.api.
    # if should_close: #front end already calls close_statement for multi statement execution no need to do here.
    # In addition, we'd have to figure out what was the previous guid.

    resp.update({
        'sync': False,
        'has_result_set': True,
        'modified_row_count': 0,
        'guid': '',
        'result': {
            'has_more': True,
            'data': [],
            'meta': [],
            'type': 'table'
        }
    })
    return resp
コード例 #2
0
def query_risk(request):
    response = {'status': -1}

    interface = request.POST.get('interface', OPTIMIZER.INTERFACE.get())
    connector = json.loads(request.POST.get('connector', '{}'))
    if request.POST.get('query'):
        # Via API
        query = json.loads(request.POST.get('query'))
        source_platform = request.POST.get('sourcePlatform')
        db_name = request.POST.get('dbName')
    else:
        # Via Editor
        snippet = json.loads(request.POST.get('snippet'))
        should_close, resp = get_current_statement(snippet)
        query = resp['statement']
        source_platform = snippet['connector']['dialect']
        db_name = snippet['database']

    api = get_api(request.user, interface)

    data = api.query_risk(query=query,
                          source_platform=source_platform,
                          db_name=db_name,
                          connector=connector)

    if data:
        response['status'] = 0
        response['query_risk'] = data
    else:
        response['message'] = 'Optimizer: %s' % data

    return JsonResponse(response)
コード例 #3
0
ファイル: base.py プロジェクト: Gamatek/hue
  def _get_current_statement(self, notebook, snippet):
    should_close, resp = get_current_statement(snippet)
    if should_close:
      try:
        self.close_statement(notebook, snippet)  # Close all the time past multi queries
      except:
        LOG.warn('Could not close previous multiquery query')

    return resp