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, message: Any) -> AcsMsgAndTransition: """ Respond with GetParameterValuesRequest Get the values of all parameters defined in the data model. Also check which addable objects are present, and what the values of parameters for those objects are. """ # Get the names of regular parameters names = get_params_to_get( self.acs.device_cfg, self.acs.data_model, self.request_all_params, ) # 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 get_params_to_get( self, data_model: DataModel, ) -> List[ParameterName]: names = [] # First get base params names = get_params_to_get( self.acs.device_cfg, self.acs.data_model, request_all_params=True, ) # Add object params. num_plmns = data_model.get_num_plmns() obj_to_params = data_model.get_numbered_param_names() for i in range(1, num_plmns + 1): obj_name = ParameterName.PLMN_N % i desired = obj_to_params[obj_name] names += desired return names