[ckan-dev] Flask URL generation error
Prashant Gupta
p.gupta at auckland.ac.nz
Mon Aug 13 02:16:13 UTC 2018
Hi Adri,
I am not sure if you checked the previous mail, as I replied to it without changing the subject.
I tried your solution, and for some reason, it went into an infinite loop and tried loading the site. The logs don’t tell much, but it kept printing the following:
[Mon Aug 13 14:07:51.999632 2018] [wsgi:error] [pid 26846:tid 140200548894464] 2018-08-13 14:07:51,999 INFO [ckan.config.environment] Loading static files from public
[Mon Aug 13 14:07:52.029549 2018] [wsgi:error] [pid 26846:tid 140200548894464] 2018-08-13 14:07:52,029 INFO [ckan.config.environment] Loading templates from /usr/lib/ckan/default/src/ckan/ckan/templates
[Mon Aug 13 14:07:52.375863 2018] [wsgi:error] [pid 26846:tid 140200548894464] 2018-08-13 14:07:52,375 INFO [ckan.config.environment] Loading templates from /usr/lib/ckan/default/src/ckan/ckan/templates
[Mon Aug 13 14:07:52.517979 2018] [wsgi:error] [pid 26846:tid 140200548894464] 2018-08-13 14:07:52,517 INFO [ckanext.shibboleth] Creating ShibbolethIdentifierPlugin...
[Mon Aug 13 14:07:52.518161 2018] [wsgi:error] [pid 26846:tid 140200548894464] 2018-08-13 14:07:52,518 INFO [ckanext.shibboleth] Initting ShibbolethIdentifierPlugin...
[Mon Aug 13 14:07:52.518297 2018] [wsgi:error] [pid 26846:tid 140200548894464] 2018-08-13 14:07:52,518 INFO [ckanext.shibboleth] Shibboleth auth will be identified by HTTP_SHIB_AUTHENTICATION_METHOD = urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
Just to let you know the plugin is working fine with CKAN 2.7 running on Ubuntu 12.
Any help would be appreciated.
Cheers,
Prashant
On 9/08/18, 12:00 AM, "ckan-dev on behalf of ckan-dev-request at lists.okfn.org" <ckan-dev-bounces at lists.okfn.org on behalf of ckan-dev-request at lists.okfn.org> wrote:
Send ckan-dev mailing list submissions to
ckan-dev at lists.okfn.org
To subscribe or unsubscribe via the World Wide Web, visit
https://lists.okfn.org/mailman/listinfo/ckan-dev
or, via email, send a message with subject or body 'help' to
ckan-dev-request at lists.okfn.org
You can reach the person managing the list at
ckan-dev-owner at lists.okfn.org
When replying, please edit your Subject line so it is more specific
than "Re: Contents of ckan-dev digest..."
Today's Topics:
1. Re: Flask URL generation error (Adri? Mercader)
----------------------------------------------------------------------
Message: 1
Date: Wed, 8 Aug 2018 13:16:31 +0200
From: Adri? Mercader <adria.mercader at okfn.org>
To: CKAN Development Discussions <ckan-dev at lists.okfn.org>
Subject: Re: [ckan-dev] Flask URL generation error
Message-ID:
<CAGJR8iKg57P41jxrZ_UhzcboBhkXFbUXzyUs8egNLnnqQ+RwfA at mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"
Hi Prashant,
I'm not familiar with the extension, but the same principle should
apply. All calls to url_for should be done in the context of a web
requests. You can create a mock one, but for that you'll need a Flask
application.
Try something like this and see if it works (untested!):
from ckan.config.middleware import make_app
config = toolkit.config
app = make_app(config['global_conf'], **config)
flask_app = app.apps['flask_app']._wsgi_app
with flask_app.test_request_context():
self.login_url = url_for(controller=controller, action='shiblogin')
self.login_form_url = url_for(controller='user', action='login')
self.logout_url = url_for(controller='user', action='logout')
On 8 August 2018 at 01:26, Prashant Gupta <p.gupta at auckland.ac.nz> wrote:
> Hi,
>
>
>
> I am running an instance of CKAN 2.8.1 on Ubuntu 16.04. I am trying to
> install ckanext-shibboleth
> (https://github.com/geosolutions-it/ckanext-shibboleth) but getting the
> following error:
>
>
>
> [Wed Aug 08 10:38:42.924435 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] mod_wsgi (pid=13849): Target
> WSGI script '/etc/ckan/default/apache.wsgi' cannot be loaded as Python
> module.
>
> [Wed Aug 08 10:38:42.924496 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] mod_wsgi (pid=13849): Exception
> occurred processing WSGI script '/etc/ckan/default/apache.wsgi'.
>
> [Wed Aug 08 10:38:42.924523 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] Traceback (most recent call
> last):
>
> [Wed Aug 08 10:38:42.924589 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] File
> "/etc/ckan/default/apache.wsgi", line 10, in <module>
>
> [Wed Aug 08 10:38:42.924628 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] application =
> loadapp('config:%s' % config_filepath)
>
> [Wed Aug 08 10:38:42.924647 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] File
> "/usr/lib/ckan/default/lib/python2.7/site-packages/paste/deploy/loadwsgi.py",
> line 247, in loadapp
>
> [Wed Aug 08 10:38:42.924837 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] return loadobj(APP, uri,
> name=name, **kw)
>
> [Wed Aug 08 10:38:42.924861 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] File
> "/usr/lib/ckan/default/lib/python2.7/site-packages/paste/deploy/loadwsgi.py",
> line 272, in loadobj
>
> [Wed Aug 08 10:38:42.924891 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] return context.create()
>
> [Wed Aug 08 10:38:42.924909 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] File
> "/usr/lib/ckan/default/lib/python2.7/site-packages/paste/deploy/loadwsgi.py",
> line 710, in create
>
> [Wed Aug 08 10:38:42.924927 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] return
> self.object_type.invoke(self)
>
> [Wed Aug 08 10:38:42.924947 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] File
> "/usr/lib/ckan/default/lib/python2.7/site-packages/paste/deploy/loadwsgi.py",
> line 146, in invoke
>
> [Wed Aug 08 10:38:42.924965 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] return
> fix_call(context.object, context.global_conf, **context.local_conf)
>
> [Wed Aug 08 10:38:42.924976 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] File
> "/usr/lib/ckan/default/lib/python2.7/site-packages/paste/deploy/util.py",
> line 55, in fix_call
>
> [Wed Aug 08 10:38:42.925000 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] val = callable(*args, **kw)
>
> [Wed Aug 08 10:38:42.925084 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] File
> "/usr/lib/ckan/default/src/ckan/ckan/config/middleware/__init__.py", line
> 58, in make_app
>
> [Wed Aug 08 10:38:42.925172 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] **app_conf)
>
> [Wed Aug 08 10:38:42.925191 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] File
> "/usr/lib/ckan/default/src/ckan/ckan/config/middleware/pylons_app.py", line
> 121, in make_pylons_stack
>
> [Wed Aug 08 10:38:42.925305 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483]
> who_parser.parse(open(app_conf['who.config_file']))
>
> [Wed Aug 08 10:38:42.925325 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] File
> "/usr/lib/ckan/default/lib/python2.7/site-packages/repoze/who/config.py",
> line 86, in parse
>
> [Wed Aug 08 10:38:42.925357 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] obj =
> self._makePlugin(name, IPlugin, options)
>
> [Wed Aug 08 10:38:42.925375 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] File
> "/usr/lib/ckan/default/lib/python2.7/site-packages/repoze/who/config.py",
> line 42, in _makePlugin
>
> [Wed Aug 08 10:38:42.925393 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] obj = obj(**options)
>
> [Wed Aug 08 10:38:42.925414 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] File
> "/usr/lib/ckan/default/src/ckanext-shibboleth/ckanext/shibboleth/repoze/ident.py",
> line 33, in make_identification_plugin
>
> [Wed Aug 08 10:38:42.925438 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] return
> ShibbolethIdentifierPlugin(**kwargs)
>
> [Wed Aug 08 10:38:42.925455 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] File
> "/usr/lib/ckan/default/src/ckanext-shibboleth/ckanext/shibboleth/repoze/ident.py",
> line 76, in __init__
>
> [Wed Aug 08 10:38:42.925477 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] self.login_url =
> h.url_for(controller=controller, action='shiblogin')
>
> [Wed Aug 08 10:38:42.925502 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] File
> "/usr/lib/ckan/default/src/ckan/ckan/lib/helpers.py", line 318, in url_for
>
> [Wed Aug 08 10:38:42.925525 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] my_url =
> _url_for_flask(*args, **kw)
>
> [Wed Aug 08 10:38:42.925550 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] File
> "/usr/lib/ckan/default/src/ckan/ckan/lib/helpers.py", line 377, in
> _url_for_flask
>
> [Wed Aug 08 10:38:42.925568 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] my_url =
> _flask_default_url_for(*args, **kw)
>
> [Wed Aug 08 10:38:42.925584 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] File
> "/usr/lib/ckan/default/lib/python2.7/site-packages/flask/helpers.py", line
> 270, in url_for
>
> [Wed Aug 08 10:38:42.925606 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] raise
> RuntimeError('Attempted to generate a URL without the '
>
> [Wed Aug 08 10:38:42.925645 2018] [wsgi:error] [pid 13849:tid
> 139993845167872] [remote 130.216.158.32:483] RuntimeError: Attempted to
> generate a URL without the application context being pushed. This has to be
> executed when application context is available.
>
>
>
> With a bit of research, I found that this is due to the changes to support
> url_for for both Flask and Pylons. However, the solution given at
> https://github.com/ckan/ckan/issues/3083 only tells what we need to do in
> tests. In my case, this is resulting from a url_for call in ?ident.py?.
>
>
>
> I would really appreciate any help.
>
>
>
> Cheers,
>
> Prashant
>
>
> _______________________________________________
> ckan-dev mailing list
> ckan-dev at lists.okfn.org
> https://lists.okfn.org/mailman/listinfo/ckan-dev
> Unsubscribe: https://lists.okfn.org/mailman/options/ckan-dev
>
------------------------------
Subject: Digest Footer
_______________________________________________
ckan-dev mailing list
ckan-dev at lists.okfn.org
https://lists.okfn.org/mailman/listinfo/ckan-dev
Unsubscribe: https://lists.okfn.org/mailman/options/ckan-dev
------------------------------
End of ckan-dev Digest, Vol 94, Issue 9
***************************************
More information about the ckan-dev
mailing list