Exemple #1
0
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
Exemple #2
0
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
Exemple #3
0
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
Exemple #4
0
  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
      }
    )
Exemple #5
0
  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
      }
    )
Exemple #6
0
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
Exemple #7
0
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
Exemple #8
0
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
Exemple #9
0
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
Exemple #10
0
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