From 353da13b1629a2dbe2b4a3cc7d528ce23dbe2ebe Mon Sep 17 00:00:00 2001 From: Jake Moshenko Date: Fri, 12 Sep 2014 11:57:47 -0400 Subject: [PATCH] Set up the service monitoring for the log migration script. Add a database migration to add the logs_archived column. --- Dockerfile.web | 1 + conf/init/buildlogsarchiver/log/run | 2 ++ conf/init/buildlogsarchiver/run | 8 ++++++ ...809_add_support_for_build_log_migration.py | 26 +++++++++++++++++++ workers/buildlogsarchiver.py | 2 +- 5 files changed, 38 insertions(+), 1 deletion(-) create mode 100755 conf/init/buildlogsarchiver/log/run create mode 100755 conf/init/buildlogsarchiver/run create mode 100644 data/migrations/versions/34fd69f63809_add_support_for_build_log_migration.py diff --git a/Dockerfile.web b/Dockerfile.web index b24694b42..1c1b60c69 100644 --- a/Dockerfile.web +++ b/Dockerfile.web @@ -38,6 +38,7 @@ ADD conf/init/gunicorn /etc/service/gunicorn ADD conf/init/nginx /etc/service/nginx ADD conf/init/diffsworker /etc/service/diffsworker ADD conf/init/notificationworker /etc/service/notificationworker +ADD conf/init/buildlogsarchiver /etc/service/buildlogsarchiver # Download any external libs. RUN mkdir static/fonts static/ldn diff --git a/conf/init/buildlogsarchiver/log/run b/conf/init/buildlogsarchiver/log/run new file mode 100755 index 000000000..c35fb1fb9 --- /dev/null +++ b/conf/init/buildlogsarchiver/log/run @@ -0,0 +1,2 @@ +#!/bin/sh +exec svlogd /var/log/buildlogsarchiver/ \ No newline at end of file diff --git a/conf/init/buildlogsarchiver/run b/conf/init/buildlogsarchiver/run new file mode 100755 index 000000000..f263770af --- /dev/null +++ b/conf/init/buildlogsarchiver/run @@ -0,0 +1,8 @@ +#! /bin/bash + +echo 'Starting build logs archiver worker' + +cd / +venv/bin/python -m workers.buildlogsarchiver + +echo 'Diffs worker exited' \ No newline at end of file diff --git a/data/migrations/versions/34fd69f63809_add_support_for_build_log_migration.py b/data/migrations/versions/34fd69f63809_add_support_for_build_log_migration.py new file mode 100644 index 000000000..a731d0158 --- /dev/null +++ b/data/migrations/versions/34fd69f63809_add_support_for_build_log_migration.py @@ -0,0 +1,26 @@ +"""Add support for build log migration. + +Revision ID: 34fd69f63809 +Revises: 4a0c94399f38 +Create Date: 2014-09-12 11:50:09.217777 + +""" + +# revision identifiers, used by Alembic. +revision = '34fd69f63809' +down_revision = '4a0c94399f38' + +from alembic import op +import sqlalchemy as sa + + +def upgrade(tables): + ### commands auto generated by Alembic - please adjust! ### + op.add_column('repositorybuild', sa.Column('logs_archived', sa.Boolean(), nullable=False, server_default=sa.sql.expression.false())) + ### end Alembic commands ### + + +def downgrade(tables): + ### commands auto generated by Alembic - please adjust! ### + op.drop_column('repositorybuild', 'logs_archived') + ### end Alembic commands ### diff --git a/workers/buildlogsarchiver.py b/workers/buildlogsarchiver.py index c51666d73..f79132ab5 100644 --- a/workers/buildlogsarchiver.py +++ b/workers/buildlogsarchiver.py @@ -16,7 +16,7 @@ POLL_PERIOD_SECONDS = 30 logger = logging.getLogger(__name__) sched = BlockingScheduler() -@sched.scheduled_job(trigger='interval', seconds=1) +@sched.scheduled_job(trigger='interval', seconds=30) def archive_redis_buildlogs(): """ Archive a single build, choosing a candidate at random. This process must be idempotent to avoid needing two-phase commit. """