From 794eb4319be7c910fc966a26bceba130bbd75418 Mon Sep 17 00:00:00 2001 From: Mike Geppert Date: Wed, 7 Jan 2026 19:52:32 -0600 Subject: [PATCH] Add delays and retry logic for SetOption verification - Wait 0.5s after sending command before first verification - Retry verification once with 0.5s delay if first attempt fails - Increase delay between commands from 0.3s to 0.5s - Add delay after enabling rules - Prevents false verification failures by giving device time to process - Avoids overwhelming device with rapid command sequences --- console_settings.py | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/console_settings.py b/console_settings.py index 8f2b6a1..063561b 100644 --- a/console_settings.py +++ b/console_settings.py @@ -179,12 +179,22 @@ class ConsoleSettingsManager: if not success: self.logger.error(f"{device_name}: Failed to set {param_name} after 3 attempts") return False - + + # Wait for device to process the command before verifying + time.sleep(0.5) + # Verify the command was applied (if possible) - if not self._verify_command(device_ip, device_name, param_name, param_value): - self.logger.warning(f"{device_name}: Verification failed for {param_name}") - # Don't return False here - some commands can't be verified - + verified = self._verify_command(device_ip, device_name, param_name, param_value) + + if not verified: + # Wait a bit longer and try verification again + time.sleep(0.5) + verified = self._verify_command(device_ip, device_name, param_name, param_value) + + if not verified: + self.logger.warning(f"{device_name}: Verification failed for {param_name}") + # Don't return False here - some commands can't be verified + # Check if this is a rule definition - if so, enable it if param_name.lower().startswith('rule'): rule_number = param_name.lower().replace('rule', '') @@ -202,8 +212,10 @@ class ConsoleSettingsManager: if not success: self.logger.warning(f"{device_name}: Failed to enable rule{rule_number}") - - time.sleep(0.3) # Brief delay between commands + + time.sleep(0.5) # Wait after enabling rule + + time.sleep(0.5) # Delay between commands to avoid overwhelming device return True def _verify_command(self, device_ip: str, device_name: str,