summaryrefslogtreecommitdiff
path: root/patchtracker/ReqHandler.py
diff options
context:
space:
mode:
Diffstat (limited to 'patchtracker/ReqHandler.py')
-rwxr-xr-xpatchtracker/ReqHandler.py63
1 files changed, 2 insertions, 61 deletions
diff --git a/patchtracker/ReqHandler.py b/patchtracker/ReqHandler.py
index da23525..ca81be7 100755
--- a/patchtracker/ReqHandler.py
+++ b/patchtracker/ReqHandler.py
@@ -5,9 +5,7 @@ import os
import sys
import patchtracker.Conf as Conf
-from patchtracker.Templates import ErrorTemplate, PatchTemplate, LetterTocTemplate, FrontPageTemplate, SearchResultsTemplate
-from patchtracker.DiffGzHandler import DiffGzHandler, DiffGzException
-from patchtracker.DebTarHandler import DebTarHandler
+from patchtracker.Templates import ErrorTemplate, LetterTocTemplate, FrontPageTemplate, SearchResultsTemplate
from patchtracker.CacheObject import CacheObject, CacheMissException
import patchtracker.DB as DB
from patchtracker.DB import PatchTrackerDB
@@ -35,58 +33,6 @@ class ErrorCmd(Cmd):
def output(self):
return str(ErrorTemplate(self.msg))
-class PatchCmd(Cmd):
- def __init__(self, args):
- Cmd.__init__(self)
- self.db = PatchTrackerDB()
- self.patchtype,mode,pkgname,version = args[0:4]
- self.parsemode(mode)
- dh = self.make_diffhandler(pkgname,version)
- if self.patchtype == "series":
- self.patchname = os.sep.join(args[4:])
- self.content = dh.series().fetch(self.patchname)
- elif self.patchtype == "debianonly":
- self.patchname = "debian-dir only changes"
- self.content = dh.debiandir()
- elif self.patchtype == "nondebian":
- self.patchname = "direct (non packaging) changes"
- self.content = dh.nondebiandir()
- elif self.patchtype == "misc":
- self.patchname = os.sep.join(args[4:])
- self.content = dh.filterdiff(include=self.patchname)
- else:
- raise ReqHandlerException("unhandled patch type '%s'"%(self.patchtype))
- self.pkgname = pkgname
- self.version = version
-
- def parsemode(self, mode):
- if mode == "view" or mode == "dl":
- self.mode = mode
- else:
- raise ReqHandlerException("unhandled display mode '%s'"%(mode))
- if mode == "dl":
- self.content_type = "text/x-diff"
-
- # XXX this is kinda ugly...
- def make_diffhandler(self, pkgname, vers):
- dfile = self.db.findDiffGz(pkgname,vers)
- if dfile:
- return DiffGzHandler(dfile)
- else:
- dfile = self.db.findDebTar(pkgname, vers)
- if dfile:
- return DebTarHandler(dfile)
- else:
- raise ReqHandlerException("can not find diff file for %s / %s"%(pkgname,vers))
-
- def output(self):
- if self.mode == "dl":
- return str(self.content)
- else:
- return str(PatchTemplate(pkg=self.pkgname,vers=self.version,
- patch=self.content,name=self.patchname,
- patchtype=self.patchtype))
-
class PackageCmd(Cmd):
def __init__(self, args):
Cmd.__init__(self)
@@ -173,10 +119,7 @@ class CmdHandler:
args = uri[len(Conf.root_url)+1:].split("/")
cmdarg = args[0]
cacheable = False
- if cmdarg == "patch":
- self.cmd = PatchCmd(args[1:])
- cacheable = True
- elif cmdarg == "package":
+ if cmdarg == "package":
self.cmd = PackageCmd(args[1:])
if len(args[1:]) > 1:
cacheable = True
@@ -208,8 +151,6 @@ class CmdHandler:
except CacheMissException:
result = self.cmd.output()
self.cacheobj.put(result)
- except DiffGzException, e:
- return ErrorCmd(str(e), "500 Oh Noez!!1!").output()
return result