
On Mon, Sep 23, 2013 at 02:25:49PM -0400, Moti Asayag wrote:
I have looked at the getVdsCapabilities reported by VDSM for the first time, on which the engine based its setupNetwork command for configuring the management network:
'lastClientIface': 'em1', 'nics': {'em1': {'netmask': '255.255.255.0', 'addr': '192.168.2.9', 'hwaddr': 'a4:ba:db:ec:ea:cd', 'cfg': {}, 'ipv6addrs': ['fe80::a6ba:dbff:feec:eacd/64', '2001:4830:1692:1:a6ba:dbff:feec:eacd/64'], 'speed': 1000, 'mtu': '1500'}}
Based on that input, the engine sends setupNetwork command to configure the management network on top of 'em1' nic. However, since it has no bootprotocol or gateway, it is identified as bootproto=NONE, which result in engine not to pass ip address/subnet/gateway to vdsm, therefore the command fails.
This seems very similar to what triggered Bug 987813 - [RFE] report BOOTPROTO and BONDING_OPTS independent of netdevice.cfg Vdsm does not really cope with network definitions that are not ifcfg-based. I do not know what makes Fedora 19 sometimes use ifcfg out-of-the-box and sometimes not, but in order to play well with the current implementation of Vdsm, we should make it use legacy initscript for network definition.
networks=[ovirtmgmt {id=b05f272d-473f-41cb-b5a0-25cf06951f6b, description=Management Network, comment=null, subnet=null, gateway=null, type=null, vlanId=null, stp=false, dataCenterId=7a7e4a7a-ecc8-4b3e-b200-2b54d0809a52, mtu=0, vmNetwork=true, cluster=NetworkCluster {id={clusterId=null, networkId=null}, status=OPERATIONAL, display=false, required=true, migration=false}, providedBy=null, label=null}], bonds=[], interfaces=[em1 {id=80a1e7c8-05bd-4209-a6fe-a23c38538330, vdsId=5e3da5d9-7133-4119-86c0-f655d3e37b38, name=em1, macAddress=a4:ba:db:ec:ea:cd, networkName=ovirtmgmt, bondName=null, bootProtocol=NONE, address=192.168.2.9, subnet=255.255.255.0, gateway=null, mtu=0, bridged=true, speed=1000, type=2, networkImplementationDetails=null}], removedNetworks=[],
As received by VDSM, where we can see the ip address and the subnet are omitted: Thread-17::DEBUG::2013-09-23 07:07:21,314::BindingXMLRPC::979::vds::(wrapper) client [192.168.2.9]::call setupNetworks with ({'ovirtmgmt': {'nic': 'em1', 'STP': 'no', 'bridged': 'true'}}, {}, {'connectivityCheck': 'true', 'connectivityTimeout': 120}) {}
Looking at the traceback on vdsm.log reveals less information: storageRefresh::DEBUG::2013-09-23 07:07:22,597::misc::817::SamplingMethod::(__call__) Returning last result Thread-17::ERROR::2013-09-23 07:09:24,154::API::1261::vds::(setupNetworks) Traceback (most recent call last): File "/usr/share/vdsm/API.py", line 1259, in setupNetworks supervdsm.getProxy().setupNetworks(networks, bondings, options) File "/usr/share/vdsm/supervdsm.py", line 50, in __call__ return callMethod() File "/usr/share/vdsm/supervdsm.py", line 48, in <lambda> **kwargs) File "<string>", line 2, in setupNetworks File "/usr/lib64/python2.7/multiprocessing/managers.py", line 773, in _callmethod raise convert_to_error(kind, result) ConfigNetworkError: (29, '')
Nicholas, could you add also /var/log/vdsm/supervdsm.log and /var/log/messages so we can get more input about the failure to bring up em1 ?