From 4f63a50a170dfd148157103c43b11589c3c289bb Mon Sep 17 00:00:00 2001 From: Joseph Schorr Date: Tue, 26 Apr 2016 15:16:55 -0400 Subject: [PATCH] Change account-less logs to use a user and not null This allows us to skip the migration --- config.py | 3 +++ data/database.py | 2 +- .../a3ba52d02dec_initial_keyserver.py | 5 ---- data/model/log.py | 25 +++++++++++++----- endpoints/api/logs.py | 25 +++++++++++------- test/data/test.db | Bin 1175552 -> 1175552 bytes 6 files changed, 39 insertions(+), 21 deletions(-) diff --git a/config.py b/config.py index c4d59bba0..65661637c 100644 --- a/config.py +++ b/config.py @@ -308,3 +308,6 @@ class DefaultConfig(object): # How long to wait before GCing an expired service key. EXPIRED_SERVICE_KEY_TTL_SEC = 60 * 60 * 24 * 7 # One week + # The ID of the user account in the database to be used for service audit logs. If none, the + # lowest user in the database will be used. + SERVICE_LOG_ACCOUNT_ID = None diff --git a/data/database.py b/data/database.py index 721dab45e..d0b7357b9 100644 --- a/data/database.py +++ b/data/database.py @@ -698,7 +698,7 @@ _LogEntryAccountProxy = Proxy() class LogEntry(BaseModel): kind = ForeignKeyField(LogEntryKind, index=True) - account = ForeignKeyField(_LogEntryAccountProxy, index=True, null=True, related_name='account') + account = ForeignKeyField(_LogEntryAccountProxy, index=True, related_name='account') performer = QuayUserField(allows_robots=True, index=True, null=True, related_name='performer', robot_null_delete=True) repository = ForeignKeyField(Repository, index=True, null=True) diff --git a/data/migrations/versions/a3ba52d02dec_initial_keyserver.py b/data/migrations/versions/a3ba52d02dec_initial_keyserver.py index 2f2074db2..f8e38af8b 100644 --- a/data/migrations/versions/a3ba52d02dec_initial_keyserver.py +++ b/data/migrations/versions/a3ba52d02dec_initial_keyserver.py @@ -65,8 +65,6 @@ def upgrade(tables): op.add_column(u'notification', sa.Column('lookup_path', sa.String(length=255), nullable=True)) op.create_index('notification_lookup_path', 'notification', ['lookup_path'], unique=False) - op.drop_constraint(u'fk_logentry_user_account_id', 'logentry', type_='foreignkey') - op.alter_column('logentry', 'account_id', existing_type=sa.Integer(), nullable=True) def downgrade(tables): @@ -80,6 +78,3 @@ def downgrade(tables): op.drop_column(u'notification', 'lookup_path') op.drop_table('servicekey') op.drop_table('servicekeyapproval') - - op.alter_column('logentry', 'account_id', existing_type=sa.Integer(), nullable=False) - op.create_foreign_key(u'fk_logentry_user_account_id', 'logentry', 'user', ['account_id'], ['id']) diff --git a/data/model/log.py b/data/model/log.py index f13719855..795e0feae 100644 --- a/data/model/log.py +++ b/data/model/log.py @@ -6,9 +6,10 @@ from datetime import datetime, timedelta, date from cachetools import lru_cache from data.database import LogEntry, LogEntryKind, User, db +from data.model import config -# TODO: Find a way to get logs without slowing down pagination significantly. -def _logs_query(selections, start_time, end_time, performer=None, repository=None, namespace=None): +def _logs_query(selections, start_time, end_time, performer=None, repository=None, namespace=None, + ignore=None): joined = (LogEntry .select(*selections) .switch(LogEntry) @@ -23,6 +24,11 @@ def _logs_query(selections, start_time, end_time, performer=None, repository=Non if namespace: joined = joined.join(User).where(User.username == namespace) + if ignore: + kind_map = get_log_entry_kinds() + ignore_ids = [kind_map[kind_name] for kind_name in ignore] + joined = joined.where(~(LogEntry.kind << ignore_ids)) + return joined @@ -31,22 +37,25 @@ def get_log_entry_kinds(): kind_map = {} for kind in LogEntryKind.select(): kind_map[kind.id] = kind.name + kind_map[kind.name] = kind.id return kind_map -def get_aggregated_logs(start_time, end_time, performer=None, repository=None, namespace=None): +def get_aggregated_logs(start_time, end_time, performer=None, repository=None, namespace=None, + ignore=None): date = db.extract_date('day', LogEntry.datetime) selections = [LogEntry.kind, date.alias('day'), fn.Count(LogEntry.id).alias('count')] - query = _logs_query(selections, start_time, end_time, performer, repository, namespace) + query = _logs_query(selections, start_time, end_time, performer, repository, namespace, ignore) return query.group_by(date, LogEntry.kind) -def get_logs_query(start_time, end_time, performer=None, repository=None, namespace=None): +def get_logs_query(start_time, end_time, performer=None, repository=None, namespace=None, + ignore=None): Performer = User.alias() selections = [LogEntry, Performer] - query = _logs_query(selections, start_time, end_time, performer, repository, namespace) + query = _logs_query(selections, start_time, end_time, performer, repository, namespace, ignore) query = (query.switch(LogEntry) .join(Performer, JOIN_LEFT_OUTER, on=(LogEntry.performer == Performer.id).alias('performer'))) @@ -76,6 +85,10 @@ def log_action(kind_name, user_or_organization_name, performer=None, repository= account = None if user_or_organization_name is not None: account = User.get(User.username == user_or_organization_name).id + else: + account = config.app_config.get('SERVICE_LOG_ACCOUNT_ID') + if account is None: + account = User.select(fn.Min(User.id)).tuples().get()[0] kind = LogEntryKind.get(LogEntryKind.name == kind_name) metadata_json = json.dumps(metadata, default=_json_serialize) diff --git a/endpoints/api/logs.py b/endpoints/api/logs.py index c3c65ef55..3602bbace 100644 --- a/endpoints/api/logs.py +++ b/endpoints/api/logs.py @@ -16,6 +16,8 @@ from auth import scopes from app import avatar LOGS_PER_PAGE = 20 +SERVICE_LEVEL_LOG_KINDS = set(['service_key_create', 'service_key_approve', 'service_key_delete', + 'service_key_modify', 'service_key_extend', 'service_key_rotate']) def log_view(log, kinds): view = { @@ -79,11 +81,12 @@ def _validate_logs_arguments(start_time, end_time, performer_name): def get_logs(start_time, end_time, performer_name=None, repository=None, namespace=None, - page_token=None): + page_token=None, ignore=None): (start_time, end_time, performer) = _validate_logs_arguments(start_time, end_time, performer_name) kinds = model.log.get_log_entry_kinds() logs_query = model.log.get_logs_query(start_time, end_time, performer=performer, - repository=repository, namespace=namespace) + repository=repository, namespace=namespace, + ignore=ignore) logs, next_page_token = model.modelutil.paginate(logs_query, database.LogEntry, descending=True, page_token=page_token, limit=LOGS_PER_PAGE) @@ -95,12 +98,14 @@ def get_logs(start_time, end_time, performer_name=None, repository=None, namespa }, next_page_token -def get_aggregate_logs(start_time, end_time, performer_name=None, repository=None, namespace=None): +def get_aggregate_logs(start_time, end_time, performer_name=None, repository=None, namespace=None, + ignore=None): (start_time, end_time, performer) = _validate_logs_arguments(start_time, end_time, performer_name) kinds = model.log.get_log_entry_kinds() aggregated_logs = model.log.get_aggregated_logs(start_time, end_time, performer=performer, - repository=repository, namespace=namespace) + repository=repository, namespace=namespace, + ignore=ignore) return { 'aggregated': [aggregated_log_view(log, kinds, start_time) for log in aggregated_logs] @@ -126,7 +131,8 @@ class RepositoryLogs(RepositoryParamResource): start_time = parsed_args['starttime'] end_time = parsed_args['endtime'] - return get_logs(start_time, end_time, repository=repo, page_token=page_token) + return get_logs(start_time, end_time, repository=repo, page_token=page_token, + ignore=SERVICE_LEVEL_LOG_KINDS) @resource('/v1/user/logs') @@ -147,7 +153,7 @@ class UserLogs(ApiResource): user = get_authenticated_user() return get_logs(start_time, end_time, performer_name=performer_name, namespace=user.username, - page_token=page_token) + page_token=page_token, ignore=SERVICE_LEVEL_LOG_KINDS) @resource('/v1/organization//logs') @@ -172,7 +178,7 @@ class OrgLogs(ApiResource): end_time = parsed_args['endtime'] return get_logs(start_time, end_time, namespace=orgname, performer_name=performer_name, - page_token=page_token) + page_token=page_token, ignore=SERVICE_LEVEL_LOG_KINDS) raise Unauthorized() @@ -194,7 +200,8 @@ class RepositoryAggregateLogs(RepositoryParamResource): start_time = parsed_args['starttime'] end_time = parsed_args['endtime'] - return get_aggregate_logs(start_time, end_time, repository=repo) + return get_aggregate_logs(start_time, end_time, repository=repo, + ignore=SERVICE_LEVEL_LOG_KINDS) @resource('/v1/user/aggregatelogs') @@ -237,6 +244,6 @@ class OrgAggregateLogs(ApiResource): end_time = parsed_args['endtime'] return get_aggregate_logs(start_time, end_time, namespace=orgname, - performer_name=performer_name) + performer_name=performer_name, ignore=SERVICE_LEVEL_LOG_KINDS) raise Unauthorized() diff --git a/test/data/test.db b/test/data/test.db index 064c75d438b0d9c52e4c0e217a1d73a20a8f2dbe..d9741741c65c0a58f42de43705a6131c9361fceb 100644 GIT binary patch delta 61744 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