温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

插件化的Panels和Groups怎么设置

发布时间:2022-01-04 14:13:33 来源:亿速云 阅读:210 作者:iii 栏目:云计算

本篇内容介绍了“插件化的Panels和Groups怎么设置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

介绍

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

仪表板配置文件的默认位置是 openstack_dashboard/enabled, 使用另一个目录openstack_dashboard/local/enabled  是用于本地覆盖。 这两组文件都将被加载, 但是 openstack_dashboard/local/enabled 设置将覆盖默认设置。 这些设置应用文件名的字母顺序。 如果相同的仪表板在 enabledlocal/enabled 都有配置文件,在local/enabled将会被使用。 注意,因为python模块的名称不能以数字开头, 这些文件通常以一个主要的下划线和一个数字来命名,这样您就可以轻松地控制它们的顺序。

一般的可插件化设置¶

在描述具体的用例之前,可以在任何插件化的设置文件中使用以下配置变量.

ADD_EXCEPTIONS¶New in version 2014.1(Icehouse).

可以向配置变量 HORIZON['exceptions'] 里加 异常类字典。

ADD_INSTALLED_APPSNew in version 2014.1(Icehouse).

应用程序列表插入到 INSTALLED_APPS 列表之前,当需要从插件中暴露静态文件时需要使用此设置。

ADD_ANGULAR_MODULES New in version 2014.2(Juno).

当Angular bootstraps时, AngularJS模块列表会被加载。 这些模块会作为依赖被添加到root Horizon application horizon 。

ADD_JS_FILES New in version 2014.2(Juno).

javascript源文件列表会被引进每个页面上加载的压缩文件集中。 这对于AngularJS模块来说是必需的,因为这些被添加进 ADD_ANGULAR_MODULES 的模块会引用到 javascript源文件, 因此需要在每个页面中加进来。

ADD_JS_SPEC_FILES¶New in version 2015.1(Kilo).

javascript规范文件的列表会被引入来与 Jasmine规范运行器集成。Jasmine是一个用于测试JavaScript代码的行为驱动开发框架。

ADD_SCSS_FILES¶New in version 8.0.0(Liberty).

scss文件列表会被引进每个页面上加载的压缩文件集中。 建议每个仪表板上一个scss文件,如果需要为面板引用额外的scss文件,请使用@import。

ADD_XSTATIC_MODULES¶New in version 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¶New in version 8.0.0(Liberty).

如果设置为True, JavaScript文件和angular静态html模板文件将自动地从ADD_INSTALLED_APPS中的每个 app的静态文件夹中发现。

JavaScript源文件将根据命名约定进行排序: 首先列出带有 .module.js 扩展名的文件, 接着是其他的JavaScript源文件。

用于测试的JavaScript文件也将根据命名约定进行排序:首先列出带有 .mock.js 扩展名的文件,接着是 带有.spec.js扩展名的文件。

如果 ADD_JS_FILES 与/或者 ADD_JS_SPEC_FILES 也被指定,手动列出的文件将被附加到自动发现的文件。

DISABLED¶New in version 2014.1(Icehouse).

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

EXTRA_TABS¶New in version 14.0.0(Rocky).

额外的选项卡可以添加到一个选项卡组中,通过使用这个设置来实现在horizon或其他的horizon插件。 在对应的选项卡组中定义的默认选项卡后将显示额外的选项卡。

这是一个字典配置。字典的key 指定添加额外标签的标签组。key必须匹配目标选项卡组的完整类名。 字典值是一个额外标签类的全称列表(此值的模块名和类名必须用句点分隔)。 通过EXTRA_TABS 指定的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¶New in version 2014.2(Juno).

设置的字典值会更新 HORIZON_CONFIG 中数值。

 Dashboards的插件化设置¶New in version 2014.1(Icehouse).

下面的配置是用于注册仪表板的。

DASHBOARD¶ New in version 2014.1(Icehouse).

 此值为dashboard的slug字段值,会被添加到 HORIZON['dashboards']。是必选项。

DEFAULT¶ New in version 2014.1(Icehouse).

如果设置为True, 这个dashboard将被设置为默认的dashboard。

例子:

若要在本地禁用dashboard,用下面内容创建一个 openstack_dashboard/local/enabled/_40_dashboard-name.py 文件:

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

添加一个 Tuskar-UI(Infrastructure) 仪表板,首先必须安装它,然后创建一个文件 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,
}

Panels的插件化设置¶New in version 2014.1(Icehouse).

下面的配置用于注册或删除panel。

PANEL¶ New in version 2014.1(Icehouse).

此值为panel的slug字段值,会被添加到 HORIZON_CONFIG 。是必选项。

PANEL_DASHBOARD¶ New in version 2014.1(Icehouse).

指定与 PANEL 相关的 dashboard的slug值。是必选项。此配置是将panel设为指定的dashbaord。

PANEL_GROUP¶ New in version 2014.1(Icehouse).

指定与 PANEL 相关的panel组的slug值。此配置是将panel设为指定的组。 如果您希望此panel不在组里面,将此值设置为 “default”。

DEFAULT_PANEL¶ New in version 2014.1(Icehouse).

如果设置此值,它将更新 PANEL_DASHBOARD 的默认panel。

ADD_PANEL¶ New in version 2014.1(Icehouse).

此值为要添加的panel的Python类。

REMOVE_PANEL¶ New in version 2014.1(Icehouse).

如果设置为True,panel将会从 PANEL_DASHBOARD或PANEL_GROUP移除。

例子:

要在Admin dashboard里的Admin panel group添加 一个panel,用下面内容创建一个 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 dashboard里的 Admin panel group的 Info panel 删除,用以下内容创建一个 openstack_dashboard/local/enabled/_70_admin_remove_panel.py 文件:

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

要将 Admin dashboard 里的默认panel改为 Instances,用下面内容创建一个 openstack_dashboard/local/enabled/_80_admin_default_panel.py 文件:

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

Panels组的插件化设置¶ New in version 2014.1(Icehouse).

下面的配置用于注册或删除panel组。

PANEL_GROUP¶ New in version 2014.1(Icehouse).

此值为panel组的slug字段值,会被添加到 HORIZON_CONFIG 。是必选项。

PANEL_GROUP_NAME¶ New in version 2014.1(Icehouse).

PANEL_GROUP 显示的名字。是必选项。

PANEL_GROUP_DASHBOARD¶ New in version 2014.1(Icehouse).

指定与 PANEL_GROUP 相关的 dashboard的slug值。是必选项。此配置是将panel组设为指定的dashbaord。

例子:

添加一个新的panel组到 Admin dashboard,用以下内容创建 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'

“插件化的Panels和Groups怎么设置”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI