Merge pull request #2753 from charltonaustin/api_tag_v22
refactor(endpoints/api/tag): refactor code for v22
This commit is contained in:
commit
82488c9102
8 changed files with 602 additions and 135 deletions
|
@ -6,6 +6,7 @@ from peewee import JOIN_LEFT_OUTER, fn, PeeweeException
|
|||
from datetime import datetime, timedelta
|
||||
from cachetools import lru_cache
|
||||
|
||||
import data
|
||||
from data.database import LogEntry, LogEntryKind, User, RepositoryActionCount, db
|
||||
from data.model import config, user, DataModelException
|
||||
|
||||
|
@ -13,11 +14,10 @@ logger = logging.getLogger(__name__)
|
|||
|
||||
ACTIONS_ALLOWED_WITHOUT_AUDIT_LOGGING = ['pull_repo']
|
||||
|
||||
|
||||
def _logs_query(selections, start_time, end_time, performer=None, repository=None, namespace=None,
|
||||
ignore=None):
|
||||
joined = (LogEntry
|
||||
.select(*selections)
|
||||
.switch(LogEntry)
|
||||
joined = (LogEntry.select(*selections).switch(LogEntry)
|
||||
.where(LogEntry.datetime >= start_time, LogEntry.datetime < end_time))
|
||||
|
||||
if repository:
|
||||
|
@ -74,14 +74,12 @@ def get_logs_query(start_time, end_time, performer=None, repository=None, namesp
|
|||
selections.append(Account)
|
||||
|
||||
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')))
|
||||
query = (query.switch(LogEntry).join(Performer, JOIN_LEFT_OUTER,
|
||||
on=(LogEntry.performer == Performer.id).alias('performer')))
|
||||
|
||||
if namespace is None and repository is None:
|
||||
query = (query.switch(LogEntry)
|
||||
.join(Account, JOIN_LEFT_OUTER,
|
||||
on=(LogEntry.account == Account.id).alias('account')))
|
||||
query = (query.switch(LogEntry).join(Account, JOIN_LEFT_OUTER,
|
||||
on=(LogEntry.account == Account.id).alias('account')))
|
||||
|
||||
return query
|
||||
|
||||
|
@ -93,8 +91,8 @@ def _json_serialize(obj):
|
|||
return obj
|
||||
|
||||
|
||||
def log_action(kind_name, user_or_organization_name, performer=None, repository=None,
|
||||
ip=None, metadata={}, timestamp=None):
|
||||
def log_action(kind_name, user_or_organization_name, performer=None, repository=None, ip=None,
|
||||
metadata={}, timestamp=None):
|
||||
if not timestamp:
|
||||
timestamp = datetime.today()
|
||||
|
||||
|
@ -134,15 +132,10 @@ def log_action(kind_name, user_or_organization_name, performer=None, repository=
|
|||
raise
|
||||
|
||||
|
||||
|
||||
def get_stale_logs_start_id():
|
||||
""" Gets the oldest log entry. """
|
||||
try:
|
||||
return (LogEntry
|
||||
.select(LogEntry.id)
|
||||
.order_by(LogEntry.id)
|
||||
.limit(1)
|
||||
.tuples())[0][0]
|
||||
return (LogEntry.select(LogEntry.id).order_by(LogEntry.id).limit(1).tuples())[0][0]
|
||||
except IndexError:
|
||||
return None
|
||||
|
||||
|
@ -150,9 +143,7 @@ def get_stale_logs_start_id():
|
|||
def get_stale_logs_cutoff_id(cutoff_date):
|
||||
""" Gets the most recent ID created before the cutoff_date. """
|
||||
try:
|
||||
return (LogEntry
|
||||
.select(fn.Max(LogEntry.id))
|
||||
.where(LogEntry.datetime <= cutoff_date)
|
||||
return (LogEntry.select(fn.Max(LogEntry.id)).where(LogEntry.datetime <= cutoff_date)
|
||||
.tuples())[0][0]
|
||||
except IndexError:
|
||||
return None
|
||||
|
@ -179,12 +170,11 @@ def get_repositories_action_sums(repository_ids):
|
|||
|
||||
# Filter the join to recent entries only.
|
||||
last_week = datetime.now() - timedelta(weeks=1)
|
||||
tuples = (RepositoryActionCount
|
||||
.select(RepositoryActionCount.repository, fn.Sum(RepositoryActionCount.count))
|
||||
tuples = (RepositoryActionCount.select(RepositoryActionCount.repository,
|
||||
fn.Sum(RepositoryActionCount.count))
|
||||
.where(RepositoryActionCount.repository << repository_ids)
|
||||
.where(RepositoryActionCount.date >= last_week)
|
||||
.group_by(RepositoryActionCount.repository)
|
||||
.tuples())
|
||||
.group_by(RepositoryActionCount.repository).tuples())
|
||||
|
||||
action_count_map = {}
|
||||
for record in tuples:
|
||||
|
|
Reference in a new issue