user-data を受け入れるフォームを表示するパネルを持つ open-stack-dashboard にカスタム ダッシュボードを追加しようとしています。ダッシュボードの settings.py にはデータベース構成が含まれていないため、パネル用に models.py を作成して定義する場所は?
1 に答える
編集: Liberty リリース以降を使用している場合は、データベースを直接接続しないことをお勧めします。外部で独自の REST API を作成し (django-rest-framework で簡単に実行できます)、angularjs を使用してデータをフェッチします。それがHorizo nの新しい標準的な方法です.
Horizon にはデータベースがありません。keystone への API 呼び出しと、サービス カタログで公開されている API のみに依存します。独自のモデルを保存する場合は、任意の django アプリケーションで標準的な方法でデータベースを構成できます。
openstack_dashboard/local/local_settings.py にデータベース情報を追加して、デフォルト設定を改ざんしないようにします。
DATABASE_ROUTERS = [...]
DATABASES = {
'default': {},
'mydb1': { ... },
'mydb2': { ... },
}
これは、実際にカスタム データを保存する必要があることを前提としています。追加の顧客情報を得るためにデータベースや API を接続するのはごく普通のことだと思います。登録プロセス、請求情報、その他のカスタム項目。
また、ソース ツリーの外でカスタム アイテムを作成し、それを openstack_dashboard/local/enabled に接続してください。これにより、今後、Horizon ソースをアップグレードするときに、よりクリーンになります。
例 :
openstack_dashboard
├── ....
horizon
├── ...
mystuff
├── horizon
│ ├── mydashboard
│ │ ├── panel1
│ │ │ ├── __init__.py
│ │ │ ├── panel.py
│ │ │ ├── urls.py
│ │ │ ├── views.py
│ │ ├── panel2
│ │ │ ├── ....
│ │ ├── dashboard.py
│ │ ├── __init__.py
│ │ ├── models.py (Unless defined elsewhere)
│ │ ├── static
│ │ └── templates
次に、ダッシュボード パッケージを openstack_dashboard/local/enabled/_50_mydashboard.py にインポートします。
# The name of the dashboard to be added to HORIZON['dashboards']. Required.
DASHBOARD = 'mydashboard'
# If set to True, this dashboard will be set as the default dashboard when the user logs in
DEFAULT = False
# If set to True, this dashboard will not be added to the settings.
DISABLED = False
# A dictionary of exception classes to be added to HORIZON['exceptions'].
#ADD_EXCEPTIONS = {}
# A list of applications to be added to INSTALLED_APPS.
ADD_INSTALLED_APPS = ['mystuff.horizon.mydashboard']
ダッシュボードとパネルのセットアップ: http://docs.openstack.org/developer/horizon /topics/tutorial.html
カスタム安定テーマ: http://www.matthias-runge.de/custom-theme-for-horizon.html