示例#1
0
    def test_get_vlan_list(self, mock_symlink, mock_os_path, mock_oneline,
                           mock_os_listdir):
        mock_subint = MagicMock()
        mock_subint.return_value = ['bond0.11', 'bond0.20', 'bond0.30']
        self.iface.get_sub_interfaces = mock_subint
        # bridgemember is trunk port
        values = {
            '/sys/class/net/bond0/brport': True,
            '/sys/class/net/bond0.11/brport': True,
            '/sys/class/net/bond0.20/brport': False,
            '/sys/class/net/bond0.30/brport': True,
        }
        values2 = {
            '/sys/class/net/bond0/brport/state': '3',
            '/sys/class/net/bond0/brport/bridge/bridge/root_port': 'aaa',
            '/sys/class/net/bond0/brport/port_id': 'aaa',
            '/sys/class/net/bond0.11/brport/state': '0',
            '/sys/class/net/bond0.11/brport/bridge/bridge/stp_state': '1',
            '/sys/class/net/bond0.11/brport/bridge/bridge/root_port': 'aaa',
            '/sys/class/net/bond0.11/brport/port_id': 'aaa',
            '/sys/class/net/bond0.30/brport/state': '0',
            '/sys/class/net/bond0.30/brport/bridge/bridge/stp_state': '0'
        }
        values3 = {
            '/sys/class/net/bond0/brport/bridge': 'br10',
            '/sys/class/net/bond0.11/brport/bridge': 'br11',
            '/sys/class/net/bond0.20/brport/bridge': None,
            '/sys/class/net/bond0.30/brport/bridge': 'br30'
        }
        values4 = {
            '/sys/class/net/br30/brif': ['bond0.30'],
            '/sys/class/net/br11/brif': ['bond0.11'],
            '/sys/class/net/br10/brif': ['bond0']
        }

        mock_os_listdir.side_effect = mod_args_generator(values4)
        mock_symlink.side_effect = mod_args_generator(values3)
        mock_oneline.side_effect = mod_args_generator(values2)
        mock_os_path.side_effect = mod_args_generator(values)
        br10 = linux_bridge.Bridge('br10')
        br11 = linux_bridge.Bridge('br11')
        br30 = linux_bridge.Bridge('br30')
        linux_bridge.BRIDGE_CACHE['br10'] = br10
        linux_bridge.BRIDGE_CACHE['br11'] = br11
        linux_bridge.BRIDGE_CACHE['br30'] = br30
        vlanlist = self.iface.vlan_list
        assert_equals(vlanlist, {
            'br30': ['30'],
            'br10': ['0'],
            'br11': ['11']
        })
 def test_state_trunk_port(self, mock_symlink, mock_os_path, mock_oneline):
     mock_subint = MagicMock()
     mock_subint.return_value = ['eth1.11', 'eth1.20', 'eth1.30']
     self.iface.get_sub_interfaces = mock_subint
     # bridgemember is trunk port
     values = {
         '/sys/class/net/eth1/brport/bridge/bridge/stp_state': True,
         '/sys/class/net/eth1.11/brport/bridge/bridge/stp_state': True,
         '/sys/class/net/eth1.20/brport/bridge/bridge/stp_state': True,
         '/sys/class/net/eth1.30/brport/bridge/bridge/stp_state': True,
         '/sys/class/net/eth1/brport': True,
         '/sys/class/net/eth1.11/brport': True,
         '/sys/class/net/eth1.20/brport': False,
         '/sys/class/net/eth1.30/brport': True,
     }
     values2 = {
         '/sys/class/net/eth1/brport/state': '3',
         '/sys/class/net/eth1/brport/bridge/bridge/root_port': 'aaa',
         '/sys/class/net/eth1/brport/bridge/bridge/stp_state': '1',
         '/sys/class/net/eth1/brport/port_id': 'aaa',
         '/sys/class/net/eth1.11/brport/state': '0',
         '/sys/class/net/eth1.11/brport/bridge/bridge/stp_state': '1',
         '/sys/class/net/eth1.11/brport/bridge/bridge/root_port': 'aaa',
         '/sys/class/net/eth1.11/brport/port_id': 'aaa',
         '/sys/class/net/eth1.30/brport/state': '0',
         '/sys/class/net/eth1.30/brport/bridge/bridge/stp_state': '0'
     }
     values3 = {
         '/sys/class/net/eth1/brport/bridge': 'br10',
         '/sys/class/net/eth1.11/brport/bridge': 'br11',
         '/sys/class/net/eth1.20/brport/bridge': None,
         '/sys/class/net/eth1.30/brport/bridge': 'br30'
     }
     mock_symlink.side_effect = mod_args_generator(values3)
     mock_oneline.side_effect = mod_args_generator(values2)
     mock_os_path.side_effect = mod_args_generator(values)
     br10 = linux_bridge.Bridge('br10')
     br11 = linux_bridge.Bridge('br11')
     br30 = linux_bridge.Bridge('br30')
     linux_bridge.BRIDGE_CACHE['br10'] = br10
     linux_bridge.BRIDGE_CACHE['br11'] = br11
     linux_bridge.BRIDGE_CACHE['br30'] = br30
     assert_equals(
         self.stp.state, {
             'disabled': [br11],
             'blocking': [],
             'forwarding': [br10],
             'root': [br10],
             'stp_disabled': [br30],
             'intransition': []
         })
    def test_trunk_summary(self, mock_symlink, mock_os_path, mock_oneline,
                           mock_os_listdir, mock_is_trunk):
        mock_is_trunk.return_value = True
        mock_subint = mock.MagicMock()
        mock_subint.return_value = ['eth22.11', 'eth22.20', 'eth22.30']
        self.piface.iface = linux_bridge.BridgeMember('eth22')
        self.piface.iface.get_sub_interfaces = mock_subint
        # bridgemember is trunk port
        values = {
            '/sys/class/net/eth22/brport': True,
            '/sys/class/net/eth22.11/brport': True,
            '/sys/class/net/eth22.20/brport': False,
            '/sys/class/net/eth22.30/brport': True,
        }
        values2 = {
            '/sys/class/net/eth22/brport/state': '3',
            '/sys/class/net/eth22/brport/bridge/bridge/root_port': 'aaa',
            '/sys/class/net/eth22/brport/port_id': 'aaa',
            '/sys/class/net/eth22.11/brport/state': '0',
            '/sys/class/net/eth22.11/brport/bridge/bridge/stp_state': '1',
            '/sys/class/net/eth22.11/brport/bridge/bridge/root_port': 'aaa',
            '/sys/class/net/eth22.11/brport/port_id': 'aaa',
            '/sys/class/net/eth22.30/brport/state': '0',
            '/sys/class/net/eth22.30/brport/bridge/bridge/stp_state': '0'
        }
        values3 = {
            '/sys/class/net/eth22/brport/bridge': 'br10',
            '/sys/class/net/eth22.11/brport/bridge': 'br11',
            '/sys/class/net/eth22.20/brport/bridge': None,
            '/sys/class/net/eth22.30/brport/bridge': 'br30'
        }
        values4 = {
            '/sys/class/net/br30/brif': ['eth22.30'],
            '/sys/class/net/br11/brif': ['eth22.11'],
            '/sys/class/net/br10/brif': ['eth22']
        }

        mock_os_listdir.side_effect = mod_args_generator(values4)
        mock_symlink.side_effect = mod_args_generator(values3)
        mock_oneline.side_effect = mod_args_generator(values2)
        mock_os_path.side_effect = mod_args_generator(values)
        br10 = linux_bridge.Bridge('br10')
        br11 = linux_bridge.Bridge('br11')
        br30 = linux_bridge.Bridge('br30')
        linux_bridge.BRIDGE_CACHE['br10'] = br10
        linux_bridge.BRIDGE_CACHE['br11'] = br11
        linux_bridge.BRIDGE_CACHE['br30'] = br30
        _output = self.piface.trunk_summary()
        assert_equals(_output[1], 'tagged: br11(11), br30(30)')
        assert_equals(_output[2], 'untagged: br10')
 def test_state_access_port(self, mock_symlink, mock_os_path, mock_oneline):
     mock_subint = MagicMock()
     self.iface.get_sub_interfaces = mock_subint
     # bridgemember is access port
     mock_subint = []
     mock_symlink.return_value = 'br10'
     values = {
         '/sys/class/net/eth1/brport': True,
         '/sys/class/net/eth1/brport/bridge/bridge/stp_state': '1'
     }
     values2 = {
         '/sys/class/net/eth1/brport/state': '3',
         '/sys/class/net/eth1/brport/bridge/bridge/root_port': 'aaa',
         '/sys/class/net/eth1/brport/bridge/bridge/stp_state': '1',
         '/sys/class/net/eth1/brport/port_id': 'aaa'
     }
     mock_oneline.side_effect = mod_args_generator(values2)
     mock_os_path.side_effect = mod_args_generator(values)
     briface = linux_bridge.Bridge('br10')
     linux_bridge.BRIDGE_CACHE['br10'] = briface
     assert_equals(
         self.stp.state, {
             'disabled': [],
             'blocking': [],
             'forwarding': [briface],
             'root': [briface],
             'intransition': [],
             'stp_disabled': []
         })
