Ejemplo n.º 1
0
    def read_msg(self, message: Any) -> AcsReadMsgResult:
        if not isinstance(message, models.GetParameterValuesResponse):
            return AcsReadMsgResult(False, None)
        # Current values of the fetched parameters
        name_to_val = parse_get_parameter_values_response(
            self.acs.data_model, message)
        logging.debug('Fetched Transient Params: %s', str(name_to_val))

        # Clear stats when eNodeB stops radiating. This is
        # because eNodeB stops sending performance metrics at this point.
        prev_rf_tx = False
        if self.acs.device_cfg.has_parameter(ParameterName.RF_TX_STATUS):
            prev_rf_tx = \
                self.acs.device_cfg.get_parameter(ParameterName.RF_TX_STATUS)
        next_rf_tx = name_to_val[ParameterName.RF_TX_STATUS]
        if prev_rf_tx is True and next_rf_tx is False:
            self.acs.stats_manager.clear_stats()

        # Update device configuration
        for name in name_to_val:
            magma_val = \
                self.acs.data_model.transform_for_magma(name,
                                                        name_to_val[name])
            self.acs.device_cfg.set_parameter(name, magma_val)

        # Update status metrics
        status = get_enodeb_status(self.acs)
        update_status_metrics(status)

        return AcsReadMsgResult(True, self.get_next_state())
Ejemplo n.º 2
0
    def read_msg(self, message: Any) -> AcsReadMsgResult:
        """ Process either GetParameterValuesResponse or a Fault """
        if type(message) == models.Fault:
            self.acs.data_model.set_parameter_presence(
                self.optional_param,
                False,
            )
        elif type(message) == models.GetParameterValuesResponse:
            name_to_val = parse_get_parameter_values_response(
                self.acs.data_model,
                message,
            )
            logger.debug(
                'Received CPE parameter values: %s',
                str(name_to_val),
            )
            for name, val in name_to_val.items():
                self.acs.data_model.set_parameter_presence(
                    self.optional_param,
                    True,
                )
                magma_val = self.acs.data_model.transform_for_magma(name, val)
                self.acs.device_cfg.set_parameter(name, magma_val)
        else:
            return AcsReadMsgResult(False, None)

        if get_optional_param_to_check(self.acs.data_model) is not None:
            return AcsReadMsgResult(True, None)
        return AcsReadMsgResult(True, self.done_transition)
Ejemplo n.º 3
0
 def read_msg(self, message: Any) -> Optional[str]:
     """ Process GetParameterValuesResponse """
     name_to_val = parse_get_parameter_values_response(
         self.acs.data_model, message)
     logging.debug('Received CPE parameter values: %s', str(name_to_val))
     for name, val in name_to_val.items():
         magma_val = self.acs.data_model.transform_for_magma(name, val)
         self.acs.device_cfg.set_parameter(name, magma_val)
     return self.done_transition
Ejemplo n.º 4
0
 def read_msg(self, message: Any) -> AcsReadMsgResult:
     """ Process GetParameterValuesResponse """
     if not isinstance(message, models.GetParameterValuesResponse):
         return AcsReadMsgResult(False, None)
     name_to_val = parse_get_parameter_values_response(
         self.acs.data_model, message)
     logging.debug('Received CPE parameter values: %s', str(name_to_val))
     for name, val in name_to_val.items():
         magma_val = self.acs.data_model.transform_for_magma(name, val)
         self.acs.device_cfg.set_parameter(name, magma_val)
     return AcsReadMsgResult(True, self.done_transition)
Ejemplo n.º 5
0
    def read_msg(self, message: Any) -> AcsReadMsgResult:
        """ Process GetParameterValuesResponse """
        if not isinstance(message, models.GetParameterValuesResponse):
            return AcsReadMsgResult(False, None)
        # Current values of the fetched parameters
        name_to_val = parse_get_parameter_values_response(
            self.acs.data_model, message)
        logging.debug('Received Parameters: %s', str(name_to_val))

        # Update device configuration
        for name in name_to_val:
            magma_value = \
                self.acs.data_model.transform_for_magma(name, name_to_val[name])
            self.acs.device_cfg.set_parameter(name, magma_value)

        return AcsReadMsgResult(True, self.get_next_state())
Ejemplo n.º 6
0
    def read_msg(self, message: Any) -> AcsReadMsgResult:

        if not isinstance(message, models.GetParameterValuesResponse):
            return AcsReadMsgResult(msg_handled=False, next_state=None)
        # Current values of the fetched parameters
        name_to_val = parse_get_parameter_values_response(
            self.acs.data_model,
            message,
        )
        EnodebdLogger.debug('Received Parameters: %s', str(name_to_val))

        # Update device configuration
        StatusParameters.set_magma_device_cfg(
            name_to_val,
            self.acs.device_cfg,
        )

        return AcsReadMsgResult(
            msg_handled=True,
            next_state=self.done_transition,
        )
Ejemplo n.º 7
0
    def read_msg(self, message: Any) -> Optional[str]:
        """ Process either GetParameterValuesResponse or a Fault """
        if type(message) == models.Fault:
            self.acs.data_model.set_parameter_presence(self.optional_param,
                                                       False)
        elif type(message) == models.GetParameterValuesResponse:
            name_to_val = parse_get_parameter_values_response(
                self.acs.data_model,
                message,
            )
            logging.debug('Received CPE parameter values: %s',
                          str(name_to_val))
            for name, val in name_to_val.items():
                self.acs.data_model.set_parameter_presence(
                    self.optional_param, True)
                magma_val = self.acs.data_model.transform_for_magma(name, val)
                self.acs.device_cfg.set_parameter(name, magma_val)
        else:
            raise Tr069Error('Unexpected response type: %s' % type(message))

        if get_optional_param_to_check(self.acs.data_model) is not None:
            return None
        return self.done_transition