def __get_job(self, job_id): Logger.debug("__get_job: job_name={job_id}".format(job_id=job_id)) try: job = self.__get_client().get_job(job_id) except NotFound: job = None return job
def before(): Logger.set_level(Logger.DEBUG) Logger.debug("before url={url}".format(url=request.endpoint)) if not request.endpoint or 'gmail_auth' not in request.endpoint: redirection = oauth2check() if redirection: return redirection
def charts_queries(): chart_id = request.json['chart_id'] resource = request.json['resource'] query_type = request.json['query_type'] query_params = request.json['query_params'] query = request.json['query'] Logger.debug('resource={0}, query_type={1}'.format(resource, query_type)) results, error = bigshow.Chart.query_sync(chart_id=chart_id, resource=resource, query_type=query_type, query=query, query_params=query_params) return json.dumps({'results': results, 'error': error})
def __get_db(self): if not self.__db: from config.dev import config Logger.debug("__getDB: config=" + str(config)) db_config = config['db']['admin'] return pymysql.connect(host=db_config["host"], user=db_config["user"], password=db_config["password"], db=db_config["db"], charset=db_config["charset"], cursorclass=pymysql.cursors.DictCursor) return self.__db
def oauth2callback(): code = request.args['code'] Logger.debug("oauth2callback code={code}".format(code=code)) credentials = __getFlow().step2_exchange(code) email = credentials.id_token[u'email'] user = Admin().get(email) if user: Logger.debug("user_id={user_id}, email={email}".format( user_id=user['idx'], email=email)) session['user'] = {'id': user['idx'], 'time': time.time()} return redirect('/') else: return redirect(url_for('gmail_auth.fail'))
def __get_db(cls): if not Chart.__db: conversions[FIELD_TYPE.TIMESTAMP] = through from config.dev import config db_config = config['db']['default'] Logger.debug("new connection - CHART") return pymysql.connect(host=db_config["host"], user=db_config["user"], password=db_config["password"], db=db_config["db"], charset=db_config["charset"], cursorclass=pymysql.cursors.DictCursor) return Chart.__db
def query(chart_id, resource, query_type, query, query_params): Logger.debug( 'chart_id={0}, resource={1}, query_type={2}, query={3}, query_params={4}' .format(chart_id, resource, query_type, query, query_params)) adapter = Resource.get(resource_id=resource) if not adapter: return None else: job_id = Chart.get_job_id(chart_id) adapter.query(job_id=job_id, query_type=query_type, query=query, query_params=query_params) return job_id
def add(cls, schedule): Logger.error("add: schedule={schedule}".format(schedule=schedule)) connection = cls.__get_db() try: with connection.cursor() as cursor: keys = list( set(cls.__schema).intersection(set(schedule.keys())) - {'id'}) sql = "INSERT INTO schedules({keys}, created) " \ "VALUES({columns}, now())".format(keys=','.join(keys), columns=','.join(map(lambda x: "%s", keys))) values = [] for key in keys: values.append(schedule[key]) Logger.debug("sql={sql}, values={values}".format( sql=sql, values=values)) cursor.execute(sql, values) insert_id = connection.insert_id() connection.commit() return insert_id finally: connection.close()
def update(cls, schedule): Logger.error("update: schedule={schedule}".format(schedule=schedule)) connection = cls.__get_db() try: with connection.cursor() as cursor: keys = list( set(cls.__schema).intersection(set(schedule.keys()))) sql = "UPDATE schedules SET {key_val} WHERE id={id}".format( key_val=','.join( map(lambda x: "{key}=%s".format(key=x), keys)), id=schedule['id']) values = [] for key in keys: values.append(schedule[key]) Logger.debug("sql={sql}, values={values}".format( sql=sql, values=values)) cursor.execute(sql, values) insert_id = connection.insert_id() connection.commit() return insert_id finally: connection.close()
def update(cls, chart_id, chart): schema = set(cls.__schema) - {'id'} targets = list(schema & chart.keys()) columns = ','.join(map(lambda x: "{x}=%s".format(x=x), targets)) values = [] for key in targets: if isinstance(chart[key], (list, dict)): values.append("{x}".format(x=json.dumps(chart[key]))) else: values.append(chart[key]) sql = "UPDATE charts SET {columns} WHERE id={chart_id}".format( columns=columns, chart_id=chart_id) Logger.debug("columns={columns},sql={sql},values={values}".format( columns=columns, sql=sql, values=values)) connection = cls.__get_db() try: with connection.cursor() as cursor: cursor.execute(sql, tuple(values)) connection.commit() return True finally: connection.close()
def __get_cache(self): if not self.__cache: Logger.debug("__get_cache") from config.dev import config self.__cache = PooledClient(server=config['cache']['server']) return self.__cache