[ English | English (United Kingdom) | 中文 (简体, 中国) | Indonesia | русский | français | नेपाली | Deutsch | Esperanto | português (Brasil) | español | 한국어 (대한민국) ]
Pluggable Panels dan Groups¶
Pengantar¶
Horizon memungkinkan dashboard, panel dan grup panel ditambahkan tanpa mengubah pengaturan default. Pengaturan pluggable adalah mekanisme untuk memungkinkan pengaturan untuk disimpan dalam file terpisah. File-file tersebut dibaca saat startup dan digunakan untuk mengubah pengaturan default.
Lokasi default untuk file konfigurasi dasbor adalah openstack_dashboard/enabled
, dengan direktori lain, openstack_dashboard/enabled
, untuk menimpa lokal. Kedua set file akan dimuat, tetapi pengaturan di openstack_dashboard/local/enabled
akan menimpa yang default. Pengaturan diterapkan dalam urutan abjad nama file. Jika dasbor yang sama memiliki file konfigurasi dalam enabled
dan local/enabled
, nama lokal akan digunakan. Perhatikan, bahwa karena nama-nama modul python tidak dapat dimulai dengan digit, file biasanya dinamai dengan garis bawah dan nomor yang terkemuka, sehingga Anda dapat mengontrol urutannya dengan mudah.
Pengaturan Pluggbale Umum¶
Sebelum kami menjelaskan kasus penggunaan spesfik, kunci berikut dapat digunakan dalam file pengaturan yang dapat di-pluggable:
ADD_EXCEPTIONS
¶
Added in version 2014.1(Icehouse).
Kamus kelas pengecualian yang akan ditambahkan HORIZON['exceptions']
.
ADD_INSTALLED_APPS
¶
Added in version 2014.1(Icehouse).
Daftar aplikasi yang akan ditambahkan ke INSTALLED_APPS
. Ini diperlukan untuk memaparkan file statis dari sebuah plugin.
ADD_ANGULAR_MODULES
¶
Added in version 2014.2(Juno).
Daftar modul AngularJS yang akan dimuat saat bootstraps Angular. Modul-modul ini ditambahkan sebagai dependensi pada aplikasi Horizon root horizon
.
ADD_JS_FILES
¶
Added in version 2014.2(Juno).
Daftar file sumber javascript untuk dimasukkan dalam kumpulan file terkompresi yang dimuat pada setiap halaman. Ini diperlukan untuk modul AngularJS yang direferensikan di ADD_ANGULAR_MODULES
dan oleh karena itu perlu dimasukkan dalam setiap halaman.
ADD_JS_SPEC_FILES
¶
Added in version 2015.1(Kilo).
Daftar file spesifikasi javascript untuk disertakan untuk integrasi dengan pelari spesifikasi Jasmine. Jasmine adalah kerangka kerja yang digerakkan oleh perilaku untuk menguji kode JavaScript.
ADD_SCSS_FILES
¶
Added in version 8.0.0(Liberty).
Daftar file scss untuk dimasukkan dalam kumpulan file terkompresi yang dimuat pada setiap halaman. Kami merekomendasikan satu file scss per dasbor, gunakan @import jika Anda perlu menyertakan file scss tambahan untuk panel.
ADD_XSTATIC_MODULES
¶
Added in version 14.0.0(Rocky).
Daftar modul xstatic yang berisi file javascript dan scss untuk dimasukkan dalam kumpulan file terkompresi yang dimuat pada setiap halaman. File terkait yang ditentukan dalam ADD_XSTATIC_MODULES
tidak perlu dimasukkan dalam ADD_JS_FILES
. Opsi ini mengharapkan daftar tupel, masing-masing terdiri dari modul xstatic dan daftar file javascript yang akan dimuat jika ada. Untuk lebih jelasnya, silakan periksa komentar dari BASE_XSTATIC_MODULES
dalam openstack_dashboard/utils/settings.py.
Contoh:
ADD_XSTATIC_MODULES = [
('xstatic.pkg.foo', ['foo.js']),
('xstatic.pkg.bar', None),
]
AUTO_DISCOVER_STATIC_FILES
¶
Added in version 8.0.0(Liberty).
Jika disetel ke True
, file JavaScript dan file template html angular statis akan secara otomatis ditemukan dari folder static di setiap aplikasi yang terdaftar di ADD_INSTALLED_APPS.
File sumber JavaScript akan diurutkan berdasarkan konvensi penamaan: files dengan ekstensi .module.js didaftar pertama, diikuti oleh file sumber JavaScript lainnya.
File JavaScript untuk pengujian juga akan dipesan berdasarkan konvensi penamaan: file dengan ekstensi .mock.js didaftar pertama, diikuti oleh file dengan ekstensi .spec.js.
Jika ADD_JS_FILES dan / atau ADD_JS_SPEC_FILES juga ditentukan, file yang tercantum secara manual di sana akan ditambahkan ke file yang ditemukan secara otomatis.
DISABLED
¶
Added in version 2014.1(Icehouse).
Jika disetel ke `` True``, file pengaturan ini tidak akan ditambahkan ke pengaturan.
EXTRA_STEPS
¶
Added in version 14.0.0(Rocky).
Langkah-langkah alur kerja tambahan dapat ditambahkan ke alur kerja di horizon atau plugin horizon lainnya dengan menggunakan pengaturan ini. Langkah-langkah tambahan akan ditampilkan setelah langkah-langkah standar yang ditentukan dalam alur kerja yang sesuai.
Ini adalah pengaturan dict. Kunci dari dict menentukan alur kerja yang ditambahkan langkah tambahan. Kunci harus sesuai dengan nama kelas penuh dari alur kerja target.
Nilai dari dict adalah daftar nama lengkap dari kelas langkah tambahan (di mana nama modul dan nama kelas harus dibatasi oleh suatu periode). Langkah-langkah yang ditentukan melalui `` EXTRA_STEPS`` akan ditampilkan dalam urutan terdaftar.
Contoh:
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
¶
Added in version 14.0.0(Rocky).
Tab tambahan dapat ditambahkan ke grup tab yang diterapkan di horizon atau plugin horizon lainnya dengan menggunakan pengaturan ini. Tab tambahan akan ditampilkan setelah tab default yang ditentukan dalam grup tab yang sesuai.
Ini adalah pengaturan dict. Kunci dari dict menentukan grup tab yang ditambahkan tab tambahan. Kunci harus sesuai dengan nama kelas lengkap dari grup tab target.
Nilai dari dict adalah daftar nama lengkap dari kelas tab ekstra (di mana nama modul dan nama kelas harus dibatasi oleh suatu periode). Tab yang ditentukan melalui EXTRA_TABS
akan ditampilkan dalam urutan terdaftar.
Mungkin ada kasus di mana Anda ingin menentukan urutan tab tambahan karena beberapa plugin horizon dapat mendaftarkan tab tambahan. Anda dapat menentukan prioritas setiap tab dalam EXTRA_TABS
dengan menggunakan tupel prioritas dan kelas tab sebagai elemen dari nilai dikte sebagai pengganti nama lengkap dari tab ekstra. Prioritas adalah bilangan bulat dari tab dan tab dengan nilai yang lebih rendah akan ditampilkan terlebih dahulu. Jika prioritas tab ekstra diabaikan, 0
diasumsikan sebagai prioritas.
Contoh:
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',
),
}
Contoh (dengan prioritas):
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
¶
Added in version 2014.2(Juno).
Kamus nilai yang akan menggantikan nilai dalam HORIZON_CONFIG
.
Pengaturan Pluggable untuk Dasbor¶
Added in version 2014.1(Icehouse).
Kunci berikut khusus untuk mendaftarkan dasbor:
DASHBOARD
¶
Added in version 2014.1(Icehouse).
The slug dari dashboard akan ditambahkan ke ``HORIZON ['dashboard'] ``. Wajib.
DEFAULT
¶
Added in version 2014.1(Icehouse).
Jika disetel ke True
, dasbor ini akan ditetapkan sebagai dasbor default.
Contoh¶
Untuk menonaktifkan dasbor secara lokal, buat file``openstack_dashboard/local/enabled/_40_dashboard-name.py`` dengan konten berikut
DASHBOARD = '<dashboard-name>'
DISABLED = True
Untuk menambahkan dasbor Tuskar-UI (Infrastruktur), Anda harus menginstalnya, dan kemudian membuat file openstack_dashboard/local/enabled/_50_tuskar.py
dengan:
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,
}
Pengaturan Pluggable untuk Panel¶
Added in version 2014.1(Icehouse).
Kunci berikut khusus untuk mendaftarkan atau menghapus panel:
PANEL
¶
Added in version 2014.1(Icehouse).
Slug panel yang akan ditambahkan ke HORIZON_CONFIG
. Wajib.
PANEL_DASHBOARD
¶
Added in version 2014.1(Icehouse).
The slug dari dashboard PANEL
terkait dengan. Wajib.
PANEL_GROUP
¶
Added in version 2014.1(Icehouse).
Siput dari kelompok panel PANEL
dikaitkan dengan. Jika Anda ingin panel muncul tanpa grup panel, gunakan grup panel "default".
DEFAULT_PANEL
¶
Added in version 2014.1(Icehouse).
Jika diatur, itu akan memperbarui panel default dari PANEL_DASHBOARD
.
ADD_PANEL
¶
Added in version 2014.1(Icehouse).
Kelas panel Python dari `` PANEL`` akan ditambahkan.
REMOVE_PANEL
¶
Added in version 2014.1(Icehouse).
Jika disetel ke True
, PANEL akan dihapus dari PANEL_DASHBOARD/PANEL_GROUP.
Contoh¶
Untuk menambahkan panel baru ke grup panel Admin di dasbor Admin, buat file openstack_dashboard/local/enabled/_60_admin_add_panel.py
dengan konten berikut
PANEL = 'plugin_panel'
PANEL_DASHBOARD = 'admin'
PANEL_GROUP = 'admin'
ADD_PANEL = 'test_panels.plugin_panel.panel.PluginPanel'
Untuk menghapus panel Info dari grup panel Admin di dasbor Admin secara lokal, buat file openstack_dashboard/local/enabled/_70_admin_remove_panel.py
dengan konten berikut
PANEL = 'info'
PANEL_DASHBOARD = 'admin'
PANEL_GROUP = 'admin'
REMOVE_PANEL = True
Untuk mengubah panel default dasbor Admin ke panel Instance, buat file openstack_dashboard/local/enabled/_80_admin_default_panel.py
dengan konten berikut
PANEL = 'instances'
PANEL_DASHBOARD = 'admin'
PANEL_GROUP = 'admin'
DEFAULT_PANEL = 'instances'
Pengaturan Pluggable untuk Kelompok Panel¶
Added in version 2014.1(Icehouse).
Kunci berikut khusus untuk mendaftarkan grup panel:
PANEL_GROUP
¶
Added in version 2014.1(Icehouse).
Slug dari kelompok panel akan ditambahkan ke `` HORIZON_CONFIG``. Wajib.
PANEL_GROUP_NAME
¶
Added in version 2014.1(Icehouse).
Nama tampilan PANEL_GROUP. Wajib.
PANEL_GROUP_DASHBOARD
¶
Added in version 2014.1(Icehouse).
The slug dari dashboard `` PANEL_GROUP`` terkait dengan. Wajib.
Contoh¶
Untuk menambahkan grup panel baru ke dasbor Admin, buat file openstack_dashboard/local/enabled/_90_admin_add_panel_group.py
dengan konten berikut
PANEL_GROUP = 'plugin_panel_group'
PANEL_GROUP_NAME = 'Plugin Panel Group'
PANEL_GROUP_DASHBOARD = 'admin'