def perform_test(self, diagnostics_report: DiagnosticsReport) -> None: env_value = os.getenv(self.friendly_key) if not env_value: diagnostics_report.record_failure( "Env var %s not set" % self.friendly_key, self) else: diagnostics_report.record_result(env_value, self)
def perform_test(self, diagnostics_report: DiagnosticsReport) -> None: def get_result(key) -> bool: return key in diagnostics_report and \ diagnostics_report[key] all_passed = all(map(get_result, self.CHECK_KEYS)) if all_passed: diagnostics_report.record_result(True, self) else: diagnostics_report.record_failure(False, self)
def perform_test(self, diagnostics_report: DiagnosticsReport) -> None: LOGGER.info("Retrieving list of LTE device(s)") try: lte_devices = self.get_lte_devices() LOGGER.info(f"Found the following LTE devices: {lte_devices}") self.process_lte_devices(lte_devices, diagnostics_report) except dbus.exceptions.DBusException as e: LOGGER.error(e.get_dbus_message()) diagnostics_report.record_failure(e, self) except Exception as e: LOGGER.error(f"Error while retrieving list of LTE devices: {e}") diagnostics_report.record_failure(e, self)
def perform_test(self, diagnostics_report: DiagnosticsReport) -> None: LOGGER.debug("Retrieving list of Bluetooth device(s)") try: bt_devices = self.get_bt_devices() LOGGER.info(f"Found the following Bluetooth devices: {bt_devices}") self.process_bt_devices(bt_devices, diagnostics_report) except dbus.exceptions.DBusException as e: LOGGER.error(e.get_dbus_message()) diagnostics_report.record_failure(e, self) except Exception as e: LOGGER.error("Error while retrieving list of Bluetooth devices: %s" % e) diagnostics_report.record_failure(e, self)
def perform_test(self, diagnostics_report: DiagnosticsReport) -> None: try: serial_number = open( self.SERIAL_FILEPATH).readline().rstrip('\x00') diagnostics_report.record_result(serial_number, self) except FileNotFoundError as e: diagnostics_report.record_failure(e, self) except PermissionError as e: diagnostics_report.record_failure(e, self)
def use_verified_json(self, diagnostics_report: DiagnosticsReport) -> None: if SHUTDOWN_GATEWAY_KEY not in self.verified_json: diagnostics_report.record_failure(self.NO_SHUTDOWN_GATEWAY_KEY_MSG, self) return try: balena_supervisor = BalenaSupervisor.new_from_env() shutdown_response = balena_supervisor.shutdown() diagnostics_report.record_result(shutdown_response, self) except Exception as e: diagnostics_report.record_failure(e, self)
def perform_test(self, diagnostics_report: DiagnosticsReport) -> None: try: balena_supervisor = BalenaSupervisor.new_from_env() device_status = balena_supervisor.get_device_status('appState') if device_status == 'applied': diagnostics_report.record_result("device_ready", self) else: diagnostics_report.record_failure( f"appState is {device_status}", self) except Exception as e: diagnostics_report.record_failure(e, self)
def use_verified_json(self, diagnostics_report: DiagnosticsReport) -> None: if DESTINATION_WALLETS_KEY not in self.verified_json: diagnostics_report.record_failure(self.NO_DESTINATION_WALLETS_MSG, self) return destination_wallet = secrets.choice( self.verified_json[DESTINATION_WALLETS_KEY]) try: add_gateway_txn = create_add_gateway_txn(destination_wallet) diagnostics_report.record_result(add_gateway_txn, self) except Exception as e: diagnostics_report.record_failure(e, self)
def perform_test(self, diagnostics_report: DiagnosticsReport) -> None: # Try to get key, but there may be ECC lock or other failure try: public_keys = get_public_keys_rust() except ECCMalfunctionException as e: diagnostics_report.record_failure(e, self) return except UnboundLocalError as e: diagnostics_report.record_failure(e, self) return except (FileNotFoundError, NotADirectoryError) as e: diagnostics_report.record_failure(e, self) return except ResourceBusyError as e: diagnostics_report.record_failure(e, self) return except Exception as e: diagnostics_report.record_failure(e, self) return # Record key value, or report failure if unable to parse try: diagnostics_report.record_result(public_keys[self.key_path], self) except KeyError: err_msg = "Key %s not found" % self.key_path diagnostics_report.record_failure(err_msg, self)
def process_lte_devices(self, lte_devices: list, diagnostics_report: DiagnosticsReport) -> None: if len(lte_devices) > 0: diagnostics_report.record_result(lte_devices, self) else: diagnostics_report.record_failure(self.NO_LTE_DEVICES_MSG, self)
def perform_test(self, diagnostics_report: DiagnosticsReport) -> None: try: ecc_tests = get_gateway_mfr_test_result() if ecc_tests['result'] == 'pass': diagnostics_report.record_result(True, self) else: msg = "gateway_mfr test finished with error, %s" % \ str(json.dumps(ecc_tests)) diagnostics_report.record_failure(msg, self) except ECCMalfunctionException as e: LOGGER.exception(e) diagnostics_report.record_failure(e, self) except GatewayMFRFileNotFoundException as e: LOGGER.exception(e) diagnostics_report.record_failure(e, self) except ResourceBusyError as e: LOGGER.exception(e) diagnostics_report.record_failure(e, self) except UnboundLocalError as e: LOGGER.exception(e) diagnostics_report.record_failure(e, self) except Exception as e: LOGGER.exception(e) diagnostics_report.record_failure(e, self)
def perform_test(self, diagnostics_report: DiagnosticsReport) -> None: if lora_module_test(): diagnostics_report.record_result(True, self) else: diagnostics_report.record_failure(False, self)
def compose_diagnostics_report_from_err_msg(diagnostic_key: str, err_msg: str) -> DiagnosticsReport: diagnostics_report = DiagnosticsReport() diagnostic = Diagnostic(diagnostic_key, diagnostic_key) diagnostics_report.record_failure(err_msg, diagnostic) return diagnostics_report
def perform_test(self, diagnostics_report: DiagnosticsReport) -> None: try: mac_address = get_mac_address(self.mac_filepath) diagnostics_report.record_result(mac_address, self) except Exception as e: diagnostics_report.record_failure(str(e), self)