[ckan-dev] Ckanext-storage configuration issue
Flavio Coelho
fccoelho at gmail.com
Mon Jun 6 15:23:14 UTC 2011
I have opened a ticket for this issue on trac:
http://trac.ckan.org/ticket/1178
Flávio
On Sat, Jun 4, 2011 at 10:20, Flavio Coelho <fccoelho at gmail.com> wrote:
> Hi,
>
> I finally got around to test ckanext-storage with local filesystem storage
> .
>
> I found the docs weren't clear enough about what should go in the config
> variable "ckanext.storage.bucket", tried a string and I am getting the
> error below.
>
> what am I doing wrong?
>
> thanks in advance, Flávio
>
>
>
> ---------- Forwarded message ----------
> From: <paste at localhost>
> Date: Sat, Jun 4, 2011 at 10:14
> Subject: WebApp Error: <class
> 'pairtree.storage_exceptions.NotAPairtreeStoreException'>:
> To: fccoelho at fgv.br
>
>
> URL: http://ckan.emap.fgv.br/storage/upload
> Module weberror.errormiddleware:*162* in __call__
> << <#1305b3d7d463d53e_1305b388182ca972_>
> __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:
> >> <#1305b3d7d463d53e_1305b388182ca972_>app_iter = self.application(
> environ, sr_checker)
> Module beaker.middleware:*73* in __call__
> << <#1305b3d7d463d53e_1305b388182ca972_>
> self.cache_manager)
> environ[self.environ_key] = self.cache_manager
> return self.app(environ, start_response)
> >> <#1305b3d7d463d53e_1305b388182ca972_>return self.app(environ,
> start_response)
> Module beaker.middleware:*152* in __call__
> << <#1305b3d7d463d53e_1305b388182ca972_> headers.
> append(('Set-cookie', cookie))
> return start_response(status, headers, exc_info)
> return self.wrap_app(environ, session_start_response)
>
> def _get_session(self):
> >> <#1305b3d7d463d53e_1305b388182ca972_>return self.wrap_app(environ,
> session_start_response)
> Module routes.middleware:*130* in __call__
> << <#1305b3d7d463d53e_1305b388182ca972_> 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
> >> <#1305b3d7d463d53e_1305b388182ca972_>response = self.app(environ,
> start_response)
> Module pylons.wsgiapp:*124* in __call__
> << <#1305b3d7d463d53e_1305b388182ca972_> return ['%s' %
> paste.registry.restorer.get_request_id(environ)]
>
> controller = self.resolve(environ, start_response)
> response = self.dispatch(controller, environ,
> start_response)
>
> >> <#1305b3d7d463d53e_1305b388182ca972_>controller = self.resolve(environ
> , start_response)
> Module pylons.wsgiapp:*263* in resolve
> << <#1305b3d7d463d53e_1305b388182ca972_> if self.log_debug:
> log.debug("Resolved URL to controller: %r", controller)
> return self.find_controller(controller)
>
> def find_controller(self, controller):
> >> <#1305b3d7d463d53e_1305b388182ca972_>return self.find_controller(
> controller)
> Module ckan.config.environment:*39* in find_controller
> << <#1305b3d7d463d53e_1305b388182ca972_> # Check to see if its a
> dotted name
> if '.' in controller or ':' in controller:
> mycontroller = pkg_resources.EntryPoint.parse('x=%s' %
> controller).load(False)
> self.controller_classes[controller] = mycontroller
> return mycontroller
> >> <#1305b3d7d463d53e_1305b388182ca972_>mycontroller = pkg_resources.
> EntryPoint.parse('x=%s' % controller).load(False)
> Module pkg_resources:*1954* in load
> << <#1305b3d7d463d53e_1305b388182ca972_> def load(self, require=True,
> env=None, installer=None):
> if require: self.require(env, installer)
> entry = __import__(self.module_name, globals(),globals(), [
> '__name__'])
> for attr in self.attrs:
> try:
> >> <#1305b3d7d463d53e_1305b388182ca972_>entry = __import__(self.
> module_name, globals(),globals(), ['__name__'])
> Module ?:*87* in <module>
> << <#1305b3d7d463d53e_1305b388182ca972_>class StorageAPIController(
> BaseController):
> ofs = get_ofs()
>
> >> <#1305b3d7d463d53e_1305b388182ca972_>class StorageAPIController(
> BaseController):
> Module ?:*88* in StorageAPIController
> << <#1305b3d7d463d53e_1305b388182ca972_>class StorageAPIController(
> BaseController):
> ofs = get_ofs()
>
> @jsonpify
> >> <#1305b3d7d463d53e_1305b388182ca972_>ofs = get_ofs()
> Module ?:*69* in get_ofs
> << <#1305b3d7d463d53e_1305b388182ca972_> continue
> kw[k[4:]] = v
> ofs = get_impl(storage_backend)(**kw)
> return ofs
> >> <#1305b3d7d463d53e_1305b388182ca972_>ofs = get_impl(storage_backend)(
> **kw)
> Module ofs.local.pairtreestore:*26* in __init__
> << <#1305b3d7d463d53e_1305b388182ca972_> self.hashing_type =
> hashing_type
> self.shorty_length = shorty_length
> self._open_store()
>
> def _open_store(self):
> >> <#1305b3d7d463d53e_1305b388182ca972_>self._open_store()
> Module ofs.local.pairtreestore:*30* in _open_store
> << <#1305b3d7d463d53e_1305b388182ca972_> def _open_store(self):
> if self.hashing_type:
> self._store = PairtreeStorageClient(self.uri_base, self
> .storage_dir, shorty_length=self.shorty_length, hashing_type=self.
> hashing_type)
> else:
> self._store = PairtreeStorageClient(self.uri_base, self
> .storage_dir, shorty_length=shorty_length)
> >> <#1305b3d7d463d53e_1305b388182ca972_>self._store =
> PairtreeStorageClient(self.uri_base, self.storage_dir, shorty_length=self.
> shorty_length, hashing_type=self.hashing_type)
> Module pairtree.pairtree_client:*91* in __init__
> << <#1305b3d7d463d53e_1305b388182ca972_> self._decode = re.compile
> (r"\^(..)", re.U)
>
> self._init_store()
>
> def __char2hex(self, m):
> >> <#1305b3d7d463d53e_1305b388182ca972_>self._init_store()
> Module pairtree.pairtree_client:*264* in _init_store
> << <#1305b3d7d463d53e_1305b388182ca972_> self.uri_base
> = prefix
> else:
> raise NotAPairtreeStoreException
>
> if not os.path.isdir(self.store_dir):
> >> <#1305b3d7d463d53e_1305b388182ca972_>raise NotAPairtreeStoreException
> *NotAPairtreeStoreException: *
> CGI Variables AUTH_TYPE 'cookie' DOCUMENT_ROOT '/etc/apache2/htdocs'
> GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT
> 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
> HTTP_ACCEPT_CHARSET 'ISO-8859-1,utf-8;q=0.7,*;q=0.7' HTTP_ACCEPT_ENCODING 'gzip,
> deflate' HTTP_ACCEPT_LANGUAGE 'pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3'
> HTTP_CACHE_CONTROL 'max-age=0' HTTP_CONNECTION 'keep-alive' HTTP_COOKIE '__utma=4669863.1260802706.1295364409.1306935693.1306960483.86;
> __utmz=4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none);
> SESS61faf7f7d2406929b2f9eb4cbfff17d2=a3306f5d1194cf0d8a51dbf7b42c1259;
> ckan=d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06;
> auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode";
> auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode";
> ckan_user="flavio"; ckan_display_name="Fl\xc3\xa1vio Code\xc3\xa7o Coelho";
> ckan_apikey="c139718d-918f-4a2b-b219-e33cb05cbe23"; __utmc=4669863'
> HTTP_HOST 'ckan.emap.fgv.br' HTTP_KEEP_ALIVE '115' HTTP_USER_AGENT 'Mozilla/5.0
> (X11; Linux x86_64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1' PATH_INFO
> '/storage/upload' PATH_TRANSLATED '/home/flavio/var/srvc/
> ckan.emap.fgv.br/pyenv/bin/ckan.emap.fgv.br.py/storage/upload' REMOTE_ADDR
> '10.250.48.110' REMOTE_PORT '45873' REMOTE_USER u'flavio' REMOTE_USER_DATA
> 'userid_type:unicode' REMOTE_USER_TOKENS [''] REQUEST_METHOD 'GET'
> REQUEST_URI '/storage/upload' SCRIPT_FILENAME '/home/flavio/var/srvc/
> ckan.emap.fgv.br/pyenv/bin/ckan.emap.fgv.br.py' SERVER_ADDR '10.252.2.60'
> SERVER_ADMIN '[no address given]' SERVER_NAME 'ckan.emap.fgv.br'
> SERVER_PORT '80' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.2.16
> (Debian) Server at ckan.emap.fgv.br Port 80</address>\n' SERVER_SOFTWARE 'Apache/2.2.16
> (Debian)' WSGI Variables application <beaker.middleware.CacheMiddleware
> object at 0x7f224f6edcd0> beaker.cache <beaker.cache.CacheManager object
> at 0x7f224f6edd90> beaker.get_session <bound method
> SessionMiddleware._get_session of <beaker.middleware.SessionMiddleware
> object at 0x7f224f6edd10>> beaker.session {'locale': u'pt_BR',
> '_accessed_time': 1307200450.575073, '_creation_time': 1302605470.0245121}
> mod_wsgi.application_group 'dck093|' mod_wsgi.callable_object
> 'application' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0'
> mod_wsgi.listener_host '' mod_wsgi.listener_port '80'
> mod_wsgi.process_group 'ckan' mod_wsgi.request_handler 'wsgi-script'
> mod_wsgi.script_reloading '1' mod_wsgi.version (3, 3) paste.cookies (<SimpleCookie:
> SESS61faf7f7d2406929b2f9eb4cbfff17d2='a3306f5d1194cf0d8a51dbf7b42c1259'
> __utma='4669863.1260802706.1295364409.1306935693.1306960483.86'
> __utmc='4669863'
> __utmz='4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)'
> auth_tkt='c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode'
> ckan='d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06'
> ckan_apikey='c139718d-918f-4a2b-b219-e33cb05cbe23'
> ckan_display_name='Fl\xc3\xa1vio Code\xc3\xa7o Coelho' ckan_user='flavio'>,
> '__utma=4669863.1260802706.1295364409.1306935693.1306960483.86;
> __utmz=4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none);
> SESS61faf7f7d2406929b2f9eb4cbfff17d2=a3306f5d1194cf0d8a51dbf7b42c1259;
> ckan=d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06;
> auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode";
> auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode";...
> __utmc=4669863') paste.registry <paste.registry.Registry object at
> 0x7f224f8dad50> paste.throw_errors True pylons.environ_config {'session':
> 'beaker.session', 'cache': 'beaker.cache'} pylons.pylons <pylons.util.PylonsContext
> object at 0x7f224fa58510> pylons.routes_dict {'action': u'index',
> 'controller': u'ckanext.storage.controller:StorageController'}
> repoze.who.identity <repoze.who identity (hidden, dict-like) at
> 139785342188544> repoze.who.logger <logging.Logger instance at
> 0x7f224f6eab48> repoze.who.plugins {'openid': <OpenIdIdentificationPlugin
> 139785340260752>, 'friendlyform': <FriendlyFormPlugin 139785338280784>,
> 'ckan.lib.authenticator:UsernamePasswordAuthenticator':
> <ckan.lib.authenticator.UsernamePasswordAuthenticator object at
> 0x7f224f8daa50>, 'auth_tkt': <AuthTktCookiePlugin 139785340260880>,
> 'ckan.lib.authenticator:OpenIDAuthenticator':
> <ckan.lib.authenticator.OpenIDAuthenticator object at 0x7f224f8da4d0>}
> routes.route <routes.route.Route object at 0x7f224f5ab090> routes.url <routes.util.URLGenerator
> object at 0x7f224f8dae10> webob._parsed_query_vars (GET([]), '')
> webob.adhoc_attrs {'language': 'en-us'} wsgi process 'Multi process AND
> threads (?)' wsgi.file_wrapper <built-in method file_wrapper of
> mod_wsgi.Adapter object at 0x7f224c8aaeb8> wsgi.version (1, 1)
> wsgiorg.routing_args (<routes.util.URLGenerator object at 0x7f224f8dae10>,
> {'action': u'index', 'controller':
> u'ckanext.storage.controller:StorageController'})
>
>
>
> --
> Flávio Codeço Coelho
> ================
> +55(21) 3799-5567
> Professor
> Escola de Matemática Aplicada
> Fundação Getúlio Vargas
> Rio de Janeiro - RJ
> Brasil
>
>
>
--
Flávio Codeço Coelho
================
+55(21) 3799-5567
Professor
Escola de Matemática Aplicada
Fundação Getúlio Vargas
Rio de Janeiro - RJ
Brasil
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.okfn.org/pipermail/ckan-dev/attachments/20110606/c0abc4ee/attachment-0001.html>
More information about the ckan-dev
mailing list