def get_all_objects_to_delete( desired_cfg: EnodebConfiguration, device_cfg: EnodebConfiguration, ) -> List[ParameterName]: """ Find a ParameterName that needs to be deleted from the eNB configuration, if any """ desired = desired_cfg.get_object_names() current = device_cfg.get_object_names() return list(set(current).difference(set(desired)))
def get_all_objects_to_add( desired_cfg: EnodebConfiguration, device_cfg: EnodebConfiguration, ) -> List[ParameterName]: """ Find a ParameterName that needs to be added to the eNB configuration, if any Note: This is the expected name of the parameter once it is added but this is different than how to add it. For example, enumerated objects of the form XX.YY.N. should be added by calling AddObject to XX.YY. and having the CPE assign the index. """ desired = desired_cfg.get_object_names() current = device_cfg.get_object_names() return list(set(desired).difference(set(current)))
def get_obj_param_values_to_set( desired_cfg: EnodebConfiguration, device_cfg: EnodebConfiguration, data_model: DataModel, ) -> Dict[ParameterName, Dict[ParameterName, Any]]: """ Returns a map from object name to (a map of param name to value) """ param_values = {} objs = desired_cfg.get_object_names() for obj_name in objs: param_values[obj_name] = {} params = desired_cfg.get_parameter_names_for_object(obj_name) for name in params: new = desired_cfg.get_parameter_for_object(name, obj_name) old = device_cfg.get_parameter_for_object(name, obj_name) _type = data_model.get_parameter(name).type if not are_tr069_params_equal(new, old, _type): param_values[obj_name][name] = new return param_values
class EnodebConfigurationTest(TestCase): def setUp(self): self.config = EnodebConfiguration(CaviumTrDataModel) def tearDown(self): self.config = None def test_data_model(self) -> None: data_model = self.config.data_model expected = CaviumTrDataModel self.assertEqual(data_model, expected, 'Data model fetch incorrect') def test_get_has_set_parameter(self) -> None: param = ParameterName.ADMIN_STATE self.config.set_parameter(param, True) self.assertTrue(self.config.has_parameter(param), 'Expected to have parameter') param_value = self.config.get_parameter(param) expected = True self.assertEqual(param_value, expected, 'Parameter value does not match what was set') def test_add_has_delete_object(self) -> None: object_name = ParameterName.PLMN_N % 1 self.assertFalse(self.config.has_object(object_name)) self.config.add_object(object_name) self.assertTrue(self.config.has_object(object_name)) self.config.delete_object(object_name) self.assertFalse(self.config.has_object(object_name)) def test_get_parameter_names(self) -> None: # Should start off as an empty list names_list = self.config.get_parameter_names() self.assertEqual(len(names_list), 0, 'Expected 0 names') # Should grow as we set parameters self.config.set_parameter(ParameterName.ADMIN_STATE, True) names_list = self.config.get_parameter_names() self.assertEqual(len(names_list), 1, 'Expected 1 name') # Parameter names should not include objects self.config.add_object(ParameterName.PLMN) names_list = self.config.get_parameter_names() self.assertEqual(len(names_list), 1, 'Expected 1 name') def test_get_object_names(self) -> None: # Should start off as an empty list obj_list = self.config.get_object_names() self.assertEqual(len(obj_list), 0, 'Expected 0 names') # Should grow as we set parameters self.config.add_object(ParameterName.PLMN) obj_list = self.config.get_object_names() self.assertEqual(len(obj_list), 1, 'Expected 1 names') def test_get_set_parameter_for_object(self) -> None: self.config.add_object(ParameterName.PLMN_N % 1) self.config.set_parameter_for_object( ParameterName.PLMN_N_CELL_RESERVED % 1, True, ParameterName.PLMN_N % 1) param_value = self.config.get_parameter_for_object( ParameterName.PLMN_N_CELL_RESERVED % 1, ParameterName.PLMN_N % 1) self.assertTrue( param_value, 'Expected that the param for object was set correctly') def test_get_parameter_names_for_object(self) -> None: # Should start off empty self.config.add_object(ParameterName.PLMN_N % 1) param_list = self.config.get_parameter_names_for_object( ParameterName.PLMN_N % 1) self.assertEqual(len(param_list), 0, 'Should be an empty param list') # Should increment as we set parameters self.config.set_parameter_for_object( ParameterName.PLMN_N_CELL_RESERVED % 1, True, ParameterName.PLMN_N % 1) param_list = self.config.get_parameter_names_for_object( ParameterName.PLMN_N % 1) self.assertEqual(len(param_list), 1, 'Should not be an empty list')