From 54f61eba68c0cc8e09a78c52b2f3154f4b0e2d33 Mon Sep 17 00:00:00 2001 From: Simon L Date: Sun, 25 Dec 2022 01:40:37 +0100 Subject: [PATCH] internal_ports should be a string and not an array Signed-off-by: Simon L --- manual-install/update-yaml.sh | 2 +- php/containers-schema.json | 7 +-- php/containers.json | 46 ++++++-------------- php/psalm-baseline.xml | 2 +- php/src/Container/Container.php | 6 +-- php/src/Container/ContainerInternalPorts.php | 19 -------- php/src/ContainerDefinitionFetcher.php | 15 +++---- php/src/Docker/DockerActionManager.php | 16 +++---- 8 files changed, 32 insertions(+), 81 deletions(-) delete mode 100644 php/src/Container/ContainerInternalPorts.php diff --git a/manual-install/update-yaml.sh b/manual-install/update-yaml.sh index 9f6836a9..ad62aaa9 100644 --- a/manual-install/update-yaml.sh +++ b/manual-install/update-yaml.sh @@ -5,7 +5,7 @@ sed -i 's|","location":"|:|g' /tmp/containers.json sed -i 's|","writeable":false|:ro"|g' /tmp/containers.json sed -i 's|","writeable":true|:rw"|g' /tmp/containers.json OUTPUT="$(cat /tmp/containers.json)" -OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[].internal_ports)')" +OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[].internal_port)')" OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[].secrets)')" OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[] | select(.container_name == "nextcloud-aio-watchtower"))')" OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[] | select(.container_name == "nextcloud-aio-domaincheck"))')" diff --git a/php/containers-schema.json b/php/containers-schema.json index dfab68c3..1fceab26 100644 --- a/php/containers-schema.json +++ b/php/containers-schema.json @@ -32,11 +32,8 @@ "container_name": { "type": "string" }, - "internal_ports": { - "type": "array", - "items": { - "type": "string" - } + "internal_port": { + "type": "string" }, "stop_grace_period": { "type": "integer" diff --git a/php/containers.json b/php/containers.json index 2ff1b4ed..2f49c6de 100644 --- a/php/containers.json +++ b/php/containers.json @@ -13,9 +13,7 @@ "ports": [ "%APACHE_PORT%/tcp" ], - "internal_ports": [ - "%APACHE_PORT%" - ], + "internal_port": "%APACHE_PORT%", "secrets": [], "environment": [ "NC_DOMAIN=%NC_DOMAIN%", @@ -49,9 +47,7 @@ "display_name": "Database", "image": "nextcloud/aio-postgresql", "ports": [], - "internal_ports": [ - "5432" - ], + "internal_port": "5432", "secrets": [ "DATABASE_PASSWORD" ], @@ -89,9 +85,7 @@ "display_name": "Nextcloud", "image": "nextcloud/aio-nextcloud", "ports": [], - "internal_ports": [ - "9000" - ], + "internal_port": "9000", "secrets": [ "DATABASE_PASSWORD", "REDIS_PASSWORD", @@ -171,9 +165,7 @@ "display_name": "Redis", "image": "nextcloud/aio-redis", "ports": [], - "internal_ports": [ - "6379" - ], + "internal_port": "6379", "environment": [ "REDIS_HOST_PASSWORD=%REDIS_PASSWORD%", "TZ=%TIMEZONE%" @@ -198,9 +190,7 @@ "display_name": "Collabora", "image": "nextcloud/aio-collabora", "ports": [], - "internal_ports": [ - "9980" - ], + "internal_port": "9980", "environment": [ "aliasgroup1=https://%NC_DOMAIN%:443", "extra_params=--o:ssl.enable=false --o:ssl.termination=true --o:logging.level=warning --o:home_mode.enable=true %COLLABORA_SECCOMP_POLICY%", @@ -227,9 +217,7 @@ "%TALK_PORT%/tcp", "%TALK_PORT%/udp" ], - "internal_ports": [ - "%TALK_PORT%" - ], + "internal_port": "%TALK_PORT%", "environment": [ "NC_DOMAIN=%NC_DOMAIN%", "TURN_SECRET=%TURN_SECRET%", @@ -253,7 +241,7 @@ "display_name": "Borgbackup", "image": "nextcloud/aio-borgbackup", "ports": [], - "internal_ports": [], + "internal_port": "", "environment": [ "BORG_PASSWORD=%BORGBACKUP_PASSWORD%", "BORG_MODE=%BORGBACKUP_MODE%", @@ -326,7 +314,7 @@ "display_name": "Watchtower", "image": "nextcloud/aio-watchtower", "ports": [], - "internal_ports": [], + "internal_port": "", "environment": [ "CONTAINER_TO_UPDATE=nextcloud-aio-mastercontainer" ], @@ -349,7 +337,7 @@ "ports": [ "%APACHE_PORT%/tcp" ], - "internal_ports": [], + "internal_port": "", "environment": [ "INSTANCE_ID=%INSTANCE_ID%", "APACHE_PORT=%APACHE_PORT%" @@ -367,9 +355,7 @@ "display_name": "ClamAV", "image": "nextcloud/aio-clamav", "ports": [], - "internal_ports": [ - "3310" - ], + "internal_port": "3310", "environment": [ "TZ=%TIMEZONE%", "CLAMD_STARTUP_TIMEOUT=90" @@ -391,9 +377,7 @@ "display_name": "OnlyOffice", "image": "nextcloud/aio-onlyoffice", "ports": [], - "internal_ports": [ - "80" - ], + "internal_port": "80", "environment": [ "TZ=%TIMEZONE%", "JWT_ENABLED=true", @@ -419,9 +403,7 @@ "display_name": "Imaginary", "image": "nextcloud/aio-imaginary", "ports": [], - "internal_ports": [ - "9000" - ], + "internal_port": "9000", "environment": [ "TZ=%TIMEZONE%" ], @@ -436,9 +418,7 @@ "display_name": "Fulltextsearch", "image": "nextcloud/aio-fulltextsearch", "ports": [], - "internal_ports": [ - "9200" - ], + "internal_port": "9200", "environment": [ "TZ=%TIMEZONE%", "discovery.type=single-node", diff --git a/php/psalm-baseline.xml b/php/psalm-baseline.xml index e62c34f0..ce18679f 100644 --- a/php/psalm-baseline.xml +++ b/php/psalm-baseline.xml @@ -46,7 +46,7 @@ $internalPort - $container->GetInternalPorts() !== null + $container->GetInternalPort() !== null diff --git a/php/src/Container/Container.php b/php/src/Container/Container.php index c1330da3..9697911b 100644 --- a/php/src/Container/Container.php +++ b/php/src/Container/Container.php @@ -14,7 +14,7 @@ class Container { private string $restartPolicy; private int $maxShutdownTime; private ContainerPorts $ports; - private ContainerInternalPorts $internalPorts; + private string $internalPorts; private ContainerVolumes $volumes; private ContainerEnvironmentVariables $containerEnvironmentVariables; /** @var string[] */ @@ -30,7 +30,7 @@ class Container { string $restartPolicy, int $maxShutdownTime, ContainerPorts $ports, - ContainerInternalPorts $internalPorts, + string $internalPorts, ContainerVolumes $volumes, ContainerEnvironmentVariables $containerEnvironmentVariables, array $dependsOn, @@ -79,7 +79,7 @@ class Container { return $this->ports; } - public function GetInternalPorts() : ContainerInternalPorts { + public function GetInternalPort() : string { return $this->internalPorts; } diff --git a/php/src/Container/ContainerInternalPorts.php b/php/src/Container/ContainerInternalPorts.php deleted file mode 100644 index fb0716bf..00000000 --- a/php/src/Container/ContainerInternalPorts.php +++ /dev/null @@ -1,19 +0,0 @@ -internalPorts[] = $internalPort; - } - - /** - * @return string[] - */ - public function GetInternalPorts() : array { - return $this->internalPorts; - } -} diff --git a/php/src/ContainerDefinitionFetcher.php b/php/src/ContainerDefinitionFetcher.php index 0d93f4b5..8a5341bf 100644 --- a/php/src/ContainerDefinitionFetcher.php +++ b/php/src/ContainerDefinitionFetcher.php @@ -5,7 +5,6 @@ namespace AIO; use AIO\Container\Container; use AIO\Container\ContainerEnvironmentVariables; use AIO\Container\ContainerPorts; -use AIO\Container\ContainerInternalPorts; use AIO\Container\ContainerVolume; use AIO\Container\ContainerVolumes; use AIO\Container\State\RunningState; @@ -87,14 +86,10 @@ class ContainerDefinitionFetcher $ports->AddPort($port); } - $internalPorts = new ContainerInternalPorts(); - foreach ($entry['internal_ports'] as $internalPort) { - if($internalPort === '%APACHE_PORT%') { - $internalPort = $this->configurationManager->GetApachePort(); - } elseif($internalPort === '%TALK_PORT%') { - $internalPort = $this->configurationManager->GetTalkPort(); - } - $internalPorts->AddInternalPort($internalPort); + if($entry['internal_port'] === '%APACHE_PORT%') { + $entry['internal_port'] = $this->configurationManager->GetApachePort(); + } elseif($entry['internal_port'] === '%TALK_PORT%') { + $entry['internal_port'] = $this->configurationManager->GetTalkPort(); } $volumes = new ContainerVolumes(); @@ -183,7 +178,7 @@ class ContainerDefinitionFetcher $entry['restart'], $entry['stop_grace_period'], $ports, - $internalPorts, + $entry['internal_port'], $volumes, $variables, $dependsOn, diff --git a/php/src/Docker/DockerActionManager.php b/php/src/Docker/DockerActionManager.php index 9550dd44..eed07c35 100644 --- a/php/src/Docker/DockerActionManager.php +++ b/php/src/Docker/DockerActionManager.php @@ -124,15 +124,13 @@ class DockerActionManager } $containerName = $container->GetIdentifier(); - if ($container->GetInternalPorts() !== null) { - foreach($container->GetInternalPorts()->GetInternalPorts() as $internalPort) { - $connection = @fsockopen($containerName, $internalPort, $errno, $errstr, 0.1); - if ($connection) { - fclose($connection); - return new RunningState(); - } else { - return new StartingState(); - } + if ($container->GetInternalPort() !== "") { + $connection = @fsockopen($containerName, (int)$container->GetInternalPort(), $errno, $errstr, 0.1); + if ($connection) { + fclose($connection); + return new RunningState(); + } else { + return new StartingState(); } } else { return new RunningState();