diff --git a/tuned/plugins/base.py b/tuned/plugins/base.py index f8c74c1..784d44d 100644 --- a/tuned/plugins/base.py +++ b/tuned/plugins/base.py @@ -547,7 +547,13 @@ class Plugin(object): ret = val == current_value if ret: break - if ret: + self._log_verification_result(name, ret, new_value, + current_value, device = device) + return ret + + def _log_verification_result(self, name, success, new_value, + current_value, device = None): + if success: if device is None: log.info(consts.STR_VERIFY_PROFILE_VALUE_OK % (name, str(current_value).strip())) else: diff --git a/tuned/plugins/plugin_net.py b/tuned/plugins/plugin_net.py index 3010c3c..4d4c19e 100644 --- a/tuned/plugins/plugin_net.py +++ b/tuned/plugins/plugin_net.py @@ -376,15 +376,30 @@ class NetTuningPlugin(base.Plugin): command_name = context, device_name = device) if start: - cd = self._get_device_parameters(context, device) - d = self._set_device_parameters(context, value, device, verify, - dev_params = cd) + params_current = self._get_device_parameters(context, + device) + params_set = self._set_device_parameters(context, + value, device, verify, + dev_params = params_current) # if none of parameters passed checks then the command completely # failed - if len(d) == 0: + if len(params_set) == 0: return False + relevant_params_current = [(param, value) for param, value + in params_current.items() + if param in params_set] + relevant_params_current = dict(relevant_params_current) + if verify: + res = (self._cmd.dict2list(params_set) + == self._cmd.dict2list(relevant_params_current)) + self._log_verification_result(context, res, + params_set, + relevant_params_current, + device = device) + return res # saved are only those parameters which passed checks - self._storage.set(storage_key," ".join(self._cmd.dict2list(d))) + self._storage.set(storage_key, " ".join( + self._cmd.dict2list(relevant_params_current))) else: original_value = self._storage.get(storage_key) # in storage are only those parameters which were already tested