From 3657a820fcdded6a8277aab2c3a5d0d579d53e4e Mon Sep 17 00:00:00 2001 From: Johannes Meyer Date: Tue, 4 May 2021 15:24:14 +0200 Subject: [PATCH] CommandTransport: Return result in method `send()` --- .../Command/Transport/ApiCommandTransport.php | 12 +++++++----- .../Icingadb/Command/Transport/CommandTransport.php | 4 ++-- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/library/Icingadb/Command/Transport/ApiCommandTransport.php b/library/Icingadb/Command/Transport/ApiCommandTransport.php index 08351340..52123a46 100644 --- a/library/Icingadb/Command/Transport/ApiCommandTransport.php +++ b/library/Icingadb/Command/Transport/ApiCommandTransport.php @@ -249,14 +249,16 @@ class ApiCommandTransport implements CommandTransportInterface return; } - $result = array_pop($responseData['results']); - if ($result['code'] < 200 || $result['code'] >= 300) { + $errorResult = $responseData['results'][0]; + if (isset($errorResult['code']) && ($errorResult['code'] < 200 || $errorResult['code'] >= 300)) { throw new ApiCommandException( 'Can\'t send external Icinga command: %u %s', - $result['code'], - $result['status'] + $errorResult['code'], + $errorResult['status'] ); } + + return $responseData['results']; } /** @@ -269,7 +271,7 @@ class ApiCommandTransport implements CommandTransportInterface */ public function send(IcingaCommand $command, $now = null) { - $this->sendCommand($this->renderer->render($command)); + return $this->sendCommand($this->renderer->render($command)); } /** diff --git a/library/Icingadb/Command/Transport/CommandTransport.php b/library/Icingadb/Command/Transport/CommandTransport.php index 99a1bb6a..b9cd1470 100644 --- a/library/Icingadb/Command/Transport/CommandTransport.php +++ b/library/Icingadb/Command/Transport/CommandTransport.php @@ -106,14 +106,14 @@ class CommandTransport implements CommandTransportInterface $transport = static::createTransport($transportConfig); try { - $transport->send($command, $now); + $result = $transport->send($command, $now); } catch (CommandTransportException $e) { Logger::error($e); $errors[] = sprintf('%s: %s.', $name, rtrim($e->getMessage(), '.')); continue; // Try the next transport } - return; // The command was successfully sent + return $result; // The command was successfully sent } if (! empty($errors)) {