示例#5
0
 def test_get_bridge_masters(self, mock_symlink, mock_os_path,
                             mock_oneline):
     mock_subint = MagicMock()
     mock_subint.return_value = ['bond0.11', 'bond0.20', 'bond0.30']
     self.iface.get_sub_interfaces = mock_subint
     # bridgemember is trunk port
     values = {
         '/sys/class/net/bond0/brport': True,
         '/sys/class/net/bond0.11/brport': True,
         '/sys/class/net/bond0.20/brport': False,
         '/sys/class/net/bond0.30/brport': True,
     }
     values2 = {
         '/sys/class/net/bond0/brport/state': '3',
         '/sys/class/net/bond0/brport/bridge/bridge/root_port': 'aaa',
         '/sys/class/net/bond0/brport/port_id': 'aaa',
         '/sys/class/net/bond0.11/brport/state': '0',
         '/sys/class/net/bond0.11/brport/bridge/bridge/stp_state': '1',
         '/sys/class/net/bond0.11/brport/bridge/bridge/root_port': 'aaa',
         '/sys/class/net/bond0.11/brport/port_id': 'aaa',
         '/sys/class/net/bond0.30/brport/state': '0',
         '/sys/class/net/bond0.30/brport/bridge/bridge/stp_state': '0'
     }
     values3 = {
         '/sys/class/net/bond0/brport/bridge': 'br10',
         '/sys/class/net/bond0.11/brport/bridge': 'br11',
         '/sys/class/net/bond0.20/brport/bridge': None,
         '/sys/class/net/bond0.30/brport/bridge': 'br30'
     }
     mock_symlink.side_effect = mod_args_generator(values3)
     mock_oneline.side_effect = mod_args_generator(values2)
     mock_os_path.side_effect = mod_args_generator(values)
     br10 = linux_bridge.Bridge('br10')
     br11 = linux_bridge.Bridge('br11')
     br30 = linux_bridge.Bridge('br30')
     linux_bridge.BRIDGE_CACHE['br10'] = br10
     linux_bridge.BRIDGE_CACHE['br11'] = br11
     linux_bridge.BRIDGE_CACHE['br30'] = br30
     assert_equals(sorted(list(self.iface.bridge_masters.keys())),
                   ['br10', 'br11', 'br30'])
 def test_access_summary(self, mock_symlink, mock_os_path, mock_oneline):
     self.piface.iface = linux_bridge.BridgeMember('eth22')
     mock_subint = mock.MagicMock()
     mock_subint.return_value = []
     self.piface.iface.get_sub_interfaces = mock_subint
     # bridgemember is trunk port
     values = {
         '/sys/class/net/eth22/brport': True,
     }
     values2 = {
         '/sys/class/net/eth22/brport/state': '3',
     }
     values3 = {
         '/sys/class/net/eth22/brport/bridge': 'br10',
     }
     mock_symlink.side_effect = mod_args_generator(values3)
     mock_oneline.side_effect = mod_args_generator(values2)
     mock_os_path.side_effect = mod_args_generator(values)
     br10 = linux_bridge.Bridge('br10')
     linux_bridge.BRIDGE_CACHE['br10'] = br10
     _output = self.piface.access_summary()
     # Untagged: br0
     assert_equals(_output, ['untagged: br10'])
 def test_bridgemem_details(self, mock_symlink, mock_os_path, mock_oneline,
                            mock_os_listdir):
     mock_subint = mock.MagicMock()
     mock_subint.return_value = [
         'eth22.11', 'eth22.20', 'eth22.40', 'eth22.30'
     ]
     self.piface.iface.get_sub_interfaces = mock_subint
     values22 = {
         '/sys/class/net/br10/brif': ['eth22', 'eth33', 'eth44'],
         '/sys/class/net/br30/brif': ['eth22.30', 'eth1.30', 'eth2'],
         '/sys/class/net/br11/brif': ['eth22.11', 'eth1.11', 'eth4'],
         '/sys/class/net/br40/brif': ['eth22.40', 'eth1.40', 'eth12']
     }
     mock_os_listdir.side_effect = mod_args_generator(values22)
     self.piface.iface.get_sub_interfaces = mock_subint
     # bridgemember is trunk port
     values = {
         '/sys/class/net/eth22/brport/bridge/bridge/stp_state': True,
         '/sys/class/net/eth22.11/brport/bridge/bridge/stp_state': True,
         '/sys/class/net/eth22.30/brport/bridge/bridge/stp_state': True,
         '/sys/class/net/eth22.40/brport/bridge/bridge/stp_state': True,
         '/sys/class/net/eth22/brport': True,
         '/sys/class/net/eth22.11/brport': True,
         '/sys/class/net/eth22.20/brport': False,
         '/sys/class/net/eth22.30/brport': True,
         '/sys/class/net/eth22.40/brport': True,
     }
     values2 = {
         '/sys/class/net/eth22/brport/state': '3',
         '/sys/class/net/eth22/brport/bridge/bridge/root_port': 'aaa',
         '/sys/class/net/eth22/brport/port_id': 'aaa',
         '/sys/class/net/eth22/brport/bridge/bridge/stp_state': '1',
         '/sys/class/net/eth22.11/brport/state': '4',
         '/sys/class/net/eth22.11/brport/bridge/bridge/stp_state': '1',
         '/sys/class/net/eth22.11/brport/bridge/bridge/root_port': 'aaa',
         '/sys/class/net/eth22.11/brport/port_id': '12',
         '/sys/class/net/eth22.30/brport/state': '0',
         '/sys/class/net/eth22.30/brport/bridge/bridge/stp_state': '0',
         '/sys/class/net/eth22.40/brport/bridge/bridge/root_port': 'aaa',
         '/sys/class/net/eth22.40/brport/state': '3',
         '/sys/class/net/eth22.40/brport/port_id': '10',
         '/sys/class/net/eth22.40/brport/bridge/bridge/stp_state': '1'
     }
     values3 = {
         '/sys/class/net/eth22/brport/bridge': 'br10',
         '/sys/class/net/eth22.11/brport/bridge': 'br11',
         '/sys/class/net/eth22.20/brport/bridge': None,
         '/sys/class/net/eth22.30/brport/bridge': 'br30',
         '/sys/class/net/eth22.40/brport/bridge': 'br40'
     }
     mock_symlink.side_effect = mod_args_generator(values3)
     mock_oneline.side_effect = mod_args_generator(values2)
     mock_os_path.side_effect = mod_args_generator(values)
     br10 = linux_bridge.Bridge('br10')
     br11 = linux_bridge.Bridge('br11')
     br30 = linux_bridge.Bridge('br30')
     linux_bridge.BRIDGE_CACHE['br10'] = br10
     linux_bridge.BRIDGE_CACHE['br11'] = br11
     linux_bridge.BRIDGE_CACHE['br30'] = br30
     _output = self.piface.bridgemem_details()
     _outputtable = _output.split('\n')
     assert_equals(_outputtable[0], 'vlans in Root state')
     assert_equals(_outputtable[2], 'br10')
     assert_equals(_outputtable[4], 'vlans in Forwarding state')
     assert_equals(_outputtable[6], 'br10, br40(40)')
     assert_equals(_outputtable[8], 'vlans in Blocking state')
     assert_equals(_outputtable[10], 'br11(11)')
     assert_equals(_outputtable[12], 'vlans in Stp Disabled state')
     assert_equals(_outputtable[14], 'br30(30)')
 def setup(self):
     iface = linux_bridge.Bridge('br0')
     self.piface = print_bridge.PrintBridge(iface)
 def setup(self):
     """ setup function """
     self.iface = linux_bridge.Bridge('br0')
 def setup(self):
     br0 = linux_bridge.Bridge('br0')
     self.stp = linux_bridge.KernelStpBridge(br0)