from nova ironic to horizon(4)

来源:互联网 发布:淘宝小女孩子长裙礼服 编辑:程序博客网 时间:2024/05/18 13:25

本来想使用Horizon的wizard的,像network一样可以点击next,一步一步完成配置,但是下载的最新的horizon code点击next没用,搜索之后发现,这个应该是一个几经解决了

的bug,囧。。。(按照有人说的替换了jquery.bootstrap.wizard.js文件还是不行)

本来打算放弃,但是始终觉得用wizard比较炫,于是我将flavor创建的horizon现有代码抠出来,将调用workflow的地方改成调用flavor的workflow,是正确的,那么,

肯定是我的参数参数设置不对,一点一点儿设置发现:

slug = "xxx"

原来slug只能是一个单词,多个单词也要用下划线连成一个!!

修改之后一切ok了,不要轻易放弃。


在horizon/openstack_dashboards/api下添加自己的逻辑代码,从horizonUI上发出的call都在这里,例如nova,network,keystone等,基本上都是用各个模块的client完成的,当然如果你有特殊的要求,实现一个rest client,在这里进行rest call直接调用openstack的不在client中的服务也是可以的,不过我的建议是,这些服务最好也在client中实现,或者封装一下对外成为一个client wrapper,毕竟直接call rest api在horizon封装良好的框架下,有点儿丑陋。

然而当我试图在api下添加ironic的模块时,发现系统永远发现不了ironicclient,“no module named xxx”,

排除交叉引用,程序错误,环境变量的问题后,发现可能和前面几讲之中使用virtual environment进行开发有关,我们打开

horizon根目录下的requirement.txt,发现有python-xxxx的库要求,有nova的,keystone的,swift的,就是没有ironic的,因为ironic根本就没有集成到horizon上,

基本上是走的nova,所以本来有nova就足够了,现在不一样,我们直接call ironic的api,必然要修改requirement.txt,同时upgrade virtual environment。

OK!

添加python-ironicclient >=0.3.1

执行./run_test.sh,当然没有这么顺利,各种烦人的库会跳出来

lxml的问题用yum install libxslt-devel libxml2-devel

安装之后pip install python-ironicclient或者直接./run_test.sh即可


当你改过一部分code之后,./run_test.sh基本上会失败,大部分原因是因为改了code之后python格式测试不过,没关系,

备份code,使用前面提到的”git checkout . “ 还原即可,若还是报错,例如:

'Token' object has no attribute 'is_federated'

重启服务,换一个端口,比如./manage.py runserver 0.0.0.0:9000 换成9001即可


如果你有新的module需要在virtual environment中使用,上面的步骤是你需要的。



0 0
原创粉丝点击