new module add in with lots of issues(part 3)

来源:互联网 发布:反ip域名查询 编辑:程序博客网 时间:2024/05/28 19:25

在new module add in with lots of issues(part 2) 中成功的添加了自己的模块,急着尝试运行:

ironic node-create -d pxe_xxx

No valid host was found. Reason: No conductor service registered which supports driver pxe_xxx. (HTTP 400)

还没有配置conductor里面的enable的drivers。

enabled_drivers=pxe_xxx,重启ironic的conductor服务


按照上面的步骤发现自己的driver无法发挥作用,始终无法识别,ironic driver-list也没有结果,问题还是出现在数据库上,

每次将enabled_drivers配成自己的driver的时候总是conductor无法启动,只有default的pxe_ipmitool可以正常,使用mysql进入数据库查看ironic的数据库,

在表conductor中,我们将driver数组的pxe_ipmitool改成自己的driver: ["pxe_xxx"], 然后将/etc/ironic/ironic.conf中的enabled_drivers都注释掉,自己改动数据库,

反正在源码中可以看出,conductors读取drivers是用sqlalchemy从数据库取出的,重启服务即可,同时别忘了,如果自己的driver是用了第三方python库,需要将库引入,

否则load driver的时候无法成功。


在遇到问题的时候一定要check log,在log里面会有信息指向错误的根本,不要急着上网搜索或者胡乱尝试,log是最好的指导,遇到服务无法启动很可能是程序的错误引起的,

比如我因为缩进就导致自己的driver无法load和一些奇怪的问题!


ps:2014.2时候的ironic实现vendor_passthru时方法还比较原始,只支持POST方法。。。2015.1版本的扩展性更好


进过前面的各种debug,module成功打入ironic源码,编译改动后的代码,重启ironic服务,成功!

0 0