From 0884014df27eca6c129e815c84db50ec1d9de3ec Mon Sep 17 00:00:00 2001 From: William Caban Date: Thu, 2 Jan 2020 22:36:27 -0500 Subject: [PATCH] Fix error triggered by reading intergers as string from virtualbmc.conf Add validation to fix error of "'<' not supported between instances of 'str' and 'int'" when defining server_response_timeout value in virtualbmc.conf. The error is trigger because the config parameters from the configuration file are read as strings and everything else assume that value is an integer (as the default of 5000). The patch also include validations for server_spawn_wait and server_port to check the values are valid integers. Updates test_config.test_validate for test coverage Task: 37947 Story: 2007066 Change-Id: Ie4e74585d8e14bd73e5e30b21b4dd7bd7d88f13d Signed-off-by: William Caban --- virtualbmc/config.py | 9 +++++++++ virtualbmc/tests/unit/test_config.py | 3 +++ 2 files changed, 12 insertions(+) diff --git a/virtualbmc/config.py b/virtualbmc/config.py index 5249dd8..6f70f36 100644 --- a/virtualbmc/config.py +++ b/virtualbmc/config.py @@ -75,6 +75,15 @@ class VirtualBMCConfig(object): self._conf_dict['default']['show_passwords'] = utils.str2bool( self._conf_dict['default']['show_passwords']) + self._conf_dict['default']['server_port'] = int( + self._conf_dict['default']['server_port']) + + self._conf_dict['default']['server_spawn_wait'] = int( + self._conf_dict['default']['server_spawn_wait']) + + self._conf_dict['default']['server_response_timeout'] = int( + self._conf_dict['default']['server_response_timeout']) + self._conf_dict['ipmi']['session_timeout'] = int( self._conf_dict['ipmi']['session_timeout']) diff --git a/virtualbmc/tests/unit/test_config.py b/virtualbmc/tests/unit/test_config.py index 58b7b64..1583850 100644 --- a/virtualbmc/tests/unit/test_config.py +++ b/virtualbmc/tests/unit/test_config.py @@ -72,6 +72,9 @@ class VirtualBMCConfigTestCase(base.TestCase): expected = self.config_dict.copy() expected['default']['show_passwords'] = True + expected['default']['server_response_timeout'] = 5000 + expected['default']['server_spawn_wait'] = 3000 + expected['default']['server_port'] = 12345 expected['log']['debug'] = True expected['ipmi']['session_timeout'] = 30 self.assertEqual(expected, self.vbmc_config._conf_dict)