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