diff --git a/scripts/hostcfgd b/scripts/hostcfgd index beb5534ad68f..d549d560bc83 100755 --- a/scripts/hostcfgd +++ b/scripts/hostcfgd @@ -208,7 +208,11 @@ class FeatureHandler(object): self._feature_state_table._del(feature_name) return - feature = Feature(feature_name, feature_cfg, self._device_config | self._device_running_config) + device_config = {} + device_config.update(self._device_config) + device_config.update(self._device_running_config) + + feature = Feature(feature_name, feature_cfg, device_config) self._cached_config.setdefault(feature_name, Feature(feature_name, {})) # Change auto-restart configuration first. @@ -239,8 +243,12 @@ class FeatureHandler(object): if not feature_name: syslog.syslog(syslog.LOG_WARNING, "Feature is None") continue + + device_config = {} + device_config.update(self._device_config) + device_config.update(self._device_running_config) - feature = Feature(feature_name, feature_table[feature_name], self._device_config | self._device_running_config) + feature = Feature(feature_name, feature_table[feature_name], device_config) self._cached_config.setdefault(feature_name, feature) self.update_systemd_config(feature) diff --git a/tests/hostcfgd/hostcfgd_test.py b/tests/hostcfgd/hostcfgd_test.py index 23fc4a9ddc39..93ba7b9666a6 100644 --- a/tests/hostcfgd/hostcfgd_test.py +++ b/tests/hostcfgd/hostcfgd_test.py @@ -134,6 +134,8 @@ def test_sync_state_field(self, test_scenario_name, config_data, fs): device_config = {} device_config['DEVICE_METADATA'] = MockConfigDb.CONFIG_DB['DEVICE_METADATA'] + device_config.update(config_data['device_runtime_metadata']) + feature_handler = hostcfgd.FeatureHandler(MockConfigDb(), feature_state_table_mock, device_config) feature_table = MockConfigDb.CONFIG_DB['FEATURE'] @@ -141,7 +143,7 @@ def test_sync_state_field(self, test_scenario_name, config_data, fs): feature_systemd_name_map = {} for feature_name in feature_table.keys(): - feature = hostcfgd.Feature(feature_name, feature_table[feature_name], device_config | config_data['device_runtime_metadata']) + feature = hostcfgd.Feature(feature_name, feature_table[feature_name], device_config) feature_names, _ = feature_handler.get_multiasic_feature_instances(feature) feature_systemd_name_map[feature_name] = feature_names @@ -188,6 +190,7 @@ def test_handler(self, test_scenario_name, config_data, fs): device_config = {} device_config['DEVICE_METADATA'] = MockConfigDb.CONFIG_DB['DEVICE_METADATA'] + device_config.update(config_data['device_runtime_metadata']) feature_handler = hostcfgd.FeatureHandler(MockConfigDb(), feature_state_table_mock, device_config) feature_table = MockConfigDb.CONFIG_DB['FEATURE'] @@ -195,7 +198,7 @@ def test_handler(self, test_scenario_name, config_data, fs): feature_systemd_name_map = {} for feature_name, feature_config in feature_table.items(): feature_handler.handler(feature_name, 'SET', feature_config) - feature = hostcfgd.Feature(feature_name, feature_table[feature_name], device_config | config_data['device_runtime_metadata']) + feature = hostcfgd.Feature(feature_name, feature_table[feature_name], device_config) feature_names, _ = feature_handler.get_multiasic_feature_instances(feature) feature_systemd_name_map[feature_name] = feature_names