[ English | 한국어 (대한민국) | português (Brasil) | français | español | English (United Kingdom) | русский | 中文 (简体, 中国) | Esperanto | Deutsch | Indonesia | नेपाली ]

可插拔面板和组

介绍

Horizon 允许在不修改默认设置的情况下添加仪表板、面板和面板组。可插拔设置是一种允许将设置存储在单独文件中的机制。这些文件在启动时读取并用于修改默认设置。

仪表板配置文件默认位置是 openstack_dashboard/enabled,另一个目录是 openstack_dashboard/local/enabled,用于本地覆盖。这两个文件集都将被加载,但 openstack_dashboard/local/enabled 中的设置将覆盖默认设置。设置按文件名字母顺序应用。如果同一个仪表板在 enabledlocal/enabled 中都有配置文件,则使用本地名称。请注意,由于 Python 模块的名称不能以数字开头,因此文件通常以一个下划线和一个数字命名,以便您可以轻松控制它们的顺序。

通用可插拔设置

在描述特定用例之前,以下键可以在任何可插拔设置文件中使用

ADD_EXCEPTIONS

在 2014.1 (Icehouse) 版本中添加。

一个字典,包含要添加到 HORIZON['exceptions'] 的异常类。

ADD_INSTALLED_APPS

在 2014.1 (Icehouse) 版本中添加。

要添加到 INSTALLED_APPS 的应用程序列表。这对于暴露插件中的静态文件是必需的。

ADD_ANGULAR_MODULES

在 2014.2 (Juno) 版本中添加。

Angular 启动时要加载的 AngularJS 模块列表。这些模块作为对根 Horizon 应用程序 horizon 的依赖项添加。

ADD_JS_FILES

在 2014.2 (Juno) 版本中添加。

要在每个页面加载的压缩文件集中包含的 JavaScript 源代码文件列表。这对于在 ADD_ANGULAR_MODULES 中引用的 AngularJS 模块是必需的,因此需要在每个页面中包含它们。

ADD_JS_SPEC_FILES

在 2015.1 (Kilo) 版本中添加。

要与 Jasmine 规范运行器集成的 JavaScript 规范文件列表。Jasmine 是用于测试 JavaScript 代码的行为驱动开发框架。

ADD_SCSS_FILES

在 8.0.0 (Liberty) 版本中添加。

要在每个页面加载的压缩文件集中包含的 scss 文件列表。我们建议每个仪表板使用一个 scss 文件,如果需要包含面板的额外 scss 文件,请使用 @import。

ADD_XSTATIC_MODULES

在 14.0.0 (Rocky) 版本中添加。

包含 JavaScript 和 scss 文件的 xstatic 模块列表,这些模块将包含在每个页面加载的压缩文件集中。在 ADD_XSTATIC_MODULES 中指定的关联文件不需要包含在 ADD_JS_FILES 中。此选项需要一个元组列表,每个元组包含一个 xstatic 模块和要加载的 JavaScript 文件列表(如果有)。有关更多详细信息,请查看 openstack_dashboard/utils/settings.py 中的 BASE_XSTATIC_MODULES 的注释。

示例

ADD_XSTATIC_MODULES = [
    ('xstatic.pkg.foo', ['foo.js']),
    ('xstatic.pkg.bar', None),
]

AUTO_DISCOVER_STATIC_FILES

在 8.0.0 (Liberty) 版本中添加。

如果设置为 True,JavaScript 文件和静态 Angular HTML 模板文件将从 ADD_INSTALLED_APPS 中列出的每个应用程序的 static 文件夹中自动发现。

JavaScript 源代码文件将根据命名约定排序:扩展名为 .module.js 的文件首先列出,然后是其他 JavaScript 源代码文件。

用于测试的 JavaScript 文件也将根据命名约定排序:扩展名为 .mock.js 的文件首先列出,然后是扩展名为 .spec.js 的文件。

如果同时指定了 ADD_JS_FILES 和/或 ADD_JS_SPEC_FILES,手动列出的文件将被附加到自动发现的文件中。

DISABLED

在 2014.1 (Icehouse) 版本中添加。

如果设置为 True,此设置文件将不会被添加到设置中。

EXTRA_STEPS

在 14.0.0 (Rocky) 版本中添加。

可以通过此设置向 Horizon 或其他 Horizon 插件中的工作流添加额外的步骤。额外的步骤将在相应工作流中定义的默认步骤之后显示。

这是一个字典设置。字典的键指定要添加额外步骤的工作流。键必须与目标工作流的完整类名匹配。

字典的值是额外的步骤类完整名称的列表(模块名称和类名称之间必须用句点分隔)。通过 EXTRA_STEPS 指定的步骤将按照注册顺序显示。

示例

EXTRA_STEPS = {
    'openstack_dashboard.dashboards.identity.projects.workflows.UpdateQuota':
    (
        ('openstack_dashboard.dashboards.identity.projects.workflows.'
         'UpdateVolumeQuota'),
        ('openstack_dashboard.dashboards.identity.projects.workflows.'
         'UpdateNetworkQuota'),
    ),
}

EXTRA_TABS

在 14.0.0 (Rocky) 版本中添加。

可以通过此设置向 Horizon 或其他 Horizon 插件中实现的选项卡组添加额外的选项卡。额外的选项卡将在相应的选项卡组中定义的默认选项卡之后显示。

这是一个字典设置。字典的键指定要添加额外选项卡的选项卡组。键必须与目标选项卡组的完整类名匹配。

字典的值是额外的选项卡类完整名称的列表(模块名称和类名称之间必须用句点分隔)。通过 EXTRA_TABS 指定的选项卡将按照注册顺序显示。

