def get(self, console_id): self.response.headers['Cache-Control'] = 'max-age=300' console = CONSOLES[int(console_id)] formatter = self._init_formatter(console) self.response.headers['Content-Type'] = formatter.mime_type() if console.table: dataset, table = console.table next_page = _TableData(PROJECT_ID, dataset, table) result = next_page.fetch() else: result = bigquery.jobs().query( projectId=PROJECT_ID, body={'query': console.query, 'maxResults': 10000}).execute() if 'jobReference' in result: job_id = result['jobReference']['jobId'] next_page = _QueryResults(PROJECT_ID, job_id) while 'jobComplete' in result and not result['jobComplete']: result = next_page.fetch() formatter.start(self.response) while result.get('rows'): formatter.format(result['rows'], self.response) result = (next_page.fetch(result['pageToken']) if 'pageToken' in result else {}) if result.get('code', 200) != 200: self.response.set_status( 500, message=('Could not fetch data for %s\n%s' % (str(console.table or console.query), json.dumps(result)))) return formatter.finish(self.response)
def post(self): index = self.request.get('index') logging.info("Dashboard update: " + index) cached = BACKGROUND_QUERIES[int(index)] result = bigquery.jobs().insert(projectId=PROJECT_ID, body=cached.query_job).execute() logging.info(str(result)) self.response.headers['Content-Type'] = 'text/plain' self.response.write('ok')
def post(self): index = self.request.get('index') logging.info("Dashboard update: " + index) cached = BACKGROUND_QUERIES[int(index)] result = bigquery.jobs().insert( projectId=PROJECT_ID, body=cached.query_job).execute() logging.info(str(result)) self.response.headers['Content-Type'] = 'text/plain' self.response.write('ok')
def _make_request(self, token, num): return bigquery.jobs().getQueryResults( pageToken=token, maxResults=num, **self._kwargs)