Sandro Bonazzola has uploaded a new change for review. Change subject: packaging: setup: fixed memory requirements validation ......................................................................
packaging: setup: fixed memory requirements validation aligned memory requirements validation with legacy setup Change-Id: I46e125e418ec0f2951850825dbeca9a5f9eadfbf Signed-off-by: Sandro Bonazzola <[email protected]> --- M packaging/setup/plugins/ovirt-engine-setup/system/memcheck.py 1 file changed, 92 insertions(+), 38 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/16/14916/1 diff --git a/packaging/setup/plugins/ovirt-engine-setup/system/memcheck.py b/packaging/setup/plugins/ovirt-engine-setup/system/memcheck.py index bd27552..7fa8ece 100644 --- a/packaging/setup/plugins/ovirt-engine-setup/system/memcheck.py +++ b/packaging/setup/plugins/ovirt-engine-setup/system/memcheck.py @@ -30,6 +30,7 @@ from otopi import plugin from ovirt_engine_setup import constants as osetupcons +from ovirt_engine_setup import dialog @util.export @@ -51,6 +52,53 @@ def __init__(self, context): super(Plugin, self).__init__(context=context) + self._total_memory = 0 + + def _warn_recomended(self): + self.dialog.note( + text=_( + 'There is less than {recommended}MB available memory' + ).format( + recommended=self.environment[ + osetupcons.SystemEnv.MEMCHECK_RECOMMENDED_MB + ], + ), + ) + + def _check_requirements(self): + satisfied = False + if self._total_memory < self.environment[ + osetupcons.SystemEnv.MEMCHECK_MINIMUM_MB + ] * 0.95: + self.logger.warn( + _( + 'Warning: Not enough available memory on the Host, ' + 'the minimum requirement is {minimum}MB, and the ' + 'recommended is {recommended}MB).' + ).format( + minimum=self.environment[ + osetupcons.SystemEnv.MEMCHECK_MINIMUM_MB + ], + recommended=self.environment[ + osetupcons.SystemEnv.MEMCHECK_RECOMMENDED_MB + ], + ) + ) + else: + satisfied = True + if self._total_memory < self.environment[ + osetupcons.SystemEnv.MEMCHECK_RECOMMENDED_MB + ] * 0.95: + self.logger.warn( + _( + 'There is less than {recommended}MB available memory' + ).format( + recommended=self.environment[ + osetupcons.SystemEnv.MEMCHECK_RECOMMENDED_MB + ], + ) + ) + return satisfied @plugin.event( stage=plugin.Stages.STAGE_INIT, @@ -58,7 +106,7 @@ def _init(self): self.environment.setdefault( osetupcons.SystemEnv.MEMCHECK_ENABLED, - osetupcons.Defaults.DEFAULT_SYSTEM_MEMCHECK_ENABLED + None ) self.environment.setdefault( osetupcons.SystemEnv.MEMCHECK_MINIMUM_MB, @@ -71,16 +119,20 @@ @plugin.event( stage=plugin.Stages.STAGE_VALIDATION, - condition=lambda self: self.environment[ - osetupcons.SystemEnv.MEMCHECK_ENABLED - ], ) def _validation(self): """ Check if the system met the memory requirements. """ + interactive = self.environment[ + osetupcons.SystemEnv.MEMCHECK_ENABLED + ] is None + if ( + not interactive and + not self.environment[osetupcons.SystemEnv.MEMCHECK_ENABLED] + ): + return self.logger.debug('Checking total memory') - total_memory = 0 with open('/proc/meminfo', 'r') as f: content = f.read() @@ -88,45 +140,47 @@ if match is None: raise RuntimeError(_("Unable to parse /proc/meminfo")) - total_memory = int( + self._total_memory = int( match.group('value') ) if match.group('unit') == "kB": - total_memory //= 1024 + self._total_memory //= 1024 - # have tolerance of 5% - if total_memory < self.environment[ - osetupcons.SystemEnv.MEMCHECK_MINIMUM_MB - ] * 0.95: - raise RuntimeError( - _( - "Error: Not enough available memory on the Host, " - "the minimum requirement is {minimum}MB, and the " - "recommended is {recommended}MB)." - ).format( - minimum=self.environment[ - osetupcons.SystemEnv.MEMCHECK_MINIMUM_MB - ], - recommended=self.environment[ - osetupcons.SystemEnv.MEMCHECK_RECOMMENDED_MB - ], + satisfied = self._check_requirements() + print interactive + abort = False + if not satisfied: + if not interactive: + abort = osetupcons.Defaults.DEFAULT_SYSTEM_MEMCHECK_ENABLED + else: + abort = dialog.queryBoolean( + dialog=self.dialog, + name='OVESETUP_MEMORY_CHECK', + note=_( + 'Do you want to exit the setup? ' + '(@VALUES@) [@DEFAULT@]: ' + ), + prompt=True, + true=_('Yes'), + false=_('No'), + default=( + osetupcons.Defaults.DEFAULT_SYSTEM_MEMCHECK_ENABLED + ), ) - ) + if abort: + raise RuntimeError(_('Aborted by user')) - if total_memory < self.environment[ - osetupcons.SystemEnv.MEMCHECK_RECOMMENDED_MB - ]: - self.logger.warn( - _( - "There is less than {recommended}MB available memory" - ).format( - recommended=self.environment[ - osetupcons.SystemEnv.MEMCHECK_RECOMMENDED_MB - ], - ) - ) - #TODO: find out how to do this: - #controller.MESSAGES.append(output_messages.WARN_LOW_MEMORY) + @plugin.event( + stage=plugin.Stages.STAGE_CLOSEUP, + before=[ + osetupcons.Stages.DIALOG_TITLES_E_SUMMARY, + ], + after=[ + osetupcons.Stages.DIALOG_TITLES_S_SUMMARY, + ], + ) + def _closeup(self): + self._check_requirements() # vim: expandtab tabstop=4 shiftwidth=4 -- To view, visit http://gerrit.ovirt.org/14916 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I46e125e418ec0f2951850825dbeca9a5f9eadfbf Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Sandro Bonazzola <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
