在部署glance时禁用了v1 api,使用nova p_w_picpath-list出现了报错

nova p_w_picpath-list
ERROR (ClientException): The server has either erred or is incapable of performing the requested operation. (HTTP 500) (Request-ID: req-70664768-3d60-434b-b812-e0251029a9df)

从nova-api日志上看到有下面一报错

2015-08-13 17:33:46.478 17 TRACE nova.api.openstack   File "/usr/lib/python2.7/dist-packages/nova/p_w_picpath/glance.py", line 274, in detail

打开

/usr/lib/python2.7/dist-packages/nova/p_w_picpath/glance.py

在这个文件的269行,

    def detail(self, context, **kwargs):
        """Calls out to Glance for a list of detailed p_w_picpath information."""
        params = _extract_query_params(kwargs)
        try:
            p_w_picpaths = self._client.call(context, 1, 'list', **params)
        except Exception:
            _reraise_translated_exception()
        _p_w_picpaths = []
        for p_w_picpath in p_w_picpaths:
            if _is_p_w_picpath_available(context, p_w_picpath):
                _p_w_picpaths.append(_translate_from_glance(p_w_picpath))
        return _p_w_picpaths

注意,这一行

p_w_picpaths = self._client.call(context, 1, 'list', **params)

说明,nova p_w_picpath-list使用的是glance api v1。如果,手动改为2,重启nova-api后,执行nova p_w_picpath-list,glance p_w_picpath-list

nova p_w_picpath-list
+----+------+--------+--------+
| ID | Name | Status | Server |
+----+------+--------+--------+
+----+------+--------+--------+

glance p_w_picpath-list
+--------------------------------------+---------------------+
| ID                                   | Name                |
+--------------------------------------+---------------------+
| d3f23850-4725-48c6-bc75-ad791afcb622 | cirros-0.3.4-x86_64 |
+--------------------------------------+---------------------+

nova p_w_picpath-list 调用glance api时,应是使用的v1的参数。