Example #1
0
  def execute_and_watch(self, query, design=None, notify=False):
    """
    Run query and return a QueryHistory object in order to see its progress on a Web page.
    """
    query_statement = query.query['query']
    query_history = QueryHistory.build(
                                owner=self.client.user,
                                query=query_statement,
                                server_host='%(server_host)s' % self.client.query_server,
                                server_port='%(server_port)d' % self.client.query_server,
                                server_name='%(server_name)s' % self.client.query_server,
                                server_type=self.server_type,
                                last_state=QueryHistory.STATE.submitted.index,
                                design=design,
                                notify=notify)
    query_history.save()

    LOG.debug("Made new QueryHistory id %s user %s query: %s..." % (query_history.id, self.client.user, query_history.query[:25]))

    try:
      handle = self.client.query(query)
      if not handle.is_valid():
        msg = _("Server returning invalid handle for query id %(id)d [%(query)s]...") % \
              {'id': query_history.id, 'query': query_statement[:40]}
        raise BeeswaxException(msg)
    except BeeswaxException, ex: # TODO HS2
      LOG.exception(ex)
      # Kind of expected (hql compile/syntax error, etc.)
      if hasattr(ex, 'handle') and ex.handle:
        query_history.server_id = ex.handle.id
        query_history.log_context = ex.handle.log_context
      query_history.save_state(QueryHistory.STATE.failed)
      raise ex
Example #2
0
File: dbms.py Project: shobull/hue
    def execute_query(self, query, design):
        from beeswax.models import QueryHistory

        sql_query = query.sql_query
        query_history = QueryHistory.build(
            owner=self.client.user,
            query=sql_query,
            server_host="%(server_host)s" % self.client.query_server,
            server_port="%(server_port)d" % self.client.query_server,
            server_name="%(server_name)s" % self.client.query_server,
            server_type=self.server_type,
            last_state=QueryHistory.STATE.available.index,
            design=design,
            notify=False,
            query_type=query.query["type"],
            statement_number=0,
        )
        query_history.save()

        LOG.debug(
            "Updated QueryHistory id %s user %s statement_number: %s"
            % (query_history.id, self.client.user, query_history.statement_number)
        )

        return query_history
Example #3
0
  def execute_and_watch(self, query, design=None, notify=False):
    """
    Run query and return a QueryHistory object in order to see its progress on a Web page.
    """
    query_statement = query.query['query']
    query_history = QueryHistory.build(
                                owner=self.client.user,
                                query=query_statement,
                                server_host='%(server_host)s' % self.client.query_server,
                                server_port='%(server_port)d' % self.client.query_server,
                                server_name='%(server_name)s' % self.client.query_server,
                                server_type=self.server_type,
                                last_state=QueryHistory.STATE.submitted.index,
                                design=design,
                                notify=notify)
    query_history.save()

    LOG.debug("Made new QueryHistory id %s user %s query: %s..." % (query_history.id, self.client.user, query_history.query[:25]))

    try:
      handle = self.client.query(query)
      if not handle.is_valid():
        msg = _("Server returning invalid handle for query id %(id)d [%(query)s]...") % \
              {'id': query_history.id, 'query': query_statement[:40]}
        raise BeeswaxException(msg)
    except BeeswaxException, ex: # TODO HS2
      LOG.exception(ex)
      # Kind of expected (hql compile/syntax error, etc.)
      if ex.handle:
        query_history.server_id = ex.handle.id
        query_history.log_context = ex.handle.log_context
      query_history.save_state(QueryHistory.STATE.failed)
      raise ex
