mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Merge pull request #2063 from dannon/dryrun
Change user disk usage pgcalc function up a bit to make a slightly sa…
This commit is contained in:
+20
-21
@@ -10,25 +10,24 @@ def pgcalc( sa_session, id, dryrun=False ):
|
||||
TODO: Check against the recently updated versions of sqlalchemy if this
|
||||
'special' postgresql version is even necessary.
|
||||
"""
|
||||
sql = """
|
||||
UPDATE galaxy_user
|
||||
SET disk_usage = (SELECT COALESCE(SUM(total_size), 0)
|
||||
FROM ( SELECT DISTINCT ON (d.id) d.total_size, d.id
|
||||
FROM history_dataset_association hda
|
||||
JOIN history h ON h.id = hda.history_id
|
||||
JOIN dataset d ON hda.dataset_id = d.id
|
||||
WHERE h.user_id = :id
|
||||
AND h.purged = false
|
||||
AND hda.purged = false
|
||||
AND d.purged = false
|
||||
AND d.id NOT IN (SELECT dataset_id
|
||||
FROM library_dataset_dataset_association)
|
||||
) sizes)
|
||||
WHERE id = :id
|
||||
RETURNING disk_usage;
|
||||
"""
|
||||
r = sa_session.execute(sql, {'id': id})
|
||||
new = r.fetchone()[0]
|
||||
sql_calc = """SELECT COALESCE(SUM(total_size), 0)
|
||||
FROM ( SELECT DISTINCT ON (d.id) d.total_size, d.id
|
||||
FROM history_dataset_association hda
|
||||
JOIN history h ON h.id = hda.history_id
|
||||
JOIN dataset d ON hda.dataset_id = d.id
|
||||
WHERE h.user_id = :id
|
||||
AND h.purged = false
|
||||
AND hda.purged = false
|
||||
AND d.purged = false
|
||||
AND d.id NOT IN (SELECT dataset_id
|
||||
FROM library_dataset_dataset_association)
|
||||
) sizes"""
|
||||
sql_update = """UPDATE galaxy_user
|
||||
SET disk_usage = (%s)
|
||||
WHERE id = :id
|
||||
RETURNING disk_usage;""" % sql_calc
|
||||
if dryrun:
|
||||
sa_session.rollback()
|
||||
return new
|
||||
r = sa_session.execute(sql_calc, {'id': id})
|
||||
else:
|
||||
r = sa_session.execute(sql_update, {'id': id})
|
||||
return r.fetchone()[0]
|
||||
|
||||
Reference in New Issue
Block a user