From a909cba332094f0e6e3dc84c15952d753b916222 Mon Sep 17 00:00:00 2001
From: Matthew Baggett <matthew@baggett.me>
Date: Tue, 25 Jun 2024 15:19:09 +0200
Subject: [PATCH] Debuggin' whats wrong with service detection.

---
 docker-compose.yml |  7 +++++++
 src/Bouncer.php    | 24 +++++++++++++++++++-----
 2 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/docker-compose.yml b/docker-compose.yml
index be2f945..532a517 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -6,6 +6,13 @@ services:
     build:
       context: .
       target: loadbalancer
+      args:
+        MAINTAINER: "Test <test@oneupsales.co.uk>"
+        SOURCE_URL: "https://github.com/doesntmatter"
+        GIT_SHA: "1234"
+        GIT_BUILD_ID: "test"
+        GIT_COMMIT_MESSAGE: "testy mctestface"
+        BUILD_DATE: "1970-01-01"
       additional_contexts:
         - php:cli=docker-image://ghcr.io/benzine-framework/php:cli-8.2
     volumes:
diff --git a/src/Bouncer.php b/src/Bouncer.php
index ccbaf13..fdf068c 100644
--- a/src/Bouncer.php
+++ b/src/Bouncer.php
@@ -8,16 +8,19 @@ use AdamBrett\ShellWrapper\Command\Builder as CommandBuilder;
 use AdamBrett\ShellWrapper\Runners\Exec;
 use Aws\S3\S3Client;
 use Bouncer\Logger\AbstractLogger;
+use Bouncer\Logger\Formatter;
+use Bouncer\Logger\Logger;
+use Bouncer\Settings\Settings;
 use GuzzleHttp\Client as Guzzle;
 use GuzzleHttp\Exception\ConnectException;
+use GuzzleHttp\Exception\GuzzleException;
 use GuzzleHttp\Exception\ServerException;
 use League\Flysystem\AwsS3V3\AwsS3V3Adapter;
 use League\Flysystem\FileAttributes;
 use League\Flysystem\Filesystem;
 use League\Flysystem\FilesystemException;
 use League\Flysystem\Local\LocalFilesystemAdapter;
-use Bouncer\Logger\Logger;
-use Bouncer\Logger\Formatter;
+use Monolog\Processor;
 use Spatie\Emoji\Emoji;
 use Symfony\Component\Yaml\Yaml;
 use Twig\Environment as Twig;
@@ -25,9 +28,6 @@ use Twig\Error\LoaderError;
 use Twig\Error\RuntimeError;
 use Twig\Error\SyntaxError;
 use Twig\Loader\FilesystemLoader as TwigLoader;
-use GuzzleHttp\Exception\GuzzleException;
-use Monolog\Processor;
-use Bouncer\Settings\Settings;
 
 class Bouncer
 {
@@ -186,6 +186,7 @@ class Bouncer
     public function findContainersContainerMode(): array
     {
         $bouncerTargets = [];
+        $this->logger->warning('Interrogating CONTAINERS for BOUNCER_* environment variables.', ['emoji' => Emoji::magnifyingGlassTiltedLeft()]);
 
         $containers = json_decode($this->docker->request('GET', 'containers/json')->getBody()->getContents(), true);
         foreach ($containers as $container) {
@@ -262,11 +263,14 @@ class Bouncer
             }
         }
 
+        $this->logger->warning('Interrogating CONTAINERS for BOUNCER_* environment variables found {count} containers.', ['emoji' => Emoji::magnifyingGlassTiltedLeft(), 'count' => count($validBouncerTargets)]);
+
         return $validBouncerTargets;
     }
 
     public function findContainersSwarmMode(): array
     {
+        $this->logger->warning('Interrogating SERVICES for BOUNCER_* environment variables.', ['emoji' => Emoji::magnifyingGlassTiltedLeft()]);
         $bouncerTargets = [];
         $services       = json_decode($this->docker->request('GET', 'services')->getBody()->getContents(), true);
 
@@ -365,6 +369,8 @@ class Bouncer
             }
         }
 
+        $this->logger->warning('Interrogating SERVICES for BOUNCER_* environment variables found {count} containers.', ['emoji' => Emoji::magnifyingGlassTiltedLeft(), 'count' => count($validBouncerTargets)]);
+
         return $validBouncerTargets;
     }
 
@@ -670,6 +676,7 @@ class Bouncer
 
         $this->logger->debug(' > Swarm mode is {enabled}.', ['emoji' => Emoji::honeybee(), 'enabled' => $this->isSwarmMode() ? 'enabled' : 'disabled']);
 
+        /** @var Target[] $targets */
         $targets = array_values(
             array_merge(
                 $this->findContainersContainerMode(),
@@ -677,6 +684,13 @@ class Bouncer
             )
         );
 
+        foreach($targets as $target){
+            $this->logger->info('Found target {target}', ['emoji' => Emoji::magnifyingGlassTiltedLeft(), 'target' => $target->getName()]);
+            \Kint::dump(
+                $target->getDomains(),
+            );
+        }
+
         // Use some bs to sort the targets by domain from right to left.
         $sortedTargets = [];
         foreach ($targets as $target) {