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())
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)
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)