File handle-anycast-ipv6-addresses.patch of Package salt.10902

From 22eeb09d7fbfa078906f4637b48b04f70cb059fc Mon Sep 17 00:00:00 2001
From: Bo Maryniuk <bo@suse.de>
Date: Thu, 29 Nov 2018 23:32:52 +0100
Subject: [PATCH] Handle anycast ipv6 addresses

Add IPv6 anycast UT
---
 salt/modules/network.py            | 12 ++++++++++++
 tests/unit/modules/test_network.py | 18 ++++++++++++++++++
 2 files changed, 30 insertions(+)

diff --git a/salt/modules/network.py b/salt/modules/network.py
index 60f586f6bc..7bf8cd336f 100644
--- a/salt/modules/network.py
+++ b/salt/modules/network.py
@@ -562,6 +562,18 @@ def _ip_route_linux():
                 'netmask': '',
                 'flags': 'U',
                 'interface': ip_interface})
+        elif comps[0] == "anycast":
+            ip_interface = ''
+            if comps[1] == "dev":
+                ip_interface = comps[2]
+
+            ret.append({
+                'addr_family': 'inet6',
+                'destination': comps[1],
+                'gateway': '::',
+                'netmask': '',
+                'flags': 'U',
+                'interface': ip_interface})
         else:
             address_mask = convert_cidr(comps[0])
             ip_interface = ''
diff --git a/tests/unit/modules/test_network.py b/tests/unit/modules/test_network.py
index 50fa629276..0db31ca54b 100644
--- a/tests/unit/modules/test_network.py
+++ b/tests/unit/modules/test_network.py
@@ -25,6 +25,7 @@ import salt.utils.path
 import salt.modules.network as network
 from salt.exceptions import CommandExecutionError
 from salt._compat import ipaddress
+from salt.ext import six
 
 
 @skipIf(NO_MOCK, NO_MOCK_REASON)
@@ -357,3 +358,20 @@ class NetworkTestCase(TestCase, LoaderModuleMockMixin):
 
             with patch.dict(network.__grains__, {'kernel': 'Linux'}):
                 self.assertListEqual(network.default_route('inet'), [])
+
+    ipv6_route_data = '''
+anycast ff00::/8 dev wlan0  table local  metric 256  pref medium
+unreachable default dev lo  table unspec  proto kernel  metric 4294967295  error -101 pref medium
+'''
+    @patch('salt.modules.network.__salt__', {'cmd.run': MagicMock(side_effect=['', ipv6_route_data.strip()])})
+    def test_ip_route_linux(self):
+        '''
+        test ip_route_linux
+
+        :return:
+        '''
+        out = network._ip_route_linux()[0]
+        for k, v in six.iteritems({'destination': 'ff00::/8', 'gateway': '::', 'netmask': '',
+                                   'addr_family': 'inet6', 'flags': 'U', 'interface': ''}):
+            assert k in out
+            assert out[k] == v
-- 
2.19.1


openSUSE Build Service is sponsored by