硬件provision终于收尾了,产品化,国际化,基本测试都齐活了,从前到后的一套东西,虽然之前自认为已经知道了,实际做下来,中间和预想的有差异,但
最终结果就是我所想的样子,心情也不错!
这里记录几个自己遇到的问题,以后若有查阅也方便:
一. 模板问题
大部分的horizon页面效果的实现是不需要特别的css或者js的引入的,特别是table相关的操作,horizon自己做了很好的封装,依样画葫芦即可,就算
有些不明白的(前面的记录中有所提及),也基本上可以解决。直到我希望在horizon中加入特殊的效果,需要引入现有的css和js库,发现按照:
http://docs.openstack.org/developer/horizon/topics/customizing.html 中所写的行不通,这让我非常苦恼,毕竟不能引入自己的style和js,对horizon的改动受限很大。
进行过很多尝试,改变template的位置,compress问题一大堆,网上资料也很少!不断的尝试两天后发现其实改动很容易,只是不能按照文档来,我是用的Kilo版本,
方法为:
1. 建一个_scripts.html,里面是自己的js:
{% extends 'horizon/_scripts.html' %}
{% block custom_js_files %}
<script src='{{ STATIC_URL }}project/myown/my.js' type='text/javascript' charset='utf-8'></script>
xxx
{% endblock %}
这STATIC_URL是什么呢,根据自己配置文件中指定的不同会不一样,是用RDO安装的话在/usr/share/openstack-dashabord/static下,因此,
在此目录下建立目录"project/myown/", 将my.js等自己的js放入其中(是admin的就将project变成admin)
2. 按照文档 {% extends 'my_custom_dashboard/base.html' %}不行,改成{% extends 'project/my_custom_dashboard/base.html' %}也不行,
后来干脆{% extends 'base.html' %}, 然后形式变为:
% extends 'base.html' %}
#css库
{% block css %}
<link href='{{ STATIC_URL }}project/myown/my.css' type='text/css' rel='stylesheet' /> #和js一样
{% include "_stylesheets.html" %}
{% endblock %}
{% block main %}
#实现页面
{% endblock %}
{% block js %}
{% include "project/physical_servers/_scripts.html" %}#js库
<script type="text/javascript">
function test(){
#实现单独的页面是用的js
}
</script>
{% endblock %}
成功!
二:国际化
国际化的东西在mark link中有描述,分为生成message和改变message两种,对于新的django项目需要生成message,而我们
是改变现在的openstack,只需要编辑/usr/share/openstack-dashboard/openstack_dashboard/locale/zh_CN/LC_MESSAGES/django.po
(此处为中文),其他语言一样,编辑完成之后,在其目录中执行:
msgfmt --statistics --verbose -o django.mo django.po
将django.po编译为django.mo文件,然后替换即可。
三:RDO 安装后,长时间不登录操作时候,再次登录会出现“ValidationError at /auth/login/”,
网上说法很多,应该是RDO安装造成的,在官网上查到的workaround为重启浏览器,或者清空cookies即可。
mark link:
http://www.tuicool.com/articles/VRRvQj
http://yuky1327.iteye.com/blog/1711337