Пример #1
0
    def test_find_peer_trunk(self):
        bridger = net_br.NetworkBridgerTA(self.adpt, self.host_uuid)

        # No failover, shouldn't have a peer
        nbs = pvm_net.NetBridge.wrap(self.mgr_nbr_resp)
        resp = bridger._find_peer_trunk(nbs[0], nbs[0].seas[0].primary_adpt)
        self.assertIsNone(resp)

        # Failover, should have a peer
        nbs = pvm_net.NetBridge.wrap(self.mgr_nbr_fo_resp)
        resp = bridger._find_peer_trunk(nbs[0], nbs[0].seas[0].primary_adpt)
        self.assertEqual(nbs[0].seas[1].primary_adpt, resp)
Пример #2
0
    def test_find_available_trunks_load_balance(self):
        """Tests finding the trunk with load balancing enabled."""
        # Set load balancing to True
        nb = pvm_net.NetBridge.wrap(self.mgr_nbr_fo_resp)[0]
        nb.load_balance = True
        bridger = net_br.NetworkBridgerTA(self.adpt, self.host_uuid)

        # Even though there is a free VEA, it should come back as None.  This
        # is because there is only one free VEA, but we need to balance across
        # two.
        trunks = bridger._find_available_trunks(nb)
        self.assertIsNone(trunks)
Пример #3
0
    def test_remove_vlan_from_nb_lb(self):
        """Validates a load balance remove leaves an additional adpt."""
        # Mock Data
        net_bridge = pvm_net.NetBridge.wrap(self.mgr_nbr_resp)[0]
        net_bridge.load_balance = True

        # Run the remove
        bridger = net_br.NetworkBridgerTA(self.adpt, self.host_uuid)
        bridger._remove_vlan_from_nb(net_bridge, 1000)

        # Validate that we left the trunk but no new additional VLANs
        self.assertEqual(1, len(net_bridge.seas[0].addl_adpts))
        self.assertEqual(0, len(net_bridge.seas[0].addl_adpts[0].tagged_vlans))
Пример #4
0
    def test_reassign_arbitrary_vid(self):
        nb = self._setup_reassign_arbitrary_vid()

        # Make this function return itself.
        def return_self(*kargs, **kwargs):
            nb_wrap = pvm_net.NetBridge.wrap(kargs[0].entry)
            self.assertEqual(4093, nb_wrap.seas[0].addl_adpts[0].pvid)

            return kargs[0].entry

        self.adpt.update_by_path.side_effect = return_self

        bridger = net_br.NetworkBridgerTA(self.adpt, self.host_uuid)
        bridger._reassign_arbitrary_vid(4094, 4093, nb)

        # Make sure the mocks were called.  Only one update needed.
        self.assertEqual(1, self.adpt.update_by_path.call_count)
Пример #5
0
    def test_find_available_min_trunk(self, mock_trunk_list):
        nb = mock.MagicMock()

        trunk_addl = mock.MagicMock()
        trunk_addl.tagged_vlans = ['a', 'b', 'c']
        trunk_addl2 = mock.MagicMock()
        trunk_addl2.tagged_vlans = ['e', 'f']
        trunk_addl3 = mock.MagicMock()
        trunk_addl3.tagged_vlans = ['g', 'h', 'i']

        sea = mock.MagicMock()
        sea.addl_adpts = [trunk_addl, trunk_addl2, trunk_addl3]
        nb.seas = [sea]

        bridger = net_br.NetworkBridgerTA(self.adpt, self.host_uuid)
        bridger._find_available_trunks(nb)

        # Validate the trunk list is called with the second additional adapter
        mock_trunk_list.assert_called_with(nb, trunk_addl2)
Пример #6
0
 def test_find_available_trunks(self):
     nb = pvm_net.NetBridge.wrap(self.mgr_nbr_resp)[0]
     bridger = net_br.NetworkBridgerTA(self.adpt, self.host_uuid)
     trunks = bridger._find_available_trunks(nb)
     self.assertIsNotNone(trunks)