def get_next_state(self) -> str: should_get_params = \ len( get_params_to_get( self.acs.device_cfg, self.acs.data_model, ), ) > 0 if should_get_params: return self.done_transition should_get_obj_params = \ len( get_object_params_to_get( self.acs.desired_cfg, self.acs.device_cfg, self.acs.data_model, ), ) > 0 if should_get_obj_params: return self.get_obj_params_transition elif len( get_all_objects_to_delete( self.acs.desired_cfg, self.acs.device_cfg, ), ) > 0: return self.rm_obj_transition elif len( get_all_objects_to_add( self.acs.desired_cfg, self.acs.device_cfg, ), ) > 0: return self.add_obj_transition return self.skip_transition
def get_msg(self) -> AcsMsgAndTransition: """ Respond with GetParameterValuesRequest """ names = get_object_params_to_get(self.acs.desired_cfg, self.acs.device_cfg, self.acs.data_model) # Generate the request request = models.GetParameterValues() request.ParameterNames = models.ParameterNames() request.ParameterNames.arrayType = 'xsd:string[%d]' \ % len(names) request.ParameterNames.string = [] for name in names: path = self.acs.data_model.get_parameter(name).path request.ParameterNames.string.append(path) return AcsMsgAndTransition(request, self.done_transition)
def test_get_object_params_to_get( self, request_all_params: bool, with_desired_config: bool, expected_object_names_list_len: int, ): acs_state_machine = self._prepare_sm() data_model = BaicellsQRTBTrDataModel() if with_desired_config: acs_state_machine.desired_cfg = self._prepare_desired_cfg_for_sm( acs_state_machine) obj_names = get_object_params_to_get( desired_cfg=acs_state_machine.desired_cfg, device_cfg=acs_state_machine.device_cfg, data_model=data_model, request_all_params=request_all_params, ) self.assertEqual(expected_object_names_list_len, len(obj_names))