コード例 #1
0
ファイル: test_zones.py プロジェクト: wendy-king/x7_venv
    def test_service_capabilities(self):
        zm = zone_manager.ZoneManager()
        caps = zm.get_zone_capabilities(None)
        self.assertEquals(caps, {})

        zm.update_service_capabilities("svc1", "host1", dict(a=1, b=2))
        caps = zm.get_zone_capabilities(None)
        self.assertEquals(caps, dict(svc1_a=(1, 1), svc1_b=(2, 2)))

        zm.update_service_capabilities("svc1", "host1", dict(a=2, b=3))
        caps = zm.get_zone_capabilities(None)
        self.assertEquals(caps, dict(svc1_a=(2, 2), svc1_b=(3, 3)))

        zm.update_service_capabilities("svc1", "host2", dict(a=20, b=30))
        caps = zm.get_zone_capabilities(None)
        self.assertEquals(caps, dict(svc1_a=(2, 20), svc1_b=(3, 30)))

        zm.update_service_capabilities("svc10", "host1", dict(a=99, b=99))
        caps = zm.get_zone_capabilities(None)
        self.assertEquals(
            caps,
            dict(svc1_a=(2, 20),
                 svc1_b=(3, 30),
                 svc10_a=(99, 99),
                 svc10_b=(99, 99)))

        zm.update_service_capabilities("svc1", "host3", dict(c=5))
        caps = zm.get_zone_capabilities(None)
        self.assertEquals(
            caps,
            dict(svc1_a=(2, 20),
                 svc1_b=(3, 30),
                 svc1_c=(5, 5),
                 svc10_a=(99, 99),
                 svc10_b=(99, 99)))
コード例 #2
0
ファイル: test_zones.py プロジェクト: wendy-king/x7_venv
    def test_refresh_from_db_add_and_delete(self):
        zm = zone_manager.ZoneManager()
        zone_state = zone_manager.ZoneState()
        zone_state.update_credentials(
            FakeZone(id=1,
                     api_url='http://foo.com',
                     username='******',
                     password='******',
                     name='child',
                     weight_offset=2.0,
                     weight_scale=3.0))
        zm.zone_states[1] = zone_state

        self.mox.StubOutWithMock(db, 'zone_get_all')

        db.zone_get_all(mox.IgnoreArg()).AndReturn([
            FakeZone(id=2,
                     api_url='http://foo.com',
                     username='******',
                     password='******',
                     name='child',
                     weight_offset=2.0,
                     weight_scale=3.0),
        ])
        self.assertEquals(len(zm.zone_states), 1)

        self.mox.ReplayAll()
        zm._refresh_from_db(None)
        self.mox.VerifyAll()

        self.assertEquals(len(zm.zone_states), 1)
        self.assertEquals(zm.zone_states[2].username, 'user2')
コード例 #3
0
ファイル: test_zones.py プロジェクト: wendy-king/x7_venv
    def test_get_zone_capabilities_one_host(self):
        zm = zone_manager.ZoneManager()

        # Service capabilities recent
        zm.update_service_capabilities("svc1", "host1", dict(a=1, b=2))
        caps = zm.get_zone_capabilities(None)
        self.assertEquals(caps, dict(svc1_a=(1, 1), svc1_b=(2, 2)))
コード例 #4
0
 def __init__(self, scheduler_driver=None, *args, **kwargs):
     self.zone_manager = zone_manager.ZoneManager()
     if not scheduler_driver:
         scheduler_driver = FLAGS.scheduler_driver
     self.driver = utils.import_object(scheduler_driver)
     self.driver.set_zone_manager(self.zone_manager)
     super(SchedulerManager, self).__init__(*args, **kwargs)
コード例 #5
0
ファイル: test_zones.py プロジェクト: wendy-king/x7_venv
    def test_get_zone_capabilities_multiple_hosts(self):
        zm = zone_manager.ZoneManager()

        # Both host service capabilities recent
        zm.update_service_capabilities("svc1", "host1", dict(a=1, b=2))
        zm.update_service_capabilities("svc1", "host2", dict(a=3, b=4))
        caps = zm.get_zone_capabilities(None)
        self.assertEquals(caps, dict(svc1_a=(1, 3), svc1_b=(2, 4)))
コード例 #6
0
ファイル: test_zones.py プロジェクト: wendy-king/x7_venv
    def test_host_service_caps_stale_no_stale_service(self):
        zm = zone_manager.ZoneManager()

        # services just updated capabilities
        zm.update_service_capabilities("svc1", "host1", dict(a=1, b=2))
        zm.update_service_capabilities("svc2", "host1", dict(a=3, b=4))
        self.assertFalse(zm.host_service_caps_stale("host1", "svc1"))
        self.assertFalse(zm.host_service_caps_stale("host1", "svc2"))
コード例 #7
0
ファイル: test_zones.py プロジェクト: wendy-king/x7_venv
    def test_delete_expired_host_services_del_all_hosts(self):
        zm = zone_manager.ZoneManager()

        # Delete all services in a host
        zm.update_service_capabilities("svc2", "host1", dict(a=3, b=4))
        zm.update_service_capabilities("svc1", "host1", dict(a=1, b=2))
        stale_host_services = {"host1": ["svc1", "svc2"]}
        zm.delete_expired_host_services(stale_host_services)
        self.assertFalse("host1" in zm.service_states)
コード例 #8
0
ファイル: test_zones.py プロジェクト: wendy-king/x7_venv
    def test_ping(self):
        zm = zone_manager.ZoneManager()
        self.mox.StubOutWithMock(zm, '_refresh_from_db')
        self.mox.StubOutWithMock(zm, '_poll_zones')
        zm._refresh_from_db(mox.IgnoreArg())
        zm._poll_zones(mox.IgnoreArg())

        self.mox.ReplayAll()
        zm.ping(None)
        self.mox.VerifyAll()
コード例 #9
0
ファイル: test_zones.py プロジェクト: wendy-king/x7_venv
    def test_get_zone_capabilities_expired_host(self):
        zm = zone_manager.ZoneManager()
        expiry_time = (FLAGS.periodic_interval * 3) + 1

        # Service capabilities stale
        zm.update_service_capabilities("svc1", "host1", dict(a=1, b=2))
        time_future = utils.utcnow() + datetime.timedelta(seconds=expiry_time)
        utils.set_time_override(time_future)
        caps = zm.get_zone_capabilities(None)
        self.assertEquals(caps, {})
        utils.clear_time_override()
コード例 #10
0
ファイル: test_zones.py プロジェクト: wendy-king/x7_venv
    def test_get_zone_capabilities_multiple_service_per_host(self):
        zm = zone_manager.ZoneManager()

        # Multiple services per host
        zm.update_service_capabilities("svc1", "host1", dict(a=1, b=2))
        zm.update_service_capabilities("svc1", "host2", dict(a=3, b=4))
        zm.update_service_capabilities("svc2", "host1", dict(a=5, b=6))
        zm.update_service_capabilities("svc2", "host2", dict(a=7, b=8))
        caps = zm.get_zone_capabilities(None)
        self.assertEquals(
            caps,
            dict(svc1_a=(1, 3), svc1_b=(2, 4), svc2_a=(5, 7), svc2_b=(6, 8)))
コード例 #11
0
ファイル: test_zones.py プロジェクト: wendy-king/x7_venv
    def test_get_zone_capabilities_one_stale_host(self):
        zm = zone_manager.ZoneManager()
        expiry_time = (FLAGS.periodic_interval * 3) + 1

        # One host service capabilities become stale
        zm.update_service_capabilities("svc1", "host1", dict(a=1, b=2))
        zm.update_service_capabilities("svc1", "host2", dict(a=3, b=4))
        serv_caps = zm.service_states["host1"]["svc1"]
        serv_caps["timestamp"] = utils.utcnow() - \
                               datetime.timedelta(seconds=expiry_time)
        caps = zm.get_zone_capabilities(None)
        self.assertEquals(caps, dict(svc1_a=(3, 3), svc1_b=(4, 4)))
コード例 #12
0
ファイル: test_zones.py プロジェクト: wendy-king/x7_venv
    def test_host_service_caps_stale_one_stale_service(self):
        zm = zone_manager.ZoneManager()
        expiry_time = (FLAGS.periodic_interval * 3) + 1

        # One service became stale
        zm.update_service_capabilities("svc1", "host1", dict(a=1, b=2))
        zm.update_service_capabilities("svc2", "host1", dict(a=3, b=4))
        caps = zm.service_states["host1"]["svc1"]
        caps["timestamp"] = utils.utcnow() - \
                               datetime.timedelta(seconds=expiry_time)
        self.assertTrue(zm.host_service_caps_stale("host1", "svc1"))
        self.assertFalse(zm.host_service_caps_stale("host1", "svc2"))
コード例 #13
0
ファイル: test_zones.py プロジェクト: wendy-king/x7_venv
    def test_host_service_caps_stale_all_stale_services(self):
        zm = zone_manager.ZoneManager()
        expiry_time = (FLAGS.periodic_interval * 3) + 1

        # Both services became stale
        zm.update_service_capabilities("svc1", "host1", dict(a=1, b=2))
        zm.update_service_capabilities("svc2", "host1", dict(a=3, b=4))
        time_future = utils.utcnow() + datetime.timedelta(seconds=expiry_time)
        utils.set_time_override(time_future)
        self.assertTrue(zm.host_service_caps_stale("host1", "svc1"))
        self.assertTrue(zm.host_service_caps_stale("host1", "svc2"))
        utils.clear_time_override()
コード例 #14
0
ファイル: test_zones.py プロジェクト: wendy-king/x7_venv
    def test_get_zone_capabilities_all_stale_host_services(self):
        zm = zone_manager.ZoneManager()
        expiry_time = (FLAGS.periodic_interval * 3) + 1

        # All the host services  become stale
        zm.update_service_capabilities("svc1", "host1", dict(a=1, b=2))
        zm.update_service_capabilities("svc1", "host2", dict(a=3, b=4))
        zm.update_service_capabilities("svc2", "host1", dict(a=5, b=6))
        zm.update_service_capabilities("svc2", "host2", dict(a=7, b=8))
        time_future = utils.utcnow() + datetime.timedelta(seconds=expiry_time)
        utils.set_time_override(time_future)
        caps = zm.get_zone_capabilities(None)
        self.assertEquals(caps, {})
コード例 #15
0
ファイル: test_zones.py プロジェクト: wendy-king/x7_venv
    def test_get_zone_capabilities_one_stale_service_per_host(self):
        zm = zone_manager.ZoneManager()
        expiry_time = (FLAGS.periodic_interval * 3) + 1

        # Two host services among four become stale
        zm.update_service_capabilities("svc1", "host1", dict(a=1, b=2))
        zm.update_service_capabilities("svc1", "host2", dict(a=3, b=4))
        zm.update_service_capabilities("svc2", "host1", dict(a=5, b=6))
        zm.update_service_capabilities("svc2", "host2", dict(a=7, b=8))
        serv_caps_1 = zm.service_states["host1"]["svc2"]
        serv_caps_1["timestamp"] = utils.utcnow() - \
                               datetime.timedelta(seconds=expiry_time)
        serv_caps_2 = zm.service_states["host2"]["svc1"]
        serv_caps_2["timestamp"] = utils.utcnow() - \
                               datetime.timedelta(seconds=expiry_time)
        caps = zm.get_zone_capabilities(None)
        self.assertEquals(
            caps,
            dict(svc1_a=(1, 1), svc1_b=(2, 2), svc2_a=(7, 7), svc2_b=(8, 8)))
コード例 #16
0
ファイル: test_zones.py プロジェクト: wendy-king/x7_venv
    def test_refresh_from_db_new(self):
        zm = zone_manager.ZoneManager()

        self.mox.StubOutWithMock(db, 'zone_get_all')
        db.zone_get_all(mox.IgnoreArg()).AndReturn([
            FakeZone(id=1,
                     api_url='http://foo.com',
                     username='******',
                     password='******',
                     name='child',
                     weight_offset=0.0,
                     weight_scale=1.0),
        ])

        self.assertEquals(len(zm.zone_states), 0)

        self.mox.ReplayAll()
        zm._refresh_from_db(None)
        self.mox.VerifyAll()

        self.assertEquals(len(zm.zone_states), 1)
        self.assertEquals(zm.zone_states[1].username, 'user1')