コード例 #1
0
 def make_startable_RackHTTPService(self, *args, **kwargs):
     service = http.RackHTTPService(*args, **kwargs)
     service._orig_tryUpdate = service._tryUpdate
     self.patch(service,
                "_tryUpdate").return_value = always_succeed_with(None)
     service.call = (service._tryUpdate, tuple(), {})
     return service
コード例 #2
0
ファイル: plugin.py プロジェクト: shawnallen85/maas
    def _makeRackHTTPService(self, resource_root, rpc_service):
        from provisioningserver.rackdservices import http

        http_service = http.RackHTTPService(resource_root, rpc_service,
                                            reactor)
        http_service.setName("http")
        return http_service
コード例 #3
0
    def test_getConfiguration_updates_interval_to_high(self):
        rpc_service, protocol = yield prepareRegion(self)
        service = http.RackHTTPService(self.make_dir(), rpc_service, reactor)
        yield service.startService()
        self.addCleanup((yield service.stopService))
        yield service._getConfiguration()

        self.assertThat(service.step, Equals(service.INTERVAL_HIGH))
        self.assertThat(service._loop.interval, Equals(service.INTERVAL_HIGH))
コード例 #4
0
    def test_genRegionIps_groups_by_region(self):
        mock_rpc = Mock()
        mock_rpc.connections = {}
        for _ in range(3):
            region_name = factory.make_name("region")
            for _ in range(3):
                pid = random.randint(0, 10000)
                eventloop = "%s:pid=%s" % (region_name, pid)
                ip = factory.make_ip_address()
                mock_conn = Mock()
                mock_conn.address = (ip, random.randint(5240, 5250))
                mock_rpc.connections[eventloop] = mock_conn

        service = http.RackHTTPService(self.make_dir(), mock_rpc, reactor)
        region_ips = list(service._genRegionIps())
        self.assertEqual(3, len(region_ips))
コード例 #5
0
    def test_genRegionIps_formats_ipv6(self):
        mock_rpc = Mock()
        mock_rpc.connections = {}
        ip_addresses = set()
        for _ in range(3):
            region_name = factory.make_name("region")
            pid = random.randint(0, 10000)
            eventloop = "%s:pid=%s" % (region_name, pid)
            ip = factory.make_ipv6_address()
            ip_addresses.add("[%s]" % ip)
            mock_conn = Mock()
            mock_conn.address = (ip, random.randint(5240, 5250))
            mock_rpc.connections[eventloop] = mock_conn

        service = http.RackHTTPService(self.make_dir(), mock_rpc, reactor)
        region_ips = set(service._genRegionIps())
        self.assertEqual(ip_addresses, region_ips)
コード例 #6
0
    def test_genRegionIps_always_returns_same_result(self):
        mock_rpc = Mock()
        mock_rpc.connections = {}
        for _ in range(3):
            region_name = factory.make_name("region")
            for _ in range(3):
                pid = random.randint(0, 10000)
                eventloop = "%s:pid=%s" % (region_name, pid)
                ip = factory.make_ip_address()
                mock_conn = Mock()
                mock_conn.address = (ip, random.randint(5240, 5250))
                mock_rpc.connections[eventloop] = mock_conn

        service = http.RackHTTPService(self.make_dir(), mock_rpc, reactor)
        region_ips = frozenset(service._genRegionIps())
        for _ in range(3):
            self.assertEqual(region_ips, frozenset(service._genRegionIps()))
コード例 #7
0
 def test_service_iterates_on_low_interval(self):
     service = http.RackHTTPService(self.make_dir(),
                                    StubClusterClientService(), reactor)
     self.assertThat(service.step, Equals(service.INTERVAL_LOW))
コード例 #8
0
 def test_service_uses__tryUpdate_as_periodic_function(self):
     service = http.RackHTTPService(self.make_dir(),
                                    StubClusterClientService(), reactor)
     self.assertThat(service.call, Equals((service._tryUpdate, (), {})))