Attempting to add a custom store file, but I receive an CONF error

Asked by digitalwonk on 2013-03-06

Hi all,

Hopefully, this is the right place for this question. I basically wrote my own store to glance, which can be found here:

http://paste.openstack.org/show/32823/

But, I get this error:

2013-03-05 22:55:51 28157 DEBUG glance.store [-] Attempting to import store glance.store.irods.Store _get_store_class /usr/lib/python2.7/dist-packages/glance/store/__init__.py:145
ERROR: Unable to load glance-api-keystone from configuration file /etc/glance/glance-api-paste.ini.
Got: ImportError('Class Store cannot be found ([\'Traceback (most recent call last):\\n\', \' File "/usr/lib/python2.7/dist-packages/glance/openstack/common/importutils.py", line 30, in import_class\\n __import__(mod_str)\\n\', \' File "/usr/lib/python2.7/dist-packages/glance/store/irods.py", line 27, in <module>\\n CONF.register_opt(irods_opts)\\n\', \' File "/usr/lib/python2.7/dist-packages/glance/openstack/common/cfg.py", line 983, in __inner\\n return f(self, *args, **kwargs)\\n\', \' File "/usr/lib/python2.7/dist-packages/glance/openstack/common/cfg.py", line 1090, in register_opt\\n if _is_opt_registered(self._opts, opt):\\n\', \' File "/usr/lib/python2.7/dist-packages/glance/openstack/common/cfg.py", line 469, in _is_opt_registered\\n if opt.dest in opts:\\n\', "AttributeError: \'list\' object has no attribute \'dest\'\\n"])',)
2013-03-05 22:55:51 28116 ERROR eventlet.wsgi.server [-] Removing dead child 28157

The irods.py store file is located in /usr/lib/python2.7/dist-packages/glance/store/irods.py. After looking at s3.py and filesystem.py, I'm not sure what else I'm missing.

Thanks in advance,
Ed

Question information

Language:
English Edit question
Status:
Solved
For:
Glance Edit question
Assignee:
No assignee Edit question
Solved by:
digitalwonk
Solved:
2013-03-18
Last query:
2013-03-18
Last reply:
digitalwonk (digitalwonk) said : #1

If I import the irods.py file from within /usr/lib/python2.7/dist-packages/glance/store, the error is also seen (but not with s3.py):

# python
Python 2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import s3
>>> import irods
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "irods.py", line 27, in <module>
    CONF.register_opt(irods_opts)
  File "/usr/lib/python2.7/dist-packages/glance/openstack/common/cfg.py", line 983, in __inner
    return f(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/glance/openstack/common/cfg.py", line 1090, in register_opt
    if _is_opt_registered(self._opts, opt):
  File "/usr/lib/python2.7/dist-packages/glance/openstack/common/cfg.py", line 469, in _is_opt_registered
    if opt.dest in opts:
AttributeError: 'list' object has no attribute 'dest'

digitalwonk (digitalwonk) said : #2

The solution was that I was invoking register_opt, when I should have invoked register_opts