溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

插件化的Panels和Groups怎么設(shè)置

發(fā)布時(shí)間:2022-01-04 14:13:33 來源:億速云 閱讀:190 作者:iii 欄目:云計(jì)算

本篇內(nèi)容介紹了“插件化的Panels和Groups怎么設(shè)置”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

介紹

Horizon允許在不修改默認(rèn)設(shè)置的情況下添加儀表板、面板和面板組。 插件化的設(shè)置是一種機(jī)制,允許將設(shè)置存儲在單獨(dú)的文件中。 這些文件在啟動時(shí)被讀取,并用于修改默認(rèn)設(shè)置。

儀表板配置文件的默認(rèn)位置是 openstack_dashboard/enabled, 使用另一個(gè)目錄openstack_dashboard/local/enabled  是用于本地覆蓋。 這兩組文件都將被加載, 但是 openstack_dashboard/local/enabled 設(shè)置將覆蓋默認(rèn)設(shè)置。 這些設(shè)置應(yīng)用文件名的字母順序。 如果相同的儀表板在 enabledlocal/enabled 都有配置文件,在local/enabled將會被使用。 注意,因?yàn)閜ython模塊的名稱不能以數(shù)字開頭, 這些文件通常以一個(gè)主要的下劃線和一個(gè)數(shù)字來命名,這樣您就可以輕松地控制它們的順序。

一般的可插件化設(shè)置?

在描述具體的用例之前,可以在任何插件化的設(shè)置文件中使用以下配置變量.

ADD_EXCEPTIONS?New in version 2014.1(Icehouse).

可以向配置變量 HORIZON['exceptions'] 里加 異常類字典。

ADD_INSTALLED_APPSNew in version 2014.1(Icehouse).

應(yīng)用程序列表插入到 INSTALLED_APPS 列表之前,當(dāng)需要從插件中暴露靜態(tài)文件時(shí)需要使用此設(shè)置。

ADD_ANGULAR_MODULES New in version 2014.2(Juno).

當(dāng)Angular bootstraps時(shí), AngularJS模塊列表會被加載。 這些模塊會作為依賴被添加到root Horizon application horizon 。

ADD_JS_FILES New in version 2014.2(Juno).

javascript源文件列表會被引進(jìn)每個(gè)頁面上加載的壓縮文件集中。 這對于AngularJS模塊來說是必需的,因?yàn)檫@些被添加進(jìn) ADD_ANGULAR_MODULES 的模塊會引用到 javascript源文件, 因此需要在每個(gè)頁面中加進(jìn)來。

ADD_JS_SPEC_FILES?New in version 2015.1(Kilo).

javascript規(guī)范文件的列表會被引入來與 Jasmine規(guī)范運(yùn)行器集成。Jasmine是一個(gè)用于測試JavaScript代碼的行為驅(qū)動開發(fā)框架。

ADD_SCSS_FILES?New in version 8.0.0(Liberty).

scss文件列表會被引進(jìn)每個(gè)頁面上加載的壓縮文件集中。 建議每個(gè)儀表板上一個(gè)scss文件,如果需要為面板引用額外的scss文件,請使用@import。

ADD_XSTATIC_MODULES?New in version 14.0.0(Rocky).

包含javascript和scss文件的xstatic模塊列表會被引進(jìn)每個(gè)頁面上加載的壓縮文件集中。相關(guān)的文件應(yīng)該在 ADD_XSTATIC_MODULES 進(jìn)行添加而不是在 ADD_JS_FILES 添加。 這個(gè)選項(xiàng)配置值為一個(gè)元組列表,每個(gè)元組包含一個(gè)xstatic模塊和一個(gè)要加載的javascript文件列表。 有關(guān)更多細(xì)節(jié),請查看 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).

如果設(shè)置為True, JavaScript文件和angular靜態(tài)html模板文件將自動地從ADD_INSTALLED_APPS中的每個(gè) app的靜態(tài)文件夾中發(fā)現(xiàn)。

JavaScript源文件將根據(jù)命名約定進(jìn)行排序: 首先列出帶有 .module.js 擴(kuò)展名的文件, 接著是其他的JavaScript源文件。

用于測試的JavaScript文件也將根據(jù)命名約定進(jìn)行排序:首先列出帶有 .mock.js 擴(kuò)展名的文件,接著是 帶有.spec.js擴(kuò)展名的文件。

如果 ADD_JS_FILES 與/或者 ADD_JS_SPEC_FILES 也被指定,手動列出的文件將被附加到自動發(fā)現(xiàn)的文件。

DISABLED?New in version 2014.1(Icehouse).

如果設(shè)置為True, 此設(shè)置文件不會添加到設(shè)置中。

EXTRA_TABS?New in version 14.0.0(Rocky).

額外的選項(xiàng)卡可以添加到一個(gè)選項(xiàng)卡組中,通過使用這個(gè)設(shè)置來實(shí)現(xiàn)在horizon或其他的horizon插件。 在對應(yīng)的選項(xiàng)卡組中定義的默認(rèn)選項(xiàng)卡后將顯示額外的選項(xiàng)卡。

這是一個(gè)字典配置。字典的key 指定添加額外標(biāo)簽的標(biāo)簽組。key必須匹配目標(biāo)選項(xiàng)卡組的完整類名。 字典值是一個(gè)額外標(biāo)簽類的全稱列表(此值的模塊名和類名必須用句點(diǎn)分隔)。 通過EXTRA_TABS 指定的tabs將按照注冊的順序顯示。

有些情況下,您可能希望指定額外選項(xiàng)卡的順序,因?yàn)槎鄠€(gè)horizon插件可以注冊額外的選項(xiàng)卡。 可以在EXTRA_TABS 配置中,通過使用帶有優(yōu)先權(quán)和選項(xiàng)卡類名的元組而不是一個(gè)額外選項(xiàng)卡全名作為字典值的方式來指定每個(gè)選項(xiàng)卡的優(yōu)先權(quán)。優(yōu)先級是一個(gè)整數(shù),數(shù)值小的優(yōu)先級高。如果有個(gè)選項(xiàng)卡忘記設(shè)置優(yōu)先權(quán),它的優(yōu)先權(quán)會被設(shè)為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',
    ),
}

帶優(yōu)先權(quán)的例子:

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).

設(shè)置的字典值會更新 HORIZON_CONFIG 中數(shù)值。

 Dashboards的插件化設(shè)置?New in version 2014.1(Icehouse).

下面的配置是用于注冊儀表板的。

DASHBOARD? New in version 2014.1(Icehouse).

 此值為dashboard的slug字段值,會被添加到 HORIZON['dashboards']。是必選項(xiàng)。

DEFAULT? New in version 2014.1(Icehouse).

如果設(shè)置為True, 這個(gè)dashboard將被設(shè)置為默認(rèn)的dashboard。

例子:

若要在本地禁用dashboard,用下面內(nèi)容創(chuàng)建一個(gè) openstack_dashboard/local/enabled/_40_dashboard-name.py 文件:

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

添加一個(gè) Tuskar-UI(Infrastructure) 儀表板,首先必須安裝它,然后創(chuàng)建一個(gè)文件 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的插件化設(shè)置?New in version 2014.1(Icehouse).

下面的配置用于注冊或刪除panel。

PANEL? New in version 2014.1(Icehouse).

此值為panel的slug字段值,會被添加到 HORIZON_CONFIG 。是必選項(xiàng)。

PANEL_DASHBOARD? New in version 2014.1(Icehouse).

指定與 PANEL 相關(guān)的 dashboard的slug值。是必選項(xiàng)。此配置是將panel設(shè)為指定的dashbaord。

PANEL_GROUP? New in version 2014.1(Icehouse).

指定與 PANEL 相關(guān)的panel組的slug值。此配置是將panel設(shè)為指定的組。 如果您希望此panel不在組里面,將此值設(shè)置為 “default”。

DEFAULT_PANEL? New in version 2014.1(Icehouse).

如果設(shè)置此值,它將更新 PANEL_DASHBOARD 的默認(rèn)panel。

ADD_PANEL? New in version 2014.1(Icehouse).

此值為要添加的panel的Python類。

REMOVE_PANEL? New in version 2014.1(Icehouse).

如果設(shè)置為True,panel將會從 PANEL_DASHBOARD或PANEL_GROUP移除。

例子:

要在Admin dashboard里的Admin panel group添加 一個(gè)panel,用下面內(nèi)容創(chuàng)建一個(gè) 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 刪除,用以下內(nèi)容創(chuàng)建一個(gè) openstack_dashboard/local/enabled/_70_admin_remove_panel.py 文件:

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

要將 Admin dashboard 里的默認(rèn)panel改為 Instances,用下面內(nèi)容創(chuàng)建一個(gè) openstack_dashboard/local/enabled/_80_admin_default_panel.py 文件:

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

Panels組的插件化設(shè)置? New in version 2014.1(Icehouse).

下面的配置用于注冊或刪除panel組。

PANEL_GROUP? New in version 2014.1(Icehouse).

此值為panel組的slug字段值,會被添加到 HORIZON_CONFIG 。是必選項(xiàng)。

PANEL_GROUP_NAME? New in version 2014.1(Icehouse).

PANEL_GROUP 顯示的名字。是必選項(xiàng)。

PANEL_GROUP_DASHBOARD? New in version 2014.1(Icehouse).

指定與 PANEL_GROUP 相關(guān)的 dashboard的slug值。是必選項(xiàng)。此配置是將panel組設(shè)為指定的dashbaord。

例子:

添加一個(gè)新的panel組到 Admin dashboard,用以下內(nèi)容創(chuàng)建 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怎么設(shè)置”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI