[ 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'