/[secure-testing]/bin/tracker_service.py
ViewVC logotype

Diff of /bin/tracker_service.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2482 by fw, Thu Oct 20 09:02:12 2005 UTC revision 2485 by fw, Thu Oct 20 09:03:03 2005 UTC
# Line 50  function onSearch(query) { Line 50  function onSearch(query) {
50          self.db = security_db.DB(db_name)          self.db = security_db.DB(db_name)
51          self.register('', self.page_home)          self.register('', self.page_home)
52          self.register('*', self.page_object)          self.register('*', self.page_object)
53            self.register('redirect/*', self.page_redirect)
54          self.register('source-package/*', self.page_source_package)          self.register('source-package/*', self.page_source_package)
55          self.register('binary-package/*', self.page_binary_package)          self.register('binary-package/*', self.page_binary_package)
56          self.register('status/release/stable', self.page_status_release_stable)          self.register('status/release/stable', self.page_status_release_stable)
# Line 119  unstable suites.  This means that data f Line 120  unstable suites.  This means that data f
120    
121      def page_object(self, path, params, url):      def page_object(self, path, params, url):
122          obj = path[0]          obj = path[0]
123            return self.page_object_or_redirect(url, obj, False)
124    
125        def page_redirect(self, path, params, url):
126            obj = path[0]
127            return self.page_object_or_redirect(url, obj, True)
128    
129        def page_object_or_redirect(self, url, obj, redirect):
130            c = self.db.cursor()
131    
132          if not obj:          if not obj:
133              # Redirect to start page.              # Redirect to start page.
# Line 126  unstable suites.  This means that data f Line 135  unstable suites.  This means that data f
135    
136          if 'A' <= obj[0] <= 'Z':          if 'A' <= obj[0] <= 'Z':
137              # Bug names start with a capital letter.              # Bug names start with a capital letter.
138              return self.page_bug(url, obj)              return self.page_bug(url, obj, redirect)
139    
140          bugnumber = 0          bugnumber = 0
141          try:          try:
# Line 134  unstable suites.  This means that data f Line 143  unstable suites.  This means that data f
143          except ValueError:          except ValueError:
144              pass              pass
145          if bugnumber:          if bugnumber:
146              return self.page_debian_bug(url, bugnumber)              buglist = list(self.db.getBugsFromDebianBug(c, bugnumber))
147                if buglist:
148                    return self.page_debian_bug(url, bugnumber, buglist)
149                if redirect:
150                    return RedirectResult(self.url_debian_bug(url, str(bugnumber)),
151                                          permanent=False)
152    
         c = self.db.cursor()  
153          if self.db.isSourcePackage(c, obj):          if self.db.isSourcePackage(c, obj):
154              return RedirectResult(self.url_source_package(url, obj, full=True))              return RedirectResult(self.url_source_package(url, obj, full=True))
155          if  self.db.isBinaryPackage(c, obj):          if  self.db.isBinaryPackage(c, obj):
# Line 144  unstable suites.  This means that data f Line 157  unstable suites.  This means that data f
157    
158          return self.page_not_found(url, obj)          return self.page_not_found(url, obj)
159    
160      def page_bug(self, url, name):      def page_bug(self, url, name, redirect):
161          cursor = self.db.cursor()          cursor = self.db.cursor()
162          try:          try:
163              bug = bugs.BugFromDB(cursor, name)              bug = bugs.BugFromDB(cursor, name)
164          except ValueError:          except ValueError:
165                if redirect:
166                    if name[0:4] in ('CAN-', 'CVE-'):
167                        return RedirectResult(self.url_cve(url, name),
168                                              permanent=False)
169              return self.page_not_found(url, name)              return self.page_not_found(url, name)
170          if bug.name <> name:          if bug.name <> name or redirect:
171              # Show the normalized bug name in the browser address bar.              # Show the normalized bug name in the browser address bar.
172              return RedirectResult(url.scriptRelativeFull(bug.name))              return RedirectResult(url.scriptRelativeFull(bug.name))
173    
# Line 301  unstable suites.  This means that data f Line 318  unstable suites.  This means that data f
318    
319          return self.create_page(url, bug.name, page)          return self.create_page(url, bug.name, page)
320    
321      def page_debian_bug(self, url, bugnumber):      def page_debian_bug(self, url, bugnumber, buglist):
322          buglist = list(self.db.getBugsFromDebianBug(self.db.cursor(),          if len(buglist) == 1:
323                                                      bugnumber))              # Single issue, redirect.
324          if buglist:              return RedirectResult(url.scriptRelativeFull(buglist[0][0]))
325              if len(buglist) == 1:  
326                  # Single issue, redirect.          def gen():
327                  return RedirectResult(url.scriptRelativeFull(buglist[0][0]))              for (name, urgency, description) in buglist:
328                    if urgency == "unknown":
329              def gen():                      urgency = ""
330                  for (name, urgency, description) in buglist:                  yield self.make_xref(url, name), urgency, description
331                      if urgency == "unknown":  
332                          urgency = ""          return self.create_page(
333                      yield self.make_xref(url, name), urgency, description              url, "Information related to Debian bug #%d" % bugnumber,
334                [P("The following issues reference to Debian bug ",
335              return self.create_page(                 self.make_debian_bug(url, bugnumber), ":"),
336                  url, "Information related to Debian bug #%d" % bugnumber,               make_table(gen(),
337                  [P("The following issues reference to Debian bug ",                          caption=("Name", "Urgency", "Description"))])
                    self.make_debian_bug(url, bugnumber), ":"),  
                  make_table(gen(),  
                             caption=("Name", "Urgency", "Description"))])  
   
         else:  
             return self.page_not_found(url, str(bugnumber))  
338    
339      def page_not_found(self, url, query):      def page_not_found(self, url, query):
340          return self.create_page(url, 'Not found',          return self.create_page(url, 'Not found',

Legend:
Removed from v.2482  
changed lines
  Added in v.2485

  ViewVC Help
Powered by ViewVC 1.1.5