summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonald Stufft <donald@stufft.io>2013-06-05 03:32:37 -0400
committerDonald Stufft <donald@stufft.io>2013-06-05 03:32:37 -0400
commit8d687a16769c7b2add3013146b748f2d3fc09ddd (patch)
treeffa248b1cd66a79fc79f4717d0895562ccbd234b
parent14fc7f6abcb09b3c5aa8846acc15b6047364dc1f (diff)
downloaddecorator-8d687a16769c7b2add3013146b748f2d3fc09ddd.tar.gz
Centralize journaling to ensure invalidation gets called
-rw-r--r--store.py133
1 files changed, 44 insertions, 89 deletions
diff --git a/store.py b/store.py
index 73f1967..23282ed 100644
--- a/store.py
+++ b/store.py
@@ -257,6 +257,18 @@ class Store:
self._trove = trove.Trove(self.get_cursor())
return self._trove
+ def add_journal_entry(self, name, version, action, submitted_date,
+ submitted_by, submitted_from):
+ safe_execute(cursor, """
+ INSERT INTO journals
+ (name, version, action, submitted_date, submitted_by,
+ submitted_from)
+ VALUES
+ (%s, %s, %s, %s, %s, %s)
+ """, (name, version, action, submitted_date, submitted_by,
+ submitted_from))
+ self._changed_packages.add(name)
+
def store_package(self, name, version, info):
''' Store info about the package to the database.
@@ -288,14 +300,8 @@ class Store:
safe_execute(cursor, sql, args)
# journal entry
- safe_execute(cursor, '''insert into journals (name, version, action,
- submitted_date, submitted_by, submitted_from) values
- (%s, %s, %s, %s, %s, %s)''', (name,
- None,
- 'create',
- date,
- self.username,
- self.userip))
+ self.add_journal_entry(name, None, "create", date,
+ self.username, self.userip)
# first person to add an entry may be considered owner - though
# make sure they don't already have the Role (this might just
@@ -384,10 +390,8 @@ class Store:
and version=%%s'''%cols, vals)
# journal the update
- safe_execute(cursor, '''insert into journals (name, version,
- action, submitted_date, submitted_by, submitted_from)
- values (%s, %s, %s, %s, %s, %s)''', (name, version, message,
- date, self.username, self.userip))
+ self.add_journal_entry(name, version, message, date,
+ self.username, self.userip)
else:
# round off the information (make sure name and version are in
# the info dict)
@@ -415,10 +419,8 @@ class Store:
safe_execute(cursor, sql, args)
# journal entry
- safe_execute(cursor, '''insert into journals (name, version, action,
- submitted_date, submitted_by, submitted_from) values
- (%s, %s, %s, %s, %s, %s)''', (name, version, 'new release',
- date, self.username, self.userip))
+ self.add_journal_entry(name, version, "new release", date,
+ self.username, self.userip)
# first person to add an entry may be considered owner - though
# make sure they don't already have the Role (this might just
@@ -686,12 +688,8 @@ class Store:
VALUES (%s, %s, %s)""", [name, version, url])
date = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime())
- safe_execute(cursor, '''insert into journals (
- name, version, action, submitted_date, submitted_by,
- submitted_from) values (%s, %s, %s, %s, %s, %s)''',
- (name, version, 'add url ' + url, date, self.username, self.userip))
-
- self._changed_packages.add(name)
+ self.add_journal_entry(name, version, "add url " + url, date,
+ self.username, self.userip)
def remove_description_url(self, url_id):
cursor = self.get_cursor()
@@ -707,12 +705,8 @@ class Store:
safe_execute(cursor, sql, [url_id])
date = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime())
- safe_execute(cursor, '''insert into journals (
- name, version, action, submitted_date, submitted_by,
- submitted_from) values (%s, %s, %s, %s, %s, %s)''',
- (name, version, 'remove url ' + url, date, self.username, self.userip))
-
- self._changed_packages.add(name)
+ self.add_journal_entry(name, version, "remove url " + url, date,
+ self.username, self.userip)
def get_stable_version(self, name):
''' Retrieve the version marked as a package:s stable version.
@@ -925,12 +919,8 @@ class Store:
[value, name])
date = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime())
- safe_execute(cursor, '''insert into journals (
- name, version, action, submitted_date, submitted_by,
- submitted_from) values (%s, %s, %s, %s, %s, %s)''',
- (name, None, 'update hosting_mode', date, self.username, self.userip))
-
- self._changed_packages.add(name)
+ self.add_journal_entry(name, None, "update hosting_mode", date,
+ self.username, self.userip)
def set_description(self, name, version, desc_text, desc_html,
from_readme=False):
@@ -1318,12 +1308,8 @@ class Store:
(name, version))
date = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime())
- safe_execute(cursor, '''insert into journals (name, version, action,
- submitted_date, submitted_by, submitted_from) values
- (%s, %s, %s, %s, %s, %s)''', (name, version, 'remove', date,
- self.username, self.userip))
-
- self._changed_packages.add(name)
+ self.add_journal_entry(name, version, "remove", date,
+ self.username, self.userip)
def remove_package(self, name):
''' Delete an entire package from the database.
@@ -1347,12 +1333,9 @@ class Store:
safe_execute(cursor, 'delete from packages where name=%s', (name,))
date = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime())
- safe_execute(cursor, '''insert into journals (name, version, action,
- submitted_date, submitted_by, submitted_from) values
- (%s, %s, %s, %s, %s, %s)''', (name, None, 'remove', date,
- self.username, self.userip))
+ self.add_journal_entry(name, None, "remove", date,
+ self.username, self.userip)
- self._changed_packages.add(name)
self._changed_urls.add("https://pypi.python.org/simple/")
def rename_package(self, old, new):
@@ -1379,17 +1362,11 @@ class Store:
if not os.path.exists(dirpath):
os.makedirs(dirpath)
os.rename(oldname, newname)
- safe_execute(cursor,'''insert into journals (name, version, action,
- submitted_date, submitted_by, submitted_from) values
- (%s, %s, %s, %s, %s, %s)''', (new,
- None,
- 'rename from %s' % old,
- date,
- self.username,
- self.userip))
+
+ self.add_journal_entry(new, None, "rename from %s" % old, date,
+ self.username, self.userip)
self._changed_packages.add(old)
- self._changed_packages.add(new)
self._changed_urls.add("https://pypi.python.org/simple/")
def save_cheesecake_score(self, name, version, score_data):
@@ -1635,11 +1612,9 @@ class Store:
insert into roles (user_name, role_name, package_name)
values (%s, %s, %s)''', (user_name, role_name, package_name))
date = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime())
- sql = '''insert into journals (
- name, version, action, submitted_date, submitted_by,
- submitted_from) values (%s, NULL, %s, %s, %s, %s)'''
- safe_execute(cursor, sql, (package_name, 'add %s %s'%(role_name,
- user_name), date, self.username, self.userip))
+ self.add_journal_entry(
+ package_name, "add %s %s" % (role_name, user_name), date,
+ self.username, self.userip)
def delete_role(self, user_name, role_name, package_name):
''' Delete a role for the user for the package.
@@ -1649,11 +1624,9 @@ class Store:
delete from roles where user_name=%s and role_name=%s
and package_name=%s''', (user_name, role_name, package_name))
date = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime())
- safe_execute(cursor, '''insert into journals (
- name, version, action, submitted_date, submitted_by,
- submitted_from) values (%s, NULL, %s, %s, %s, %s)''',
- (package_name, 'remove %s %s'%(role_name, user_name), date,
- self.username, self.userip))
+ self.add_journal_entry(
+ package_name, "remove %s %s" % (role_name, user_name), date,
+ self.username, self.userip)
def delete_otk(self, otk):
''' Delete the One Time Key.
@@ -1853,13 +1826,9 @@ class Store:
# add journal entry
date = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime())
- safe_execute(cursor, '''insert into journals (
- name, version, action, submitted_date, submitted_by,
- submitted_from) values (%s, %s, %s, %s, %s, %s)''',
- (name, version, 'add %s file %s'%(pyversion, filename), date,
- self.username, self.userip))
-
- self._changed_packages.add(name)
+ self.add_journal_entry(
+ name, version, "add %s file %s" % (pyversion, filename), date,
+ self.username, self.userip)
_List_Files = FastResultRow('''packagetype python_version comment_text
filename md5_digest size! has_sig! downloads! upload_time!''')
@@ -1918,14 +1887,8 @@ class Store:
os.rmdir(dirpath)
dirpath = os.path.split(dirpath)[0]
date = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime())
- safe_execute(cursor, '''insert into journals (
- name, version, action, submitted_date, submitted_by,
- submitted_from) values (%s, %s, %s, %s, %s, %s)''',
- (name, version, 'remove file '+filename, date,
- self.username, self.userip))
-
- self._changed_packages.add(name)
-
+ self.add_journal_entry(name, version, "remove file %s" % filename,
+ date, self.username, self.userip)
_File_Info = FastResultRow('''python_version packagetype name comment_text
filename''')
@@ -1947,16 +1910,8 @@ class Store:
def log_docs(self, name, version):
cursor = self.get_cursor()
date = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime())
- safe_execute(cursor, '''insert into journals (name, version, action,
- submitted_date, submitted_by, submitted_from) values
- (%s, %s, %s, %s, %s, %s)''', (name,
- version,
- 'docupdate',
- date,
- self.username,
- self.userip))
-
- self._changed_packages.add(name)
+ self.add_journal_entry(name, version, "docupdate", date,
+ self.username, self.userip)
def docs_url(self, name):
'''Determine the local (pythonhosted.org) documentation URL, if any.