cloud-init doesn't support dpdkvhostuser port
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenContrail |
New
|
Undecided
|
Unassigned | ||
cloud-init |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
Hi I met a problem when booting VM using dpdkvhostuser port, I'm using the ubuntu 16.04 cloud image and boot from openstack.
Error messages are like following:
[ 6.635759] cloud-init[1904]: Cloud-init v. 0.7.7 running 'init-local' at Tue, 02 Aug 2016 06:44:54 +0000. Up 6.55 seconds.
[ 6.637238] cloud-init[1904]: 2016-08-02 06:44:54,224 - util.py[WARNING]: failed stage init-local
[ 6.640376] cloud-init[1904]: failed run of stage init-local
[ 6.641156] cloud-init[1904]: -------
[ 6.642089] cloud-init[1904]: Traceback (most recent call last):
[ 6.642869] cloud-init[1904]: File "/usr/lib/
[ 6.643959] cloud-init[1904]: ret = functor(name, args)
[ 6.644712] cloud-init[1904]: File "/usr/lib/
[ 6.645859] cloud-init[1904]: init.apply_
[ 6.646924] cloud-init[1904]: File "/usr/lib/
[ 6.648113] cloud-init[1904]: netcfg, src = self._find_
[ 6.649076] cloud-init[1904]: File "/usr/lib/
[ 6.650287] cloud-init[1904]: if self.datasource and hasattr(
[ 6.651327] cloud-init[1904]: File "/usr/lib/
[ 6.652618] cloud-init[1904]: self.network_json, known_macs=
[ 6.653547] cloud-init[1904]: File "/usr/lib/
[ 6.654801] cloud-init[1904]: 'Unknown network_data link type: %s' % link['type'])
[ 6.655764] cloud-init[1904]: ValueError: Unknown network_data link type: vhostuser
[ 6.656732] cloud-init[1904]: -------
[[0;1;31mFAILED[0m] Failed to start Initial cloud-init job (pre-networking).
I found that difference between normal ovs VM and dpdk ovs VM is in the network_json, the key 'type' is not the same:
normal ovs port:
{
'services':[
],
'links':[
{
}
],
'networks':[
{
}
]
}
dpdk vhost port:
{
'networks':[
{
}
],
'links':[
{
}
],
'services':[
]
}
tags: | added: sts |
Changed in cloud-init: | |
assignee: | nobody → Veena (mveenasl) |
Changed in cloud-init: | |
assignee: | Veena (mveenasl) → nobody |
The same problem occurs if using an SR-IOV network port on an Ubuntu 16.04 guest using OpenStack Liberty + ConfigDrive. Looks like the link type "hw_veb" needs to be handled as well. There may be other missing types too.
[ 49.997898] cloud-init[2096]: 2016-08-03 09:08:06,504 - util.py[WARNING]: failed stage init ------- ------- ------- ------- ------- ------- ------- ---- python3/ dist-packages/ cloudinit/ cmd/main. py", line 530, in status_wrapper python3/ dist-packages/ cloudinit/ cmd/main. py", line 277, in main_init network_ config( bring_up= bool(mode != sources. DSMODE_ LOCAL)) python3/ dist-packages/ cloudinit/ stages. py", line 631, in apply_network_ config networking_ config( ) python3/ dist-packages/ cloudinit/ stages. py", line 618, in _find_networkin g_config self.datasource , 'network_config'): python3/ dist-packages/ cloudinit/ sources/ DataSourceConfi gDrive. py", line 152, in network_config self.known_ macs) python3/ dist-packages/ cloudinit/ sources/ helpers/ openstack. py", line 599, in convert_net_json ------- ------- ------- ------- ------- ------- ------- ----
[ 49.999468] cloud-init[2096]: failed run of stage init
[ 50.000397] cloud-init[2096]: -------
[ 50.001502] cloud-init[2096]: Traceback (most recent call last):
[ 50.002466] cloud-init[2096]: File "/usr/lib/
[ 50.003800] cloud-init[2096]: ret = functor(name, args)
[ 50.004752] cloud-init[2096]: File "/usr/lib/
[ 50.008967] cloud-init[2096]: init.apply_
[ 50.011275] cloud-init[2096]: File "/usr/lib/
[ 50.012903] cloud-init[2096]: netcfg, src = self._find_
[ 50.013970] cloud-init[2096]: File "/usr/lib/
[ 50.016439] cloud-init[2096]: if self.datasource and hasattr(
[ 50.017755] cloud-init[2096]: File "/usr/lib/
[ 50.020349] cloud-init[2096]: self.network_json, known_macs=
[ 50.021691] cloud-init[2096]: File "/usr/lib/
[ 50.025182] cloud-init[2096]: 'Unknown network_data link type: %s' % link['type'])
[ 50.027331] cloud-init[2096]: ValueError: Unknown network_data link type: hw_veb
[ 50.028782] cloud-init[2096]: -------