Skip to content

format: support newer versions of netifaces

Nicolas Wavrant requested to merge nicolas-fix-format into master

fix the following crash in command slapos node boot in slapos package version "1.5.2+1.0.125+3-1" :

# slapos node boot
[BOOT] Checking if 'lo' has IPv6...
[BOOT] Invoking ipv6 ping to slap.vifib.com...
[BOOT] IPv6 network reachable...
[BOOT] Invoking slapos node format...
2019-11-20 09:43:52 slapos[5511] WARNING Creating new computer data with id 'COMP-3121'
2019-11-20 09:43:52 slapos[5511] INFO Adding 10 new partitions
2019-11-20 09:43:52 slapos[5511] INFO Updating computer
2019-11-20 09:43:52 slapos[5511] ERROR u'ffff:ffff:ffff:ffff:ffff:ffff::/96' is not a valid IPv6 address string!
Traceback (most recent call last):
  File "/opt/slapos/eggs/slapos.core-1.5.2-py2.7.egg/slapos/cli/entry.py", line 300, in run_subcommand
    result = cmd.run(parsed_args)
  File "/opt/slapos/eggs/slapos.core-1.5.2-py2.7.egg/slapos/cli/command.py", line 50, in run
    return self.take_action(parsed_args)
  File "/opt/slapos/eggs/slapos.core-1.5.2-py2.7.egg/slapos/cli/format.py", line 128, in take_action
    do_format(conf=conf)
  File "/opt/slapos/eggs/slapos.core-1.5.2-py2.7.egg/slapos/format.py", line 1401, in do_format
    use_unique_local_address_block=conf.use_unique_local_address_block)
  File "/opt/slapos/eggs/slapos.core-1.5.2-py2.7.egg/slapos/format.py", line 665, in format
    partition.address_list.append(self.interface.addIPv6Address())
  File "/opt/slapos/eggs/slapos.core-1.5.2-py2.7.egg/slapos/format.py", line 1227, in addIPv6Address
    if self._addSystemAddress(addr, netmask, tap=tap):
  File "/opt/slapos/eggs/slapos.core-1.5.2-py2.7.egg/slapos/format.py", line 1058, in _addSystemAddress
    address_string = '%s/%s' % (address, netmaskToPrefixIPv6(netmask))
  File "/opt/slapos/eggs/slapos.core-1.5.2-py2.7.egg/slapos/format.py", line 179, in netmaskToPrefixIPv6
    netaddr.strategy.ipv6.str_to_int(netmask)]
  File "/opt/slapos/eggs/netaddr-0.7.19-py2.7.egg/netaddr/strategy/ipv6.py", line 142, in str_to_int
    raise AddrFormatError('%r is not a valid IPv6 address string!' % addr)
AddrFormatError: u'ffff:ffff:ffff:ffff:ffff:ffff::/96' is not a valid IPv6 address string!
[BOOT] [ERROR] Fail to format, try again in 15 seconds...
[BOOT] Invoking slapos node format...

Merge request reports