openstack horizon 学习(1) 总览
关于Horizon的设计理念:
来自官网(http://docs.openstack.org/developer/horizon/intro.html):
Horizon holds several key values at the core of its design and architecture:
Core Support: Out-of-the-box support for all core OpenStack projects.
Extensible: Anyone can add a new component as a “first-class citizen”.
Manageable: The core codebase should be simple and easy-to-navigate.
Consistent: Visual and interaction paradigms are maintained throughout.
Stable: A reliable API with an emphasis on backwards-compatibility.
Usable: Providing an awesome interface that people want to use.
The only way to attain and uphold those ideals is to make it easy for developers to implement those values.
官网中特别强调了一句话:
At its core, Horizon should be a registration pattern for applications to hook into
Horizon要像积木一样,(除了Core以外的)应用是可拔插的。灵活,看上去也Cool。
来看下Horizon的结构:
This project is a bit different from other OpenStack projects in that it has two very distinct components underneath it: horizon, and openstack_dashboard.
The horizon directory holds the generic libraries and components that can be used in any Django project.
The openstack_dashboard directory contains a reference Django project that uses horizon.

Horizon的设计基于Django框架,遵循DRY原则。
首先我们先看看 horizon/ 这个目录。horizon这个目录包括了具体应用可能需要用到的公共组件,如table,form等等。

另外一个重要的目录就是 openstack_dashboard/ 这个目录,具体的应用视图是定义在这个目录下的,比如networks的dashboard目录就是 openstack_dashboard/project/networks/ ,每个具体应用的目录结构跟django的app结构相似:
project/
|---__init__.py
|---dashboard.py <-----Registers the app with Horizon and sets dashboard properties
|---overview/
|---images/
|-- images
|-- __init__.py
|---panel.py <-----Registers the panel in the app and defines panel properties
|-- snapshots/
|-- templates/
|-- tests.py
|-- urls.py
|-- views.py
...
...
其他细节,等需要用到在详细介绍。
openstack horizon 学习(1) 总览的更多相关文章
- openstack horizon 学习(3) DataTable
上一篇中粗略的讲了下openstack中horizon的dashboard和panel的添加,本打算在这章中对有关于pluggable settings中的配置做详细的总结,然放弃了这念头.原因是搞懂 ...
- openstack horizon 学习(2) navigation、dashboard、panels
本章的主要内容是如何用horizon的navigation结构添加一个应用的面板. Horizon中提供了两种为应用添加panel的方法,一种是通过Pluggable Settings的方式,另一种是 ...
- 关于OpenStack的学习路线及相关资源汇总
首先我们想学习openstack,那么openstack是什么?能干什么?涉及的初衷是什么?由什么来组成?刚接触openstack,说openstack不是一个软件,而是由多个组件进行组合,这是一个更 ...
- Openstack api 学习文档 & restclient使用文档
Openstack api 学习文档 & restclient使用文档 转载请注明http://www.cnblogs.com/juandx/p/4943409.html 这篇文档总结一下我初 ...
- openstack horizon CSS 离线 改动
Openstack horizon 的CSS主要保存在几个文件夹中,各自是horizon/static/dashboard/scss;horizon/openstack_dashboard/stati ...
- Apache下配置Openstack Horizon (转)
非常详尽的Horizon配置介绍,转自 dev.cloudwatt.com Deploy Horizon from source with Apache and SSL Some companies ...
- 【云计算】OpenStack Horizon DashBoard定制化,完整实现前后台交互
项目代码见GitHub:https://github.com/junneyang/openstack-customization-example 参考资料: Install and configure ...
- Openstack neutron学习
最近在学习openstack neutron的东西,记录下自己的一些理解. 网络基础知识 Switches & Vlan交换机的作用是来连接设备,实现互通的.network host之间通过交 ...
- 怎样修改 Openstack Horizon(Dashboard)的显示界面 (二)
上一篇文章介绍了 Dashboard 的基本结构框架,那接下来的问题就是如何在这个框架中加入我们自己想要的内容了.在真正动手之前,让我们先来看看官方的页面是怎么做出来的.首先我们进入 /usr/sha ...
随机推荐
- 笔试算法题(51):简介 - 红黑树(RedBlack Tree)
红黑树(Red-Black Tree) 红黑树是一种BST,但是每个节点上增加一个存储位表示该节点的颜色(R或者B):通过对任何一条从root到leaf的路径上节点着色方式的显示,红黑树确保所有路径的 ...
- linux ping-测试主机之间网络的连通性
博主推荐:更多网络测试相关命令关注 网络测试 收藏linux命令大全 ping命令用来测试主机之间网络的连通性.执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问 ...
- 分布式集群环境下运行Wordcount程序
1.分布式环境的Hadoop提交作业方式与本地安装的Hadoop作业提交方式相似,但有两点不同: 1)作业输入输出都存储在HDFS 2)本地Hadoop提交作业时将作业放在本地JVM执行,而分布式集群 ...
- jQuery的ready与js的load事件的区别
摘自:http://www.cnblogs.com/see7di/archive/2011/07/15/2239677.html 为了理解这两个事件的异同,读者应该先了解HTML文档加载的顺序. DO ...
- stark组件之添加、修改页面内容搭建(七)
如何快速的进行数据的添加以及修改呢?modelform来实现是可以达到效果的,在这里就是应用了modelform,每一个表都不同,所以需要创建不同的modelform. def get_model_f ...
- Ubuntu中Python3虚拟环境的搭建
1.环境准备 首先请自行安装好Python3和pip3(一般Ubuntu是自带Python3的,可以通过sudo apt-get install python3-pip命令来安装pip3) 安装完成后 ...
- Unix网络编程 — 头文件解析
1.1. < sys/types.h > primitive system data types(包含很多类型重定义,如pid_t.int8_t等) 1.2. < sys/socke ...
- 贪心 Radar Installation (求最少探测雷达)
Description Assume the coasting is an infinite straight line. Land is in one side of coasting, sea i ...
- IDEA的Maven Projects无法显示
记一个小坑: 前两天重装了一下电脑系统,下载了个最新的IDEA2018.3.5,把Maven.JDK.TomCat都设置好了 今天打开IDEA创建一个新的Maven项目,项目没有显示让我导入Maven ...
- [luoguP1868] 饥饿的奶牛(DP)
传送门 先把所有区间按照左端点排序 f[i]表示区间0~i的最优解 #include <cstdio> #include <iostream> #include <alg ...