fp7-ofelia / ocf

OFELIA Control Framework (OCF) is a set of software tools for testbed management.
http://fp7-ofelia.github.com/ocf/
Other
18 stars 14 forks source link

Plugin system interferes with basic authentication for AMs #158

Closed CarolinaFernandez closed 11 years ago

CarolinaFernandez commented 11 years ago

With the release of v0.5 Expedient had some problems when connecting to the AMs, e.g. when performing any operation on a VM.

Log:

[Tue May 07 13:44:34 2013] [error] [client 10.216.140.11] Traceback (most recent call last): [Tue May 07 13:44:34 2013] [error] [client 10.216.140.11] File "/opt/ofelia/expedient/src/wsgi/expedient/clearinghouse/auth.wsgi", line 24, in [Tue May 07 13:44:34 2013] [error] [client 10.216.140.11] from django.contrib.auth.models import User [Tue May 07 13:44:34 2013] [error] [client 10.216.140.11] File "/usr/lib/pymodules/python2.6/django/contrib/auth/models.py", line 6, in [Tue May 07 13:44:34 2013] [error] [client 10.216.140.11] from django.db import models [Tue May 07 13:44:34 2013] [error] [client 10.216.140.11] File "/usr/lib/pymodules/python2.6/django/db/init.py", line 14, in [Tue May 07 13:44:34 2013] [error] [client 10.216.140.11] if not settings.DATABASES: [Tue May 07 13:44:34 2013] [error] [client 10.216.140.11] File "/usr/lib/pymodules/python2.6/django/utils/functional.py", line 276, in getattr [Tue May 07 13:44:34 2013] [error] [client 10.216.140.11] self._setup() [Tue May 07 13:44:34 2013] [error] [client 10.216.140.11] File "/usr/lib/pymodules/python2.6/django/conf/init.py", line 40, in _setup [Tue May 07 13:44:34 2013] [error] [client 10.216.140.11] self._wrapped = Settings(settings_module) [Tue May 07 13:44:34 2013] [error] [client 10.216.140.11] File "/usr/lib/pymodules/python2.6/django/conf/init.py", line 75, in init [Tue May 07 13:44:34 2013] [error] [client 10.216.140.11] raise ImportError("Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)) [Tue May 07 13:44:34 2013] [error] [client 10.216.140.11] ImportError: Could not import settings 'expedient.clearinghouse.settings' (Is it on sys.path? Does it have syntax errors?): cannot import name connections

This was due to the loading of settings inside plugin.py -and the corresponding classes saved inside the variables PLUGIN_LOADER and TOPOLOGY_GENERATOR-. This had some kind of interference with the auth.wsgi script.

To solve this, the settings are not loaded anymore on plugin.py -- because the import of classes within the variables made the authentication fail -- but on urls.py. Not the prettiest solution, but this shall be improved in the future (see issue #157)