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 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 _add_session(self, data, snippet_type): from notebook.connectors.hiveserver2 import HS2Api # Cyclic dependency if snippet_type not in [_s['type'] for _s in data['sessions']]: data['sessions'].append({ 'type': snippet_type, 'properties': HS2Api.get_properties(snippet_type), 'id': None } )
def _add_session(self, data, snippet_type): from notebook.connectors.hiveserver2 import HS2Api # Cyclic dependency if snippet_type not in [_s['type'] for _s in data['sessions']]: data['sessions'].append({ 'type': snippet_type, 'properties': HS2Api.get_properties(snippet_type), 'id': None } )
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