3
from twisted.internet.defer import succeed
3
5
from landscape.monitor.mountinfo import MountInfo
4
6
from landscape.tests.test_hal import MockHALManager, MockRealHALDevice
5
7
from landscape.tests.helpers import (LandscapeTest, MakePathHelper,
676
678
remote_broker_mock = self.mocker.replace(self.remote)
677
679
remote_broker_mock.send_message(ANY, urgent=True)
680
self.mocker.result(succeed(None))
678
681
self.mocker.count(3)
679
682
self.mocker.replay()
681
684
self.reactor.fire(("message-type-acceptance-changed", "mount-info"),
687
def test_persist_timing(self):
688
"""Mount info are only persisted when exchange happens.
690
Previously mount info were persisted as soon as they were gathered: if
691
an event happened between the persist and the exchange, the server
692
didn't get the mount info at all. This test ensures that mount info are
693
only saved when exchange happens.
696
return (4096, 0, mb(1000), mb(100), 0, 0, 0, 0, 0)
698
filename = self.make_path("""\
699
/dev/hda1 / ext3 rw 0 0
701
plugin = MountInfo(mounts_file=filename, create_time=self.reactor.time,
702
statvfs=statvfs, mtab_file=filename)
703
self.monitor.add(plugin)
705
message1 = plugin.create_mount_info_message()
707
message1.get("mount-info"),
708
[(0, {"device": "/dev/hda1",
709
"filesystem": "ext3",
711
"total-space": 4096000L})])
713
message2 = plugin.create_mount_info_message()
715
message2.get("mount-info"),
716
[(0, {"device": "/dev/hda1",
717
"filesystem": "ext3",
719
"total-space": 4096000L})])
720
# Run again, calling create_mount_info_message purge the information
724
message3 = plugin.create_mount_info_message()
725
self.assertIdentical(message3, None)