1

我正在尝试在 open-stack-dashboard 中添加一个自定义仪表板,该仪表板将具有显示接受用户数据的表单的面板。在哪里为面板创建和定义我的 models.py,因为仪表板的 settings.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。这使它在将来升级地平线源时更清洁。

例子 :

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中导入dashboard包

# 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 回答