From b8eca5d6dcbf9d7aef67fe70187ede0ebe38bb2d Mon Sep 17 00:00:00 2001 From: Andy Thompson Date: Tue, 11 Aug 2020 17:42:21 +0100 Subject: [PATCH] Mage external_images function more readable by only excluding matched service images in one go --- src/_base/harness/config/external-images.yml | 28 +++++--------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/src/_base/harness/config/external-images.yml b/src/_base/harness/config/external-images.yml index 098b8822f..a90ba0710 100644 --- a/src/_base/harness/config/external-images.yml +++ b/src/_base/harness/config/external-images.yml @@ -1,28 +1,14 @@ function('external_images', [services]): | #!php + $upstreamImages = $producedImages = []; - $upstreamImages = call_user_func_array( - 'array_merge', - array_map( - function ($service) { - return $service['upstream']; - }, - $services - ) - ); - - $externalImages = array_filter( - $upstreamImages, - function ($image) use ($services) { - $serviceUpstreamImages = array_filter( - $services, - function ($service) use ($image) { - return $service['image'] == $image; - } - ); - return count($serviceUpstreamImages) == 0; + foreach ($services as $service) { + if ($service['image']) { + $producedImages[] = $service['image'] } - ); + $upstreamImages = array_merge($upstreamImages, $service['upstream']); + } + $externalImages = array_diff($upstreamImages, $producedImages); # workspace commands don't allow non-string types = join(' ', $externalImages);