声明:
本博客欢迎转载,但请保留原作者信息!
作者:姜飞
团队:华为杭州OpenStack团队
物理单板在PXE的init启动时候,deploy-ironic发送了一个POST v1/nodes/{node-id}/vendor_passthru/pass_deploy_info请求到ironic-api,数据data是:
DATA='{"address":"$BOOT_IP_ADDRESS","key":"$DEPLOYMENT_KEY","iqn":"$ISCSI_TARGET_IQN","error":"$FIRST_ERR_MSG"}'
Ironic-api的处理是在ironic.api.controllers.v1.node.NodeVendorPassthruController的post方法处理的,这个方法很简单,检查到node是否存在,发送vendor_passthru的rpc请求到ironic-conductor,这里的method就是pass_deploy_info
def post(self, node_uuid, method, data):
# Raise an exception if node is not found
rpc_node = ob