예제 #1
0
    def fetch_result(self, notebook, snippet, rows, start_over):
        api = self.get_api()
        session = _get_snippet_session(notebook, snippet)
        cell = snippet['result']['handle']['id']

        response = self._fetch_result(api, session, cell, start_over)
        return response
예제 #2
0
파일: spark_shell.py 프로젝트: ShahabT/hue
  def download(self, notebook, snippet, format):
    try:
      api = get_spark_api(self.user)
      session = _get_snippet_session(notebook, snippet)
      cell = snippet['result']['handle']['id']

      return spark_download(api, session['id'], cell, format)
    except Exception, e:
      raise PopupException(e)
예제 #3
0
파일: spark_shell.py 프로젝트: igloosec/hue
  def download(self, notebook, snippet, format):
    try:
      api = get_spark_api(self.user)
      session = _get_snippet_session(notebook, snippet)
      cell = snippet['result']['handle']['id']

      return spark_download(api, session['id'], cell, format)
    except Exception, e:
      raise PopupException(e)
예제 #4
0
  def get_log(self, notebook, snippet, startFrom=0, size=None):
    response = {'status': 0}
    api = self.get_api()
    session = _get_snippet_session(notebook, snippet)

    session = self._handle_session_health_check(session)
    try:
      response = api.get_log(session['id'], startFrom=startFrom, size=size)
    except RestException as e:
      message = force_unicode(str(e)).lower()
      LOG.debug(message)

    return response
예제 #5
0
  def cancel(self, notebook, snippet):
    api = self.get_api()
    session = _get_snippet_session(notebook, snippet)

    session = self._handle_session_health_check(session)

    try:
      response = api.cancel(session['id'])
    except Exception as e:
      message = force_unicode(str(e)).lower()
      LOG.debug(message)

    return {'status': 0}
예제 #6
0
파일: spark_shell.py 프로젝트: ShahabT/hue
  def fetch_result(self, notebook, snippet, rows, start_over):
    api = get_spark_api(self.user)
    session = _get_snippet_session(notebook, snippet)
    cell = snippet['result']['handle']['id']

    try:
      response = api.fetch_data(session['id'], cell)
    except Exception, e:
      message = force_unicode(str(e)).lower()
      if 'session not found' in message:
        raise SessionExpired(e)
      else:
        raise e
예제 #7
0
파일: spark_shell.py 프로젝트: igloosec/hue
  def fetch_result(self, notebook, snippet, rows, start_over):
    api = get_spark_api(self.user)
    session = _get_snippet_session(notebook, snippet)
    cell = snippet['result']['handle']['id']

    try:
      response = api.fetch_data(session['id'], cell)
    except Exception, e:
      message = force_unicode(str(e)).lower()
      if 'session not found' in message:
        raise SessionExpired(e)
      else:
        raise e
예제 #8
0
  def fetch_result(self, notebook, snippet, rows, start_over):
    api = self.get_api()
    session = _get_snippet_session(notebook, snippet)
    cell = snippet['result']['handle']['id']

    session = self._handle_session_health_check(session)

    response = self._fetch_result(api, session, cell, start_over)

    # Close unused sessions if there are any.
    # Clean here since /fetch_result_data is called only once after the /execute call
    if self._get_session_info_from_user():
      self._close_unused_sessions(snippet.get('type'))

    return response
예제 #9
0
파일: spark_shell.py 프로젝트: ShahabT/hue
  def execute(self, notebook, snippet):
    api = get_spark_api(self.user)
    session = _get_snippet_session(notebook, snippet)

    try:
      response = api.submit_statement(session['id'], snippet['statement'])
      return {
          'id': response['id'],
          'has_result_set': True,
      }
    except Exception, e:
      message = force_unicode(str(e)).lower()
      if 'session not found' in message or 'connection refused' in message or 'session is in state busy' in message:
        raise SessionExpired(e)
      else:
        raise e
예제 #10
0
    def check_status(self, notebook, snippet):
        api = self.get_api()
        session = _get_snippet_session(notebook, snippet)
        cell = snippet['result']['handle']['id']

        try:
            response = api.fetch_data(session['id'], cell)
            return {
                'status': response['state'],
            }
        except Exception as e:
            message = force_unicode(str(e)).lower()
            if re.search("session ('\d+' )?not found", message):
                raise SessionExpired(e)
            else:
                raise e
예제 #11
0
파일: spark_shell.py 프로젝트: igloosec/hue
  def check_status(self, notebook, snippet):
    api = get_spark_api(self.user)
    session = _get_snippet_session(notebook, snippet)
    cell = snippet['result']['handle']['id']

    try:
      response = api.fetch_data(session['id'], cell)
      return {
          'status': response['state'],
      }
    except Exception, e:
      message = force_unicode(str(e)).lower()
      if 'session not found' in message:
        raise SessionExpired(e)
      else:
        raise e
