summaryrefslogtreecommitdiffstats
path: root/src/retrace/retrace.py
diff options
context:
space:
mode:
authorMichal Toman <mtoman@redhat.com>2011-03-23 11:19:01 +0100
committerMichal Toman <mtoman@redhat.com>2011-03-23 11:19:01 +0100
commitdc42378d86f3cc7416c3c9eca3dd331f3f8e59da (patch)
tree684d9443cf787becdf4e103edf3aa68202690040 /src/retrace/retrace.py
parent7de7895acbd189a0be5212583d78dacecd6984db (diff)
downloadabrt-dc42378d86f3cc7416c3c9eca3dd331f3f8e59da.tar.gz
abrt-dc42378d86f3cc7416c3c9eca3dd331f3f8e59da.tar.xz
abrt-dc42378d86f3cc7416c3c9eca3dd331f3f8e59da.zip
retrace server: make reposync pluginable
Diffstat (limited to 'src/retrace/retrace.py')
-rw-r--r--src/retrace/retrace.py25
1 files changed, 22 insertions, 3 deletions
diff --git a/src/retrace/retrace.py b/src/retrace/retrace.py
index f3933fb3..33488bba 100644
--- a/src/retrace/retrace.py
+++ b/src/retrace/retrace.py
@@ -5,6 +5,7 @@ import re
import ConfigParser
import random
import sqlite3
+from plugins import *
from webob import Request
from subprocess import *
@@ -65,6 +66,24 @@ CONFIG = {
"DBFile": "stats.db",
}
+def lock(lockfile):
+ try:
+ if not os.path.isfile(lockfile):
+ open(lockfile, "w").close()
+ except:
+ return False
+
+ return True
+
+def unlock(lockfile):
+ try:
+ if os.path.getsize(lockfile) == 0:
+ os.unlink(lockfile)
+ except:
+ return False
+
+ return True
+
def read_config():
parser = ConfigParser.ConfigParser()
parser.read(CONFIG_FILE)
@@ -132,10 +151,10 @@ def guess_arch(coredump_path):
return None
def guess_release(package):
- for distro in GUESS_RELEASE_PARSERS.keys():
- match = GUESS_RELEASE_PARSERS[distro].search(package)
+ for plugin in PLUGINS:
+ match = plugin.guessparser.search(package)
if match:
- return distro, match.group(1)
+ return plugin.distribution, match.group(1)
return None, None