Exemplo 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())
Exemplo n.º 2
0
    def _check_rf_tx_for_handler(self, handler: EnodebAcsStateMachine) -> None:
        status = get_enb_status(handler)
        if self._prev_rf_tx and not status.rf_tx_on:
            self._clear_stats()
        self._prev_rf_tx = status.rf_tx_on

        # Update status metrics
        update_status_metrics(status)
Exemplo n.º 3
0
    def _check_rf_tx_for_handler(self, handler: EnodebAcsStateMachine) -> None:
        if handler.device_cfg.has_parameter(ParameterName.RF_TX_STATUS):
            rf_tx = handler \
                .device_cfg \
                .get_parameter(ParameterName.RF_TX_STATUS)
            if self._prev_rf_tx is True and rf_tx is False:
                self._clear_stats()
            self._prev_rf_tx = rf_tx

        # Update status metrics
        status = get_enb_status(handler)
        update_status_metrics(status)