예제 #12
0
파일: spark_shell.py 프로젝트: ShahabT/hue
  def check_status(self, notebook, snippet):
    api = get_spark_api(self.user)
    session = _get_snippet_session(notebook, snippet)
    cell = snippet['result']['handle']['id']

    try:
      response = api.fetch_data(session['id'], cell)
      return {
          'status': response['state'],
      }
    except Exception, e:
      message = force_unicode(str(e)).lower()
      if 'session not found' in message:
        raise SessionExpired(e)
      else:
        raise e
예제 #13
0
파일: spark_shell.py 프로젝트: igloosec/hue
  def execute(self, notebook, snippet):
    api = get_spark_api(self.user)
    session = _get_snippet_session(notebook, snippet)

    try:
      response = api.submit_statement(session['id'], snippet['statement'])
      return {
          'id': response['id'],
          'has_result_set': True,
      }
    except Exception, e:
      message = force_unicode(str(e)).lower()
      if 'session not found' in message or 'connection refused' in message or 'session is in state busy' in message:
        raise SessionExpired(e)
      else:
        raise e
예제 #14
0
    def download(self,
                 notebook,
                 snippet,
                 format,
                 user_agent=None,
                 max_rows=None,
                 store_data_type_in_header=False):
        try:
            api = get_spark_api(self.user)
            session = _get_snippet_session(notebook, snippet)
            cell = snippet['result']['handle']['id']

            return spark_download(api,
                                  session['id'],
                                  cell,
                                  format,
                                  user_agent=None)
        except Exception, e:
            raise PopupException(e)
예제 #15
0
    def execute(self, notebook, snippet):
        api = self.get_api()
        session = _get_snippet_session(notebook, snippet)

        try:
            response = api.submit_statement(session['id'],
                                            snippet['statement'])
            return {
                'id': response['id'],
                'has_result_set': True,
                'sync': False
            }
        except Exception as e:
            message = force_unicode(str(e)).lower()
            if re.search(
                    "session ('\d+' )?not found", message
            ) or 'connection refused' in message or 'session is in state busy' in message:
                raise SessionExpired(e)
            else:
                raise e
예제 #16
0
    def fetch_result(self, notebook, snippet, rows, start_over):
        api = self.get_api()
        session = _get_snippet_session(notebook, snippet)
        cell = snippet['result']['handle']['id']

        try:
            response = api.fetch_data(session['id'], cell)
        except Exception as e:
            message = force_unicode(str(e)).lower()
            if re.search("session ('\d+' )?not found", message):
                raise SessionExpired(e)
            else:
                raise e

        content = response['output']

        if content['status'] == 'ok':
            data = content['data']
            images = []

            try:
                table = data['application/vnd.livy.table.v1+json']
            except KeyError:
                try:
                    images = [data['image/png']]
                except KeyError:
                    images = []
                if 'application/json' in data:
                    result = data['application/json']
                    data = result['data']
                    meta = [{
                        'name': field['name'],
                        'type': field['type'],
                        'comment': ''
                    } for field in result['schema']['fields']]
                    type = 'table'
                else:
                    data = [[data['text/plain']]]
                    meta = [{
                        'name': 'Header',
                        'type': 'STRING_TYPE',
                        'comment': ''
                    }]
                    type = 'text'
            else:
                data = table['data']
                headers = table['headers']
                meta = [{
                    'name': h['name'],
                    'type': h['type'],
                    'comment': ''
                } for h in headers]
                type = 'table'

            # Non start_over not supported
            if not start_over:
                data = []

            return {'data': data, 'images': images, 'meta': meta, 'type': type}
        elif content['status'] == 'error':
            tb = content.get('traceback', None)

            if tb is None or not tb:
                msg = content.get('ename', 'unknown error')

                evalue = content.get('evalue')
                if evalue is not None:
                    msg = '%s: %s' % (msg, evalue)
            else:
                msg = ''.join(tb)

            raise QueryError(msg)
예제 #17
0
파일: spark_shell.py 프로젝트: igloosec/hue
  def cancel(self, notebook, snippet):
    api = get_spark_api(self.user)
    session = _get_snippet_session(notebook, snippet)
    response = api.cancel(session['id'])

    return {'status': 0}
예제 #18
0
파일: spark_shell.py 프로젝트: igloosec/hue
  def get_log(self, notebook, snippet, startFrom=0, size=None):
    api = get_spark_api(self.user)
    session = _get_snippet_session(notebook, snippet)

    return api.get_log(session['id'], startFrom=startFrom, size=size)
예제 #19
0
  def execute(self, notebook, snippet):
    api = self.get_api()
    session = _get_snippet_session(notebook, snippet)

    response = self._execute(api, session, snippet.get('type'), snippet['statement'])
    return response
예제 #20
0
파일: spark_shell.py 프로젝트: ShahabT/hue
  def get_log(self, notebook, snippet, startFrom=0, size=None):
    api = get_spark_api(self.user)
    session = _get_snippet_session(notebook, snippet)

    return api.get_log(session['id'], startFrom=startFrom, size=size)
예제 #21
0
파일: spark_shell.py 프로젝트: ShahabT/hue
  def cancel(self, notebook, snippet):
    api = get_spark_api(self.user)
    session = _get_snippet_session(notebook, snippet)
    response = api.cancel(session['id'])

    return {'status': 0}