コード例 #1
0
def install_custom_examples():
    if EXAMPLES.AUTO_LOAD.get():
        from desktop.auth.backend import rewrite_user
        from beeswax.management.commands import beeswax_install_examples
        from useradmin.models import install_sample_user

        user = rewrite_user(install_sample_user())

        if has_connectors():
            interpreters = [{
                'type': connector['id'],
                'dialect': connector['dialect']
            } for connector in _get_installed_connectors(category='editor')]
        else:
            interpreters = [
                {
                    'type': interpreter['dialect'],
                    'dialect': interpreter['dialect']
                } for interpreter in get_ordered_interpreters(user)
                # Only for hive/impala currently, would also need to port to Notebook install examples.
                if interpreter['dialect'] in ('hive', 'impala')
            ]

        queries = EXAMPLES.QUERIES.get()
        tables = EXAMPLES.TABLES.get(
        )  # No-op. Only for the saved query samples, not the tables currently.

        LOG.info(
            'Installing custom examples queries: %(queries)s, tables: %(tables)s for dialects %(dialects)s '
            'belonging to user %(user)s' % {
                'queries':
                queries,
                'tables':
                tables,
                'dialects':
                [interpreter['dialect'] for interpreter in interpreters],
                'user':
                user
            })

        result = []

        for interpreter in interpreters:
            successes, errors = beeswax_install_examples.Command().handle(
                dialect=interpreter['dialect'],
                user=user,
                interpreter=interpreter,
                queries=queries,
                tables=tables,
                request=None)
            LOG.info(
                'Dialect %(dialect)s installed samples: %(successes)s, %(errors)s,'
                % {
                    'dialect': interpreter['dialect'],
                    'successes': successes,
                    'errors': errors,
                })
            result.append((successes, errors))

        return result
コード例 #2
0
ファイル: views.py プロジェクト: stantoxt/hue
def install_examples(request):
    response = {'status': -1, 'message': ''}

    if request.method == 'POST':
        try:
            connector = Connector.objects.get(id=request.POST.get('connector'))
            if connector:
                app_name = 'beeswax' if connector.dialect == 'hive' else 'impala'
                db_name = request.POST.get('db_name', 'default')
                interpreter = get_interpreter(
                    connector_type=connector.to_dict()['type'],
                    user=request.user)

                beeswax_install_examples.Command().handle(
                    app_name=app_name,
                    db_name=db_name,
                    user=request.user,
                    interpreter=interpreter)
            else:
                Command().handle(user=request.user)
                response['status'] = 0
        except Exception as err:
            LOG.exception(err)
            response['message'] = str(err)
    else:
        response['message'] = _('A POST request is required.')

    return JsonResponse(response)
コード例 #3
0
def install_examples(request):
  response = {'status': -1, 'message': '', 'errorMessage': ''}

  try:
    connector = Connector.objects.get(id=request.POST.get('connector'))
    if connector:
      dialect = connector.dialect
      db_name = request.POST.get('db_name', 'default')
      interpreter = get_interpreter(connector_type=connector.to_dict()['type'], user=request.user)

      successes, errors = beeswax_install_examples.Command().handle(
          dialect=dialect, db_name=db_name, user=request.user, interpreter=interpreter, request=request
      )
      response['message'] = ' '.join(successes)
      response['errorMessage'] = ' '.join(errors)
      response['status'] = len(errors)
    else:
      Command().handle(user=request.user, dialect=request.POST.get('dialect', 'hive'))
      response['status'] = 0
      response['message'] = _('Examples refreshed')
  except Exception as e:
    msg = 'Error during Editor samples installation'
    LOG.exception(msg)
    response['errorMessage'] = msg + ': ' + str(e)

  return JsonResponse(response)
コード例 #4
0
ファイル: views.py プロジェクト: stantoxt/hue
def install_examples(request):
    response = {'status': -1, 'message': ''}

    if request.method == 'POST':
        try:
            app_name = get_app_name(request)
            db_name = request.POST.get('db_name', 'default')
            connector_id = request.POST.get('connector_id')
            beeswax_install_examples.Command().handle(app_name=app_name,
                                                      db_name=db_name,
                                                      user=request.user)
            response['status'] = 0
        except Exception as err:
            LOG.exception(err)
            response['message'] = str(err)
    else:
        response['message'] = _('A POST request is required.')

    return JsonResponse(response)