`

openstack mitaka版dashboard的BUG Security group not found for project

 
阅读更多
   在centos7系统上,按照openstack mitaka版的文档,一步一步安装完所有服务,发现不能创建虚拟机,一创建就报错,由于初次接触,以为是配置问题,实在不行就再次重装,重新配置glance nova dashboard neutron...然而,还是无法创建虚拟机。

    从文档中看到可以使用命令行的方式创建虚拟机,死马当作活马医,好歹试一下吧,居然成功了!然后各种测试都通过。好吧,忽然间感觉到问题的原因了,控制面板dashboard这个东西没装好,坑我又装了遍所有的服务,几乎要放弃了。

    然后是各种修改尝试:1、和官方文档核对配置文件。2、和已安装成功的人核对配置文件。
核对的结果是几乎一样。没有找到有明显错误或者有较大差别。可是人家的可以正常创建虚拟机。

    打开日志,一行一行分析。每次报错,必然会有一个这样的错误:
INFO nova.api.openstack.wsgi [req-5ed8bcd7-92f6-43ce-8281-82c4ba9472e8 b6a8a4841f14425a9ef9680f966192b0 9699c6607bf347c4976f4ae592ad4506 - - -] HTTP exception thrown: Security group bb10e460-7729-4ef7-acf2-15f990679fc0 not found for project 9699c6607bf347c4976f4ae592ad4506.



   
    首先,从控制面板上和从命令行,创建虚拟机操作会发出创建虚拟机的请求到后台,控制面板创建失败,命令行创建成功


nova debug log

from CLI can success
2017-03-07 16:49:22.865 3325 DEBUG nova.api.openstack.wsgi [req-68ba7805-afae-41cf-9619-e0278bbe5f40 670eda15b024423c8ca3619b52614a8f b2fd83925b0a433b82eaac7f40948b4c - - -] Action: 'create', calling method: <bound method ServersController.create of <nova.api.openstack.compute.servers.ServersController object at 0x7e13810>>, body: {"server": {"name": "vm5", "imageRef": "2a2663da-b0dd-4f0b-91a8-3504cec717f9", "key_name": "adminkey", "flavorRef": "1", "max_count": 1, "min_count": 1, "security_groups": [{"name": "default"}]}} _process_stack /usr/lib/python2.7/site-packages/nova/api/openstack/wsgi.py:696


from horizon failed
2017-03-07 16:47:41.505 3325 DEBUG nova.api.openstack.wsgi [req-2aa372a5-55e9-4bf8-aa21-9d02554e53f0 670eda15b024423c8ca3619b52614a8f b2fd83925b0a433b82eaac7f40948b4c - - -] Action: 'create', calling method: <bound method ServersController.create of <nova.api.openstack.compute.servers.ServersController object at 0x7e13810>>, body: {"server": {"name": "vm5", "imageRef": "2a2663da-b0dd-4f0b-91a8-3504cec717f9", "availability_zone": "nova", "key_name": "adminkey", "flavorRef": "1", "OS-DCF:diskConfig": "AUTO", "max_count": 1, "min_count": 1, "networks": [{"uuid": "e614c5fd-be35-415f-98ea-5b5b70194741"}], "security_groups": [{"name": "681ca58f-2803-4de4-8266-e1e9e232b9c9"}]}} _process_stack /usr/lib/python2.7/site-packages/nova/api/openstack/wsgi.py:696



分析发送的参数,只有一个参数有较大差别:
命令行发送的参数值
"security_groups": [{"name": "default"}]

控制面板发送的参数值
"security_groups": [{"name": "681ca58f-2803-4de4-8266-e1e9e232b9c9"}]



执行的SQL语句
MariaDB [nova]> SELECT *
    -> FROM security_groups
    -> WHERE security_groups.deleted = 0
    ->     AND security_groups.project_id = '9699c6607bf347c4976f4ae592ad4506'
    ->    AND security_groups.name = '681ca58f-2803-4de4-8266-e1e9e232b9c9'
    ->     ;
Empty set (0.00 sec)

数据库中实际存放的数据

MariaDB [nova]> SELECT * FROM security_groups WHERE security_groups.deleted = 0     AND security_groups.project_id = '9699c6607bf347c4976f4ae592ad4506'     ;
+---------------------+------------+------------+----+---------+-------------+----------------------------------+----------------------------------+---------+
| created_at          | updated_at | deleted_at | id | name    | description | user_id                          | project_id                       | deleted |
+---------------------+------------+------------+----+---------+-------------+----------------------------------+----------------------------------+---------+
| 2017-03-10 08:07:48 | NULL       | NULL       |  681ca58f-2803-4de4-8266-e1e9e232b9c9 | default | default     | b6a8a4841f14425a9ef9680f966192b0 | 9699c6607bf347c4976f4ae592ad4506 |       0 |
+---------------------+------------+------------+----+---------+-------------+----------------------------------+----------------------------------+---------+
1 row in set (0.00 sec)


     看到没有,实际上name字段的值是default,但是查询条件里是用的name=id,这么查肯定是查不到的,于是就有了HTTP exception thrown: Security group bb10e460-7729-4ef7-acf2-15f990679fc0 not found for project 9699c6607bf347c4976f4ae592ad4506.于是创建就失败。所以这个是个BUG。

     开源软件的小问题就是太松散,没人收你钱,也不会有人对你的问题负责,但是你可以拿到源码,有一个很友好的圈子,你可以对你遇到的问题想解决办法,然后贡项给大家。


      可是怎么解决呢,openstack 的mikata版本里的dashboard用的是openstack-dashboard-9.0.1-1.el7.noarch,没有其它版本的RPM包了。

       解决办法是,通过源码安装控制面板,可以完美解决这个问题,其实openstack 的mitaka版的控制面板项目horizon有四个版本,通过centos7的YUM安装的,是最低版本,还有三个更高的版本,没有rpm。详细的安装过程在这里

       通过源码安装horizon


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics