• Nicolas Wavrant's avatar
    format: support newer versions of netifaces · f2798c25
    Nicolas Wavrant authored
    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...
    ```
    
    /reviewed-on !157
    f2798c25
format.py 57.2 KB