在某些情况下,您可能希望指定额外选项卡的顺序,因为多个 Horizon 插件可以注册额外的选项卡。您可以通过使用元组优先级和选项卡类作为字典值中的一个元素来在 EXTRA_TABS 中指定每个选项卡的优先级,而不是使用额外的选项卡完整名称。优先级是一个选项卡的整数,优先级较低的选项卡将首先显示。如果省略了额外选项卡的优先级,则假定优先级为 0

示例

EXTRA_TABS = {
    'openstack_dashboard.dashboards.project.networks.tabs.NetworkDetailsTabs': (
        'openstack_dashboard.dashboards.project.networks.subnets.tabs.SubnetsTab',
        'openstack_dashboard.dashboards.project.networks.ports.tabs.PortsTab',
    ),
}

示例(带有优先级)

EXTRA_TABS = {
    'openstack_dashboard.dashboards.project.networks.tabs.NetworkDetailsTabs': (
        (1, 'openstack_dashboard.dashboards.project.networks.subnets.tabs.SubnetsTab'),
        (2, 'openstack_dashboard.dashboards.project.networks.ports.tabs.PortsTab'),
    ),
}

UPDATE_HORIZON_CONFIG

在 2014.2 (Juno) 版本中添加。

一个字典,包含将替换 HORIZON_CONFIG 中值的条目。

仪表板的可插拔设置

在 2014.1 (Icehouse) 版本中添加。

以下键特定于注册仪表板

DASHBOARD

在 2014.1 (Icehouse) 版本中添加。

要添加到 HORIZON['dashboards'] 的仪表板的 slug。必需。

DEFAULT

在 2014.1 (Icehouse) 版本中添加。

如果设置为 True,此仪表板将被设置为默认仪表板。

示例

要本地禁用仪表板,请创建一个文件 openstack_dashboard/local/enabled/_40_dashboard-name.py,内容如下

DASHBOARD = '<dashboard-name>'
DISABLED = True

要添加 Tuskar-UI(基础设施)仪表板,您必须先安装它,然后创建一个文件 openstack_dashboard/local/enabled/_50_tuskar.py,内容如下

from tuskar_ui import exceptions

DASHBOARD = 'infrastructure'
ADD_INSTALLED_APPS = [
    'tuskar_ui.infrastructure',
]
ADD_EXCEPTIONS = {
    'recoverable': exceptions.RECOVERABLE,
    'not_found': exceptions.NOT_FOUND,
    'unauthorized': exceptions.UNAUTHORIZED,
}

面板的可插拔设置

在 2014.1 (Icehouse) 版本中添加。

以下键特定于注册或删除面板

PANEL

在 2014.1 (Icehouse) 版本中添加。

要添加到 HORIZON_CONFIG 的面板的 slug。必需。

PANEL_DASHBOARD

在 2014.1 (Icehouse) 版本中添加。

PANEL 关联的仪表板的 slug。必需。

PANEL_GROUP

在 2014.1 (Icehouse) 版本中添加。

PANEL 关联的面板组的 slug。如果您希望面板显示而不使用面板组,请使用面板组“default”。

DEFAULT_PANEL

在 2014.1 (Icehouse) 版本中添加。

如果设置,它将更新 PANEL_DASHBOARD 的默认面板。

ADD_PANEL

在 2014.1 (Icehouse) 版本中添加。

要添加的 PANEL 的 Python 面板类。

REMOVE_PANEL

在 2014.1 (Icehouse) 版本中添加。

如果设置为 True,则 PANEL 将从 PANEL_DASHBOARD/PANEL_GROUP 中删除。

示例

要将新面板添加到 Admin 仪表板的 Admin 面板组,请创建一个文件 openstack_dashboard/local/enabled/_60_admin_add_panel.py,内容如下

PANEL = 'plugin_panel'
PANEL_DASHBOARD = 'admin'
PANEL_GROUP = 'admin'
ADD_PANEL = 'test_panels.plugin_panel.panel.PluginPanel'

要本地从 Admin 仪表板的 Admin 面板组中删除 Info 面板,请创建一个文件 openstack_dashboard/local/enabled/_70_admin_remove_panel.py,内容如下

PANEL = 'info'
PANEL_DASHBOARD = 'admin'
PANEL_GROUP = 'admin'
REMOVE_PANEL = True

要将 Admin 仪表板的默认面板更改为 Instances 面板,请创建一个文件 openstack_dashboard/local/enabled/_80_admin_default_panel.py,内容如下

PANEL = 'instances'
PANEL_DASHBOARD = 'admin'
PANEL_GROUP = 'admin'
DEFAULT_PANEL = 'instances'

面板组的可插拔设置

在 2014.1 (Icehouse) 版本中添加。

以下键特定于注册面板组

PANEL_GROUP

在 2014.1 (Icehouse) 版本中添加。

要添加到 HORIZON_CONFIG 的面板组的 slug。必需。

PANEL_GROUP_NAME

在 2014.1 (Icehouse) 版本中添加。

PANEL_GROUP 的显示名称。必需。

PANEL_GROUP_DASHBOARD

在 2014.1 (Icehouse) 版本中添加。

PANEL_GROUP 关联的仪表板的 slug。必需。

示例

要将新的面板组添加到 Admin 仪表板,请创建一个文件 openstack_dashboard/local/enabled/_90_admin_add_panel_group.py,内容如下

PANEL_GROUP = 'plugin_panel_group'
PANEL_GROUP_NAME = 'Plugin Panel Group'
PANEL_GROUP_DASHBOARD = 'admin'