summaryrefslogtreecommitdiff
path: root/lorrycontroller
diff options
context:
space:
mode:
authorBen Hutchings <ben.hutchings@codethink.co.uk>2020-07-14 22:47:00 +0100
committerBen Hutchings <ben.hutchings@codethink.co.uk>2020-07-15 17:16:59 +0100
commit755dc86c41392c7065440d147258befbbeb5c1ee (patch)
tree9b1901ebc25459a0f1801d185a6f03756d73e6d0 /lorrycontroller
parentc93409d4493f1374d626f21f9f68def3a88f09a6 (diff)
downloadlorry-controller-755dc86c41392c7065440d147258befbbeb5c1ee.tar.gz
givemejob: Stop synthesising host information when it's missing
Any lorry in the database should have been either: 1. Generated based on a 'trove' or 'gitlab' section, with 'from_host' set to the Upstream Host name. 2. Read from a lorry referred to in a 'lorries' section, with 'from_host' set to an empty string. So this error case indicates a dangling reference in the database. The current schema does not use foreign keys so this could happen, but it's reasonable to just give up and return empty metadata.
Diffstat (limited to 'lorrycontroller')
-rw-r--r--lorrycontroller/givemejob.py13
1 files changed, 3 insertions, 10 deletions
diff --git a/lorrycontroller/givemejob.py b/lorrycontroller/givemejob.py
index 1a0fe35..8f4a2a8 100644
--- a/lorrycontroller/givemejob.py
+++ b/lorrycontroller/givemejob.py
@@ -76,16 +76,9 @@ class GiveMeJob(lorrycontroller.LorryControllerRoute):
try:
host_info = statedb.get_host_info(lorry_info['from_host'])
except lorrycontroller.HostNotFoundError:
- # XXX We don't know whether upstream is Trove. It should be
- # possible to set host type for single repositories.
- host_info = {
- 'host': lorry_info['from_host'],
- 'protocol': 'ssh',
- 'username': None,
- 'password': None,
- 'type': 'trove',
- 'type_params': {},
- }
+ # XXX Shouldn't happen, but currently the database schema
+ # does not prevent it
+ return {}
metadata = lorrycontroller.get_upstream_host(host_info) \
.get_repo_metadata(lorry_info['from_path'])