vdsm-hook-macspoof was created to let VM owners override the
vdsm-no-mac-spoofing that was once hard-coded on each vNIC.
Since ovirt-4.0's
Bug 1317441 - [RFE] Allow MAC Anti-Spoofing per interface instead of globally
the hook is no longer needed, because ovirt-engine supports selection
of filters, including the "Empty" one.
Thus, we can finally drop vdsm-hook-macspoof from vdsm code.
https://gerrit.ovirt.org/#/c/94613/ does that.
If someone still depends on setting the ifacemacspoof custom property,
they can find and fix the vnic profiles using a script similar to the
following one. Note that ovirtlib does not yet have an easy-to-pull
canonical location.
from __future__ import print_function
import sys
from ovirtlib.system import SDKSystemRoot
from ovirtlib.netlib import Network, VnicProfile,
CustomProperty, NetworkFilter
from ovirtlib.datacenterlib import DataCenter
system = SDKSystemRoot()
system.connect(url=URL, insecure=True, password=PASSWORD, username=USER)
spoof_cp = CustomProperty(name='ifacemacspoof', value='true')
broken_profiles = [
profile for profile in VnicProfile.iterate(system)
if spoof_cp in profile.custom_properties and
profile.filter and profile.filter.name ==
'vdsm-no-mac-spoofing']
if broken_profiles:
if '--modify' in sys.argv:
print('clearing vdsm-no-mac-spoof filter from profiles:')
for profiles in broken_profiles:
print(profile.name)
profile.filter = None
else:
print('''ifacemacspoof custom property is no longer
supported by vdsm.
vnic profiles that depended on it for connectivity, e.g they
serve VMs with
in-guest bonds or vlans, must use an empty network filter instead.
profiles with ifacemacspoof and vdsm-no-mac-spoof filter:''')
for profiles in broken_profiles:
print(profile.name)
print('run again with --modify to remove the filter')
else:
print('no profile with ifacemacspoof and vdsm-no-mac-spoof
was found.')