Skip to content

Commit

Permalink
check 'reserve-mb' number with kickstart
Browse files Browse the repository at this point in the history
  • Loading branch information
iasunsea authored and coiby committed Oct 20, 2023
1 parent 7c83395 commit 05f1a06
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 4 deletions.
2 changes: 1 addition & 1 deletion com_redhat_kdump/gui/spokes/kdump.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ def apply(self):
if self._autoButton.get_active():
self._proxy.ReservedMemory = "auto"
else:
self._proxy.ReservedMemory = "%dM" % self._toBeReservedSpin.get_value_as_int()
self._proxy.ReservedMemory = "%d" % self._toBeReservedSpin.get_value_as_int()
self._proxy.FadumpEnabled = self._fadumpButton.get_active()

# This hub have been visited, use should now be aware of the crypted devices issue
Expand Down
11 changes: 10 additions & 1 deletion com_redhat_kdump/service/kdump.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ def __init__(self):

self._reserved_memory = "auto"
self.reserved_memory_changed = Signal()
self._lower, self._upper, self._step = getMemoryBounds()

def publish(self):
"""Publish the DBus objects."""
Expand Down Expand Up @@ -78,14 +79,22 @@ def fadump_enabled(self, value):
self.fadump_enabled_changed.emit()
log.debug("Fadump enabled is set to '%s'.", value)

def check_reserved_memory(self, value):
if value != "auto":
if int(value) > self._upper:
value = str(int(self._upper))
if int(value) < self._lower:
value = str(int(self._lower))
return value

@property
def reserved_memory(self):
"""Amount of memory in MB to reserve for kdump."""
return self._reserved_memory

@reserved_memory.setter
def reserved_memory(self, value):
self._reserved_memory = value
self._reserved_memory = self.check_reserved_memory(value)
self.reserved_memory_changed.emit()
log.debug("Reserved memory is set to '%s'.", value)

Expand Down
12 changes: 11 additions & 1 deletion test/unit_tests/test_interface.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
from unittest.case import TestCase
from unittest.mock import patch
from unittest.mock import Mock

from com_redhat_kdump import common
from .mock import MockBuiltinRead
from com_redhat_kdump.constants import KDUMP
from com_redhat_kdump.service.kdump import KdumpService
from com_redhat_kdump.service.kdump_interface import KdumpInterface
Expand Down Expand Up @@ -48,7 +50,15 @@ def test_fadump_enabled(self):
self._check_properties_changed("FadumpEnabled", True)
self.assertEqual(self._interface.FadumpEnabled, True)

def test_reserved_memory(self):
@patch("com_redhat_kdump.service.kdump.KdumpService.check_reserved_memory", return_value="256")
def test_reserved_memory(self, _mock_read):
self._interface.ReservedMemory = "256"
self._check_properties_changed("ReservedMemory", "256")
self.assertEqual(self._interface.ReservedMemory, "256")

@patch("com_redhat_kdump.common.getMemoryBounds", return_value=(500, 800, 1))
def test_check_reserved_memory(self, _mock_read):
self._service._lower , self._service._upper, self._service._step = common.getMemoryBounds()
self.assertEqual(self._service.check_reserved_memory("900"), "800")
self.assertEqual(self._service.check_reserved_memory("400"), "500")
self.assertEqual(self._service.check_reserved_memory("600"), "600")
7 changes: 6 additions & 1 deletion test/unit_tests/test_kickstart.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
from textwrap import dedent
from unittest.case import TestCase
from unittest.mock import patch
from com_redhat_kdump import common
from .mock import MockBuiltinRead
from com_redhat_kdump.service.kdump import KdumpService


Expand Down Expand Up @@ -68,7 +70,10 @@ def test_ks_disable(self):
%end
""")

def test_ks_reserve_mb(self):
@patch("com_redhat_kdump.common.getMemoryBounds", return_value=(160, 800, 1))
def test_ks_reserve_mb(self, _mock_read):
self._service._lower , self._service._upper, self._service._step = common.getMemoryBounds()
self.assertEqual((self._service._lower , self._service._upper), (160, 800))
self._check_ks_input("""
%addon com_redhat_kdump --enable --reserve-mb=256
%end
Expand Down

0 comments on commit 05f1a06

Please sign in to comment.