コード例 #1
0
ファイル: test_syslog.py プロジェクト: tai271828/maas
    def test__tryUpdate_logs_errors_from_broken_method(self):
        service = syslog.RegionSyslogService(reactor)
        broken_method = self.patch_autospec(service, self.method)
        broken_method.side_effect = factory.make_exception()

        # Don't actually write the file.
        self.patch_autospec(syslog, "write_config")

        # Ensure that we never actually execute against systemd.
        self.patch_autospec(service_monitor, "restartService")

        with TwistedLoggerFixture() as logger:
            yield service._tryUpdate()

        self.assertThat(
            logger.output,
            DocTestMatches(
                """
                Failed to update syslog configuration.
                Traceback (most recent call last):
                ...
                maastesting.factory.TestException#...
                """
            ),
        )
コード例 #2
0
ファイル: test_syslog.py プロジェクト: tai271828/maas
 def test__tryUpdate_updates_syslog_server(self):
     service = syslog.RegionSyslogService(reactor)
     port, peers = yield deferToDatabase(self.make_example_configuration)
     write_config = self.patch_autospec(syslog, "write_config")
     restartService = self.patch_autospec(service_monitor, "restartService")
     yield service._tryUpdate()
     self.assertThat(
         write_config,
         MockCalledOnceWith(
             True,
             Matches(
                 ContainsAll(
                     [
                         {
                             "ip": service._formatIP(ip),
                             "name": node.hostname,
                         }
                         for node, ip in peers
                     ]
                 )
             ),
             port=port,
         ),
     )
     self.assertThat(restartService, MockCalledOnceWith("syslog_region"))
     # If the configuration has not changed then a second call to
     # `_tryUpdate` does not result in another call to `write_config`.
     yield service._tryUpdate()
     self.assertThat(write_config, MockCalledOnce())
     self.assertThat(restartService, MockCalledOnceWith("syslog_region"))
コード例 #3
0
ファイル: test_syslog.py プロジェクト: tai271828/maas
    def test__getConfiguration_returns_configuration_object(self):
        service = syslog.RegionSyslogService(reactor)

        # Put all addresses in the same space so they're mutually routable.
        space = factory.make_Space()
        # Populate the database with "this" region rack and an example peer.
        region_rack, _, _ = make_region_rack_with_address(space)
        self.useFixture(MAASIDFixture(region_rack.system_id))
        peer, addr4, addr6 = make_region_rack_with_address(space)

        observed = service._getConfiguration()
        self.assertThat(observed, IsInstance(syslog._Configuration))

        expected_peers = AllMatch(Equals((peer.hostname, IPAddress(addr4.ip))))

        self.assertThat(observed, MatchesStructure(peers=expected_peers))
コード例 #4
0
def make_SyslogService():
    from maasserver.regiondservices import syslog
    return syslog.RegionSyslogService(reactor)
コード例 #5
0
ファイル: test_syslog.py プロジェクト: tai271828/maas
 def test_service_iterates_every_30_seconds(self):
     service = syslog.RegionSyslogService(reactor)
     self.assertThat(service.step, Equals(30.0))
コード例 #6
0
ファイル: test_syslog.py プロジェクト: tai271828/maas
 def test_service_uses__tryUpdate_as_periodic_function(self):
     service = syslog.RegionSyslogService(reactor)
     self.assertThat(service.call, Equals((service._tryUpdate, (), {})))