Example #4
0
    def execute_and_watch(self, query, design=None, query_history=None):
        """
    Run query and return a QueryHistory object in order to see its progress on a Web page.
    """
        hql_query = query.hql_query
        if query_history is None:
            query_history = QueryHistory.build(
                owner=self.client.user,
                query=hql_query,
                server_host='%(server_host)s' % self.client.query_server,
                server_port='%(server_port)d' % self.client.query_server,
                server_name='%(server_name)s' % self.client.query_server,
                server_type=self.server_type,
                last_state=QueryHistory.STATE.submitted.value,
                design=design,
                notify=query.query.get('email_notify', False),
                query_type=query.query['type'],
                statement_number=0)
            query_history.save()

            LOG.debug(
                "Made new QueryHistory id %s user %s query: %s..." %
                (query_history.id, self.client.user, query_history.query[:25]))

        try:
            handle = self.client.query(query, query_history.statement_number)
            if not handle.is_valid():
                msg = _(
                    "Server returning invalid handle for query id %(id)d [%(query)s]..."
                ) % {
                    'id': query_history.id,
                    'query': query[:40]
                }
                raise QueryServerException(msg)
        except QueryServerException as ex:
            LOG.exception(ex)
            # Kind of expected (hql compile/syntax error, etc.)
            if hasattr(ex, 'handle') and ex.handle:
                query_history.server_id, query_history.server_guid = ex.handle.id, ex.handle.id
                query_history.log_context = ex.handle.log_context
            query_history.save_state(QueryHistory.STATE.failed)
            raise ex

        # All good
        query_history.server_id, query_history.server_guid = handle.get()
        query_history.operation_type = handle.operation_type
        query_history.has_results = handle.has_result_set
        query_history.modified_row_count = handle.modified_row_count
        query_history.log_context = handle.log_context
        query_history.query_type = query.query['type']
        query_history.set_to_running()
        query_history.save()

        LOG.debug("Updated QueryHistory id %s user %s statement_number: %s" %
                  (query_history.id, self.client.user,
                   query_history.statement_number))

        return query_history
Example #5
0
    def execute_and_watch(self, query, design=None, query_history=None):
        """
    Run query and return a QueryHistory object in order to see its progress on a Web page.
    """
        hql_query = query.hql_query
        if query_history is None:
            query_history = QueryHistory.build(
                owner=self.client.user,
                query=hql_query,
                server_host="%(server_host)s" % self.client.query_server,
                server_port="%(server_port)d" % self.client.query_server,
                server_name="%(server_name)s" % self.client.query_server,
                server_type=self.server_type,
                last_state=QueryHistory.STATE.submitted.index,
                design=design,
                notify=query.query.get("email_notify", False),
                query_type=query.query["type"],
                statement_number=0,
            )
            query_history.save()

            LOG.debug(
                "Made new QueryHistory id %s user %s query: %s..."
                % (query_history.id, self.client.user, query_history.query[:25])
            )

        try:
            handle = self.client.query(query, query_history.statement_number)
            if not handle.is_valid():
                msg = _("Server returning invalid handle for query id %(id)d [%(query)s]...") % {
                    "id": query_history.id,
                    "query": query[:40],
                }
                raise QueryServerException(msg)
        except QueryServerException, ex:
            LOG.exception(ex)
            # Kind of expected (hql compile/syntax error, etc.)
            if hasattr(ex, "handle") and ex.handle:
                query_history.server_id, query_history.server_guid = ex.handle.id, ex.handle.id
                query_history.log_context = ex.handle.log_context
            query_history.save_state(QueryHistory.STATE.failed)
            raise ex
Example #6
0
    def execute_query(self, query, design):
        sql_query = query.sql_query
        query_history = QueryHistory.build(
            owner=self.client.user,
            query=sql_query,
            server_host='%(server_host)s' % self.client.query_server,
            server_port='%(server_port)d' % self.client.query_server,
            server_name='%(server_name)s' % self.client.query_server,
            server_type=self.server_type,
            last_state=QueryHistory.STATE.available.index,
            design=design,
            notify=False,
            query_type=query.query['type'],
            statement_number=0)
        query_history.save()

        LOG.debug("Updated QueryHistory id %s user %s statement_number: %s" %
                  (query_history.id, self.client.user,
                   query_history.statement_number))

        return query_history