From 844491290b488991dd949f7eab92f2d3f22f6353 Mon Sep 17 00:00:00 2001 From: Oleksandr Piskun Date: Tue, 20 Oct 2026 12:42:22 +0000 Subject: [PATCH] fix(docker): no PHP warning for a HaRP daemon without a key Signed-off-by: Oleksandr Piskun --- lib/DeployActions/DockerActions.php | 2 +- tests/php/DeployActions/DockerActionsTest.php | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/DeployActions/DockerActions.php b/lib/DeployActions/DockerActions.php index ca21004a..5888f34d 100644 --- a/lib/DeployActions/DockerActions.php +++ b/lib/DeployActions/DockerActions.php @@ -1284,7 +1284,7 @@ public function initGuzzleClient(DaemonConfig $daemonConfig): void { } if (boolval($daemonConfig->getDeployConfig()['harp'] ?? false)) { $guzzleParams['headers'] = [ - 'harp-shared-key' => $guzzleParams['auth'][1], + 'harp-shared-key' => $guzzleParams['auth'][1] ?? '', 'docker-engine-port' => $daemonConfig->getDeployConfig()['harp']['docker_socket_port'], ]; } diff --git a/tests/php/DeployActions/DockerActionsTest.php b/tests/php/DeployActions/DockerActionsTest.php index f72d0a6e..2dbfe4b1 100644 --- a/tests/php/DeployActions/DockerActionsTest.php +++ b/tests/php/DeployActions/DockerActionsTest.php @@ -27,6 +27,7 @@ use PHPUnit\Framework\TestCase; use Psr\Log\LoggerInterface; use ReflectionMethod; +use ReflectionProperty; class DockerActionsTest extends TestCase { private DockerActions $dockerActions; @@ -186,4 +187,19 @@ public function testBuildDeployParamsRoundsTheResourceLimits(): void { self::assertSame(['nanoCPUs' => 1070000000], $params['container_params']['resourceLimits']); } + + public function testInitGuzzleClientForHarpWithoutKey(): void { + // What "Check connection" sends for a HaRP daemon before a key is typed. + $daemonConfig = new DaemonConfig([ + 'protocol' => 'http', + 'host' => 'localhost:8780', + 'deploy_config' => ['haproxy_password' => '', 'harp' => ['docker_socket_port' => 24000]], + ]); + + $this->dockerActions->initGuzzleClient($daemonConfig); + + $guzzleClient = (new ReflectionProperty($this->dockerActions, 'guzzleClient'))->getValue($this->dockerActions); + self::assertNull($guzzleClient->getConfig('auth')); + self::assertSame('', $guzzleClient->getConfig('headers')['harp-shared-key']); + } }