diff --git a/shared/__init__.py b/shared/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/shared/workspaces/__init__.py b/shared/workspaces/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/shared/workspaces/test/test_data/location_files/17A-109_fg_18468.json b/shared/workspaces/test/test_data/location_files/17A-109_fg_18468.json
new file mode 100644
index 0000000000000000000000000000000000000000..32bde904d7761d303360c49c54a7cbf4004d11da
--- /dev/null
+++ b/shared/workspaces/test/test_data/location_files/17A-109_fg_18468.json
@@ -0,0 +1,1111 @@
+{
+  "files": [
+    {
+      "ngas_file_id": "17A-109_2017_02_11_T18_49_09.756.tar",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "17A-109_2017_02_11_T18_49_09.756.tar",
+      "checksum": "655111456",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 308162560,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486843810162.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486843810162",
+      "checksum": "663099363",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 2,
+      "size": 456053712,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486843814178.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486843814178",
+      "checksum": "-1575831526",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 583709759,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844218099.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844218099",
+      "checksum": "49909197",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 12812488,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844226472.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844226472",
+      "checksum": "-179810078",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 24342226,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844235473.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844235473",
+      "checksum": "429529341",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 24342226,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844255472.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844255472",
+      "checksum": "1482990574",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 24342226,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844275472.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844275472",
+      "checksum": "-119129895",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 2,
+      "size": 24342226,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844295481.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844295481",
+      "checksum": "956013048",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 24342226,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844315498.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844315498",
+      "checksum": "-367758597",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 2,
+      "size": 24342226,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844335493.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844335493",
+      "checksum": "-1537359880",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 24342226,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844355471.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844355471",
+      "checksum": "296569084",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 2,
+      "size": 24342226,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844375472.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844375472",
+      "checksum": "1799693437",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 24342226,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844395472.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844395472",
+      "checksum": "1961966131",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 24342341,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844415472.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844415472",
+      "checksum": "-2098677238",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 24342341,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844435471.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844435471",
+      "checksum": "158263524",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 24342341,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844455471.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844455471",
+      "checksum": "350245303",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 24342341,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844475507.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844475507",
+      "checksum": "751683591",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 34590885,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844500699.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844500699",
+      "checksum": "1609401853",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 276499319,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844523730.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844523730",
+      "checksum": "1790852044",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1198131341,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844557502.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844557502",
+      "checksum": "-1121087048",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 64054248,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844723339.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844723339",
+      "checksum": "315338626",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 24342226,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844724221.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844724221",
+      "checksum": "1674442290",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 24342226,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844744222.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844744222",
+      "checksum": "1287922656",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 2,
+      "size": 24342226,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844764222.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844764222",
+      "checksum": "-972094821",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 24342226,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844784221.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844784221",
+      "checksum": "1454111818",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 2,
+      "size": 24342226,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844804222.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844804222",
+      "checksum": "-1009198755",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 24342226,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844824222.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844824222",
+      "checksum": "1616941529",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 2,
+      "size": 24342226,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844844221.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844844221",
+      "checksum": "1298053941",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 24342226,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844864266.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844864266",
+      "checksum": "801646273",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 2,
+      "size": 24342226,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844884221.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844884221",
+      "checksum": "2041766225",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 26904477,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844910410.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844910410",
+      "checksum": "575271856",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 2,
+      "size": 276499319,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844926183.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844926183",
+      "checksum": "1352508634",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 890920896,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844956129.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844956129",
+      "checksum": "99833159",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 5284033620,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486844956129.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486844956129",
+      "checksum": "99833159",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 5284033620,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486845045880.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486845045880",
+      "checksum": "28664494",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 983084100,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486845564431.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486845564431",
+      "checksum": "-2045708831",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 5284033620,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486845564431.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486845564431",
+      "checksum": "-2045708831",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 5284033620,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486845664228.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486845664228",
+      "checksum": "-2053692847",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 983084100,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486846182879.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486846182879",
+      "checksum": "-623334847",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 5284033620,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486846182879.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486846182879",
+      "checksum": "-623334847",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 5284033620,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486846282749.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486846282749",
+      "checksum": "2010876500",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 983084100,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486846801430.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486846801430",
+      "checksum": "1233750892",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2979953520,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1486846801430.bdf",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1486846801430",
+      "checksum": "1233750892",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2979953520,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806805.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ASDM.xml",
+      "checksum": "1172258150",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 8615,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806806.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "Antenna.xml",
+      "checksum": "-677168697",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 10121,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806807.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "CalData.xml",
+      "checksum": "-724222452",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 4038,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806808.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "CalDevice.xml",
+      "checksum": "-830921761",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 582013,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806809.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "CalPointing.xml",
+      "checksum": "1083482267",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 392,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806810.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "CalReduction.xml",
+      "checksum": "1694599615",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 4564,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806811.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ConfigDescription.xml",
+      "checksum": "472738810",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 4090,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806812.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "CorrelatorMode.xml",
+      "checksum": "-1102843093",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 897,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806813.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "DataDescription.xml",
+      "checksum": "-60451139",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 20374,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806814.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "DelayModel.xml",
+      "checksum": "-1617702445",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 389,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806815.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "DelayModelFixedParameters.xml",
+      "checksum": "-1446284715",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1453,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806816.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "DelayModelVariableParameters.xml",
+      "checksum": "-927827839",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 3261,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806817.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "Doppler.xml",
+      "checksum": "1273348133",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 380,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806818.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "Ephemeris.xml",
+      "checksum": "-959903488",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 386,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806819.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "ExecBlock.xml",
+      "checksum": "-926627879",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2165,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806820.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "Feed.xml",
+      "checksum": "1344268705",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 758371,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806821.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "Field.xml",
+      "checksum": "-1985034726",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1963,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806822.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "Flag.xml",
+      "checksum": "444358800",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 291230,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806823.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "Main.xml",
+      "checksum": "1394615011",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 35316,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806824.bin",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "Pointing.bin",
+      "checksum": "1411567783",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 122865,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806825.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "PointingModel.xml",
+      "checksum": "728088158",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 10313,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806826.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "Polarization.xml",
+      "checksum": "1552196607",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 804,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806827.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "Processor.xml",
+      "checksum": "-1327068712",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 612,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806828.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "Receiver.xml",
+      "checksum": "849567317",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 21353,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806829.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "SBSummary.xml",
+      "checksum": "-1228933078",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1500,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806830.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "Scan.xml",
+      "checksum": "-833365872",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 8631,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806831.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "Source.xml",
+      "checksum": "-1155032609",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 92121,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806832.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "SpectralWindow.xml",
+      "checksum": "1255400839",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 40941,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806833.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "State.xml",
+      "checksum": "-685612526",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 551,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806834.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "Station.xml",
+      "checksum": "-572802594",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 5535,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806835.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "Subscan.xml",
+      "checksum": "-2037502563",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 20542,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806836.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "SwitchCycle.xml",
+      "checksum": "1926976049",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 697,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806837.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "SysCal.xml",
+      "checksum": "1719682198",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 377,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806838.bin",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "SysPower.bin",
+      "checksum": "14846238",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 293133635,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1486843806839.sdm",
+      "subdirectory": "17A-109.sb33151327.eb33496982.57795.84034732639",
+      "relative_path": "Weather.xml",
+      "checksum": "-933293551",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 24832,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    }
+  ],
+  "aggregate_size": 45572444823
+}
diff --git a/shared/workspaces/test/test_data/location_files/17A-109_fg_41979.json b/shared/workspaces/test/test_data/location_files/17A-109_fg_41979.json
new file mode 100644
index 0000000000000000000000000000000000000000..0ad9d082bc47ddeb32c83874d2d59803b424eb59
--- /dev/null
+++ b/shared/workspaces/test/test_data/location_files/17A-109_fg_41979.json
@@ -0,0 +1,985 @@
+{
+  "files": [
+    {
+      "ngas_file_id": "17A-109_2017_05_19_T19_25_06.583.tar",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "17A-109_2017_05_19_T19_25_06.583.tar",
+      "checksum": "-1917823728",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 2,
+      "size": 263628800,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495208975419.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495208975419",
+      "checksum": "-144787515",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 714151256,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495209031153.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495209031153",
+      "checksum": "1370765046",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 238896305,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495209554929.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495209554929",
+      "checksum": "-2076123938",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 119451725,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495209564938.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495209564938",
+      "checksum": "-173613419",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 549452213,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495209594847.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495209594847",
+      "checksum": "130192588",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 836119205,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495209714529.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495209714529",
+      "checksum": "-104464587",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 979452701,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495209894045.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495209894045",
+      "checksum": "1016770004",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2699454653,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495210103477.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495210103477",
+      "checksum": "-1844821169",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2556121157,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495210671878.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495210671878",
+      "checksum": "-1341756846",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 406118717,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495211210428.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495211210428",
+      "checksum": "-1083701930",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 812230494,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495211300177.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495211300177",
+      "checksum": "1529871085",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 692785884,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495211479678.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495211479678",
+      "checksum": "1575043793",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2699455332,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495211629276.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495211629276",
+      "checksum": "-1464110576",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2556121800,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495212197730.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495212197730",
+      "checksum": "-449082576",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 406118820,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495212736243.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495212736243",
+      "checksum": "522497003",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2675566410,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495212825976.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495212825976",
+      "checksum": "228005896",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2556121800,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495213394428.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495213394428",
+      "checksum": "-132216914",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 406118820,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495213932977.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495213932977",
+      "checksum": "1382167528",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 836119416,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495214022728.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495214022728",
+      "checksum": "-373617661",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 692785884,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495214202227.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495214202227",
+      "checksum": "-748160633",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2699455332,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495214351826.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495214351826",
+      "checksum": "492163010",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2532232878,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495214920278.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495214920278",
+      "checksum": "-1577909914",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 406118820,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495215458777.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495215458777",
+      "checksum": "-241925708",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2699455332,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495215548541.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495215548541",
+      "checksum": "2125498241",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2556121800,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495216116978.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495216116978",
+      "checksum": "1300175828",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 406118820,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495216655527.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495216655527",
+      "checksum": "-1557323292",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 812230494,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495216745278.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495216745278",
+      "checksum": "-543519127",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 692785884,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495216924777.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495216924777",
+      "checksum": "225409799",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2699455332,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495217074376.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495217074376",
+      "checksum": "-712757804",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2699455332,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495217642829.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495217642829",
+      "checksum": "-1926263831",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 406118820,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495218211293.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495218211293",
+      "checksum": "-1716691546",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2675566410,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495218301030.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495218301030",
+      "checksum": "-1982648223",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2699455332,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495218869478.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495218869478",
+      "checksum": "1338161107",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 406118820,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1495219437879.bdf",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1495219437879",
+      "checksum": "1668836489",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1122786480,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972975.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ASDM.xml",
+      "checksum": "-388730196",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 8613,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972976.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "Antenna.xml",
+      "checksum": "-1406746166",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 10914,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972977.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "CalData.xml",
+      "checksum": "2129790671",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 6655,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972978.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "CalDevice.xml",
+      "checksum": "-557576464",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 428455,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972979.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "CalPointing.xml",
+      "checksum": "2040612067",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 392,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972980.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "CalReduction.xml",
+      "checksum": "766431827",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 7548,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972981.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ConfigDescription.xml",
+      "checksum": "403499755",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 3614,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972982.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "CorrelatorMode.xml",
+      "checksum": "-154024918",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 897,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972983.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "DataDescription.xml",
+      "checksum": "-171436082",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 13974,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972984.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "DelayModel.xml",
+      "checksum": "137878731",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 389,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972985.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "DelayModelFixedParameters.xml",
+      "checksum": "-732868035",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1453,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972986.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "DelayModelVariableParameters.xml",
+      "checksum": "-2132151079",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 3258,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972987.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "Doppler.xml",
+      "checksum": "-1139741059",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 380,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972988.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "Ephemeris.xml",
+      "checksum": "-1496097382",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 386,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972989.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "ExecBlock.xml",
+      "checksum": "1276336790",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2187,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972990.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "Feed.xml",
+      "checksum": "1902005950",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 557905,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972991.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "Field.xml",
+      "checksum": "-217023133",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1963,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972992.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "Flag.xml",
+      "checksum": "-799820329",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 279897,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972993.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "Main.xml",
+      "checksum": "-1996977948",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 31458,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972994.bin",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "Pointing.bin",
+      "checksum": "-804680729",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1305,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972995.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "PointingModel.xml",
+      "checksum": "1135443205",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 11107,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972996.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "Polarization.xml",
+      "checksum": "1289334348",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 804,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972997.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "Processor.xml",
+      "checksum": "-2032915679",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 612,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972998.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "Receiver.xml",
+      "checksum": "1476808437",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 14517,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208972999.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "SBSummary.xml",
+      "checksum": "-2039108750",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1500,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208973000.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "Scan.xml",
+      "checksum": "539809260",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 16701,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208973001.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "Source.xml",
+      "checksum": "-1518702232",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 61347,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208973002.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "SpectralWindow.xml",
+      "checksum": "-35188444",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 27799,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208973003.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "State.xml",
+      "checksum": "1080152948",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 551,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208973004.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "Station.xml",
+      "checksum": "1166103029",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 5972,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208973005.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "Subscan.xml",
+      "checksum": "-609938311",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 20039,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208973006.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "SwitchCycle.xml",
+      "checksum": "2140647318",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 697,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208973007.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "SysCal.xml",
+      "checksum": "1417207942",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 377,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208973008.bin",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "SysPower.bin",
+      "checksum": "-1428249263",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 865551713,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1495208973009.sdm",
+      "subdirectory": "17A-109.sb33151331.eb33786546.57892.65940042824",
+      "relative_path": "Weather.xml",
+      "checksum": "628952511",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 77335,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    }
+  ],
+  "aggregate_size": 50076899992
+}
diff --git a/shared/workspaces/test/test_data/location_files/CALIBRATION.json b/shared/workspaces/test/test_data/location_files/CALIBRATION.json
new file mode 100644
index 0000000000000000000000000000000000000000..01c1075fee70cdd9ed5ceac91b14455289dfee27
--- /dev/null
+++ b/shared/workspaces/test/test_data/location_files/CALIBRATION.json
@@ -0,0 +1,19 @@
+{
+  "files": [
+    {
+      "ngas_file_id": "uid____EVLA_calibration_d20461ec-b0ad-44fe-86ad-a25b7a97e4c6.tar",
+      "subdirectory": "18B-265_2019_12_10_T00_00_59.203.tar",
+      "relative_path": "18B-265_2019_12_10_T00_00_59.203.tar",
+      "checksum": "722663767",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 27668480,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    }
+  ],
+  "aggregate_size": 27668480
+}
diff --git a/shared/workspaces/test/test_data/location_files/EMPTY.json b/shared/workspaces/test/test_data/location_files/EMPTY.json
new file mode 100644
index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc
--- /dev/null
+++ b/shared/workspaces/test/test_data/location_files/EMPTY.json
@@ -0,0 +1 @@
+
diff --git a/shared/workspaces/test/test_data/location_files/IMG.json b/shared/workspaces/test/test_data/location_files/IMG.json
new file mode 100644
index 0000000000000000000000000000000000000000..650c2fd9a92a03cc2e1c9223d7682d5b9517e759
--- /dev/null
+++ b/shared/workspaces/test/test_data/location_files/IMG.json
@@ -0,0 +1,33 @@
+{
+  "files": [
+    {
+      "ngas_file_id": "uid____evla_image_56a10be7-f1c2-4788-8651-6ecc5bfbc2f1.fits",
+      "relative_path": "VLASS1.1.ql.T01t01.J000232-383000.10.2048.v1.I.iter1.image.pbcor.tt0.subim.fits",
+      "checksum": "-1675665022",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 55425600,
+      "subdirectory": "uid___evla_image_0590fab3-c386-4513-b1cb-67ce12c96999",
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_image_b10137d8-d2ef-4286-a5c9-a3b8cd74f276.fits",
+      "relative_path": "VLASS1.1.ql.T01t01.J000232-383000.10.2048.v1.I.iter1.image.pbcor.tt0.rms.subim.fits",
+      "checksum": "1271435719",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 55425600,
+      "subdirectory": "uid___evla_image_0590fab3-c386-4513-b1cb-67ce12c96999",
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    }
+  ],
+  "aggregate_size": 110851200
+}
diff --git a/shared/workspaces/test/test_data/location_files/NOT_JSON.json b/shared/workspaces/test/test_data/location_files/NOT_JSON.json
new file mode 100644
index 0000000000000000000000000000000000000000..a0634130df46d4d8340c3d78f5bbb66b28194762
--- /dev/null
+++ b/shared/workspaces/test/test_data/location_files/NOT_JSON.json
@@ -0,0 +1,47 @@
+"files__ngas_file_id","files__subdirectory","files__relative_path","files__checksum","files__checksum_type","files__version","files__size","files__server__server","files__server__location","files__server__cluster","aggregate_size"
+"17B-197_2018_02_19_T15_59_16.097.tar","17B-197.sb34812522.eb35115211.58168.58572621528","17B-197_2018_02_19_T15_59_16.097.tar","-1848259250","ngamsGenCrc32","1","108677120","nmngas01.aoc.nrao.edu:7777","DSOC","DSOC","10756612803"
+"uid____evla_bdf_1519049009612.bdf","17B-197.sb34812522.eb35115211.58168.58572621528","ASDMBinary/uid____evla_bdf_1519049009612","-1940987795","ngamsGenCrc32","1","1182557411","nmngas01.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid____evla_bdf_1519049009677.bdf","17B-197.sb34812522.eb35115211.58168.58572621528","ASDMBinary/uid____evla_bdf_1519049009677","179641698","ngamsGenCrc32","1","1182557411","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid____evla_bdf_1519049308881.bdf","17B-197.sb34812522.eb35115211.58168.58572621528","ASDMBinary/uid____evla_bdf_1519049308881","1014257011","ngamsGenCrc32","1","2233715651","nmngas01.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid____evla_bdf_1519049608026.bdf","17B-197.sb34812522.eb35115211.58168.58572621528","ASDMBinary/uid____evla_bdf_1519049608026","-1976622261","ngamsGenCrc32","1","250848971","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid____evla_bdf_1519050171477.bdf","17B-197.sb34812522.eb35115211.58168.58572621528","ASDMBinary/uid____evla_bdf_1519050171477","1816906861","ngamsGenCrc32","1","2233715651","nmngas01.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid____evla_bdf_1519050236328.bdf","17B-197.sb34812522.eb35115211.58168.58572621528","ASDMBinary/uid____evla_bdf_1519050236328","-307488315","ngamsGenCrc32","1","238903991","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid____evla_bdf_1519050799776.bdf","17B-197.sb34812522.eb35115211.58168.58572621528","ASDMBinary/uid____evla_bdf_1519050799776","-1328993160","ngamsGenCrc32","1","2233715651","nmngas01.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid____evla_bdf_1519050864577.bdf","17B-197.sb34812522.eb35115211.58168.58572621528","ASDMBinary/uid____evla_bdf_1519050864577","-479896350","ngamsGenCrc32","1","250848971","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid____evla_bdf_1519051428077.bdf","17B-197.sb34812522.eb35115211.58168.58572621528","ASDMBinary/uid____evla_bdf_1519051428077","472054972","ngamsGenCrc32","1","585308411","nmngas01.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid____evla_bdf_1519051492876.bdf","17B-197.sb34812522.eb35115211.58168.58572621528","ASDMBinary/uid____evla_bdf_1519051492876","1924737975","ngamsGenCrc32","1","143344224","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007480.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","ASDM.xml","-1938444872","ngamsGenCrc32","1","8608","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007481.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","Antenna.xml","731876586","ngamsGenCrc32","1","10914","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007482.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","CalData.xml","-1120840598","ngamsGenCrc32","1","3513","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007483.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","CalDevice.xml","757388852","ngamsGenCrc32","1","201774","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007484.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","CalPointing.xml","739060371","ngamsGenCrc32","1","392","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007485.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","CalReduction.xml","-1522990164","ngamsGenCrc32","1","3966","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007486.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","ConfigDescription.xml","-386639755","ngamsGenCrc32","1","1978","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007487.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","CorrelatorMode.xml","-1265207176","ngamsGenCrc32","1","897","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007488.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","DataDescription.xml","1240412425","ngamsGenCrc32","1","6774","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007489.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","DelayModel.xml","-2137796184","ngamsGenCrc32","1","389","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007490.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","DelayModelFixedParameters.xml","1695284428","ngamsGenCrc32","1","1453","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007491.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","DelayModelVariableParameters.xml","1493010966","ngamsGenCrc32","1","3263","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007492.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","Doppler.xml","900588874","ngamsGenCrc32","1","380","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007493.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","Ephemeris.xml","2075127290","ngamsGenCrc32","1","386","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007494.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","ExecBlock.xml","1103014157","ngamsGenCrc32","1","2201","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007495.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","Feed.xml","1924567794","ngamsGenCrc32","1","262165","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007496.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","Field.xml","714812329","ngamsGenCrc32","1","1566","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007497.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","Flag.xml","595548402","ngamsGenCrc32","1","80587","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007498.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","Main.xml","870651454","ngamsGenCrc32","1","9506","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007499.bin","17B-197.sb34812522.eb35115211.58168.58572621528","Pointing.bin","632517875","ngamsGenCrc32","1","1305","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007500.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","PointingModel.xml","1275331568","ngamsGenCrc32","1","11107","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007501.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","Polarization.xml","309054638","ngamsGenCrc32","1","804","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007502.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","Processor.xml","1082903303","ngamsGenCrc32","1","612","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007503.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","Receiver.xml","-1106163516","ngamsGenCrc32","1","7029","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007504.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","SBSummary.xml","-1404345201","ngamsGenCrc32","1","1500","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007505.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","Scan.xml","-1693987622","ngamsGenCrc32","1","5209","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007506.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","Source.xml","-1998300721","ngamsGenCrc32","1","22827","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007507.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","SpectralWindow.xml","-1526987140","ngamsGenCrc32","1","13253","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007508.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","State.xml","1454256913","ngamsGenCrc32","1","551","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007509.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","Station.xml","-588825552","ngamsGenCrc32","1","5950","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007510.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","Subscan.xml","1727576586","ngamsGenCrc32","1","6460","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007511.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","SwitchCycle.xml","190692982","ngamsGenCrc32","1","697","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007512.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","SysCal.xml","-933993268","ngamsGenCrc32","1","377","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007513.bin","17B-197.sb34812522.eb35115211.58168.58572621528","SysPower.bin","-1396537698","ngamsGenCrc32","1","111720979","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
+"uid___evla_sdm_X1519049007514.sdm","17B-197.sb34812522.eb35115211.58168.58572621528","Weather.xml","597666822","ngamsGenCrc32","1","19968","nmngas02.aoc.nrao.edu:7777","DSOC","DSOC",""
diff --git a/shared/workspaces/test/test_data/location_files/VLA_BAD_SERVER.json b/shared/workspaces/test/test_data/location_files/VLA_BAD_SERVER.json
new file mode 100644
index 0000000000000000000000000000000000000000..6871398f90f5de76c3e512287910ad5ddf14e22c
--- /dev/null
+++ b/shared/workspaces/test/test_data/location_files/VLA_BAD_SERVER.json
@@ -0,0 +1,18 @@
+{
+  "files": [
+    {
+      "ngas_file_id": "uid____evla_bdf_1587067245117.bdf",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1587067245117",
+      "checksum": "-582543640",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 64269088,
+      "server": {
+        "server": "nmngas_BOGUS.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    }
+  ]
+}
diff --git a/shared/workspaces/test/test_data/location_files/VLA_LARGE_EB.json b/shared/workspaces/test/test_data/location_files/VLA_LARGE_EB.json
new file mode 100644
index 0000000000000000000000000000000000000000..0645320163660108c6a0bd9b17d5e62986aa6db4
--- /dev/null
+++ b/shared/workspaces/test/test_data/location_files/VLA_LARGE_EB.json
@@ -0,0 +1,649 @@
+{
+  "files": [
+    {
+      "ngas_file_id": "17B-197_2018_02_19_T15_59_16.097.tar",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "17B-197_2018_02_19_T15_59_16.097.tar",
+      "checksum": "-1848259250",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 108677120,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1519049009612.bdf",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1519049009612",
+      "checksum": "-1940987795",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1182557411,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1519049009677.bdf",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1519049009677",
+      "checksum": "179641698",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1182557411,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1519049308881.bdf",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1519049308881",
+      "checksum": "1014257011",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2233715651,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1519049608026.bdf",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1519049608026",
+      "checksum": "-1976622261",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 250848971,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1519050171477.bdf",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1519050171477",
+      "checksum": "1816906861",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2233715651,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1519050236328.bdf",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1519050236328",
+      "checksum": "-307488315",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 238903991,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1519050799776.bdf",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1519050799776",
+      "checksum": "-1328993160",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2233715651,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1519050864577.bdf",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1519050864577",
+      "checksum": "-479896350",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 250848971,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1519051428077.bdf",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1519051428077",
+      "checksum": "472054972",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 585308411,
+      "server": {
+        "server": "nmngas01.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1519051492876.bdf",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1519051492876",
+      "checksum": "1924737975",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 143344224,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007480.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "ASDM.xml",
+      "checksum": "-1938444872",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 8608,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007481.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "Antenna.xml",
+      "checksum": "731876586",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 10914,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007482.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "CalData.xml",
+      "checksum": "-1120840598",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 3513,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007483.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "CalDevice.xml",
+      "checksum": "757388852",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 201774,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007484.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "CalPointing.xml",
+      "checksum": "739060371",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 392,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007485.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "CalReduction.xml",
+      "checksum": "-1522990164",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 3966,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007486.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "ConfigDescription.xml",
+      "checksum": "-386639755",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1978,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007487.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "CorrelatorMode.xml",
+      "checksum": "-1265207176",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 897,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007488.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "DataDescription.xml",
+      "checksum": "1240412425",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 6774,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007489.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "DelayModel.xml",
+      "checksum": "-2137796184",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 389,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007490.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "DelayModelFixedParameters.xml",
+      "checksum": "1695284428",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1453,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007491.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "DelayModelVariableParameters.xml",
+      "checksum": "1493010966",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 3263,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007492.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "Doppler.xml",
+      "checksum": "900588874",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 380,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007493.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "Ephemeris.xml",
+      "checksum": "2075127290",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 386,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007494.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "ExecBlock.xml",
+      "checksum": "1103014157",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2201,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007495.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "Feed.xml",
+      "checksum": "1924567794",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 262165,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007496.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "Field.xml",
+      "checksum": "714812329",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1566,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007497.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "Flag.xml",
+      "checksum": "595548402",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 80587,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007498.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "Main.xml",
+      "checksum": "870651454",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 9506,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007499.bin",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "Pointing.bin",
+      "checksum": "632517875",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1305,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007500.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "PointingModel.xml",
+      "checksum": "1275331568",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 11107,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007501.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "Polarization.xml",
+      "checksum": "309054638",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 804,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007502.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "Processor.xml",
+      "checksum": "1082903303",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 612,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007503.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "Receiver.xml",
+      "checksum": "-1106163516",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 7029,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007504.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "SBSummary.xml",
+      "checksum": "-1404345201",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1500,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007505.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "Scan.xml",
+      "checksum": "-1693987622",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 5209,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007506.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "Source.xml",
+      "checksum": "-1998300721",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 22827,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007507.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "SpectralWindow.xml",
+      "checksum": "-1526987140",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 13253,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007508.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "State.xml",
+      "checksum": "1454256913",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 551,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007509.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "Station.xml",
+      "checksum": "-588825552",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 5950,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007510.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "Subscan.xml",
+      "checksum": "1727576586",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 6460,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007511.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "SwitchCycle.xml",
+      "checksum": "190692982",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 697,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007512.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "SysCal.xml",
+      "checksum": "-933993268",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 377,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007513.bin",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "SysPower.bin",
+      "checksum": "-1396537698",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 111720979,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1519049007514.sdm",
+      "subdirectory": "17B-197.sb34812522.eb35115211.58168.58572621528",
+      "relative_path": "Weather.xml",
+      "checksum": "597666822",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 19968,
+      "server": {
+        "server": "nmngas02.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    }
+  ],
+  "aggregate_size": 10756612803
+}
\ No newline at end of file
diff --git a/shared/workspaces/test/test_data/location_files/VLA_SMALL_EB.json b/shared/workspaces/test/test_data/location_files/VLA_SMALL_EB.json
new file mode 100644
index 0000000000000000000000000000000000000000..f6d5fae636199f19a2a6ca083334ddfefd2015bc
--- /dev/null
+++ b/shared/workspaces/test/test_data/location_files/VLA_SMALL_EB.json
@@ -0,0 +1,621 @@
+{
+  "files": [
+    {
+      "ngas_file_id": "uid____evla_bdf_1587067245117.bdf",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1587067245117",
+      "checksum": "-582543640",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 64269088,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1587067253010.bdf",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1587067253010",
+      "checksum": "-1289220584",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 48202328,
+      "server": {
+        "server": "nmngas03.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1587067293008.bdf",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1587067293008",
+      "checksum": "-466220771",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 48202328,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1587067323008.bdf",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1587067323008",
+      "checksum": "-135545102",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 48202328,
+      "server": {
+        "server": "nmngas03.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1587067353007.bdf",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1587067353007",
+      "checksum": "1434732210",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 48202328,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1587067383008.bdf",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1587067383008",
+      "checksum": "1068133024",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 14462132,
+      "server": {
+        "server": "nmngas03.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244583.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "ASDM.xml",
+      "checksum": "-914094758",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 9339,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244584.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Annotation.xml",
+      "checksum": "948050774",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 389,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244585.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Antenna.xml",
+      "checksum": "-969021375",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 11301,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244586.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "CalAntennaSolutions.xml",
+      "checksum": "-1013583173",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 416,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244587.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "CalData.xml",
+      "checksum": "756463717",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 3470,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244588.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "CalDevice.xml",
+      "checksum": "-1601788711",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 28196,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244589.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "CalPointing.xml",
+      "checksum": "1685625223",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 392,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244590.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "CalReduction.xml",
+      "checksum": "1604385900",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 3965,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244591.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "ConfigDescription.xml",
+      "checksum": "149033821",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1529,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244592.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "CorrelatorMode.xml",
+      "checksum": "2089954768",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 897,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244593.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "DataDescription.xml",
+      "checksum": "495107328",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1196,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244594.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "DelayModel.xml",
+      "checksum": "-76828257",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 389,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244595.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "DelayModelFixedParameters.xml",
+      "checksum": "176021642",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1453,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244596.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "DelayModelVariableParameters.xml",
+      "checksum": "1435021925",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 3266,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244597.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Doppler.xml",
+      "checksum": "-802771653",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 380,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244598.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Ephemeris.xml",
+      "checksum": "9466567",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 386,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244599.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "ExecBlock.xml",
+      "checksum": "1200489340",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2182,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244600.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Feed.xml",
+      "checksum": "-140607651",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 34231,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244601.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Field.xml",
+      "checksum": "-2107806642",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 802,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244602.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Flag.xml",
+      "checksum": "1601291128",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 19613,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244603.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Main.xml",
+      "checksum": "-233756297",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 5883,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244604.bin",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Pointing.bin",
+      "checksum": "-2050985503",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1305,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244605.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "PointingModel.xml",
+      "checksum": "-1271702380",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 11504,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244606.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Polarization.xml",
+      "checksum": "665895897",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 804,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244607.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Processor.xml",
+      "checksum": "-1435004927",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 612,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244608.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Pulsar.xml",
+      "checksum": "-1260389839",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 377,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244609.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Receiver.xml",
+      "checksum": "1571028130",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1213,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244610.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "SBSummary.xml",
+      "checksum": "2079003550",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1489,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244611.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Scan.xml",
+      "checksum": "-157934591",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 3137,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244612.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Source.xml",
+      "checksum": "501014918",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1323,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244613.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "SpectralWindow.xml",
+      "checksum": "763862358",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2005,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244614.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "State.xml",
+      "checksum": "748185968",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 747,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244615.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Station.xml",
+      "checksum": "-1770346651",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 6123,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244616.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Subscan.xml",
+      "checksum": "730904569",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 3266,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244617.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "SwitchCycle.xml",
+      "checksum": "-1173704056",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 697,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244618.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "SysCal.xml",
+      "checksum": "-39941162",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 377,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244619.bin",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "SysPower.bin",
+      "checksum": "-1679911076",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 914509,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244620.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Weather.xml",
+      "checksum": "-2073213468",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1651,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    }
+  ],
+  "aggregate_size": 272621346
+}
diff --git a/shared/workspaces/test/test_data/location_files/VLA_SMALL_EB_BUSTED.json b/shared/workspaces/test/test_data/location_files/VLA_SMALL_EB_BUSTED.json
new file mode 100644
index 0000000000000000000000000000000000000000..fd778dfbf8d46ad12830c9c97c89d124b5c34cd8
--- /dev/null
+++ b/shared/workspaces/test/test_data/location_files/VLA_SMALL_EB_BUSTED.json
@@ -0,0 +1,623 @@
+{
+  "files": [
+    {
+      "ngas_file_id": "uid____evla_bdf_1587067245117.bdf",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1587067245117",
+      "checksum": "-582543640",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 64269088,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1587067253010.bdf",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1587067253010",
+      "checksum": "-1289220584",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 48202328,
+      "server": {
+        "server": "nmngas03.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1587067293008.bdf",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1587067293008",
+      "checksum": "-466220771",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 48202328,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1587067323008.bdf",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1587067323008",
+      "checksum": "-135545102",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 48202328,
+      "server": {
+        "server": "nmngas03.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1587067353007.bdf",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1587067353007",
+      "checksum": "1434732210",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 48202328,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid____evla_bdf_1587067383008.bdf",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "ASDMBinary/uid____evla_bdf_1587067383008",
+      "checksum": "1068133024",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 14462132,
+      "server": {
+        "server": "nmngas03.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244583.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "ASDM.xml",
+      "checksum": "-914094758",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 9339,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244584.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Annotation.xml",
+      "checksum": "948050774",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 389,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244585.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Antenna.xml",
+      "checksum": "-969021375",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 11301,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244586.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "CalAntennaSolutions.xml",
+      "checksum": "-1013583173",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 416,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244587.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "CalData.xml",
+      "checksum": "756463717",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 3470,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244588.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "CalDevice.xml",
+      "checksum": "-1601788711",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 28196,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244589.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "CalPointing.xml",
+      "checksum": "1685625223",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 392,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244590.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "CalReduction.xml",
+      "checksum": "1604385900",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 3965,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244591.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "ConfigDescription.xml",
+      "checksum": "149033821",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1529,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244592.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "CorrelatorMode.xml",
+      "checksum": "2089954768",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 897,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244593.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "DataDescription.xml",
+      "checksum": "495107328",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1196,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244594.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "DelayModel.xml",
+      "checksum": "-76828257",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 389,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244595.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "DelayModelFixedParameters.xml",
+      "checksum": "176021642",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1453,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244596.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "DelayModelVariableParameters.xml",
+      "checksum": "1435021925",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 3266,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244597.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Doppler.xml",
+      "checksum": "-802771653",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 380,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244598.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Ephemeris.xml",
+      "checksum": "9466567",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 386,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244599.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "ExecBlock.xml",
+      "checksum": "1200489340",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2182,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244600.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Feed.xml",
+      "checksum": "-140607651",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 34231,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244601.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Field.xml",
+      "checksum": "-2107806642",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 802,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244602.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Flag.xml",
+      "checksum": "1601291128",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 19613,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244603.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Main.xml",
+      "checksum": "-233756297",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 5883,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244604.bin",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Pointing.bin",
+      "checksum": "-2050985503",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1305,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244605.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "PointingModel.xml",
+      "checksum": "-1271702380",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 11504,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244606.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Polarization.xml",
+      "checksum": "665895897",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 804,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244607.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Processor.xml",
+      "checksum": "-1435004927",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 612,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244608.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Pulsar.xml",
+      "checksum": "-1260389839",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 377,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244609.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Receiver.xml",
+      "checksum": "1571028130",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1213,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244610.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "SBSummary.xml",
+      "checksum": "2079003550",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1489,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244611.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Scan.xml",
+      "checksum": "-157934591",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 3137,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244612.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Source.xml",
+      "checksum": "501014918",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 1323,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244613.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "SpectralWindow.xml",
+      "checksum": "763862358",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 2005,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244614.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "State.xml",
+      "checksum": "748185968",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 747,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244615.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Station.xml",
+      "checksum": "-1770346651",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 6123,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244616.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Subscan.xml",
+      "checksum": "730904569",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 3266,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244617.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "SwitchCycle.xml",
+      "checksum": "-1173704056",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 697,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244618.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "SysCal.xml",
+      "checksum": "-39941162",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 377,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244619.bin",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "SysPower.bin",
+      "checksum": "-1679911076",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 914509,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "uid___evla_sdm_X1587067244620.sdm",
+      "subdirectory": "sysstartS.58955.83384832176",
+      "relative_path": "Weather.xml",
+      "checksum": "-2073213468",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 165100,
+      "server": {
+        "server": "nmngas04.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    }
+  ],
+  "aggregate_size": 272621346
+}
+
+
diff --git a/shared/workspaces/test/test_data/location_files/VLBA_EB.json b/shared/workspaces/test/test_data/location_files/VLBA_EB.json
new file mode 100644
index 0000000000000000000000000000000000000000..eb21024e715b1595e68ca6811b540ac29c4c46c1
--- /dev/null
+++ b/shared/workspaces/test/test_data/location_files/VLBA_EB.json
@@ -0,0 +1,229 @@
+{
+  "files": [
+    {
+      "ngas_file_id": "VLBA_VSN001157_file11.uvfits",
+      "subdirectory": null,
+      "relative_path": "VLBA_VSN001157_file11.uvfits",
+      "checksum": "567626972",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 17222400,
+      "server": {
+        "server": "nmngas03.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "VLBA_VSN001158_file25.uvfits",
+      "subdirectory": null,
+      "relative_path": "VLBA_VSN001158_file25.uvfits",
+      "checksum": "1690989225",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 201456000,
+      "server": {
+        "server": "nmngas03.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "VLBA_VSN001158_file2.uvfits",
+      "subdirectory": null,
+      "relative_path": "VLBA_VSN001158_file2.uvfits",
+      "checksum": "-2095403451",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 17251200,
+      "server": {
+        "server": "nmngas03.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "VLBA_VSN001158_file5.uvfits",
+      "subdirectory": null,
+      "relative_path": "VLBA_VSN001158_file5.uvfits",
+      "checksum": "-61921510",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 129427200,
+      "server": {
+        "server": "nmngas03.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "VLBA_VSN001159_file10.uvfits",
+      "subdirectory": null,
+      "relative_path": "VLBA_VSN001159_file10.uvfits",
+      "checksum": "1018054098",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 214588800,
+      "server": {
+        "server": "nmngas03.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "VLBA_VSN001159_file11.uvfits",
+      "subdirectory": null,
+      "relative_path": "VLBA_VSN001159_file11.uvfits",
+      "checksum": "647053836",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 147052800,
+      "server": {
+        "server": "nmngas03.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "VLBA_VSN001159_file12.uvfits",
+      "subdirectory": null,
+      "relative_path": "VLBA_VSN001159_file12.uvfits",
+      "checksum": "-1706351301",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 77270400,
+      "server": {
+        "server": "nmngas03.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "VLBA_VSN001160_file12.uvfits",
+      "subdirectory": null,
+      "relative_path": "VLBA_VSN001160_file12.uvfits",
+      "checksum": "-96770138",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 55785600,
+      "server": {
+        "server": "nmngas03.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "VLBA_VSN001160_file9.uvfits",
+      "subdirectory": null,
+      "relative_path": "VLBA_VSN001160_file9.uvfits",
+      "checksum": "1625286639",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 130233600,
+      "server": {
+        "server": "nmngas03.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "VLBA_VSN001161_file5.uvfits",
+      "subdirectory": null,
+      "relative_path": "VLBA_VSN001161_file5.uvfits",
+      "checksum": "-72933226",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 257414400,
+      "server": {
+        "server": "nmngas03.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "VLBA_VSN001161_file6.uvfits",
+      "subdirectory": null,
+      "relative_path": "VLBA_VSN001161_file6.uvfits",
+      "checksum": "-936981471",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 282988800,
+      "server": {
+        "server": "nmngas03.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "VLBA_VSN001161_file7.uvfits",
+      "subdirectory": null,
+      "relative_path": "VLBA_VSN001161_file7.uvfits",
+      "checksum": "1564248324",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 163584000,
+      "server": {
+        "server": "nmngas03.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "VLBA_VSN001161_file8.uvfits",
+      "subdirectory": null,
+      "relative_path": "VLBA_VSN001161_file8.uvfits",
+      "checksum": "-604752879",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 87292800,
+      "server": {
+        "server": "nmngas03.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "VLBA_VSN001161_file9.uvfits",
+      "subdirectory": null,
+      "relative_path": "VLBA_VSN001161_file9.uvfits",
+      "checksum": "1029294087",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 68889600,
+      "server": {
+        "server": "nmngas03.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "VLBA_VSN001162_file1.uvfits",
+      "subdirectory": null,
+      "relative_path": "VLBA_VSN001162_file1.uvfits",
+      "checksum": "-1078029753",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 274867200,
+      "server": {
+        "server": "nmngas03.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    },
+    {
+      "ngas_file_id": "VLBA_VSN001162_file44.uvfits",
+      "subdirectory": null,
+      "relative_path": "VLBA_VSN001162_file44.uvfits",
+      "checksum": "1607110096",
+      "checksum_type": "ngamsGenCrc32",
+      "version": 1,
+      "size": 15235200,
+      "server": {
+        "server": "nmngas03.aoc.nrao.edu:7777",
+        "location": "DSOC",
+        "cluster": "DSOC"
+      }
+    }
+  ],
+  "aggregate_size": 2140560000
+}
\ No newline at end of file
diff --git a/shared/workspaces/test/test_data/products/__init__.py b/shared/workspaces/test/test_data/products/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/shared/workspaces/test/test_data/products/expected_values_alma.py b/shared/workspaces/test/test_data/products/expected_values_alma.py
new file mode 100644
index 0000000000000000000000000000000000000000..a0f1b1a57d0880448585abdfba983fb079e704a6
--- /dev/null
+++ b/shared/workspaces/test/test_data/products/expected_values_alma.py
@@ -0,0 +1,10 @@
+''' Test data: ALMA download products'''
+
+
+class AlmaPublicProductSet:
+    # TODO:
+    pass
+
+class AlmaProprietaryProductSet:
+    # TODO:
+    pass
diff --git a/shared/workspaces/test/test_data/products/expected_values_evla.py b/shared/workspaces/test/test_data/products/expected_values_evla.py
new file mode 100644
index 0000000000000000000000000000000000000000..497ad474f0bc5f627943d9713efa014ebf3c42e4
--- /dev/null
+++ b/shared/workspaces/test/test_data/products/expected_values_evla.py
@@ -0,0 +1,589 @@
+from enum import Enum
+
+from schema import Project, ExecutionBlock, Author, ScienceProduct
+
+from shared.workspaces.test.utilities import get_locations_report
+
+EVLA_METADATA_INGEST_DATE = '2019-12-12 16:04:02.11191'
+EXECUTION_BLOCK = 'Execution Block'
+PPR_FILENAME = 'PPR.xml'
+CASA_LOG = 'casa_commands.log'
+MANIFEST = 'unknown.pipeline_manifest.xml'
+DO_NOT_CALIBRATE = 'Do Not Calibrate'
+VLBA_OPERATIONS = 'VLBA Operations'
+
+
+class VlaProductSet:
+
+    def __init__(self):
+        self.project = self.build_project()
+        self.exec_blocks = self.build_exec_blocks()
+        self.science_products = self.build_science_products()
+        self.file_info, self.total_size = self.get_file_info()
+        self.measurement_set = self.build_basic_ms()
+        self.cms = self.build_cms()
+
+    def build_project(self):
+        project = Project(project_code='17A-109',
+                          starttime=57795.8403622685,
+                          endtime=57892.7843396991,
+                          title="A detailed study of the jet-galaxy interaction in Minkowski's Object",
+                          abstract="Minkowski's Object is a dwarf starforming galaxy interacting with an FRI radio jet from a nearby elliptical galaxy. It has been proposed as a prototype for jet-induced star formation, a hypothesis consistent with our recent ALMA observations that map the CO 1-0 emission in the galaxy. In order to better understand the nature of the interaction, we are requesting C- and Ku-band observations at matched resolution to our ALMA and archival VLA L-band data. Faraday synthesis of the C-band polarimetric data will allow us to study the geometry of the interaction, in particular how well the relativistic electron population is mixed with the ionized gas in the star forming region. This will give us important information for our simulations of the interaction and the triggering of star formation in Minkowski's Object. In turn, this will inform on the conditions where jet-induced star formation is likely in higher redshift objects. We will use the combination of the C- and Ku-band data to investigate the variation the spectral index in the interaction region, in particular to search for shock acceleration in the interaction zone.",
+                          proprietary_duration=365,
+                          total_observation_time=0.0391880786919501,
+                          legacy_id='AL988',
+                          opt_project_id=33151323,
+                          last_addition='2017-08-28'
+                          )
+        project.authors = self.build_authors(project.project_code)
+        return project
+
+    def build_authors(self, project_code: str):
+        authors = [Author(project_code=project_code,
+                          author_id=780,
+                          username='mlacy',
+                          firstname='Mark',
+                          lastname='Lacy',
+                          pst_person_id='885',
+                          is_pi=True),
+                   Author(project_code=project_code,
+                          author_id=781,
+                          username='swood',
+                          firstname='Sarah',
+                          lastname='Wood',
+                          pst_person_id='6877',
+                          is_pi=False
+                          ),
+                   Author(project_code=project_code,
+                          author_id=782,
+                          username='stevecroft',
+                          firstname='Steve',
+                          lastname='Croft',
+                          pst_person_id='2116',
+                          is_pi=False
+                          ),
+                   Author(project_code=project_code,
+                          author_id=783,
+                          username='KristinaNyland',
+                          firstname='Kristina',
+                          lastname='Nyland',
+                          pst_person_id='2950',
+                          is_pi=False
+                          ),
+                   Author(project_code=project_code,
+                          author_id=784,
+                          username='fragilep',
+                          firstname='Chris',
+                          lastname='Fragile',
+                          pst_person_id='9238',
+                          is_pi=False
+                          ), ]
+        return authors
+
+    def build_exec_blocks(self):
+        exec_blocks = [
+            ExecutionBlock(execution_block_id=910,
+                           filegroup_id=18468,
+                           ngas_fileset_id='17A-109.sb33151327.eb33496982.57795.84034732639',
+                           scheduling_block_id=33151327,
+                           scheduling_block_type='OBSERVER',
+                           ost_exec_block_id=33496982,
+                           configuration='D',
+                           starttime=57795.8403622685,
+                           endtime=57795.8795503472,
+                           calibration_status='Calibrated',
+                           band_code='KU X'),
+            ExecutionBlock(execution_block_id=910,
+                           filegroup_id=41979,
+                           ngas_fileset_id='17A-109.sb33151331.eb33786546.57892.65940042824',
+                           scheduling_block_id=33151331,
+                           scheduling_block_type='OBSERVER',
+                           ost_exec_block_id=33786546,
+                           configuration='C',
+                           starttime=57892.6600277778 ,
+                           endtime=57892.7843396991,
+                           calibration_status='Calibrated',
+                           band_code='C X')
+        ]
+        return exec_blocks
+
+    def build_science_products(self):
+        science_products = [
+            ScienceProduct(filegroup_id=18468,
+                           external_name=
+                           '17A-109.sb33151327.eb33496982.57795.84034732639',
+                           metadata_ingestion_date=EVLA_METADATA_INGEST_DATE,
+                           metadata_ingestion_version='1',
+                           science_product_type=EXECUTION_BLOCK),
+            ScienceProduct(filegroup_id=41979,
+                           external_name=
+                           '17A-109.sb33151331.eb33786546.57892.65940042824',
+                           metadata_ingestion_date=EVLA_METADATA_INGEST_DATE,
+                           metadata_ingestion_version='1',
+                           science_product_type=EXECUTION_BLOCK),
+        ]
+        return science_products
+
+    def build_basic_ms(self):
+        files = {
+            'fg_41979': [
+                { 'filename': 'weblog.tgz', 'size': 1683135 },
+                { 'filename': 'unknown.pprequest.xml', 'size': 5611 },
+                { 'filename': 'pipeline_aquareport.xml', 'size': 1351 },
+                { 'filename': PPR_FILENAME, 'size': 5611 },
+                { 'filename': 'unknown.auxproducts.tgz', 'size': 615 },
+                { 'filename': CASA_LOG, 'size': 1995 },
+                { 'filename': MANIFEST, 'size': 809 },
+                { 'filename': 'casa_pipescript.py', 'size': 823 },
+                # the tar delivered when basic MS is requested
+                { 'filename': '17A-109.sb33151327.eb33496982.57795.84034732639.ms.tgz',
+                  'size': 23690977245 },
+            ],
+
+            'fg_18468': [
+                { 'filename': 'weblog.tgz', 'size': 1681803 },
+                { 'filename': 'unknown.pprequest.xml', 'size': 5610 },
+                { 'filename': 'pipeline_aquareport.xml', 'size': 1351 },
+                { 'filename': PPR_FILENAME, 'size': 5610 },
+                { 'filename': 'unknown.auxproducts.tgz', 'size': 615 },
+                { 'filename': CASA_LOG, 'size': 1995 },
+                { 'filename': MANIFEST, 'size': 809 },
+                { 'filename': 'casa_pipescript.py', 'size': 823 },
+                # the tar delivered when basic MS is requested
+                { 'filename': '17A-109.sb33151327.eb33496982.57795.84034732639.ms.tgz',
+                  'size': 23690977531 },
+             ]
+        }
+        return files
+
+    def build_cms(self):
+        files = {
+            'fg_41979': [
+                {'filename':
+                     '17A-109.sb33151331.eb33786546.57892.65940042824.ms'
+                     '.calapply.txt', 'size': 1058},
+                {'filename': MANIFEST, 'size': 11006},
+                {'filename': 'unknown.session_1.caltables.tgz',
+                 'size': 71653397},
+                {'filename': 'casa_piperestorescript.py', 'size': 205},
+                {'filename': 'flux.csv', 'size': 22},
+                {'filename': PPR_FILENAME, 'size': 1632},
+                {'filename': CASA_LOG, 'size': 133935},
+                # the tar delivered when calibrated MS (aka 'restore') is
+                # requested
+                {
+                    'filename': '17A-109.sb33151331.eb33786546.57892.65940042824.400685418.tar.gz',
+                    'size': 88842463132},
+            ],
+            'fg_18468': [
+                {'filename': MANIFEST, 'size': 24025},
+                {'filename': 'unknown.session_1.caltables.tgz',
+                 'size': 26463229},
+                {'filename': 'casa_piperestorescript.py', 'size': 1149},
+                {'filename': 'flux.csv', 'size': 22},
+                {'filename': PPR_FILENAME, 'size': 1632},
+                {'filename': CASA_LOG, 'size': 260953},
+                {
+                    'filename': '17A-109.sb33151327.eb33496982.57795.84034732639.ms.calapply.txt',
+                    'size': 1058},
+                {
+                    'filename': '17A-109.sb33151327.eb33496982.57795.84034732639.400820221.tar.gz',
+                    'size': 47520134173}
+            ]
+        }
+
+        return files
+
+    def get_file_info(self):
+        file_info = dict()
+        total_size = 0
+        for exec_block in self.exec_blocks:
+            basename = '17a-109_fg_' + str(exec_block.filegroup_id)
+            locations_report = get_locations_report(basename)
+            total_size += locations_report['aggregate_size']
+            for file_spec in locations_report['files']:
+                filename = file_spec['ngas_file_id']
+                size = file_spec['size']
+                file_info[filename] = size
+        return file_info, total_size
+
+class CalibrationProduct:
+
+    def __init__(self):
+        self.project = self.build_project()
+        self.science_product = self.build_science_product()
+        self.file_info, self.total_size = self.get_file_info()
+
+    def build_project(self):
+        project = Project(
+            project_code='18B-265',
+            legacy_id='AS1535',
+            total_observation_time=0.0316695485962555,
+            proprietary_duration=365,
+            starttime=58745.9972239583,
+            endtime=59043.2400404977,
+            last_addition='2020-07-13'
+        )
+        project.authors = self.build_authors()
+        return project
+
+    def build_authors(self):
+        return [
+            Author(
+                project_code='18B-265',
+                author_id=59386,
+                username='mansi',
+                firstname='Mansi',
+                lastname='Kasliwal',
+                pst_person_id='8998',
+                is_pi=False
+            ),
+            Author(
+                project_code='18B-265',
+                author_id=59387,
+                username='chomiuk',
+                firstname='Laura',
+                lastname='Chomiuk',
+                pst_person_id='701',
+                is_pi=False
+            ),
+            Author(
+                project_code='18B-265',
+                author_id=59388,
+                username='kirx',
+                firstname='Kirill',
+                lastname='Sokoloski',
+                pst_person_id='5512',
+                is_pi=False
+            ),
+            Author(
+                project_code='18B-265',
+                author_id=59389,
+                username='KojiMukai',
+                firstname='Koji',
+                lastname='Muki',
+                pst_person_id='3674',
+                is_pi=False
+            ),
+            Author(
+                project_code='18B-265',
+                author_id=59387,
+                username='JustinLinford',
+                firstname='Justin',
+                lastname='Linford',
+                pst_person_id='3794',
+                is_pi=False
+            ),
+            Author(
+                project_code='18B-265',
+                author_id=59390,
+                username='ThomasNelson',
+                firstname='Thomas',
+                lastname='Nelson',
+                pst_person_id='5234',
+                is_pi=False
+            ),
+            Author(
+                project_code='18B-265',
+                author_id=59394,
+                username='EliasAydi',
+                firstname='Elias',
+                lastname='Aydi',
+                pst_person_id='10794',
+                is_pi=False
+            ),
+            Author(
+                project_code='18B-265',
+                author_id=59392,
+                username='jeno@astro.columbia.edu',
+                firstname='Jennifer',
+                lastname='Sokoloski',
+                pst_person_id='1200',
+                is_pi=True
+            ),
+            Author(
+                project_code='18B-265',
+                author_id=59393,
+                username='amkawash',
+                firstname='Adam',
+                lastname='Kawash',
+                pst_person_id='8687',
+                is_pi=False
+            ),
+
+        ]
+
+    def build_science_product(self):
+        return ScienceProduct(filegroup_id=388273,
+                              external_name=
+                              '18B-265_2019_12_10_T00_00_59.203.tar',
+                              science_product_type='Calibration',
+                              metadata_ingestion_version='1',
+                              metadata_ingestion_date=
+                              '2019-12-13 23:30:57.730581',
+                              external_system='EVLA Processing'
+                              )
+
+    def get_file_info(self):
+        file_info = dict()
+        total_size = 0
+        locations_report = get_locations_report('calibration')
+        total_size += locations_report['aggregate_size']
+        for file_spec in locations_report['files']:
+            filename = file_spec['ngas_file_id']
+            size = file_spec['size']
+            file_info[filename] = size
+        return file_info, total_size
+
+
+class VlbaProductSet:
+
+    def __init__(self):
+        self.project = self.build_project()
+        self.exec_blocks = self.build_exec_blocks()
+        self.science_products = self.build_science_products()
+        self.file_info, self.total_size = self.get_file_info()
+
+    def build_project(self):
+        project = Project(project_code='BT142',
+                          starttime=58154.8048148148,
+                          endtime=58217.8342361111,
+                          title="Jets, outflows, and inclined disks in Seyfert galaxies: the H2O megamasers' view",
+                          abstract="Jets, outflows, and inclined disks in Seyfert galaxies: the H2O megamasers' view | Candidate extragalactic water masers associated with accretion disks around AGN are typically identified by a triple-peak profile of the maser spectra. However, a large number of maser sources show single-broad lines or groups of lines clustered in a narrow velocity range. In this proposal, we propose for a study of four galaxies, classified as Seyfert or LINER, hosting bright water masers and showing evidences of ejection/accretion nuclear activity. Our main goals are that of detecting the maser emission at VLBI scales, determining its location and distribution with respect to the main nuclear centers of activity, and derive the nature of the emission. These sources will potentially constitute new case studies for the scarcely-populated class of confirmed jet/outflow masers or very first examples of the exotic, recently-invoked class of 'inclined water maser disks'. Furthermore, the proposed mesurements will set the basis for a number of follow-up (VLBI) studies aim at a better understanding of the physics and disk/jet geometry in Seyferts and LINERs.",
+                          proprietary_duration=365,
+                          total_observation_time=0.0391880786919501,
+                          last_addition='2018-11-05'
+                          )
+        project.authors = self.build_authors()
+        return project
+
+    def build_authors(self):
+        authors = [
+            Author(
+                username='atarchi',
+                firstname='Andrea',
+                lastname='Tarchi',
+                pst_person_id='236',
+                project_code='BT142',
+                author_id=45311,
+                is_pi=True
+            ),
+            Author(
+                username='jbraatz',
+                firstname='James',
+                lastname='Braatz',
+                pst_person_id='26',
+                project_code='BT142',
+                author_id=45310,
+                is_pi=False
+            ),
+            Author(
+                username='pcastangia',
+                firstname='Paola',
+                lastname='Castangia',
+                pst_person_id='541',
+                project_code='BT142',
+                author_id=45312,
+                is_pi=False
+            ),
+            Author(
+                username='gsurcis',
+                firstname='Gabriele',
+                lastname='Surcis',
+                pst_person_id='2512',
+                project_code='BT142',
+                author_id=45313,
+                is_pi=False
+            ),
+        ]
+        return authors
+
+    def build_exec_blocks(self):
+        exec_blocks = [
+            ExecutionBlock(
+                execution_block_id=108778,
+                filegroup_id=278938,
+                starttime=58175.0757060185,
+                endtime=58175.325625,
+                calibration_status=DO_NOT_CALIBRATE,
+                band_code='K'
+            ),
+            ExecutionBlock(
+                execution_block_id=108833,
+                filegroup_id=279054,
+                starttime=58160.1166550926,
+                endtime=58160.3043634259,
+                calibration_status=DO_NOT_CALIBRATE,
+                band_code='L'
+            ),
+            ExecutionBlock(
+                execution_block_id=108862,
+                filegroup_id=279119,
+                starttime=58154.8048148148,
+                endtime=58154.9928009259,
+                calibration_status=DO_NOT_CALIBRATE,
+                band_code='L'
+            ),
+            ExecutionBlock(
+                execution_block_id=108630,
+                filegroup_id=278613,
+                starttime=58217.5843171296,
+                endtime=58217.8342361111,
+                calibration_status=DO_NOT_CALIBRATE,
+                band_code='K'
+            ),
+        ]
+        return exec_blocks
+
+    def build_science_products(self):
+        return [
+            ScienceProduct(
+                filegroup_id=279054,
+                science_product_type=EXECUTION_BLOCK,
+                metadata_ingestion_version='1',
+                metadata_ingestion_date=EVLA_METADATA_INGEST_DATE,
+                external_name='BT142A2',
+                external_system=VLBA_OPERATIONS
+            ),
+            ScienceProduct(
+                filegroup_id=278938,
+                science_product_type=EXECUTION_BLOCK,
+                metadata_ingestion_version='1',
+                metadata_ingestion_date=EVLA_METADATA_INGEST_DATE,
+                external_name='BT142A1',
+                external_system=VLBA_OPERATIONS
+            ),
+            ScienceProduct(
+                filegroup_id=279119,
+                science_product_type=EXECUTION_BLOCK,
+                metadata_ingestion_version='1',
+                metadata_ingestion_date=EVLA_METADATA_INGEST_DATE,
+                external_name='BT142B2',
+                external_system=VLBA_OPERATIONS
+            ),
+            ScienceProduct(
+                filegroup_id=278613,
+                science_product_type=EXECUTION_BLOCK,
+                metadata_ingestion_version='1',
+                metadata_ingestion_date=EVLA_METADATA_INGEST_DATE,
+                external_name='BT142B1',
+                external_system=VLBA_OPERATIONS
+            ),
+        ]
+
+    def get_file_info(self):
+        file_info = dict()
+        locations_report = get_locations_report('vlba_eb')
+
+        for file_spec in locations_report['files']:
+            filename = file_spec['ngas_file_id']
+            size = file_spec['size']
+            file_info[filename] = size
+
+        return file_info, locations_report['aggregate_size']
+
+
+class VlassImageProductSet:
+
+    def __init__(self):
+        self.project = self.build_project()
+        self.science_products = self.build_science_products()
+        self.file_info, self.total_size = self.get_file_info()
+
+    def build_project(self):
+        project = Project(project_code='VLASS1.1',
+                          title='The Very Large Array Sky Survey',
+                          abstract='The Very Large Array Sky Survey (VLASS) is a 5500-hr, community-driven project to survey the whole sky visible to the VLA. It will engage radio astronomy experts, multi-wavelength astronomers and citizen scientists alike. The data will be taken in three passes over the sky to allow the discovery of transient radio sources, and will cover the frequency range 2-4 GHz with an angular resolution of 2.5 arcsec. By utilizing the "on the fly" interferometry mode, the overheads will be much reduced compared to conventional survey techniques. The key science topics to be addressed by the survey are: Imaging Galaxies Through Time and Space; Hidden Explosions; Faraday Tomography of The Magnetic Sky; Peering Though Our Dusty Galaxy; and Missing Physics.',
+                          opt_project_id=33997662,
+                          starttime=58004.0162552083,
+                          endtime=58169.6566603472,
+                          total_observation_time=0.158181712955411,
+                          last_addition='2017-09-08',
+                          proprietary_duration=0
+                          )
+        project.authors = self.build_authors()
+        return project
+
+    def build_authors(self):
+        return [
+            Author(
+                project_code='VLASS1.1',
+                username='vlass',
+                firstname='Vlass',
+                lastname='Scientist',
+                pst_person_id='9707',
+                is_pi=True
+            ),
+            Author(
+                project_code='VLASS1.1',
+                username='cchandle',
+                firstname='Claire',
+                lastname='Chandler',
+                pst_person_id='36',
+                is_pi=False
+            ),
+            Author(
+                project_code='VLASS1.1',
+                username='akimball',
+                firstname='Amy',
+                lastname='Kimball',
+                pst_person_id='1743',
+                is_pi=False
+            ),
+            Author(
+                project_code='VLASS1.1',
+                username='jwrobel',
+                firstname='Joan',
+                lastname='Wrobel',
+                pst_person_id='172',
+                is_pi=False
+            ),
+            Author(
+                project_code='VLASS1.1',
+                username='fschinzel',
+                firstname='Frank',
+                lastname='Schinzel',
+                pst_person_id='2059',
+                is_pi=False
+            ),
+        ]
+
+    def build_science_products(self):
+        return [
+            ScienceProduct(
+                filegroup_id=223148,
+                external_name='VLASS1.1.ql.T01t01.J000232-383000.10.2048.v1',
+                metadata_ingestion_version='1',
+                metadata_ingestion_date=EVLA_METADATA_INGEST_DATE,
+                science_product_type='Image',
+                external_system='CASA Pipeline',
+            ),
+        ]
+
+    def get_file_info(self):
+        file_info = dict()
+        total_size = 0
+        locations_report = get_locations_report('img')
+        total_size += locations_report['aggregate_size']
+        for file_spec in locations_report['files']:
+            filename = file_spec['ngas_file_id']
+            size = file_spec['size']
+            file_info[filename] = size
+        return file_info, total_size
+
+
+class Deliverable(Enum):
+    SDM = 'SDM'
+    BDF = 'BDF'
+    MS = 'MS'
+    CMS = 'CMS'
+    IMG = 'IMG'
+    # VLBA
+    IDIFITS = 'IDIFITS'
+
+
+class DeliverableProduct:
+
+    def __init__(self, type: Deliverable, file_info: dict):
+        self.type = type
+        self.file_info = file_info
diff --git a/shared/workspaces/test/test_expected_values.py b/shared/workspaces/test/test_expected_values.py
new file mode 100644
index 0000000000000000000000000000000000000000..aa51e267f6b357e0f6f0e7d380e2d3ca8c288213
--- /dev/null
+++ b/shared/workspaces/test/test_expected_values.py
@@ -0,0 +1,213 @@
+''' Test data: EVLA download products'''
+
+
+from .test_data.products.expected_values_evla import VlaProductSet, \
+    VlassImageProductSet, VlbaProductSet, CalibrationProduct
+from .utilities import get_locations_report
+
+
+# TODO: these location reports are duplicates of the ones in
+#  datafetcher tests. Refactor DF to use these and get rid of the DF copies
+
+''' Example: checking download results'''
+
+def test_gets_vla_products():
+    ''' check files downloaded for our two 17A-109 EBs '''
+    product_set = VlaProductSet()
+    assert product_set is not None
+
+    # check the execution blocks
+    exec_blocks = product_set.exec_blocks
+    assert len(exec_blocks) == 2
+    assert len(product_set.project.authors) == 5
+    assert product_set.total_size == 95649344815
+    assert len(product_set.science_products) == len(exec_blocks)
+
+    # check the basic measurement set
+    basic_ms = product_set.measurement_set
+    expected_file_count = 9
+    for filegroup in basic_ms:
+        files = basic_ms[filegroup]
+        actual_file_count = 0
+        for item in files:
+            actual_file_count += 1
+            filename = str(item['filename'])
+
+            # spot-check a few files
+            if filename == 'unknown.auxproducts.tgz':
+                assert item['size'] == 615
+            if filename.startswith('17A-109') and filename.endswith('.ms.tgz'):
+                if filegroup.endswith('18468'):
+                    assert item['size'] == 23690977531
+                elif filename.endswith('41979'):
+                    assert item['size'] == 23690977245
+            elif filename == 'unknown.pprequest.xml':
+                if filegroup.endswith('18468'):
+                    assert item['size'] == 5610
+                elif filename.endswith('41979'):
+                    assert item['size'] == 5611
+            elif filename == 'weblog.tgz':
+                if filegroup.endswith('18468'):
+                    assert item['size'] == 1681803
+                elif filename.endswith('41979'):
+                    assert item['size'] == 1683135
+
+        assert actual_file_count == expected_file_count
+
+    # check the calibrated measurement set (aka "restore")
+    cms = product_set.cms
+    expected_file_count = 8
+    for filegroup in cms:
+        files = cms[filegroup]
+        actual_file_count = 0
+        for item in files:
+            actual_file_count += 1
+            filename = str(item['filename'])
+
+            # spot-check a few files
+            if filename == 'PPR.xml':
+                assert item['size'] == 1632
+            if filename.startswith('17A-109') and filename.endswith('.tar.tgz'):
+                if filegroup.endswith('18468'):
+                    assert item['size'] == 47520134173
+                elif filename.endswith('41979'):
+                    assert item['size'] == 88842463132
+            elif filename == 'unknown.pipeline_manifest.xml':
+                if filegroup.endswith('18468'):
+                    assert item['size'] == 24025
+                elif filename.endswith('41979'):
+                    assert item['size'] == 11006
+            elif filename == 'casa_commands.log':
+                if filegroup.endswith('18468'):
+                    assert item['size'] == 260953
+                elif filename.endswith('41979'):
+                    assert item['size'] == 133935
+
+        assert actual_file_count == expected_file_count
+
+
+def test_gets_image_product():
+    ''' Confirm that we get one image product with correct size and
+        correct project info
+    '''
+
+    product_set = VlassImageProductSet()
+    assert product_set is not None
+    assert not hasattr(product_set, 'exec_blocks')
+    assert product_set.project.project_code == 'VLASS1.1'
+    assert len(product_set.project.authors) == 5
+    assert len(product_set.science_products) == 1
+    assert product_set.total_size == 110851200
+
+
+def test_gets_vlba_products():
+    ''' Confirm that we get expected number of VLBA products
+        with correct size and project info
+    '''
+
+    product_set = VlbaProductSet()
+    assert product_set is not None
+    exec_blocks = product_set.exec_blocks
+    assert len(exec_blocks) == 4
+    assert len(product_set.project.authors) == 4
+    assert product_set.total_size == 2140560000
+    assert len(product_set.science_products) == len(exec_blocks)
+
+
+def test_gets_calibration():
+    ''' Confirm that we get one calibration product with correct size and
+        correct project info
+    '''
+
+    product = CalibrationProduct()
+    assert product is not None
+    assert not hasattr(product, 'exec_blocks')
+    assert len(product.project.authors) == 9
+    science_product = product.science_product
+    assert science_product.science_product_type == 'Calibration'
+    assert science_product.external_name == '18B-265_2019_12_10_T00_00_59.203.tar'
+    assert len(product.file_info) == 1
+    assert product.total_size == 27668480
+
+
+def test_gets_vla_report_files():
+    ''' make sure we're getting the VLA test data values we expect
+        for our 17B-109 exec blocks of interest
+    '''
+
+    locations_dict = get_locations_report('17a-109_fg_18468')
+    assert locations_dict is not None
+    assert isinstance(locations_dict, dict)
+
+    assert len(locations_dict) == 2
+    assert 'files' in locations_dict.keys()
+    assert 'aggregate_size' in locations_dict.keys()
+
+    files = locations_dict['files']
+    assert len(files) == 79
+    agg_size = locations_dict['aggregate_size']
+    assert agg_size == 45572444823
+
+    locations_dict = get_locations_report('17a-109_fg_41979')
+    assert locations_dict is not None
+    assert isinstance(locations_dict, dict)
+
+    assert len(locations_dict) == 2
+    assert 'files' in locations_dict.keys()
+    assert 'aggregate_size' in locations_dict.keys()
+
+    files = locations_dict['files']
+    assert len(files) == 70
+    agg_size = locations_dict['aggregate_size']
+    assert agg_size == 50076899992
+
+
+def test_gets_vlba_report_file():
+    ''' make sure we're getting the VLBA test data values we expect '''
+
+    locations_dict = get_locations_report('vlba_eb')
+    assert locations_dict is not None
+    assert isinstance(locations_dict, dict)
+
+    assert len(locations_dict) == 2
+    assert 'files' in locations_dict.keys()
+    assert 'aggregate_size' in locations_dict.keys()
+
+    files = locations_dict['files']
+    assert len(files) == 16
+    agg_size = locations_dict['aggregate_size']
+    assert agg_size == 2140560000
+
+
+def test_gets_img_report_file():
+    ''' make sure we're getting the image test data values we expect '''
+
+    locations_dict = get_locations_report('img')
+    assert locations_dict is not None
+    assert isinstance(locations_dict, dict)
+
+    assert len(locations_dict) == 2
+    assert 'files' in locations_dict.keys()
+    assert 'aggregate_size' in locations_dict.keys()
+
+    files = locations_dict['files']
+    assert len(files) == 2
+    agg_size = locations_dict['aggregate_size']
+    assert agg_size == 110851200
+
+
+def test_gets_cal_report_file():
+    ''' make sure we're getting the calibration test data values we expect '''
+
+    locations_dict = get_locations_report('calibration')
+    assert locations_dict is not None
+    assert isinstance(locations_dict, dict)
+
+    assert len(locations_dict) == 2
+    assert 'files' in locations_dict.keys()
+    assert 'aggregate_size' in locations_dict.keys()
+
+    files = locations_dict['files']
+    assert len(files) == 1
+    agg_size = locations_dict['aggregate_size']
+    assert agg_size == 27668480
diff --git a/shared/workspaces/test/utilities.py b/shared/workspaces/test/utilities.py
new file mode 100644
index 0000000000000000000000000000000000000000..41439b7ebf116e7f3e4e845f6a7cf9e43e8a11fd
--- /dev/null
+++ b/shared/workspaces/test/utilities.py
@@ -0,0 +1,25 @@
+''' Helper functions for download product testing '''
+
+import json
+from pathlib import Path
+
+
+def get_report_file(basename: str):
+    ''' Get a locations file from our collection in test_data '''
+
+    for file in Path.cwd().rglob(basename.upper() + '.json'):
+        return file
+
+    return None
+
+def get_locations_report(basename: str):
+    ''' Get a locations report from a file in test_data '''
+
+    report_path = get_report_file(basename)
+
+    if report_path is not None:
+        with open(report_path, 'r') as content:
+            locations_report = json.loads(content.read())
+            return locations_report
+
+    raise FileNotFoundError(f'{basename.upper() + ".json"} not found')