refactor: factor LAVA job artefact URLs into an array

This is a simple change that collects the artefact URLs into a single
associative array, rather than keeping them as free variables. This
makes it a bit more obvious that they are related, and also makes them
local to the function (arrays are local by default).

Change-Id: I38afc31f74bc2e7f5674a96881e5c51c725827e3
Signed-off-by: Chris Kay <chris.kay@arm.com>
diff --git a/fvp_utils.sh b/fvp_utils.sh
index f381990..2621156 100644
--- a/fvp_utils.sh
+++ b/fvp_utils.sh
@@ -344,45 +344,6 @@
             awk -F/ '{print "https://review.trustedfirmware.org/c/" $4 "/" $5}')
     fi
 
-    # possible artefacts
-    backup_fip="$(fvp_gen_bin_url backup_fip.bin)"
-    bl1="$(fvp_gen_bin_url bl1.bin)"
-    bl2="$(fvp_gen_bin_url bl2.bin)"
-    bl31="$(fvp_gen_bin_url bl31.bin)"
-    bl32="$(fvp_gen_bin_url bl32.bin)"
-    busybox="$(fvp_gen_bin_url busybox.bin.gz)"
-    cactus_primary="$(fvp_gen_bin_url cactus-primary.pkg)"
-    cactus_secondary="$(fvp_gen_bin_url cactus-secondary.pkg)"
-    cactus_tertiary="$(fvp_gen_bin_url cactus-tertiary.pkg)"
-    coverage_trace_plugin="${coverage_trace_plugin}"
-    dtb="$(fvp_gen_bin_url ${model_dtb})"
-    el3_payload="$(fvp_gen_bin_url el3_payload.bin)"
-    fip="$(fvp_gen_bin_url fip.bin)"
-    fip_gpt="$(fvp_gen_bin_url fip_gpt.bin)"
-    fvp_spmc_manifest_dtb="$(fvp_gen_bin_url fvp_spmc_manifest.dtb)"
-    fwu_fip="$(fvp_gen_bin_url fwu_fip.bin)"
-    generic_trace="${tfa_downloads}/FastModelsPortfolio_${model_version}/plugins/${model_flavour}/GenericTrace.so"
-    hafnium="$(fvp_gen_bin_url hafnium.bin)"
-    image="$(fvp_gen_bin_url kernel.bin)"
-    ivy="$(fvp_gen_bin_url ivy.pkg)"
-    manifest_dtb="$(fvp_gen_bin_url manifest.dtb)"
-    mcp_rom="$(fvp_gen_bin_url mcp_rom.bin)"
-    mcp_rom_hyphen="$(fvp_gen_bin_url mcp-rom.bin)"
-    ns_bl1u="$(fvp_gen_bin_url ns_bl1u.bin)"
-    ns_bl2u="$(fvp_gen_bin_url ns_bl2u.bin)"
-    ramdisk="$(fvp_gen_bin_url initrd.bin)"
-    romlib="$(fvp_gen_bin_url romlib.bin)"
-    rootfs="$(fvp_gen_bin_url rootfs.bin.gz)"
-    secure_hafnium="$(fvp_gen_bin_url secure_hafnium.bin)"
-    scp_ram="$(fvp_gen_bin_url scp_ram.bin)"
-    scp_ram_hyphen="$(fvp_gen_bin_url scp-ram.bin)"
-    scp_rom="$(fvp_gen_bin_url scp_rom.bin)"
-    scp_rom_hyphen="$(fvp_gen_bin_url scp-rom.bin)"
-    spm="$(fvp_gen_bin_url spm.bin)"
-    tftf="$(fvp_gen_bin_url tftf.bin)"
-    tmp="$(fvp_gen_bin_url tmp.bin)"
-    uboot="$(fvp_gen_bin_url uboot.bin)"
-
     docker_registry="${docker_registry:-}"
     docker_registry="$(docker_registry_append)"
     docker_name="${docker_registry}$model_name"
@@ -432,6 +393,46 @@
         [uboot]="uboot.bin"
     )
 
+    declare -A artefact_urls=(
+        [backup_fip]="$(fvp_gen_bin_url backup_fip.bin)"
+        [bl1]="$(fvp_gen_bin_url bl1.bin)"
+        [bl2]="$(fvp_gen_bin_url bl2.bin)"
+        [bl31]="$(fvp_gen_bin_url bl31.bin)"
+        [bl32]="$(fvp_gen_bin_url bl32.bin)"
+        [busybox]="$(fvp_gen_bin_url busybox.bin.gz)"
+        [cactus_primary]="$(fvp_gen_bin_url cactus-primary.pkg)"
+        [cactus_secondary]="$(fvp_gen_bin_url cactus-secondary.pkg)"
+        [cactus_tertiary]="$(fvp_gen_bin_url cactus-tertiary.pkg)"
+        [coverage_trace_plugin]="${coverage_trace_plugin}"
+        [dtb]="$(fvp_gen_bin_url ${model_dtb})"
+        [el3_payload]="$(fvp_gen_bin_url el3_payload.bin)"
+        [fip]="$(fvp_gen_bin_url fip.bin)"
+        [fip_gpt]="$(fvp_gen_bin_url fip_gpt.bin)"
+        [fvp_spmc_manifest_dtb]="$(fvp_gen_bin_url fvp_spmc_manifest.dtb)"
+        [fwu_fip]="$(fvp_gen_bin_url fwu_fip.bin)"
+        [generic_trace]="${tfa_downloads}/FastModelsPortfolio_${model_version}/plugins/${model_flavour}/GenericTrace.so"
+        [hafnium]="$(fvp_gen_bin_url hafnium.bin)"
+        [image]="$(fvp_gen_bin_url kernel.bin)"
+        [ivy]="$(fvp_gen_bin_url ivy.pkg)"
+        [manifest_dtb]="$(fvp_gen_bin_url manifest.dtb)"
+        [mcp_rom]="$(fvp_gen_bin_url mcp_rom.bin)"
+        [mcp_rom_hyphen]="$(fvp_gen_bin_url mcp-rom.bin)"
+        [ns_bl1u]="$(fvp_gen_bin_url ns_bl1u.bin)"
+        [ns_bl2u]="$(fvp_gen_bin_url ns_bl2u.bin)"
+        [ramdisk]="$(fvp_gen_bin_url initrd.bin)"
+        [romlib]="$(fvp_gen_bin_url romlib.bin)"
+        [rootfs]="$(fvp_gen_bin_url rootfs.bin.gz)"
+        [secure_hafnium]="$(fvp_gen_bin_url secure_hafnium.bin)"
+        [scp_ram]="$(fvp_gen_bin_url scp_ram.bin)"
+        [scp_ram_hyphen]="$(fvp_gen_bin_url scp-ram.bin)"
+        [scp_rom]="$(fvp_gen_bin_url scp_rom.bin)"
+        [scp_rom_hyphen]="$(fvp_gen_bin_url scp-rom.bin)"
+        [spm]="$(fvp_gen_bin_url spm.bin)"
+        [tftf]="$(fvp_gen_bin_url tftf.bin)"
+        [tmp]="$(fvp_gen_bin_url tmp.bin)"
+        [uboot]="$(fvp_gen_bin_url uboot.bin)"
+    )
+
     # In LAVA we don't provide the paths to the artefacts directly, but instead
     # use macros of the form `{XYZ}`. This is a list of regular expression
     # replacements to run on the model parameters file before we add them to the