def test_vrouter_running(self):
     vr1 = test_utils.create_test_virtual_router('vrouter1')
     vr2 = test_utils.create_test_virtual_router('vrouter2')
     self.scheduler.get_analytics_client = mock.MagicMock()
     def query_uve_side_effect(query_str):
         if 'NodeStatus' in query_str:
             return AGENTS_STATUS
         elif 'VrouterAgent' in query_str:
             return VROUTERS_MODE
         else:
             return {}
     self.scheduler.query_uve = query_uve_side_effect
     self.assertTrue(VirtualRouterSM.get('vrouter1').agent_state)
     self.assertTrue(VirtualRouterSM.get('vrouter2').agent_state)
Пример #2
0
    def test_vrouter_running(self):
        vr1 = test_utils.create_test_virtual_router('vrouter1')
        vr2 = test_utils.create_test_virtual_router('vrouter2')
        self.scheduler.get_analytics_client = mock.MagicMock()

        def query_uve_side_effect(query_str):
            if 'NodeStatus' in query_str:
                return AGENTS_STATUS
            elif 'VrouterAgent' in query_str:
                return VROUTERS_MODE
            else:
                return {}

        self.scheduler.query_uve = query_uve_side_effect
        self.assertTrue(VirtualRouterSM.get('vrouter1').agent_state)
        self.assertTrue(VirtualRouterSM.get('vrouter2').agent_state)
Пример #3
0
    def test_get_candidates(self):
        test_utils.create_test_project('fake-domain:fake-project')
        test_utils.create_test_virtual_network('fake-domain:fake-project:vn1')
        test_utils.create_test_virtual_network('fake-domain:fake-project:vn2')
        test_utils.create_test_security_group(
            'fake-domain:fake-project:default')
        st = test_utils.create_test_st(name='test-template',
                                       virt_type='network-namespace',
                                       intf_list=[['right', True],
                                                  ['left', True]])
        si = test_utils.create_test_si(name='test-instance',
                                       count=2,
                                       intf_list=['vn1', 'vn2'])

        # test anti-affinity
        vr1 = test_utils.create_test_virtual_router('vr-candidate1')
        vr2 = test_utils.create_test_virtual_router('vr-candidate2')
        vm1 = test_utils.create_test_virtual_machine('vm1')
        vm2 = test_utils.create_test_virtual_machine('vm2')
        si.virtual_machines.add(vm1.uuid)
        si.virtual_machines.add(vm2.uuid)
        vm1.virtual_router = vr1.uuid
        candidates = self.scheduler._get_candidates(si, vm2)
        self.assertEqual(candidates, [vr2.uuid])

        # test same vrouter returned if already scheduled
        candidates = self.scheduler._get_candidates(si, vm1)
        self.assertEqual(len(candidates), 1)
        self.assertEqual(candidates, [vr1.uuid])

        # test all candidates returned
        vm1.virtual_router = None
        candidates = self.scheduler._get_candidates(si, vm1)
        self.assertEqual(len(candidates), 2)

        # test non running candidates returned
        vr1.agent_state = False
        candidates = self.scheduler._get_candidates(si, vm1)
        self.assertEqual(len(candidates), 1)
        self.assertEqual(candidates, [vr2.uuid])

        # test no candidates
        vr1.agent_state = False
        vr2.agent_state = False
        candidates = self.scheduler._get_candidates(si, vm1)
        self.assertEqual(len(candidates), 0)
    def test_get_candidates(self):
        test_utils.create_test_project('fake-domain:fake-project')
        test_utils.create_test_virtual_network('fake-domain:fake-project:vn1')
        test_utils.create_test_virtual_network('fake-domain:fake-project:vn2')
        test_utils.create_test_security_group('fake-domain:fake-project:default')
        st = test_utils.create_test_st(name='test-template',
            virt_type='network-namespace',
            intf_list=[['right', True], ['left', True]])
        si = test_utils.create_test_si(name='test-instance', count=2,
            intf_list=['vn1', 'vn2'])

        # test anti-affinity
        vr1 = test_utils.create_test_virtual_router('vr-candidate1')
        vr2 = test_utils.create_test_virtual_router('vr-candidate2')
        vm1 = test_utils.create_test_virtual_machine('vm1')
        vm2 = test_utils.create_test_virtual_machine('vm2')
        si.virtual_machines.add(vm1.uuid)
        si.virtual_machines.add(vm2.uuid)
        vm1.virtual_router = vr1.uuid
        candidates = self.scheduler._get_candidates(si, vm2)
        self.assertEqual(candidates, [vr2.uuid])

        # test same vrouter returned if already scheduled
        candidates = self.scheduler._get_candidates(si, vm1)
        self.assertEqual(len(candidates), 1) 
        self.assertEqual(candidates, [vr1.uuid])

        # test all candidates returned
        vm1.virtual_router = None
        candidates = self.scheduler._get_candidates(si, vm1)
        self.assertEqual(len(candidates), 2)

        # test non running candidates returned
        vr1.agent_state = False
        candidates = self.scheduler._get_candidates(si, vm1)
        self.assertEqual(len(candidates), 1)
        self.assertEqual(candidates, [vr2.uuid])

        # test no candidates
        vr1.agent_state = False
        vr2.agent_state = False
        candidates = self.scheduler._get_candidates(si, vm1)
        self.assertEqual(len(candidates), 0)
    def test_get_candidates(self):
        test_utils.create_test_project("fake-domain:fake-project")
        test_utils.create_test_virtual_network("fake-domain:fake-project:vn1")
        test_utils.create_test_virtual_network("fake-domain:fake-project:vn2")
        test_utils.create_test_security_group("fake-domain:fake-project:default")
        st = test_utils.create_test_st(
            name="test-template", virt_type="network-namespace", intf_list=[["right", True], ["left", True]]
        )
        si = test_utils.create_test_si(name="test-instance", count=2, intf_list=["vn1", "vn2"])

        # test anti-affinity
        vr1 = test_utils.create_test_virtual_router("vr-candidate1")
        vr2 = test_utils.create_test_virtual_router("vr-candidate2")
        vm1 = test_utils.create_test_virtual_machine("vm1")
        vm2 = test_utils.create_test_virtual_machine("vm2")
        si.virtual_machines.add(vm1.uuid)
        si.virtual_machines.add(vm2.uuid)
        vm1.virtual_router = vr1.uuid
        candidates = self.scheduler._get_candidates(si, vm2)
        self.assertEqual(candidates, [vr2.uuid])

        # test same vrouter returned if already scheduled
        candidates = self.scheduler._get_candidates(si, vm1)
        self.assertEqual(len(candidates), 1)
        self.assertEqual(candidates, [vr1.uuid])

        # test all candidates returned
        vm1.virtual_router = None
        candidates = self.scheduler._get_candidates(si, vm1)
        self.assertEqual(len(candidates), 2)

        # test non running candidates returned
        vr1.agent_state = False
        candidates = self.scheduler._get_candidates(si, vm1)
        self.assertEqual(len(candidates), 1)
        self.assertEqual(candidates, [vr2.uuid])

        # test no candidates
        vr1.agent_state = False
        vr2.agent_state = False
        candidates = self.scheduler._get_candidates(si, vm1)
        self.assertEqual(len(candidates), 0)