我想在我的openstack设置中更改可用区域的默认选项。但是,我无法找出确定nova api返回的可用区域顺序的内容。例如,运行openstack availability zone list
我得到:
+--------------+-------------+
| Zone Name | Zone Status |
+--------------+-------------+
| zone2 | available |
| zone1 | available |
| internal | available |
| zone3 | available |
+--------------+-------------+
与地平线下拉框中的顺序相同。但是,直接查询数据库,我得到:
mysql> select * from aggregate_metadata;
+---------------------+------------+------------+----+--------------+-------------------+--------------+---------+
| created_at | updated_at | deleted_at | id | aggregate_id | key | value | deleted |
+---------------------+------------+------------+----+--------------+-------------------+--------------+---------+
| 2015-06-12 08:43:07 | NULL | NULL | 1 | 1 | availability_zone | zone1 | 0 |
| 2015-06-12 08:43:08 | NULL | NULL | 2 | 2 | availability_zone | zone2 | 0 |
| 2015-10-26 05:30:15 | NULL | NULL | 3 | 3 | availability_zone | zone3 | 0 |
+---------------------+------------+------------+----+--------------+-------------------+--------------+---------+
3 rows in set (0.00 sec)
显然,openstack api在返回结果之前正在进行一些排序......但是,我无法弄清楚它是如何排序的,也不知道如何控制排序。
答案 0 :(得分:0)
get_availability_zones是nova api用于收集可用区列表的函数。
此函数获取可用服务列表(基于id排序),添加可用区域名称添加到这些服务。
由于服务清单是第一步,因此它的ID定义了订单而不是区域名称。
可以根据需要以不同方式修改排序顺序。
在前端(地平线)排序顺序
使用
修改this lineng-options="zone.value as zone.label for zone in model.availabilityZones | orderBy:'value'"
在后端(nova-api)对订单进行排序
在get_availability_zones函数
available_zones.sort()
not_available_zones.sort()
醇>