<?xml version="1.0"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>CKAN: Ticket Query</title>
    <link>http://localhost/query?milestone=ckan-v1.2&amp;group=status&amp;desc=1&amp;order=owner</link>
    <description>The open source data portal software</description>
    <language>en-US</language>
    <image>
      <title>CKAN</title>
      <url>http://assets.okfn.org/p/ckan/img/ckan_logo_shortname.png</url>
      <link>http://localhost/query?milestone=ckan-v1.2&amp;group=status&amp;desc=1&amp;order=owner</link>
    </image>
    <generator>Trac 0.12.3</generator>
    <item>
        <link>http://localhost/ticket/415</link>
        <guid isPermaLink="false">http://localhost/ticket/415</guid>
        <title>#415: Chase Talis about loading RDF from CKAN.</title>
        <pubDate>Tue, 10 Aug 2010 09:14:16 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/415#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/428</link>
        <guid isPermaLink="false">http://localhost/ticket/428</guid>
        <title>#428: Daily dump of DGU CKAN available</title>
        <pubDate>Fri, 13 Aug 2010 12:40:51 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description>&lt;p&gt;
End users want to get hold of a JSON &amp;amp; CSV dump of the DGU data.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/428#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/429</link>
        <guid isPermaLink="false">http://localhost/ticket/429</guid>
        <title>#429: ONS data is imported daily to DGU</title>
        <pubDate>Fri, 13 Aug 2010 12:41:34 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/429#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/434</link>
        <guid isPermaLink="false">http://localhost/ticket/434</guid>
        <title>#434: Logged in user to si.ckan.net causes genshi exception</title>
        <pubDate>Wed, 18 Aug 2010 11:21:55 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description>&lt;p&gt;
Here's the trace:
&lt;/p&gt;
&lt;pre class="wiki"&gt;[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197] Error - &amp;lt;type 'exceptions.IndexError'&amp;gt;: list index out of range
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197] mod_wsgi (pid=6195): Exception occurred processing WSGI script '/home/okfn/var/srvc/si.ckan.net/py
env/bin/si.ckan.net.py'.
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197] Traceback (most recent call last):
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/paste/cascade.py", line
130, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     return self.apps[-1](environ, start_response)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/paste/registry.py", line
 375, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     app_iter = self.application(environ, start_response)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/repoze/who/middleware.py
", line 107, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     app_iter = app(environ, wrapper.wrap_start_response)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/pylons/middleware.py", l
ine 214, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     self.app, new_environ, catch_exc_info=True)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/pylons/util.py", line 94
, in call_wsgi_application
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     app_iter = application(environ, start_response)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/weberror/errormiddleware
.py", line 156, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     return self.application(environ, start_response)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/beaker/middleware.py", l
ine 73, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     return self.app(environ, start_response)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/beaker/middleware.py", l
ine 152, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     return self.wrap_app(environ, session_start_response)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/routes/middleware.py", l
ine 130, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     response = self.app(environ, start_response)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/pylons/wsgiapp.py", line
 125, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     response = self.dispatch(controller, environ, start_response)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/pylons/wsgiapp.py", line
 324, in dispatch
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     return controller(environ, start_response)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/src/ckan/ckan/lib/base.py", line 73, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     return WSGIController.__call__(self, environ, start_response)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/pylons/controllers/core.
py", line 221, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     response = self._dispatch_call()
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/pylons/controllers/core.
py", line 172, in _dispatch_call
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     response = self._inspect_call(func)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/pylons/controllers/core.
py", line 107, in _inspect_call
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     result = self._perform_call(func, args)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/pylons/controllers/core.
py", line 60, in _perform_call
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     return func(**args)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/src/ckan/ckan/controllers/error.py", line 32, in doc
ument
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     ckan_template = render('error_document_template.html')
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/src/ckan/ckan/lib/base.py", line 38, in render
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     return render_template()
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/src/ckan/ckan/lib/base.py", line 36, in render_templ
ate
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     return literal(stream.render(method=method, encoding=None))
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/core.py", line 18
3, in render
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     return encode(generator, method=method, encoding=encoding, out=out)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/output.py", line
57, in encode
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     return _encode(''.join(list(iterator)))
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/output.py", line 339, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     for kind, data, pos in stream:
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/output.py", line 670, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     for kind, data, pos in stream:
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/output.py", line 771, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     for kind, data, pos in chain(stream, [(None, None, None)]):
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/output.py", line 586, in __call__
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     for ev in stream:
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/core.py", line 288, in _ensure
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     for event in stream:
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/template/base.py", line 618, in _include
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     for event in tmpl.generate(ctxt, **vars):
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/template/base.py", line 618, in _include
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     for event in tmpl.generate(ctxt, **vars):
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/template/base.py", line 605, in _include
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     for event in stream:
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/template/markup.py", line 327, in _match
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     for event in stream:
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/template/base.py", line 545, in _flatten
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     for kind, data, pos in stream:
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/filters/i18n.py", line 177, in _generate
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     for event in msgbuf.translate(gettext(msgbuf.format())):
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/filters/i18n.py", line 1029, in translate
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     parts = parse_msg(string)
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]   File "/home/okfn/var/srvc/si.ckan.net/pyenv/lib/python2.5/site-packages/genshi/filters/i18n.py", line 1143, in parse_msg
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197]     parts.append((stack[-1], string))
[Wed Aug 18 11:10:19 2010] [error] [client 89.212.104.197] IndexError: list index out of range
&lt;/pre&gt;&lt;p&gt;
ckan: 1e403927f2bb (metastable)
genshi: 0.6
lang: slovenian
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/434#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/436</link>
        <guid isPermaLink="false">http://localhost/ticket/436</guid>
        <title>#436: Investigate exception: resource search JSON</title>
        <pubDate>Thu, 19 Aug 2010 08:35:59 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description>&lt;p&gt;
Here's the dump from 22:10 last night:
&lt;/p&gt;
&lt;p&gt;
URL: &lt;a class="ext-link" href="http://ckan.net/api/search/resource?all_fields=1&amp;amp;offset=0&amp;amp;limit=20&amp;amp;qjson=%3Cspan%20class="&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/api/search/resource?all_fields=1&amp;amp;offset=0&amp;amp;limit=20&amp;amp;qjson=%3Cspan%20class=&lt;/a&gt;
Module weberror.errormiddleware:162 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;              &lt;span class="underline"&gt;traceback_supplement&lt;/span&gt; = Supplement, self, environ
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
sr_checker = &lt;a class="missing wiki"&gt;ResponseStartChecker?&lt;/a&gt;(start_response)
app_iter = self.application(environ, sr_checker)
return self.make_catching_iter(app_iter, environ, sr_checker)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
except:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
app_iter = self.application(environ, sr_checker)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module beaker.middleware:73 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                                                     self.cache_manager)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
environ[self.environ_key] = self.cache_manager
return self.app(environ, start_response)
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module beaker.middleware:152 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                          headers.append(('Set-cookie', cookie))
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
return start_response(status, headers, exc_info)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.wrap_app(environ, session_start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def _get_session(self):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return self.wrap_app(environ, session_start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module routes.middleware:130 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                  environ&lt;a class="missing wiki"&gt;SCRIPT_NAME?&lt;/a&gt; = environ&lt;a class="missing wiki"&gt;SCRIPT_NAME?&lt;/a&gt;[:-1]
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
# Wrapped in try as in rare cases the attribute will be gone already
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.app(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.wsgiapp:125 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
controller = self.resolve(environ, start_response)
response = self.dispatch(controller, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if 'paste.testing_variables' in environ and hasattr(response,
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self.dispatch(controller, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.wsgiapp:324 in dispatch
&amp;lt;&amp;lt;          if log_debug:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
log.debug("Calling controller class with WSGI interface")
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
return controller(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def load_test_env(self, environ):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return controller(environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.lib.base:73 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;          # available in environ&lt;a class="missing wiki"&gt;pylons.routes_dict?&lt;/a&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
try:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
return WSGIController.&lt;span class="underline"&gt;call&lt;/span&gt;(self, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
finally:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
model.Session.remove()
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return WSGIController.&lt;span class="underline"&gt;call&lt;/span&gt;(self, environ, start_response)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:221 in &lt;span class="underline"&gt;call&lt;/span&gt;
&amp;lt;&amp;lt;                  return response(environ, self.start_response)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._dispatch_call()
if not start_response_called:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
self.start_response = start_response
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._dispatch_call()
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:172 in _dispatch_call
&amp;lt;&amp;lt;              req.environ&lt;a class="missing wiki"&gt;pylons.action_method?&lt;/a&gt; = func
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._inspect_call(func)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
else:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if log_debug:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
response = self._inspect_call(func)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:107 in _inspect_call
&amp;lt;&amp;lt;                        func.&lt;span class="underline"&gt;name&lt;/span&gt;, args)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
try:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
result = self._perform_call(func, args)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
except HTTPException, httpe:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
if log_debug:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
result = self._perform_call(func, args)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module pylons.controllers.core:60 in _perform_call
&amp;lt;&amp;lt;          """Hide the traceback for everything above this method"""
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
&lt;span class="underline"&gt;traceback_hide&lt;/span&gt; = 'before_and_this'
return func(&lt;strong&gt;args)
&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
def _inspect_call(self, func):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return func(&lt;strong&gt;args)
&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module ckan.controllers.rest:400 in search
&amp;lt;&amp;lt;                      response.status_int = 400
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
return gettext('Blank qjson parameter')
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
params = json.loads(request.params&lt;a class="missing wiki"&gt;qjson?&lt;/a&gt;)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
elif request.params.values() and request.params.values() != [u&lt;em&gt;] and request.params.values() != [u'1']:
&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
params = request.params
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
params = json.loads(request.params&lt;a class="missing wiki"&gt;qjson?&lt;/a&gt;)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module simplejson:384 in loads
&amp;lt;&amp;lt;              parse_constant is None and object_pairs_hook is None
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
and not use_decimal and not kw):
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
return _default_decoder.decode(s)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;
if cls is None:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
cls = JSONDecoder
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
return _default_decoder.decode(s)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module simplejson.decoder:402 in decode
&amp;lt;&amp;lt;          """
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
end = _w(s, end).end()
if end != len(s):
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Module simplejson.decoder:420 in raw_decode
&amp;lt;&amp;lt;              obj, end = self.scan_once(s, idx)
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
except &lt;a class="missing wiki"&gt;StopIteration?&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
raise JSONDecodeError("No JSON object could be decoded", s, idx)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
return obj, end
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote class="citation"&gt;
&lt;blockquote&gt;
&lt;p&gt;
raise JSONDecodeError("No JSON object could be decoded", s, idx)
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
JSONDecodeError: No JSON object could be decoded: line 1 column 0 (char 0)
CGI Variables
DOCUMENT_ROOT        '/htdocs'
GATEWAY_INTERFACE        'CGI/1.1'
HTTP_ACCEPT        'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8, application/json'
HTTP_ACCEPT_CHARSET        'ISO-8859-1,utf-8;q=0.7,*;q=0.7'
HTTP_ACCEPT_ENCODING        'gzip,deflate'
HTTP_ACCEPT_LANGUAGE        'en-us,en;q=0.5'
HTTP_CONNECTION        'keep-alive'
HTTP_COOKIE        '&lt;span class="underline"&gt;utma=27730403.1245320310.1281386803.1281386803.1282164955.2; &lt;/span&gt;utmz=27730403.1282164955.2.2.utmcsr=jira|utmccn=(referral)|utmcmd=referral|utmcct=/browse/PLATFORM-892; &lt;span class="underline"&gt;utmb=27730403.3.10.1282164955; &lt;/span&gt;utmc=27730403'
HTTP_HOST        'ckan.net'
HTTP_KEEP_ALIVE        '300'
HTTP_REFERER        '&lt;a class="ext-link" href="http://jira/browse/PLATFORM-892"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://jira/browse/PLATFORM-892&lt;/a&gt;'
HTTP_USER_AGENT        'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7'
PATH        '/usr/local/bin:/usr/bin:/bin'
PATH_INFO        '/api/search/resource'
PATH_TRANSLATED        '/home/okfn/var/srvc/ckan.net/pyenv/bin/ckan.net.py/api/search/resource'
QUERY_STRING        'all_fields=1&amp;amp;offset=0&amp;amp;limit=20&amp;amp;qjson=%3Cspan%20class='
REMOTE_ADDR        '64.235.97.218'
REMOTE_PORT        '20720'
REQUEST_METHOD        'GET'
REQUEST_URI        '/api/search/resource?all_fields=1&amp;amp;offset=0&amp;amp;limit=20&amp;amp;qjson=%3Cspan%20class='
SCRIPT_FILENAME        '/home/okfn/var/srvc/ckan.net/pyenv/bin/ckan.net.py'
SCRIPT_URI        '&lt;a class="ext-link" href="http://ckan.net/api/search/resource"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/api/search/resource&lt;/a&gt;'
SCRIPT_URL        '/api/search/resource'
SERVER_ADDR        '10.226.226.118'
SERVER_ADMIN        '[no address given]'
SERVER_NAME        'ckan.net'
SERVER_PORT        '80'
SERVER_PROTOCOL        'HTTP/1.1'
SERVER_SIGNATURE        '&amp;lt;address&amp;gt;Apache/2.2.9 (Debian) mod_wsgi/2.5 Python/2.5.2 Server at ckan.net Port 80&amp;lt;/address&amp;gt;\n'
SERVER_SOFTWARE        'Apache/2.2.9 (Debian) mod_wsgi/2.5 Python/2.5.2'
WSGI Variables
application        &amp;lt;beaker.middleware.&lt;a class="missing wiki"&gt;CacheMiddleware?&lt;/a&gt; object at 0xa1c13ec&amp;gt;
beaker.cache        &amp;lt;beaker.cache.&lt;a class="missing wiki"&gt;CacheManager?&lt;/a&gt; object at 0xa1c142c&amp;gt;
beaker.get_session        &amp;lt;bound method &lt;a class="missing wiki"&gt;SessionMiddleware?&lt;/a&gt;._get_session of &amp;lt;beaker.middleware.&lt;a class="missing wiki"&gt;SessionMiddleware?&lt;/a&gt; object at 0xa1c12ac&amp;gt;&amp;gt;
beaker.session        {'_accessed_time': 1282165818.0880959, '_creation_time': 1282165818.0880959}
mod_wsgi.application_group        'ckan.net|'
mod_wsgi.callable_object        'application'
mod_wsgi.listener_host        &lt;em&gt;
mod_wsgi.listener_port        '80'
mod_wsgi.process_group        &lt;/em&gt;
mod_wsgi.reload_mechanism        '0'
mod_wsgi.script_reloading        '1'
mod_wsgi.version        (2, 5)
paste.cookies        (&amp;lt;SimpleCookie: __utma='27730403.1245320310.1281386803.1281386803.1282164955.2' __utmb='27730403.3.10.1282164955' __utmc='27730403' __utmz='27730403.1282164955.2.2.utmcsr=jira|utmccn=(referral)|utmcmd=referral|utmcct=/browse/PLATFORM-892'&amp;gt;, '&lt;span class="underline"&gt;utma=27730403.1245320310.1281386803.1281386803.1282164955.2; &lt;/span&gt;utmz=27730403.1282164955.2.2.utmcsr=jira|utmccn=(referral)|utmcmd=referral|utmcct=/browse/PLATFORM-892; &lt;span class="underline"&gt;utmb=27730403.3.10.1282164955; &lt;/span&gt;utmc=27730403')
paste.parsed_querystring        ([('all_fields', '1'), ('offset', '0'), ('limit', '20'), ('qjson', '&amp;lt;span class=')], 'all_fields=1&amp;amp;offset=0&amp;amp;limit=20&amp;amp;qjson=%3Cspan%20class=')
paste.registry        &amp;lt;paste.registry.Registry object at 0x130ed84c&amp;gt;
paste.throw_errors        True
pylons.action_method        &amp;lt;bound method &lt;a class="missing wiki"&gt;RestController?&lt;/a&gt;.search of &amp;lt;ckan.controllers.rest.&lt;a class="missing wiki"&gt;RestController?&lt;/a&gt; object at 0xe9bbe0c&amp;gt;&amp;gt;
pylons.controller        &amp;lt;ckan.controllers.rest.&lt;a class="missing wiki"&gt;RestController?&lt;/a&gt; object at 0xe9bbe0c&amp;gt;
pylons.environ_config        {'session': 'beaker.session', 'cache': 'beaker.cache'}
pylons.pylons        &amp;lt;pylons.util.&lt;a class="missing wiki"&gt;PylonsContext?&lt;/a&gt; object at 0xe9bbe8c&amp;gt;
pylons.routes_dict        {'action': u'search', 'controller': u'rest', 'register': u'resource'}
repoze.who.logger        &amp;lt;logging.Logger instance at 0xa3cb0cc&amp;gt;
repoze.who.plugins        {'openid': &amp;lt;&lt;a class="missing wiki"&gt;OpenIdIdentificationPlugin?&lt;/a&gt; 170067148&amp;gt;, 'auth_tkt': &amp;lt;&lt;a class="missing wiki"&gt;AuthTktCookiePlugin?&lt;/a&gt; 171739788&amp;gt;}
routes.route        &amp;lt;routes.route.Route object at 0xa102fac&amp;gt;
routes.url        &amp;lt;routes.util.URLGenerator object at 0x13a5a3cc&amp;gt;
webob._parsed_query_vars        (GET([('all_fields', '1'), ('offset', '0'), ('limit', '20'), ('qjson', '&amp;lt;span class=')]), 'all_fields=1&amp;amp;offset=0&amp;amp;limit=20&amp;amp;qjson=%3Cspan%20class=')
webob.adhoc_attrs        {'language': 'en-us'}
wsgi process        'Multi process AND threads (?)'
wsgi.file_wrapper        &amp;lt;built-in method file_wrapper of mod_wsgi.Adapter object at 0x12f53530&amp;gt;
wsgiorg.routing_args        (&amp;lt;routes.util.URLGenerator object at 0x13a5a3cc&amp;gt;, {'action': u'search', 'controller': u'rest', 'register': u'resource'})
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/436#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/437</link>
        <guid isPermaLink="false">http://localhost/ticket/437</guid>
        <title>#437: Buildbot test failures - ascii codec</title>
        <pubDate>Thu, 19 Aug 2010 13:14:00 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description>&lt;p&gt;
On today's buildbot: &lt;a class="ext-link" href="http://buildbot.okfn.org/builders/buildbot-test/builds/201"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://buildbot.okfn.org/builders/buildbot-test/builds/201&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
2 failures about ascii (ignore other 2)
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/437#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/459</link>
        <guid isPermaLink="false">http://localhost/ticket/459</guid>
        <title>#459: Versions on branches are broken</title>
        <pubDate>Fri, 20 Aug 2010 10:26:13 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/459#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/469</link>
        <guid isPermaLink="false">http://localhost/ticket/469</guid>
        <title>#469: Unit test to check API key in correctly named HTTP header is accepted by server</title>
        <pubDate>Fri, 20 Aug 2010 13:26:00 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/469#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/471</link>
        <guid isPermaLink="false">http://localhost/ticket/471</guid>
        <title>#471: API user sends API key in correctly named header</title>
        <pubDate>Fri, 20 Aug 2010 13:48:08 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/471#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/472</link>
        <guid isPermaLink="false">http://localhost/ticket/472</guid>
        <title>#472: API user sends API key in incorrectly named header</title>
        <pubDate>Fri, 20 Aug 2010 13:48:28 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/472#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/473</link>
        <guid isPermaLink="false">http://localhost/ticket/473</guid>
        <title>#473: API user discovers correct header for sending API key</title>
        <pubDate>Fri, 20 Aug 2010 13:50:03 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/473#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/475</link>
        <guid isPermaLink="false">http://localhost/ticket/475</guid>
        <title>#475: Unit test to check API key in incorrectly named HTTP header is not accepted by server</title>
        <pubDate>Fri, 20 Aug 2010 14:00:02 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/475#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/478</link>
        <guid isPermaLink="false">http://localhost/ticket/478</guid>
        <title>#478: Unit test for "interface resource" in API</title>
        <pubDate>Fri, 20 Aug 2010 14:37:47 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description>&lt;p&gt;
We don't want /api to be an HTML page, but rather provide information about the API in a JSON structure.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/478#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/491</link>
        <guid isPermaLink="false">http://localhost/ticket/491</guid>
        <title>#491: Get form for creating harvest source entity</title>
        <pubDate>Sat, 21 Aug 2010 21:43:28 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/491#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/492</link>
        <guid isPermaLink="false">http://localhost/ticket/492</guid>
        <title>#492: Submit harvest source create form response to the API</title>
        <pubDate>Sat, 21 Aug 2010 21:44:02 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/492#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/493</link>
        <guid isPermaLink="false">http://localhost/ticket/493</guid>
        <title>#493: Get harvest source entity</title>
        <pubDate>Sat, 21 Aug 2010 21:44:43 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/493#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/494</link>
        <guid isPermaLink="false">http://localhost/ticket/494</guid>
        <title>#494: Get form for updating remote metadata entity</title>
        <pubDate>Sat, 21 Aug 2010 21:45:06 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/494#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/495</link>
        <guid isPermaLink="false">http://localhost/ticket/495</guid>
        <title>#495: Put form for updating remote metadata entity</title>
        <pubDate>Sat, 21 Aug 2010 21:45:50 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/495#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/500</link>
        <guid isPermaLink="false">http://localhost/ticket/500</guid>
        <title>#500: Exception from diff</title>
        <pubDate>Mon, 23 Aug 2010 08:43:53 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description>&lt;p&gt;
Investigate exception occured occasionally in last couple of days on ckan.net:
&lt;/p&gt;
&lt;pre class="wiki"&gt;WebApp Error: &amp;lt;type 'exceptions.AttributeError'&amp;gt;: 'NoneType' object has no attribute 'key'
URL: http://ckan.net/revision/diff/dbtune-audioscrobbler?diff=66a47b9e-232a-4838-8674-66fa1a5c76e1&amp;amp;oldid=a99c98be-767a-4e49-9025-2472b2d18b9c
Module weberror.errormiddleware:162 in __call__
&amp;lt;&amp;lt;              __traceback_supplement__ = Supplement, self, environ
                   sr_checker = ResponseStartChecker(start_response)
                   app_iter = self.application(environ, sr_checker)
                   return self.make_catching_iter(app_iter, environ, sr_checker)
               except:
&amp;gt;&amp;gt;  app_iter = self.application(environ, sr_checker)
Module beaker.middleware:73 in __call__
&amp;lt;&amp;lt;                                                     self.cache_manager)
               environ[self.environ_key] = self.cache_manager
               return self.app(environ, start_response)
&amp;gt;&amp;gt;  return self.app(environ, start_response)
Module beaker.middleware:152 in __call__
&amp;lt;&amp;lt;                          headers.append(('Set-cookie', cookie))
                   return start_response(status, headers, exc_info)
               return self.wrap_app(environ, session_start_response)
           def _get_session(self):
&amp;gt;&amp;gt;  return self.wrap_app(environ, session_start_response)
Module routes.middleware:130 in __call__
&amp;lt;&amp;lt;                  environ['SCRIPT_NAME'] = environ['SCRIPT_NAME'][:-1]
               response = self.app(environ, start_response)
               # Wrapped in try as in rare cases the attribute will be gone already
&amp;gt;&amp;gt;  response = self.app(environ, start_response)
Module pylons.wsgiapp:125 in __call__
&amp;lt;&amp;lt;
               controller = self.resolve(environ, start_response)
               response = self.dispatch(controller, environ, start_response)
               if 'paste.testing_variables' in environ and hasattr(response,
&amp;gt;&amp;gt;  response = self.dispatch(controller, environ, start_response)
Module pylons.wsgiapp:324 in dispatch
&amp;lt;&amp;lt;          if log_debug:
                   log.debug("Calling controller class with WSGI interface")
               return controller(environ, start_response)
           def load_test_env(self, environ):
&amp;gt;&amp;gt;  return controller(environ, start_response)
Module ckan.lib.base:73 in __call__
&amp;lt;&amp;lt;          # available in environ['pylons.routes_dict']
               try:
                   return WSGIController.__call__(self, environ, start_response)
               finally:
                   model.Session.remove()
&amp;gt;&amp;gt;  return WSGIController.__call__(self, environ, start_response)
Module pylons.controllers.core:221 in __call__
&amp;lt;&amp;lt;                  return response(environ, self.start_response)
               response = self._dispatch_call()
               if not start_response_called:
                   self.start_response = start_response
&amp;gt;&amp;gt;  response = self._dispatch_call()
Module pylons.controllers.core:172 in _dispatch_call
&amp;lt;&amp;lt;              req.environ['pylons.action_method'] = func
                   response = self._inspect_call(func)
               else:
                   if log_debug:
&amp;gt;&amp;gt;  response = self._inspect_call(func)
Module pylons.controllers.core:107 in _inspect_call
&amp;lt;&amp;lt;                        func.__name__, args)
               try:
                   result = self._perform_call(func, args)
               except HTTPException, httpe:
                   if log_debug:
&amp;gt;&amp;gt;  result = self._perform_call(func, args)
Module pylons.controllers.core:60 in _perform_call
&amp;lt;&amp;lt;          """Hide the traceback for everything above this method"""
               __traceback_hide__ = 'before_and_this'
               return func(**args)
           def _inspect_call(self, func):
&amp;gt;&amp;gt;  return func(**args)
Module ckan.controllers.revision:119 in diff
&amp;lt;&amp;lt;          c.revision_to = model.Session.query(model.Revision).get(
                   request.params.getone('diff'))
               diff = pkg.diff(c.revision_to, c.revision_from)
               c.diff = diff.items()
               c.diff.sort()
&amp;gt;&amp;gt;  diff = pkg.diff(c.revision_to, c.revision_from)
Module ckan.model.package:340 in diff
&amp;lt;&amp;lt;                              display_id = to_obj_rev.tag.name
                               elif obj_class.__name__ == 'PackageExtra':
                                   display_id = to_obj_rev.key
                               else:
                                   display_id = related_obj_id[:4]
&amp;gt;&amp;gt;  display_id = to_obj_rev.key
AttributeError: 'NoneType' object has no attribute 'key'
CGI Variables
DOCUMENT_ROOT	'/htdocs'
GATEWAY_INTERFACE	'CGI/1.1'
HTTP_ACCEPT	'*/*'
HTTP_ACCEPT_ENCODING	'gzip'
HTTP_ACCEPT_LANGUAGE	'zh-cn,zh-tw'
HTTP_CONNECTION	'close'
HTTP_HOST	'ckan.net'
HTTP_USER_AGENT	'Baiduspider+(+http://www.baidu.com/search/spider.htm)'
PATH	'/usr/local/bin:/usr/bin:/bin'
PATH_INFO	'/revision/diff/dbtune-audioscrobbler'
PATH_TRANSLATED	'/home/okfn/var/srvc/ckan.net/pyenv/bin/ckan.net.py/revision/diff/dbtune-audioscrobbler'
QUERY_STRING	'diff=66a47b9e-232a-4838-8674-66fa1a5c76e1&amp;amp;oldid=a99c98be-767a-4e49-9025-2472b2d18b9c'
REMOTE_ADDR	'123.125.66.32'
REMOTE_PORT	'63767'
REQUEST_METHOD	'GET'
REQUEST_URI	'/revision/diff/dbtune-audioscrobbler?diff=66a47b9e-232a-4838-8674-66fa1a5c76e1&amp;amp;oldid=a99c98be-767a-4e49-9025-2472b2d18b9c'
SCRIPT_FILENAME	'/home/okfn/var/srvc/ckan.net/pyenv/bin/ckan.net.py'
SCRIPT_URI	'http://ckan.net/revision/diff/dbtune-audioscrobbler'
SCRIPT_URL	'/revision/diff/dbtune-audioscrobbler'
SERVER_ADDR	'10.226.226.118'
SERVER_ADMIN	'[no address given]'
SERVER_NAME	'ckan.net'
SERVER_PORT	'80'
SERVER_PROTOCOL	'HTTP/1.1'
SERVER_SIGNATURE	'&amp;lt;address&amp;gt;Apache/2.2.9 (Debian) mod_wsgi/2.5 Python/2.5.2 Server at ckan.net Port 80&amp;lt;/address&amp;gt;\n'
SERVER_SOFTWARE	'Apache/2.2.9 (Debian) mod_wsgi/2.5 Python/2.5.2'
WSGI Variables
application	&amp;lt;beaker.middleware.CacheMiddleware object at 0x9f603ec&amp;gt;
beaker.cache	&amp;lt;beaker.cache.CacheManager object at 0x9f6042c&amp;gt;
beaker.get_session	&amp;lt;bound method SessionMiddleware._get_session of &amp;lt;beaker.middleware.SessionMiddleware object at 0x9f602ac&amp;gt;&amp;gt;
beaker.session	{'_accessed_time': 1282385101.4243281, '_creation_time': 1282385101.4243281}
mod_wsgi.application_group	'ckan.net|'
mod_wsgi.callable_object	'application'
mod_wsgi.listener_host	''
mod_wsgi.listener_port	'80'
mod_wsgi.process_group	''
mod_wsgi.reload_mechanism	'0'
mod_wsgi.script_reloading	'1'
mod_wsgi.version	(2, 5)
paste.cookies	(&amp;lt;SimpleCookie: &amp;gt;, '')
paste.parsed_querystring	([('diff', '66a47b9e-232a-4838-8674-66fa1a5c76e1'), ('oldid', 'a99c98be-767a-4e49-9025-2472b2d18b9c')], 'diff=66a47b9e-232a-4838-8674-66fa1a5c76e1&amp;amp;oldid=a99c98be-767a-4e49-9025-2472b2d18b9c')
paste.registry	&amp;lt;paste.registry.Registry object at 0x104552ec&amp;gt;
paste.throw_errors	True
pylons.action_method	&amp;lt;bound method RevisionController.diff of &amp;lt;ckan.controllers.revision.RevisionController object at 0xfb17aec&amp;gt;&amp;gt;
pylons.controller	&amp;lt;ckan.controllers.revision.RevisionController object at 0xfb17aec&amp;gt;
pylons.environ_config	{'session': 'beaker.session', 'cache': 'beaker.cache'}
pylons.pylons	&amp;lt;pylons.util.PylonsContext object at 0x10286d4c&amp;gt;
pylons.routes_dict	{'action': u'diff', 'controller': u'revision', 'id': u'dbtune-audioscrobbler'}
repoze.who.logger	&amp;lt;logging.Logger instance at 0xa16e0cc&amp;gt;
repoze.who.plugins	{'openid': &amp;lt;OpenIdIdentificationPlugin 167584972&amp;gt;, 'auth_tkt': &amp;lt;AuthTktCookiePlugin 169253516&amp;gt;}
routes.route	&amp;lt;routes.route.Route object at 0x9f3690c&amp;gt;
routes.url	&amp;lt;routes.util.URLGenerator object at 0xfd8d7cc&amp;gt;
webob._parsed_query_vars	(GET([('diff', '66a47b9e-232a-4838-8674-66fa1a5c76e1'), ('oldid', 'a99c98be-767a-4e49-9025-2472b2d18b9c')]), 'diff=66a47b9e-232a-4838-8674-66fa1a5c76e1&amp;amp;oldid=a99c98be-767a-4e49-9025-2472b2d18b9c')
webob.adhoc_attrs	{'language': 'en-us'}
wsgi process	'Multi process AND threads (?)'
wsgi.file_wrapper	&amp;lt;built-in method file_wrapper of mod_wsgi.Adapter object at 0x103a5bf0&amp;gt;
wsgiorg.routing_args	(&amp;lt;routes.util.URLGenerator object at 0xfd8d7cc&amp;gt;, {'action': u'diff', 'controller': u'revision', 'id': u'dbtune-audioscrobbler'})
&lt;/pre&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/500#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/501</link>
        <guid isPermaLink="false">http://localhost/ticket/501</guid>
        <title>#501: Read-only maintenance mode</title>
        <pubDate>Mon, 23 Aug 2010 09:10:17 GMT</pubDate>
        
        <dc:creator>pudo</dc:creator>

        <description>&lt;p&gt;
CKAN should have a read-only maintenance mode with a nice little banner on all pages, appropriate REST messages etc. Bonus points if this is triggered via an environment variable and thus can be triggered by the surrounding apache.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/501#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/514</link>
        <guid isPermaLink="false">http://localhost/ticket/514</guid>
        <title>#514: Inconsistent use of 'location' header in API</title>
        <pubDate>Wed, 25 Aug 2010 17:29:17 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description>&lt;p&gt;
When you create a package then the 'location' header gets set. This doesn't happen for any other domain objects. I think this should be consistent - either none or all.
&lt;/p&gt;
&lt;p&gt;
I've removed the info about the header in the docs in the meantime.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/514#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/516</link>
        <guid isPermaLink="false">http://localhost/ticket/516</guid>
        <title>#516: Double-escaped text visible - revision page</title>
        <pubDate>Thu, 26 Aug 2010 13:32:19 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description>&lt;p&gt;
At: &lt;a class="ext-link" href="http://ckan.net/revision"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://ckan.net/revision&lt;/a&gt;
you can see:
"Next &amp;amp;raquo;" on pager
This doesn't seem to be a problem with earlier (1.0.1) version.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/516#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/535</link>
        <guid isPermaLink="false">http://localhost/ticket/535</guid>
        <title>#535: genshi error when logged into sl.ckan.net</title>
        <pubDate>Mon, 30 Aug 2010 10:56:14 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description>&lt;p&gt;
Genshi exception when rendering the page whilst logged in to sl.ckan.net.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/535#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/558</link>
        <guid isPermaLink="false">http://localhost/ticket/558</guid>
        <title>#558: Sort extras, relationships by key/object alphabetically</title>
        <pubDate>Fri, 03 Sep 2010 19:38:00 GMT</pubDate>
        
        <dc:creator>pudo</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/558#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/561</link>
        <guid isPermaLink="false">http://localhost/ticket/561</guid>
        <title>#561: Deleted packages are returned in the API</title>
        <pubDate>Mon, 06 Sep 2010 12:19:38 GMT</pubDate>
        
        <dc:creator>pudo</dc:creator>

        <description>&lt;p&gt;
Anja is reporting this, severe bug, I think.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/561#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/562</link>
        <guid isPermaLink="false">http://localhost/ticket/562</guid>
        <title>#562: OpenID Login fails using Yahoo and Google</title>
        <pubDate>Wed, 08 Sep 2010 10:18:39 GMT</pubDate>
        
        <dc:creator>pudo</dc:creator>

        <description>&lt;p&gt;
reported by LOD folks.
&lt;/p&gt;
&lt;p&gt;
subsidary bug: error messages from OpenID providers are not shown on the form return page.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/562#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/567</link>
        <guid isPermaLink="false">http://localhost/ticket/567</guid>
        <title>#567: Post new harvest job for given harvest source</title>
        <pubDate>Thu, 09 Sep 2010 13:45:43 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/567#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/575</link>
        <guid isPermaLink="false">http://localhost/ticket/575</guid>
        <title>#575: The system shall notify remote metadata harvesting errors</title>
        <pubDate>Thu, 09 Sep 2010 15:59:19 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/575#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/577</link>
        <guid isPermaLink="false">http://localhost/ticket/577</guid>
        <title>#577: Get remote metadata harvest job errors</title>
        <pubDate>Sat, 11 Sep 2010 12:49:41 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/577#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/578</link>
        <guid isPermaLink="false">http://localhost/ticket/578</guid>
        <title>#578: Get remote metadata harvest job</title>
        <pubDate>Sat, 11 Sep 2010 12:50:07 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/578#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/579</link>
        <guid isPermaLink="false">http://localhost/ticket/579</guid>
        <title>#579: Delete remote metadata harvest job</title>
        <pubDate>Sat, 11 Sep 2010 12:50:40 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/579#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/582</link>
        <guid isPermaLink="false">http://localhost/ticket/582</guid>
        <title>#582: Domain object class for harvest source</title>
        <pubDate>Sat, 11 Sep 2010 13:18:24 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/582#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/583</link>
        <guid isPermaLink="false">http://localhost/ticket/583</guid>
        <title>#583: Define fieldset object for harvest source forms</title>
        <pubDate>Sat, 11 Sep 2010 13:19:29 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/583#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/584</link>
        <guid isPermaLink="false">http://localhost/ticket/584</guid>
        <title>#584: Migration script to add harvest source table</title>
        <pubDate>Sat, 11 Sep 2010 13:20:04 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/584#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/585</link>
        <guid isPermaLink="false">http://localhost/ticket/585</guid>
        <title>#585: Method on API controller to return harvest source create form</title>
        <pubDate>Sat, 11 Sep 2010 13:21:42 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/585#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/586</link>
        <guid isPermaLink="false">http://localhost/ticket/586</guid>
        <title>#586: Routing configuration for harvest source create form API resource</title>
        <pubDate>Sat, 11 Sep 2010 13:22:16 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/586#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/587</link>
        <guid isPermaLink="false">http://localhost/ticket/587</guid>
        <title>#587: Documentation for getting harvest source create form from API</title>
        <pubDate>Sat, 11 Sep 2010 13:22:44 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/587#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/588</link>
        <guid isPermaLink="false">http://localhost/ticket/588</guid>
        <title>#588: Method on API controller to accept valid harvest source create form submission</title>
        <pubDate>Sat, 11 Sep 2010 13:26:15 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/588#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/589</link>
        <guid isPermaLink="false">http://localhost/ticket/589</guid>
        <title>#589: Method on API controller to reject invalid harvest source create form submission</title>
        <pubDate>Sat, 11 Sep 2010 13:27:00 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/589#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/590</link>
        <guid isPermaLink="false">http://localhost/ticket/590</guid>
        <title>#590: Documentation for submitting harvest source create form submission to API</title>
        <pubDate>Sat, 11 Sep 2010 13:27:39 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/590#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/591</link>
        <guid isPermaLink="false">http://localhost/ticket/591</guid>
        <title>#591: Routing configuration for harvest source entity API resource</title>
        <pubDate>Sat, 11 Sep 2010 13:34:42 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/591#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/592</link>
        <guid isPermaLink="false">http://localhost/ticket/592</guid>
        <title>#592: Methods to return harvest source entity as JSON</title>
        <pubDate>Sat, 11 Sep 2010 13:38:58 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/592#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/593</link>
        <guid isPermaLink="false">http://localhost/ticket/593</guid>
        <title>#593: Method on API controller to return remote metadata edit form</title>
        <pubDate>Sat, 11 Sep 2010 13:41:38 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/593#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/594</link>
        <guid isPermaLink="false">http://localhost/ticket/594</guid>
        <title>#594: Routing configuration for remote metadata edit form API resource</title>
        <pubDate>Sat, 11 Sep 2010 13:42:12 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/594#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/595</link>
        <guid isPermaLink="false">http://localhost/ticket/595</guid>
        <title>#595: Documentation for getting remote metadata edit form from API</title>
        <pubDate>Sat, 11 Sep 2010 13:42:52 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/595#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/596</link>
        <guid isPermaLink="false">http://localhost/ticket/596</guid>
        <title>#596: Method on API controller to accept valid remote metadata edit form submission</title>
        <pubDate>Sat, 11 Sep 2010 13:44:22 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/596#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/597</link>
        <guid isPermaLink="false">http://localhost/ticket/597</guid>
        <title>#597: Method on API controller to reject invalid remote metadata edit form submission</title>
        <pubDate>Sat, 11 Sep 2010 13:44:49 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/597#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/598</link>
        <guid isPermaLink="false">http://localhost/ticket/598</guid>
        <title>#598: List remote metadata entities for given publisher</title>
        <pubDate>Sat, 11 Sep 2010 14:02:10 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/598#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/599</link>
        <guid isPermaLink="false">http://localhost/ticket/599</guid>
        <title>#599: Routing configuration for listing remote metadata entities for a given publisher</title>
        <pubDate>Sat, 11 Sep 2010 14:03:34 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/599#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/600</link>
        <guid isPermaLink="false">http://localhost/ticket/600</guid>
        <title>#600: Method on API controller for listing remote metadata entities for a given publisher</title>
        <pubDate>Sat, 11 Sep 2010 14:04:14 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/600#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/601</link>
        <guid isPermaLink="false">http://localhost/ticket/601</guid>
        <title>#601: Documentation for listing remote metadata entities for a given publisher via API</title>
        <pubDate>Sat, 11 Sep 2010 14:05:28 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/601#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/602</link>
        <guid isPermaLink="false">http://localhost/ticket/602</guid>
        <title>#602: Method on API controller to accept valid harvest job</title>
        <pubDate>Sat, 11 Sep 2010 15:06:27 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/602#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/603</link>
        <guid isPermaLink="false">http://localhost/ticket/603</guid>
        <title>#603: Method on API controller to reject invalid harvest job</title>
        <pubDate>Sat, 11 Sep 2010 15:07:04 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/603#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/604</link>
        <guid isPermaLink="false">http://localhost/ticket/604</guid>
        <title>#604: Domain object class for harvest job</title>
        <pubDate>Sat, 11 Sep 2010 15:08:09 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/604#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/605</link>
        <guid isPermaLink="false">http://localhost/ticket/605</guid>
        <title>#605: Routing configuration for harvest job register</title>
        <pubDate>Sat, 11 Sep 2010 15:12:46 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/605#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/606</link>
        <guid isPermaLink="false">http://localhost/ticket/606</guid>
        <title>#606: Methods to return harvest job as JSON</title>
        <pubDate>Sat, 11 Sep 2010 15:15:02 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/606#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/607</link>
        <guid isPermaLink="false">http://localhost/ticket/607</guid>
        <title>#607: Routing configuration for harvest job entity</title>
        <pubDate>Sat, 11 Sep 2010 15:15:36 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/607#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/608</link>
        <guid isPermaLink="false">http://localhost/ticket/608</guid>
        <title>#608: Routing configuration for register of harvest jobs with error status</title>
        <pubDate>Sat, 11 Sep 2010 15:19:38 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/608#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/609</link>
        <guid isPermaLink="false">http://localhost/ticket/609</guid>
        <title>#609: Methods to return harvest jobs with error status as JSON</title>
        <pubDate>Sat, 11 Sep 2010 15:20:37 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/609#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/618</link>
        <guid isPermaLink="false">http://localhost/ticket/618</guid>
        <title>#618: Domain object class for metadata document</title>
        <pubDate>Sat, 11 Sep 2010 15:41:09 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/618#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/619</link>
        <guid isPermaLink="false">http://localhost/ticket/619</guid>
        <title>#619: Get HTTP response for given resource locator</title>
        <pubDate>Sat, 11 Sep 2010 15:52:07 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/619#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/620</link>
        <guid isPermaLink="false">http://localhost/ticket/620</guid>
        <title>#620: Identify remote metadata entity as metadata document, WAF, or CSW</title>
        <pubDate>Sat, 11 Sep 2010 15:55:27 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/620#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/624</link>
        <guid isPermaLink="false">http://localhost/ticket/624</guid>
        <title>#624: Read attribute 'title' from local copy of metadata document</title>
        <pubDate>Sat, 11 Sep 2010 16:04:43 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/624#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/625</link>
        <guid isPermaLink="false">http://localhost/ticket/625</guid>
        <title>#625: Read attribute 'abstract' from local copy of metadata document</title>
        <pubDate>Sat, 11 Sep 2010 16:05:01 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/625#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/626</link>
        <guid isPermaLink="false">http://localhost/ticket/626</guid>
        <title>#626: Read attribute 'point of contact' from local copy of metadata document</title>
        <pubDate>Sat, 11 Sep 2010 16:05:17 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/626#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/627</link>
        <guid isPermaLink="false">http://localhost/ticket/627</guid>
        <title>#627: Read attribute 'guid' from local copy of metadata document</title>
        <pubDate>Sat, 11 Sep 2010 16:05:34 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/627#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/628</link>
        <guid isPermaLink="false">http://localhost/ticket/628</guid>
        <title>#628: Read attribute 'bounding-box' from local copy of metadata document</title>
        <pubDate>Sat, 11 Sep 2010 16:05:56 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/628#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/629</link>
        <guid isPermaLink="false">http://localhost/ticket/629</guid>
        <title>#629: Read attribute 'keywords' from local copy of metadata document</title>
        <pubDate>Sat, 11 Sep 2010 16:06:31 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/629#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/630</link>
        <guid isPermaLink="false">http://localhost/ticket/630</guid>
        <title>#630: Read attribute 'use constraints' from local copy of metadata document</title>
        <pubDate>Sat, 11 Sep 2010 16:06:50 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/630#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/631</link>
        <guid isPermaLink="false">http://localhost/ticket/631</guid>
        <title>#631: Read attribute 'resource-locator' from local copy of metadata document</title>
        <pubDate>Sat, 11 Sep 2010 16:07:03 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/631#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/632</link>
        <guid isPermaLink="false">http://localhost/ticket/632</guid>
        <title>#632: Read attribute 'topic category' from local copy of metadata document</title>
        <pubDate>Sat, 11 Sep 2010 16:07:26 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/632#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/633</link>
        <guid isPermaLink="false">http://localhost/ticket/633</guid>
        <title>#633: Read attribute '' from local copy of metadata document</title>
        <pubDate>Sat, 11 Sep 2010 16:07:52 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/633#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/634</link>
        <guid isPermaLink="false">http://localhost/ticket/634</guid>
        <title>#634: Read attribute '' from local copy of metadata document</title>
        <pubDate>Sat, 11 Sep 2010 16:08:04 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/634#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/635</link>
        <guid isPermaLink="false">http://localhost/ticket/635</guid>
        <title>#635: Read attribute '' from local copy of metadata document</title>
        <pubDate>Sat, 11 Sep 2010 16:08:25 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/635#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/636</link>
        <guid isPermaLink="false">http://localhost/ticket/636</guid>
        <title>#636: Method on API controller to delete given harvest job</title>
        <pubDate>Sat, 11 Sep 2010 16:16:30 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/636#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/638</link>
        <guid isPermaLink="false">http://localhost/ticket/638</guid>
        <title>#638: Documentation for getting harvest source entity from API</title>
        <pubDate>Sat, 11 Sep 2010 17:23:25 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/638#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/639</link>
        <guid isPermaLink="false">http://localhost/ticket/639</guid>
        <title>#639: Documentation for posting harvest job to API</title>
        <pubDate>Sat, 11 Sep 2010 17:26:48 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/639#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/640</link>
        <guid isPermaLink="false">http://localhost/ticket/640</guid>
        <title>#640: Documentation for getting harvest job entity from API</title>
        <pubDate>Sat, 11 Sep 2010 17:27:16 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/640#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/641</link>
        <guid isPermaLink="false">http://localhost/ticket/641</guid>
        <title>#641: Documentation for getting harvest job errors from API</title>
        <pubDate>Sat, 11 Sep 2010 17:27:29 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/641#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/642</link>
        <guid isPermaLink="false">http://localhost/ticket/642</guid>
        <title>#642: Migration script to add harvest job table</title>
        <pubDate>Sat, 11 Sep 2010 17:29:14 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/642#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/643</link>
        <guid isPermaLink="false">http://localhost/ticket/643</guid>
        <title>#643: Migration script to add metadata document table</title>
        <pubDate>Sat, 11 Sep 2010 17:30:55 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/643#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/644</link>
        <guid isPermaLink="false">http://localhost/ticket/644</guid>
        <title>#644: Documentation for deleting harvest job entity</title>
        <pubDate>Sat, 11 Sep 2010 17:33:22 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/644#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/652</link>
        <guid isPermaLink="false">http://localhost/ticket/652</guid>
        <title>#652: Allow for addition and removal of groups on package/edit</title>
        <pubDate>Mon, 20 Sep 2010 15:55:34 GMT</pubDate>
        
        <dc:creator>pudo</dc:creator>

        <description>&lt;p&gt;
Much more natural place to do this, even at the risk of overloading the package edit form.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/652#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/654</link>
        <guid isPermaLink="false">http://localhost/ticket/654</guid>
        <title>#654: Harvest sources and jobs should return 404 when missing (not 500)</title>
        <pubDate>Wed, 22 Sep 2010 15:51:57 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/654#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/655</link>
        <guid isPermaLink="false">http://localhost/ticket/655</guid>
        <title>#655: Return status code 404 when harvest source is not found</title>
        <pubDate>Thu, 23 Sep 2010 14:33:19 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/655#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/656</link>
        <guid isPermaLink="false">http://localhost/ticket/656</guid>
        <title>#656: Return status code 404 when harvesting job is not found</title>
        <pubDate>Thu, 23 Sep 2010 14:33:49 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/656#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/657</link>
        <guid isPermaLink="false">http://localhost/ticket/657</guid>
        <title>#657: Fix harvesting job entity get method to default to returning 'None' rather than raising an exception</title>
        <pubDate>Thu, 23 Sep 2010 14:35:36 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/657#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/658</link>
        <guid isPermaLink="false">http://localhost/ticket/658</guid>
        <title>#658: Fix harvest source entity get method to default to returning 'None' rather than raising an exception</title>
        <pubDate>Thu, 23 Sep 2010 14:36:19 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/658#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/666</link>
        <guid isPermaLink="false">http://localhost/ticket/666</guid>
        <title>#666: The system shall support updating packages from new versions of previously harvested dataset or service metadata</title>
        <pubDate>Mon, 27 Sep 2010 12:26:14 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/666#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/693</link>
        <guid isPermaLink="false">http://localhost/ticket/693</guid>
        <title>#693: Support ETag in cache decorator</title>
        <pubDate>Mon, 11 Oct 2010 21:04:11 GMT</pubDate>
        
        <dc:creator>wwaites</dc:creator>

        <description>&lt;p&gt;
... and make cache-control header optional
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/693#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/741</link>
        <guid isPermaLink="false">http://localhost/ticket/741</guid>
        <title>#741: Extension / Plugin system for CKAN</title>
        <pubDate>Mon, 25 Oct 2010 08:54:50 GMT</pubDate>
        
        <dc:creator>ollyc</dc:creator>

        <description>&lt;p&gt;
Create plugin system using
&amp;lt;&lt;a class="ext-link" href="http://pypi.python.org/pypi/pyutilib.component.core/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://pypi.python.org/pypi/pyutilib.component.core/&lt;/a&gt;&amp;gt;
&lt;/p&gt;
&lt;p&gt;
Specification in CEP-003 (&lt;a class="source" href="http://localhost/browser/doc/cep/cep-003.txt"&gt;browser:doc/cep/cep-003.txt&lt;/a&gt;) and &amp;lt;&lt;a class="ext-link" href="http://okfnpad.org/ckan-plugins"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://okfnpad.org/ckan-plugins&lt;/a&gt;&amp;gt;
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/741#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/581</link>
        <guid isPermaLink="false">http://localhost/ticket/581</guid>
        <title>#581: Determine package name from metadata document</title>
        <pubDate>Sat, 11 Sep 2010 13:14:34 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description>&lt;p&gt;
Need to establish procedure for automatically generating package names from metadata documents.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/581#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/408</link>
        <guid isPermaLink="false">http://localhost/ticket/408</guid>
        <title>#408: Integrate CMS via proxying</title>
        <pubDate>Mon, 09 Aug 2010 10:09:41 GMT</pubDate>
        
        <dc:creator>pudo</dc:creator>

        <description>&lt;ul&gt;&lt;li&gt;As sysadmin/user of CKAN I want to integrate a CMS to support easy addition of additional content ...
&lt;/li&gt;&lt;li&gt;I want to integrate with navigation
&lt;/li&gt;&lt;li&gt;As a minimum I want to be able to add content pages (more stuff would be e.g. comments, sidebars, main menu ...)
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Why: CMS are great at creating content and have very good editors and theme support ...
&lt;/p&gt;
&lt;h3 id="Previouswork"&gt;Previous work&lt;/h3&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://groups.google.com/group/pylons-discuss/browse_thread/thread/f8969e28b0a007c7"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://groups.google.com/group/pylons-discuss/browse_thread/thread/f8969e28b0a007c7&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;deliverance: retheming on the fly
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
&lt;a class="ext-link" href="http://knowledgeforge.net/shakespeare/hg/file/677eef9402e6/shakespeare/controllers/template.py"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://knowledgeforge.net/shakespeare/hg/file/677eef9402e6/shakespeare/controllers/template.py&lt;/a&gt;
&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Rewrite urls for proxying
&lt;/li&gt;&lt;li&gt;You need a theme to substitute into
&lt;/li&gt;&lt;li&gt;pylons
&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Extreme version:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;2 sources -&amp;gt; pylons/ckan app, cms
&lt;/li&gt;&lt;li&gt;1 theme source: ckan or cms
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
1 frontend/proxy app which re-themes everything
&lt;/p&gt;
&lt;p&gt;
Owned by CKAN:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;package/
&lt;/li&gt;&lt;li&gt;tag/
&lt;/li&gt;&lt;li&gt;group/
&lt;/li&gt;&lt;li&gt;api/
&lt;/li&gt;&lt;li&gt;/
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Everything else proxied.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/408#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/410</link>
        <guid isPermaLink="false">http://localhost/ticket/410</guid>
        <title>#410: Latest comments widget on home page</title>
        <pubDate>Mon, 09 Aug 2010 10:12:13 GMT</pubDate>
        
        <dc:creator>pudo</dc:creator>

        <description>&lt;p&gt;
This would be an extension to the disqus plugin that would patch itself into home/index.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/410#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/411</link>
        <guid isPermaLink="false">http://localhost/ticket/411</guid>
        <title>#411: Deploy and test Varnish on eu3</title>
        <pubDate>Mon, 09 Aug 2010 10:21:15 GMT</pubDate>
        
        <dc:creator>pudo</dc:creator>

        <description>&lt;ul&gt;&lt;li&gt;Need to figure out cache invalidation for CKAN
&lt;/li&gt;&lt;li&gt;Evaluate against an internal cache (i.e. memcached)
&lt;/li&gt;&lt;/ul&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/411#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/650</link>
        <guid isPermaLink="false">http://localhost/ticket/650</guid>
        <title>#650: WUI editing for Authorization Groups</title>
        <pubDate>Sun, 19 Sep 2010 09:54:33 GMT</pubDate>
        
        <dc:creator>pudo</dc:creator>

        <description>&lt;ul&gt;&lt;li&gt;Copy &amp;amp; adapt Group controller tests to suit &lt;a class="missing wiki"&gt;AuthorizationGroups?&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;Copy &amp;amp; adapt Group controllers and templates for Authorization Groups
&lt;/li&gt;&lt;/ul&gt;</description>
        <category>Results</category>
        <comments>http://localhost/ticket/650#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/349</link>
        <guid isPermaLink="false">http://localhost/ticket/349</guid>
        <title>#349: The system shall support authorised users to edit packages on data.gov.uk</title>
        <pubDate>Mon, 14 Jun 2010 13:57:31 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/349#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/372</link>
        <guid isPermaLink="false">http://localhost/ticket/372</guid>
        <title>#372: Fix system limits on CKAN for DGU</title>
        <pubDate>Fri, 23 Jul 2010 11:49:12 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description>&lt;p&gt;
Set limits in /etc/security/limits.conf so that we can always ssh in at least.  Requested by DGU.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/372#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/400</link>
        <guid isPermaLink="false">http://localhost/ticket/400</guid>
        <title>#400: Configure DGU Public API with TSO</title>
        <pubDate>Thu, 05 Aug 2010 09:35:56 GMT</pubDate>
        
        <dc:creator>johnbywater</dc:creator>

        <description>&lt;p&gt;
Have TSO configure data.ov.uk/api/catalogue. Have TSO register catalogue.data.gov.uk.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/400#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/414</link>
        <guid isPermaLink="false">http://localhost/ticket/414</guid>
        <title>#414: Change the Apache and Varnish ports</title>
        <pubDate>Tue, 10 Aug 2010 09:13:59 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description>&lt;p&gt;
Ask Paul for a new machine for testing. Then one for varnish-live and one for varnish-test.
&lt;/p&gt;
</description>
        <category>Results</category>
        <comments>http://localhost/ticket/414#changelog</comments>
    </item><item>
        <link>http://localhost/ticket/416</link>
        <guid isPermaLink="false">http://localhost/ticket/416</guid>
        <title>#416: Meet Evan at COI at 1 o'clock Tuesday 10th August 2010 (to progress Forms API)</title>
        <pubDate>Tue, 10 Aug 2010 09:14:37 GMT</pubDate>
        
        <dc:creator>dread</dc:creator>

        <description></description>
        <category>Results</category>
        <comments>http://localhost/ticket/416#changelog</comments>
    </item>
 </channel>
</rss>