Add a cli subcommand for deleting old rows

This commit adds a new subcommand to the subunit2sql-db-manage command
to delete old rows from the runs and test runs tables.

Change-Id: I05049c673e5c6ad94654f787c00e8d6046f90fc2
This commit is contained in:
Matthew Treinish 2015-04-09 16:26:43 -04:00
parent 7f3ad85531
commit 38fc62d2c2

View File

@ -23,6 +23,7 @@ from alembic import util as alembic_util
from oslo.config import cfg
from oslo.db import options
from subunit2sql.db import api as db_api
HEAD_FILENAME = 'HEAD'
@ -100,6 +101,14 @@ def validate_head_file(config):
alembic_util.err('HEAD file does not match migration timeline head')
def expire_old(config, cmd):
expire_age = int(CONF.command.expire_age)
if not CONF.command.no_runs:
db_api.delete_old_runs(expire_age)
if not CONF.command.no_test_runs:
db_api.delete_old_test_runs(expire_age)
def update_head_file(config):
script = alembic_script.ScriptDirectory.from_config(config)
if len(script.get_heads()) > 1:
@ -140,6 +149,17 @@ def add_command_parsers(subparsers):
parser.add_argument('--sql', action='store_true')
parser.set_defaults(func=do_revision)
parser = subparsers.add_parser('expire',
help="delete old rows from runs and "
"test_runs tables")
parser.add_argument('--no-runs', action='store_true',
help="Don't delete any rows in the runs table")
parser.add_argument('--no-test-runs', action='store_true',
help="Don't delete any rows in the test_runs table")
parser.add_argument('--expire-age', '-e', default=186,
help="Number of days into the past to use as the "
"expiration point")
parser.set_defaults(func=expire_old)
command_opt = cfg.SubCommandOpt('command',
title='Command',