horizon 实例列表中实例的操作出不来的原因和解决办法

虚拟机列表中虚拟机的操作出不来,只有一个终止实例功能

其他功能出不了

完整的功能应该是:



以快照为例: horizon/dashboard/nova/instances_and_volumes/instances/tables.py 中

class SnapshotLink(tables.LinkAction):
    name = "snapshot"
    verbose_name = _("Snapshot")
    url = "horizon:nova:images_and_snapshots:snapshots:create"
    classes = ("ajax-modal", "btn-camera")


    def allowed(self, request, instance=None):
        return instance.status in ACTIVE_STATES   返回True 则有这个功能,返回False没有这个功能



原因:horizon/dashboard/nova/instances_and_volumes/instances/tables.py 中设置:

ACTIVE_STATES = ("ACTIVE",)

而数据库中instances的vm_state字段是active。大小写导致的。

allowed都是返回False。

解决:添加一个状态:

ACTIVE_STATES = ("ACTIVE", "active")



比较诡异的事情是,数据库中一直是active,装了好几个环境,有的环境取到的值就是active 有的就是ACTIVE。  在instances_and_volumes/views.py中打印

 for instance in instances:

    LOG.error(instance.status)


有的环境是ACTIVE  有的环境是active


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值