def editor(request): editor_id = request.GET.get('editor') editor_type = request.GET.get('type', 'hive') if editor_id: editor = Notebook(document=Document2.objects.get(id=editor_id)) else: editor = Notebook() data = editor.get_data() data['name'] = 'Untitled %s Query' % editor_type.title() data['type'] = 'query-%s' % editor_type editor.data = json.dumps(data) autocomplete_base_url = '' try: autocomplete_base_url = reverse('beeswax:api_autocomplete_databases', kwargs={}) except: LOG.exception('failed to get autocomplete base url') return render('editor.mako', request, { 'notebooks_json': json.dumps([editor.get_data()]), 'options_json': json.dumps({ 'languages': [{"name": "%s SQL" % editor_type.title(), "type": editor_type}], 'mode': 'editor', }), 'editor_type': editor_type, 'autocomplete_base_url': autocomplete_base_url, })
def editor(request): editor_id = request.GET.get('editor') editor_type = request.GET.get('type', 'hive') if editor_id: editor = Notebook(document=Document2.objects.get(id=editor_id)) editor_type = editor.get_data()['type'].rsplit('-', 1)[-1] else: editor = Notebook() data = editor.get_data() data['name'] = 'Untitled %s Query' % editor_type.title() data['type'] = 'query-%s' % editor_type editor.data = json.dumps(data) return render( 'editor.mako', request, { 'notebooks_json': json.dumps([editor.get_data()]), 'options_json': json.dumps({ 'languages': [{ "name": "%s SQL" % editor_type.title(), "type": editor_type }], 'mode': 'editor', }), 'editor_type': editor_type, })
def create_notebook(request): response = {'status': -1} editor_type = request.POST.get('type', 'notebook') gist_id = request.POST.get('gist') directory_uuid = request.POST.get('directory_uuid') if gist_id: gist_doc = _get_gist_document(uuid=gist_id) statement = json.loads(gist_doc.data)['statement'] editor = make_notebook(name='', description='', editor_type=editor_type, statement=statement, is_presentation_mode=True) else: editor = Notebook() data = editor.get_data() if editor_type != 'notebook': data['name'] = '' data[ 'type'] = 'query-%s' % editor_type # TODO: Add handling for non-SQL types data['directoryUuid'] = directory_uuid editor.data = json.dumps(data) response['notebook'] = editor.get_data() response['status'] = 0 return JsonResponse(response)
def make_notebook2(name='Browse', description='', is_saved=False, snippets=None): from notebook.connectors.hiveserver2 import HS2Api editor = Notebook() _snippets = [] for snippet in snippets: default_properties = {'files': [], 'functions': [], 'settings': []} default_properties.update(snippet['properties']) snippet['properties'] = default_properties _snippets.append(snippet) data = { 'name': name, 'uuid': str(uuid.uuid4()), 'type': 'notebook', 'description': description, 'sessions': [ { 'type': _snippet['type'], 'properties': HS2Api.get_properties(snippet['type']), 'id': None } for _snippet in _snippets # Non unique types currently ], 'selectedSnippet': _snippets[0]['type'], 'showHistory': False, 'isSaved': is_saved, 'snippets': [{ 'status': _snippet.get('status', 'ready'), 'id': str(uuid.uuid4()), 'statement_raw': _snippet.get('statement', ''), 'statement': _snippet.get('statement', ''), 'type': _snippet.get('type'), 'properties': _snippet['properties'], 'name': name, 'database': _snippet.get('database'), 'result': { 'handle': {} }, 'variables': [] } for _snippet in _snippets] } editor.data = json.dumps(data) return editor
def editor(request): editor_id = request.GET.get('editor') editor_type = request.GET.get('type', 'hive') if editor_id: # Open existing saved editor document editor = Notebook(document=Document2.objects.get(id=editor_id)) editor_type = editor.get_data()['type'].rsplit('-', 1)[-1] editor = upgrade_session_properties(request, notebook=editor) else: # Create new editor editor = Notebook() data = editor.get_data() data['name'] = '' data['type'] = 'query-%s' % editor_type # TODO: Add handling for non-SQL types editor.data = json.dumps(data) return render('editor.mako', request, { 'notebooks_json': json.dumps([editor.get_data()]), 'options_json': json.dumps({ 'languages': [{"name": "%s SQL" % editor_type.title(), "type": editor_type}], 'mode': 'editor', 'is_optimizer_enabled': has_optimizer(), }), 'editor_type': editor_type, })
def editor(request): editor_id = request.GET.get('editor') if editor_id: editor = Notebook(document=Document2.objects.get(id=editor_id)) else: editor = Notebook() data = editor.get_data() data['name'] = 'Hive SQL Editor' data['snippets'] = json.loads('[{"id":"c111cbb4-f475-4050-c5a1-02df6c31e3d8","name":"","type":"hive","editorMode":"text/x-hiveql","statement_raw":"Example: SELECT * FROM tablename, or press CTRL + space","codemirrorSize":100,"status":"ready","properties":{"settings":[],"files":[]},"variables":[],"variableNames":[],"statement":"Example: SELECT * FROM tablename, or press CTRL + space","result":{"id":"149347d9-3ae7-8d06-4cc8-d4bce5e72dc8","type":"table","hasResultset":true,"handle":{},"meta":[],"cleanedMeta":[],"fetchedOnce":false,"startTime":"2015-07-17T20:38:21.970Z","endTime":"2015-07-17T20:38:21.970Z","executionTime":0,"cleanedNumericMeta":[],"cleanedStringMeta":[],"cleanedDateTimeMeta":[],"data":[],"logs":"","logLines":0,"errors":"","hasSomeResults":false},"showGrid":true,"showChart":false,"showLogs":false,"progress":0,"size":12,"offset":0,"isLoading":false,"klass":"snippet card card-widget","editorKlass":"editor span12","resultsKlass":"results hive","errorsKlass":"results hive alert alert-error","chartType":"bars","chartSorting":"none","chartYMulti":[],"chartData":[],"tempChartOptions":{},"isLeftPanelVisible":false,"codeVisible":true,"settingsVisible":false,"checkStatusTimeout":null}]') editor.data = json.dumps(data) autocomplete_base_url = '' try: autocomplete_base_url = reverse('beeswax:api_autocomplete_databases', kwargs={}) except: LOG.exception('failed to get autocomplete base url') return render('editor.mako', request, { 'notebooks_json': json.dumps([editor.get_data()]), 'options_json': json.dumps({ 'languages': [{"name": "Hive SQL", "type": "hive"}], 'snippet_placeholders' : { 'scala': _('Example: 1 + 1, or press CTRL + space'), 'python': _('Example: 1 + 1, or press CTRL + space'), 'impala': _('Example: SELECT * FROM tablename, or press CTRL + space'), 'hive': _('Example: SELECT * FROM tablename, or press CTRL + space'), 'text': _('<h2>This is a text snippet</h2>Type your text here') } }), 'autocomplete_base_url': autocomplete_base_url, })
def editor(request): editor_id = request.GET.get('editor') editor_type = request.GET.get('type', 'hive') if editor_id: # Open existing saved editor document editor = Notebook(document=Document2.objects.get(id=editor_id)) editor_type = editor.get_data()['type'].rsplit('-', 1)[-1] editor = upgrade_session_properties(request, notebook=editor) else: # Create new editor editor = Notebook() data = editor.get_data() data['name'] = '' data[ 'type'] = 'query-%s' % editor_type # TODO: Add handling for non-SQL types editor.data = json.dumps(data) return render( 'editor.mako', request, { 'notebooks_json': json.dumps([editor.get_data()]), 'options_json': json.dumps({ 'languages': [{ "name": "%s SQL" % editor_type.title(), "type": editor_type }], 'mode': 'editor', 'is_optimizer_enabled': has_optimizer(), }), 'editor_type': editor_type, })
def make_notebook2(name='Browse', description='', is_saved=False, snippets=None): from notebook.connectors.hiveserver2 import HS2Api editor = Notebook() _snippets = [] for snippet in snippets: default_properties = { 'files': [], 'functions': [], 'settings': [] } if snippet['type'] == 'hive': pass elif snippet['type'] == 'impala': pass elif snippet['type'] == 'java': pass _snippets.append(snippet) print _snippets data = { 'name': name, 'uuid': str(uuid.uuid4()), 'description': description, 'sessions': [ { 'type': _snippet['type'], 'properties': HS2Api.get_properties(snippet['type']), 'id': None } for _snippet in _snippets # Non unique types currently ], 'selectedSnippet': _snippets[0]['type'], 'type': 'notebook', 'showHistory': False, 'isSaved': is_saved, 'snippets': [ { 'status': _snippet.get('status', 'ready'), 'id': str(uuid.uuid4()), 'statement_raw': _snippet.get('statement', ''), 'statement': _snippet.get('statement', ''), 'type': _snippet.get('type'), 'properties': _snippet.properties, 'name': name, 'database': _snippet.get('database'), 'result': {} } for _snippet in _snippets ] } editor.data = json.dumps(data) return editor
def make_notebook(name='Browse', description='', editor_type='hive', statement='', status='ready', files=None, functions=None, settings=None): from notebook.connectors.hiveserver2 import HS2Api editor = Notebook() properties = HS2Api.get_properties(editor_type) if editor_type == 'hive': if files is not None: _update_property_value(properties, 'files', files) if functions is not None: _update_property_value(properties, 'functions', functions) if settings is not None: _update_property_value(properties, 'settings', settings) elif editor_type == 'impala': if settings is not None: _update_property_value(properties, 'files', files) editor.data = json.dumps({ 'name': name, 'description': description, 'sessions': [ { 'type': editor_type, 'properties': properties, 'id': None } ], 'selectedSnippet': editor_type, 'type': 'query-%s' % editor_type, 'showHistory': True, 'snippets': [ { 'status': status, 'id': str(uuid.uuid4()), 'statement_raw': statement, 'statement': statement, 'type': editor_type, 'properties': { 'files': [] if files is None else files, 'functions': [] if functions is None else functions, 'settings': [] if settings is None else settings }, 'name': name, 'database': 'default', 'result': {} } ] }) return editor
def browse(request, database, table): editor_type = request.GET.get('type', 'hive') snippet = {'type': editor_type} sql_select = get_api(request.user, snippet, request.fs, request.jt).get_select_star_query( snippet, database, table) editor = Notebook() editor.data = json.dumps({ 'description': '', 'sessions': [{ 'type': 'hive', 'properties': [], 'id': None }], 'selectedSnippet': 'hive', 'type': 'query-%s' % editor_type, 'snippets': [{ 'status': 'ready-execute', 'id': 'e8b323b3-88ef-3a84-6264-af11fa5fbefb', 'statement_raw': sql_select, 'statement': sql_select, 'type': editor_type, 'properties': { 'files': [], 'settings': [] }, 'name': 'Browse', 'database': 'default', 'result': {} }], 'name': 'Browse' }) return render( 'editor.mako', request, { 'notebooks_json': json.dumps([editor.get_data()]), 'options_json': json.dumps({ 'languages': [{ "name": "%s SQL" % editor_type.title(), "type": editor_type }], 'mode': 'editor', }), 'editor_type': editor_type, })
def browse(request, database, table): editor_type = request.GET.get('type', 'hive') snippet = {'type': editor_type} sql_select = get_api(request.user, snippet, request.fs, request.jt).get_select_star_query(snippet, database, table) editor = Notebook() editor.data = json.dumps({ 'description':'', 'sessions':[ { 'type':'hive', 'properties':[ ], 'id':None } ], 'selectedSnippet':'hive', 'type': 'query-%s' % editor_type, 'snippets':[ { 'status':'ready-execute', 'id':'e8b323b3-88ef-3a84-6264-af11fa5fbefb', 'statement_raw': sql_select, 'statement': sql_select, 'type': editor_type, 'properties':{ 'files':[ ], 'settings':[ ] }, 'name': 'Browse', 'database':'default', 'result':{ } } ], 'name':'Browse' }) return render('editor.mako', request, { 'notebooks_json': json.dumps([editor.get_data()]), 'options_json': json.dumps({ 'languages': [{"name": "%s SQL" % editor_type.title(), "type": editor_type}], 'mode': 'editor', }), 'editor_type': editor_type, })
def editor(request): editor_id = request.GET.get('editor') if editor_id: editor = Notebook(document=Document2.objects.get(id=editor_id)) else: editor = Notebook() data = editor.get_data() data['name'] = 'Hive SQL Editor' data['snippets'] = json.loads( '[{"id":"c111cbb4-f475-4050-c5a1-02df6c31e3d8","name":"","type":"hive","editorMode":"text/x-hiveql","statement_raw":"Example: SELECT * FROM tablename, or press CTRL + space","codemirrorSize":100,"status":"ready","properties":{"settings":[],"files":[]},"variables":[],"variableNames":[],"statement":"Example: SELECT * FROM tablename, or press CTRL + space","result":{"id":"149347d9-3ae7-8d06-4cc8-d4bce5e72dc8","type":"table","hasResultset":true,"handle":{},"meta":[],"cleanedMeta":[],"fetchedOnce":false,"startTime":"2015-07-17T20:38:21.970Z","endTime":"2015-07-17T20:38:21.970Z","executionTime":0,"cleanedNumericMeta":[],"cleanedStringMeta":[],"cleanedDateTimeMeta":[],"data":[],"logs":"","logLines":0,"errors":"","hasSomeResults":false},"showGrid":true,"showChart":false,"showLogs":false,"progress":0,"size":12,"offset":0,"isLoading":false,"klass":"snippet card card-widget","editorKlass":"editor span12","resultsKlass":"results hive","errorsKlass":"results hive alert alert-error","chartType":"bars","chartSorting":"none","chartYMulti":[],"chartData":[],"tempChartOptions":{},"isLeftPanelVisible":false,"codeVisible":true,"settingsVisible":false,"checkStatusTimeout":null}]' ) editor.data = json.dumps(data) autocomplete_base_url = '' try: autocomplete_base_url = reverse('beeswax:api_autocomplete_databases', kwargs={}) except: LOG.exception('failed to get autocomplete base url') return render( 'editor.mako', request, { 'notebooks_json': json.dumps([editor.get_data()]), 'options_json': json.dumps({ 'languages': [{ "name": "Hive SQL", "type": "hive" }], 'snippet_placeholders': { 'scala': _('Example: 1 + 1, or press CTRL + space'), 'python': _('Example: 1 + 1, or press CTRL + space'), 'impala': _('Example: SELECT * FROM tablename, or press CTRL + space' ), 'hive': _('Example: SELECT * FROM tablename, or press CTRL + space' ), 'text': _('<h2>This is a text snippet</h2>Type your text here') } }), 'autocomplete_base_url': autocomplete_base_url, })
def make_notebook(name='Browse', description='', editor_type='hive', statement='', status='ready', files=None, functions=None, settings=None): editor = Notebook() editor.data = json.dumps({ 'name': name, 'description': description, 'sessions': [{ 'type': editor_type, 'properties': [], 'id': None }], 'selectedSnippet': editor_type, 'type': 'query-%s' % editor_type, 'showHistory': True, 'snippets': [{ 'status': status, 'id': str(uuid.uuid4()), 'statement_raw': statement, 'statement': statement, 'type': editor_type, 'properties': { 'files': [] if files is None else files, 'functions': [] if functions is None else functions, 'settings': [] if settings is None else settings }, 'name': name, 'database': 'default', 'result': {} }] }) return editor
def create_notebook(request): response = {'status': -1} editor_type = request.POST.get('type', 'notebook') directory_uuid = request.POST.get('directory_uuid') editor = Notebook() data = editor.get_data() if editor_type != 'notebook': data['name'] = '' data['type'] = 'query-%s' % editor_type # TODO: Add handling for non-SQL types data['directoryUuid'] = directory_uuid editor.data = json.dumps(data) response['notebook'] = editor.get_data() response['status'] = 0 return JsonResponse(response)
def create_notebook(request): response = {"status": -1} editor_type = request.POST.get("type", "notebook") directory_uuid = request.POST.get("directory_uuid") editor = Notebook() data = editor.get_data() if editor_type != "notebook": data["name"] = "" data["type"] = "query-%s" % editor_type # TODO: Add handling for non-SQL types data["directoryUuid"] = directory_uuid editor.data = json.dumps(data) response["notebook"] = editor.get_data() response["status"] = 0 return JsonResponse(response)
def editor(request): editor_id = request.GET.get('editor') editor_type = request.GET.get('type', 'hive') if editor_id: editor = Notebook(document=Document2.objects.get(id=editor_id)) else: editor = Notebook() data = editor.get_data() data['name'] = 'Unsaved %s Query' % editor_type.title() data['type'] = 'query-%s' % editor_type editor.data = json.dumps(data) return render('editor.mako', request, { 'notebooks_json': json.dumps([editor.get_data()]), 'options_json': json.dumps({ 'languages': [{"name": "%s SQL" % editor_type.title(), "type": editor_type}], 'mode': 'editor', }), 'editor_type': editor_type, })
def create_notebook(request): response = {'status': -1} editor_type = request.POST.get('type', 'notebook') gist_id = request.POST.get('gist') directory_uuid = request.POST.get('directory_uuid') is_blank = request.POST.get('blank', 'false') == 'true' if gist_id: gist_doc = _get_gist_document(uuid=gist_id) statement = json.loads(gist_doc.data)['statement'] editor = make_notebook(name='', description='', editor_type=editor_type, statement=statement, is_presentation_mode=True) else: editor = Notebook() if EXAMPLES.AUTO_OPEN.get() and not is_blank: document = _get_dialect_example(dialect=editor_type) if document: editor = Notebook(document=document) editor = upgrade_session_properties(request, editor) data = editor.get_data() if editor_type != 'notebook': data['name'] = '' data[ 'type'] = 'query-%s' % editor_type # TODO: Add handling for non-SQL types data['directoryUuid'] = directory_uuid editor.data = json.dumps(data) response['notebook'] = editor.get_data() response['status'] = 0 return JsonResponse(response)
def make_notebook(name='Browse', description='', editor_type='hive', statement='', status='ready', files=None, functions=None, settings=None): editor = Notebook() editor.data = json.dumps({ 'name': name, 'description': description, 'sessions': [ { 'type': editor_type, 'properties': [ ], 'id': None } ], 'selectedSnippet': editor_type, 'type': 'query-%s' % editor_type, 'showHistory': True, 'snippets': [ { 'status': status, 'id': str(uuid.uuid4()), 'statement_raw': statement, 'statement': statement, 'type': editor_type, 'properties': { 'files': [] if files is None else files, 'functions': [] if functions is None else functions, 'settings': [] if settings is None else settings }, 'name': name, 'database': 'default', 'result': {} } ] }) return editor
def editor(request): editor_id = request.GET.get('editor') editor_type = request.GET.get('type', 'hive') if editor_id: editor = Notebook(document=Document2.objects.get(id=editor_id)) else: editor = Notebook() data = editor.get_data() data['name'] = 'Untitled %s Query' % editor_type.title() data['type'] = 'query-%s' % editor_type editor.data = json.dumps(data) autocomplete_base_url = '' try: autocomplete_base_url = reverse('beeswax:api_autocomplete_databases', kwargs={}) except: LOG.exception('failed to get autocomplete base url') return render( 'editor.mako', request, { 'notebooks_json': json.dumps([editor.get_data()]), 'options_json': json.dumps({ 'languages': [{ "name": "%s SQL" % editor_type.title(), "type": editor_type }], 'mode': 'editor', }), 'editor_type': editor_type, 'autocomplete_base_url': autocomplete_base_url, })
def editor(request): editor_id = request.GET.get('editor') if editor_id: editor = Notebook(document=Document2.objects.get(id=editor_id)) else: editor = Notebook() data = editor.get_data() data['name'] = 'My SQL query' editor.data = json.dumps(data) autocomplete_base_url = '' try: autocomplete_base_url = reverse('beeswax:api_autocomplete_databases', kwargs={}) except: LOG.exception('failed to get autocomplete base url') return render('editor.mako', request, { 'notebooks_json': json.dumps([editor.get_data()]), 'options_json': json.dumps({ 'languages': [{"name": "Hive SQL", "type": "hive"}] }), 'autocomplete_base_url': autocomplete_base_url, })
def make_notebook(name='Browse', description='', editor_type='hive', statement='', status='ready', files=None, functions=None, settings=None, is_saved=False, database='default', snippet_properties=None, batch_submit=False, on_success_url=None, skip_historify=False, is_task=False, last_executed=-1, is_notebook=False, pub_sub_url=None, result_properties={}, namespace=None, compute=None): ''' skip_historify: do not add the task to the query history. e.g. SQL Dashboard is_task / isManaged: true when being a managed by Hue operation (include_managed=True in document), e.g. exporting query result, dropping some tables ''' from notebook.connectors.hiveserver2 import HS2Api # impala can have compute name appended to the editor_type (impala/dbms.py - get_query_server_config) if editor_type.startswith('impala'): editor_type = 'impala' editor = Notebook() if snippet_properties is None: snippet_properties = {} if editor_type == 'hive': sessions_properties = HS2Api.get_properties(editor_type) if files is not None: _update_property_value(sessions_properties, 'files', files) if functions is not None: _update_property_value(sessions_properties, 'functions', functions) if settings is not None: _update_property_value(sessions_properties, 'settings', settings) elif editor_type == 'impala': sessions_properties = HS2Api.get_properties(editor_type) if settings is not None: _update_property_value(sessions_properties, 'files', files) elif editor_type == 'java': sessions_properties = [] # Java options else: sessions_properties = [] data = { 'name': name, 'uuid': str(uuid.uuid4()), 'description': description, 'sessions': [ { 'type': editor_type, 'properties': sessions_properties, 'id': None } ], 'selectedSnippet': editor_type, 'type': 'notebook' if is_notebook else 'query-%s' % editor_type, 'showHistory': True, 'isSaved': is_saved, 'onSuccessUrl': urllib.quote(on_success_url.encode('utf-8'), safe=SAFE_CHARACTERS_URI) if on_success_url else None, 'pubSubUrl': pub_sub_url, 'skipHistorify': skip_historify, 'isManaged': is_task, 'snippets': [ { 'status': status, 'id': str(uuid.uuid4()), 'statement_raw': statement, 'statement': statement, 'type': editor_type, 'wasBatchExecuted': batch_submit, 'lastExecuted': last_executed, 'properties': { 'files': [] if files is None else files, 'functions': [] if functions is None else functions, 'settings': [] if settings is None else settings }, 'name': name, 'database': database, 'namespace': namespace if namespace else {}, 'compute': compute if compute else {}, 'result': {'handle':{}}, 'variables': [] } ] if not is_notebook else [] } if snippet_properties: data['snippets'][0]['properties'].update(snippet_properties) if result_properties: data['snippets'][0]['result'].update(result_properties) editor.data = json.dumps(data) return editor
def make_notebook(name='Browse', description='', editor_type='hive', statement='', status='ready', files=None, functions=None, settings=None, is_saved=False, database='default', snippet_properties=None, batch_submit=False, on_success_url=None, skip_historify=False, is_task=False, last_executed=-1): ''' skip_historify: do not add the task to the query history. e.g. SQL Dashboard isManaged: true when being a managed by Hue operation (include_managed=True in document), e.g. exporting query result, dropping some tables ''' from notebook.connectors.hiveserver2 import HS2Api editor = Notebook() if snippet_properties is None: snippet_properties = {} if editor_type == 'hive': sessions_properties = HS2Api.get_properties(editor_type) if files is not None: _update_property_value(sessions_properties, 'files', files) if functions is not None: _update_property_value(sessions_properties, 'functions', functions) if settings is not None: _update_property_value(sessions_properties, 'settings', settings) elif editor_type == 'impala': sessions_properties = HS2Api.get_properties(editor_type) if settings is not None: _update_property_value(sessions_properties, 'files', files) elif editor_type == 'java': sessions_properties = [] # Java options else: sessions_properties = [] data = { 'name': name, 'uuid': str(uuid.uuid4()), 'description': description, 'sessions': [{ 'type': editor_type, 'properties': sessions_properties, 'id': None }], 'selectedSnippet': editor_type, 'type': 'query-%s' % editor_type, 'showHistory': True, 'isSaved': is_saved, 'onSuccessUrl': on_success_url, 'skipHistorify': skip_historify, 'isManaged': is_task, 'snippets': [{ 'status': status, 'id': str(uuid.uuid4()), 'statement_raw': statement, 'statement': statement, 'type': editor_type, 'wasBatchExecuted': batch_submit, 'lastExecuted': last_executed, 'properties': { 'files': [] if files is None else files, 'functions': [] if functions is None else functions, 'settings': [] if settings is None else settings }, 'name': name, 'database': database, 'result': { 'handle': {} }, 'variables': [] }] } if snippet_properties: data['snippets'][0]['properties'].update(snippet_properties) editor.data = json.dumps(data) return editor
def make_notebook(name='Browse', description='', editor_type='hive', statement='', status='ready', files=None, functions=None, settings=None, is_saved=False, database='default', snippet_properties=None, batch_submit=False, on_success_url=None): from notebook.connectors.hiveserver2 import HS2Api editor = Notebook() if snippet_properties is None: snippet_properties = {} if editor_type == 'hive': sessions_properties = HS2Api.get_properties(editor_type) if files is not None: _update_property_value(sessions_properties, 'files', files) if functions is not None: _update_property_value(sessions_properties, 'functions', functions) if settings is not None: _update_property_value(sessions_properties, 'settings', settings) elif editor_type == 'impala': sessions_properties = HS2Api.get_properties(editor_type) if settings is not None: _update_property_value(sessions_properties, 'files', files) elif editor_type == 'java': sessions_properties = [] # Java options else: sessions_properties = [] data = { 'name': name, 'uuid': str(uuid.uuid4()), 'description': description, 'sessions': [ { 'type': editor_type, 'properties': sessions_properties, 'id': None } ], 'selectedSnippet': editor_type, 'type': 'query-%s' % editor_type, 'showHistory': True, 'isSaved': is_saved, 'onSuccessUrl': on_success_url, 'snippets': [ { 'status': status, 'id': str(uuid.uuid4()), 'statement_raw': statement, 'statement': statement, 'type': editor_type, 'wasBatchExecuted': batch_submit, 'properties': { 'files': [] if files is None else files, 'functions': [] if functions is None else functions, 'settings': [] if settings is None else settings }, 'name': name, 'database': database, 'result': {'handle':{}}, 'variables': [] } ] } if snippet_properties: data['snippets'][0]['properties'].update(snippet_properties) editor.data = json.dumps(data) return editor
def make_notebook(name='Browse', description='', editor_type='hive', statement='', status='ready', files=None, functions=None, settings=None, is_saved=False, database='default', snippet_properties=None, batch_submit=False): from notebook.connectors.hiveserver2 import HS2Api editor = Notebook() if snippet_properties is None: snippet_properties = {} if editor_type == 'hive': sessions_properties = HS2Api.get_properties(editor_type) if files is not None: _update_property_value(sessions_properties, 'files', files) if functions is not None: _update_property_value(sessions_properties, 'functions', functions) if settings is not None: _update_property_value(sessions_properties, 'settings', settings) elif editor_type == 'impala': sessions_properties = HS2Api.get_properties(editor_type) if settings is not None: _update_property_value(sessions_properties, 'files', files) elif editor_type == 'java': sessions_properties = [] # Java options else: sessions_properties = [] data = { 'name': name, 'uuid': str(uuid.uuid4()), 'description': description, 'sessions': [{ 'type': editor_type, 'properties': sessions_properties, 'id': None }], 'selectedSnippet': editor_type, 'type': 'query-%s' % editor_type, 'showHistory': True, 'isSaved': is_saved, 'snippets': [{ 'status': status, 'id': str(uuid.uuid4()), 'statement_raw': statement, 'statement': statement, 'type': editor_type, 'wasBatchExecuted': batch_submit, 'properties': { 'files': [] if files is None else files, 'functions': [] if functions is None else functions, 'settings': [] if settings is None else settings }, 'name': name, 'database': database, 'result': {}, 'variables': [] }] } if snippet_properties: data['snippets'][0]['properties'].update(snippet_properties) editor.data = json.dumps(data) return editor
def make_notebook(name='Browse', description='', editor_type='hive', statement='', status='ready', files=None, functions=None, settings=None, is_saved=False, database='default'): from notebook.connectors.hiveserver2 import HS2Api editor = Notebook() properties = HS2Api.get_properties(editor_type) if editor_type == 'hive': if files is not None: _update_property_value(properties, 'files', files) if functions is not None: _update_property_value(properties, 'functions', functions) if settings is not None: _update_property_value(properties, 'settings', settings) elif editor_type == 'impala': if settings is not None: _update_property_value(properties, 'files', files) editor.data = json.dumps({ 'name': name, 'description': description, 'sessions': [{ 'type': editor_type, 'properties': properties, 'id': None }], 'selectedSnippet': editor_type, 'type': 'query-%s' % editor_type, 'showHistory': True, 'isSaved': is_saved, 'snippets': [{ 'status': status, 'id': str(uuid.uuid4()), 'statement_raw': statement, 'statement': statement, 'type': editor_type, 'properties': { 'files': [] if files is None else files, 'functions': [] if functions is None else functions, 'settings': [] if settings is None else settings }, 'name': name, 'database': database, 'result': {} }] }) return editor