0

我正在尝试对 OpenStack Horizo​​n UI 进行一些更改,但遇到了一些问题,希望有人能提供帮助。我目前正在 admin->hypervisor 页面上做一些工作,并尝试添加一个按钮,让我对选定的 hypervisor 执行操作(使用 table_actions 来执行此操作)。为此,我创建了自己的 table_action,它在 AdminHypervisors 类的 Meta 中定义。

我有一部分代码用于从页面中选择我的管理程序,并且可以加载我的表单...这是我的问题...我的操作实现的 action(self,request,obj_id) 函数通过了 obj_id管理程序并完成我的工作,我需要管理程序主机名。所以我需要一些方法来把这个ID翻译成主机名......

这是我的 table_action 类

class DeploySelection(tables.BatchAction):
    name = "deploy"
    action_present = _("Deploy")
    action_past = _("Deploy selected selection to ")
    data_type_singular = _("selection")
    data_type_plural = _("selections")
    classes = ("btn-deploy")

    def action(self, request, obj_id):
        LOG.warn(_("obj_id == %s") % obj_id)
        #convert obj_id here and get hypervsior name
        #do work based using hypervisor name here

在这个例子中,obj_id 看起来像 '2'

TL&DR: 我需要找到一个函数或方法来获取管理程序 ID 并取回与该管理程序关联的“hypervisor_hostname”。

4

0 回答 0