示例#1
0
def pg_sleep(sleep_seconds):
    from correx.config import get_config
    logger = logging.getLogger(__name__)

    logger.info("will send pg_sleep(%r) to postgres", sleep_seconds)
    pg_conn = get_config().postgres.connect()
    with pg_conn.cursor() as cursor:
        cursor.execute("select * from pg_sleep(%(seconds)s)", dict(seconds=sleep_seconds))
        logger.info("finished pg_sleep(%r)", sleep_seconds)
示例#2
0
    def execute(self, query, vars=None):
        from correx.config import get_config
        from correx.flask_lib import get_current_flask_request_id_or_none
        from correx.celery_app import get_current_celery_task_id_or_none
        metadata = dict(
            pg_conn_id=self.conn_correlation_id,
            cursor_id=self.correlation_id,
            client_pid=os.getpid(),
            os_user=getpass.getuser(),
            flask_req_id=get_current_flask_request_id_or_none(),
            celery_task_id=get_current_celery_task_id_or_none(),
            context_type=get_config().context_type
        )

        # if query was 'select 1;',
        # final_query is '/* __META_START:{"x": "x-val"}:META_END__ */ select 1;'
        final_query = MetadataCodec.encode(query=query, metadata=metadata)

        return super(CorrelationIDCursor, self).execute(final_query, vars=vars)
示例#3
0
def inspect_db():
    logger = logging.getLogger(__name__)
    queries = get_config().postgres.inspect()
    return jsonify_with_request_id(queries=get_config().postgres.inspect())
示例#4
0
import os
import flask
from flask import request
from werkzeug.contrib.fixers import ProxyFix
from correx.config import get_config
from correx.flask_lib import CorrelatedRequest
import logging

get_config().setup_logging()
app = flask.Flask('correx')
app.wsgi_app = ProxyFix(app.wsgi_app)
app.request_class = CorrelatedRequest


def _get_sleep_seconds():
    return int(request.args.get('seconds', 15))


def jsonify_with_request_id(**kwargs):
    from correx.flask_lib import get_current_flask_request_id_or_none
    return flask.jsonify(
        flask_request_id=get_current_flask_request_id_or_none(), **kwargs)


@app.route('/api/v1/sleep-in-worker')
def db_sleep_in_worker():
    from correx.celery_app import pg_sleep_in_worker
    logger = logging.getLogger('%s.db_sleep_in_worker' % __name__)
    sleep_duration = _get_sleep_seconds()
    logger.info("triggering celery task to run pg_sleep(%r)", sleep_duration)
示例#5
0
def setup_celery_logging(*args, **kwargs):
    from correx.config import get_config
    get_config().setup_logging()
示例#6
0
 def correx_config(self):
     from correx.config import get_config
     return get_config()