Defensively handle errors examining app requests.
All checks were successful
Lint Checks / Run linter (pull_request) Successful in 31s
Deploy Test / Run deploy test suite (pull_request) Successful in 5m0s
Webapp Test / Run webapp test suite (pull_request) Successful in 4m35s
K8s Deploy Test / Run deploy test suite on kind/k8s (pull_request) Successful in 8m2s
Smoke Test / Run basic test suite (pull_request) Successful in 4m18s

This commit is contained in:
Thomas E Lackey 2024-08-14 12:49:05 -05:00
parent 27f5c9fc21
commit e04631b4d5

View File

@ -274,19 +274,16 @@ def command(ctx, kube_config, laconic_config, image_registry, deployment_parent_
requests_by_name = {} requests_by_name = {}
skipped_by_name = {} skipped_by_name = {}
for r in requests: for r in requests:
status = None
try:
if r.id in previous_requests and previous_requests[r.id].get("status", "") != "RETRY": if r.id in previous_requests and previous_requests[r.id].get("status", "") != "RETRY":
print(f"Skipping request {r.id}, we've already seen it.") print(f"Skipping request {r.id}, we've already seen it.")
continue continue
try:
app = laconic.get_record(r.attributes.application) app = laconic.get_record(r.attributes.application)
except Exception as e:
print("ERROR: " + str(e))
app = None
if not app: if not app:
print(f"Skipping request {r.id}, cannot locate app.") print(f"Skipping request {r.id}, cannot locate app.")
dump_known_requests(state_file, [r]) status = "SEEN"
continue continue
requested_name = r.attributes.dns requested_name = r.attributes.dns
@ -308,6 +305,12 @@ def command(ctx, kube_config, laconic_config, image_registry, deployment_parent_
print("Found request %s to run application %s on %s." % (r.id, r.attributes.application, requested_name)) print("Found request %s to run application %s on %s." % (r.id, r.attributes.application, requested_name))
requests_by_name[requested_name] = r requests_by_name[requested_name] = r
except Exception as e:
print(f"ERROR examining request {r.id}: " + str(e))
status = "ERROR"
finally:
if status:
dump_known_requests(state_file, [r], status)
# Find deployments. # Find deployments.
deployments = laconic.app_deployments() deployments = laconic.app_deployments()