def get_msg(self, message: Any) -> AcsMsgAndTransition: """ Send back a message to enb Args: message (Any): TR069 message Returns: AcsMsgAndTransition """ if not self.wait_timer: logger.error('wait_timer is None.') raise ValueError('wait_timer is None.') if self.wait_timer.is_done(): return AcsMsgAndTransition( msg=models.DummyInput(), next_state=self.done_transition, ) remaining = self.wait_timer.seconds_remaining() logger.info( 'Waiting with eNB configuration for %s more seconds. ', remaining, ) return AcsMsgAndTransition(msg=models.DummyInput(), next_state=None)
def get_msg(self, message: Any) -> AcsMsgAndTransition: """ Returns: A SetParameterValueRequest for setting 'Admin Enable' to False """ param_name = ParameterName.ADMIN_STATE # if we want the cell to be down don't force it up desired_admin_value = \ self.acs.desired_cfg.get_parameter(param_name) \ and self.admin_value admin_value = \ self.acs.data_model.transform_for_enb( param_name, desired_admin_value, ) admin_path = self.acs.data_model.get_parameter(param_name).path param_values = {admin_path: admin_value} request = models.SetParameterValues() request.ParameterList = models.ParameterValueList() request.ParameterList.arrayType = 'cwmp:ParameterValueStruct[%d]' \ % len(param_values) name_value = models.ParameterValueStruct() name_value.Name = admin_path name_value.Value = models.anySimpleType() name_value.Value.type = 'xsd:string' name_value.Value.Data = str(admin_value) request.ParameterList.ParameterValueStruct = [name_value] return AcsMsgAndTransition(request, self.done_transition)
def get_msg(self, message: Any) -> AcsMsgAndTransition: """ Return empty message response if care about this message type otherwise return empty RPC methods response. """ if not self._is_rpc_request: resp = models.DummyInput() return AcsMsgAndTransition(msg=resp, next_state=None) resp = models.GetRPCMethodsResponse() resp.MethodList = models.MethodList() RPC_METHODS = ['Inform', 'GetRPCMethods', 'TransferComplete'] resp.MethodList.arrayType = 'xsd:string[%d]' \ % len(RPC_METHODS) resp.MethodList.string = RPC_METHODS # Don't transition to next state wait for the empty HTTP post return AcsMsgAndTransition(msg=resp, next_state=None)
def get_msg(self, message: Any) -> AcsMsgAndTransition: request = models.GetParameterValues() request.ParameterNames = models.ParameterNames() request.ParameterNames.string = [] for _, tr_param in StatusParameters.STATUS_PARAMETERS.items(): path = tr_param.path request.ParameterNames.string.append(path) request.ParameterNames.arrayType = \ 'xsd:string[%d]' % len(request.ParameterNames.string) return AcsMsgAndTransition(msg=request, next_state=None)
def get_msg(self, message: Any) -> AcsMsgAndTransition: """ Send back a message to enb Args: message (Any): TR069 message Returns: AcsMsgAndTransition """ request = models.DummyInput() return AcsMsgAndTransition(msg=request, next_state=self.done_transition)
def get_msg(self, message: Any) -> AcsMsgAndTransition: """ Respond with GetParameterValuesRequest """ names = [ParameterName.PLMN_LIST] # 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_msg(self) -> AcsMsgAndTransition: """ Respond with GetParameterValuesRequest """ names = _get_object_params_to_get(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, None)
def get_msg(self, message: Any) -> AcsMsgAndTransition: """ Respond with GetParameterValuesRequest """ names = self.get_params_to_get(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 if path is not InvalidTrParamPath: # Only get data elements backed by tr69 path request.ParameterNames.string.append(path) return AcsMsgAndTransition(msg=request, next_state=None)
def get_msg(self) -> AcsMsgAndTransition: """ Returns: A SetParameterValueRequest for setting 'Admin Enable' to False """ param_name = ParameterName.ADMIN_STATE admin_path = self.acs.data_model.get_parameter(param_name).path admin_value = self.acs.data_model.transform_for_enb(param_name, False) param_values = {admin_path: admin_value} request = models.SetParameterValues() request.ParameterList = models.ParameterValueList() request.ParameterList.arrayType = 'cwmp:ParameterValueStruct[%d]' \ % len(param_values) name_value = models.ParameterValueStruct() name_value.Name = admin_path name_value.Value = models.anySimpleType() name_value.Value.type = 'xsd:string' name_value.Value.Data = str(admin_value) request.ParameterList.ParameterValueStruct = [name_value] return AcsMsgAndTransition(request, self.done_transition)