1

user-data を受け入れるフォームを表示するパネルを持つ open-stack-dashboard にカスタム ダッシュボードを追加しようとしています。ダッシュボードの settings.py にはデータベース構成が含まれていないため、パネル用に models.py を作成して定義する場所は?

4

1 に答える 1

1

編集: Liberty リリース以降を使用している場合は、データベースを直接接続しないことをお勧めします。外部で独自の REST API を作成し (django-rest-framework で簡単に実行できます)、angularjs を使用してデータをフェッチします。それがHorizo​​ nの新しい標準的な方法です.

Horizo​​n にはデータベースがありません。keystone への API 呼び出しと、サービス カタログで公開されている API のみに依存します。独自のモデルを保存する場合は、任意の django アプリケーションで標準的な方法でデータベースを構成できます。

openstack_dashboard/local/local_settings.py にデータベース情報を追加して、デフォルト設定を改ざんしないようにします。

DATABASE_ROUTERS = [...]
DATABASES = {
    'default': {},
    'mydb1': { ... },
    'mydb2': { ... },
}

これは、実際にカスタム データを保存する必要があることを前提としています。追加の顧客情報を得るためにデータベースや API を接続するのはごく普通のことだと思います。登録プロセス、請求情報、その他のカスタム項目。

また、ソース ツリーの外でカスタム アイテムを作成し、それを openstack_dashboard/local/enabled に接続してください。これにより、今後、Horizo​​n ソースをアップグレードするときに、よりクリーンになります。

例 :

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/horizo​​n /topics/tutorial.html

カスタム安定テーマ: http://www.matthias-runge.de/custom-theme-for-horizo​​n.html

于 2014-06-10T16:31:01.803 に答える