[bug-fix] Missed key error

This commit is contained in:
sanjayk03-dev
2025-07-08 22:17:40 +05:30
parent d84c667c50
commit 935c064f47

View File

@@ -651,6 +651,30 @@ class RotaryHandler(bbctrl.APIHandler):
log.error("Failed to populate motors-backup: {}".format(str(e))) log.error("Failed to populate motors-backup: {}".format(str(e)))
raise ValueError("Failed to populate motors-backup: {}".format(str(e))) raise ValueError("Failed to populate motors-backup: {}".format(str(e)))
def _validate_motors_backup(self, motors_backup, rotary_config):
"""
Validate that motors_backup has all required keys from rotary_config.
Returns True if valid, False otherwise.
"""
if not motors_backup or len(motors_backup) < 3:
return False
motor_2_backup = motors_backup[2]
if not motor_2_backup:
return False
# Check if motor_2_backup has all keys from rotary_config
required_keys = set(rotary_config.keys())
backup_keys = set(motor_2_backup.keys())
missing_keys = required_keys - backup_keys
if missing_keys:
self.get_log('RotaryHandler').warning(
f'motors_backup missing required keys: {missing_keys}')
return False
return True
def put_ok(self): def put_ok(self):
try: try:
status = self.json.get('status', None) status = self.json.get('status', None)
@@ -683,7 +707,8 @@ class RotaryHandler(bbctrl.APIHandler):
if not motors: if not motors:
raise ValueError("Motors data not found in configuration") raise ValueError("Motors data not found in configuration")
if not motors_backup: # Check whether the motors_backup has all keys as in rotary_config
if not self._validate_motors_backup(motors_backup, rotary_config):
motors_backup = self._populate_motors_backup(config_data) motors_backup = self._populate_motors_backup(config_data)
config_data['motors-backup'] = motors_backup config_data['motors-backup'] = motors_backup