setName('urbackup:test-api') ->setDescription('Test UrBackup server API connection') ->addArgument('server_id', InputArgument::REQUIRED, 'Server ID'); } protected function execute(InputInterface $input, OutputInterface $output): int { $server_id = (int) $input->getArgument('server_id'); $server = new Server(); if (!$server->getFromDB($server_id)) { $output->writeln("Server not found: $server_id"); return Command::FAILURE; } $output->writeln("Testing API for: " . $server->fields['name']); $output->writeln("URL: " . $server->getWebInterfaceUrl()); $output->writeln("Username: " . $server->fields['api_username']); $client = new UrbackupApiClient($server); try { $result = $client->testConnection(); if ($result['success']) { $output->writeln("SUCCESS: " . $result['message'] . ""); $output->writeln("Identity: " . $result['identity']); } else { $output->writeln("FAILED: " . $result['message'] . ""); } return $result['success'] ? Command::SUCCESS : Command::FAILURE; } catch (\Throwable $e) { $output->writeln("Exception: " . $e->getMessage() . ""); return Command::FAILURE; } } }