From 5e125ce88965d7d9efaacaa57bfe01bf078e021c Mon Sep 17 00:00:00 2001
From: Jorrit Schaap <schaap@astron.nl>
Date: Fri, 13 Sep 2019 15:28:29 +0200
Subject: [PATCH] SW-816: use sane defaults

---
 .../Common/lib/specification.py               | 30 +++++++++----------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/SAS/ResourceAssignment/Common/lib/specification.py b/SAS/ResourceAssignment/Common/lib/specification.py
index f3018278f3e..d3a82677cd7 100644
--- a/SAS/ResourceAssignment/Common/lib/specification.py
+++ b/SAS/ResourceAssignment/Common/lib/specification.py
@@ -166,28 +166,28 @@ class Specification:
         :param input_dict: Serialized version of a Specification and any predecessors.
         """
         self.otdb_id       = input_dict["otdb_id"]
-        self.mom_id        = input_dict["mom_id"]
+        self.mom_id        = input_dict.get("mom_id")
         self.radb_id       = input_dict["task_id"]
-        self.trigger_id    = input_dict["trigger_id"]
+        self.trigger_id    = input_dict.get("trigger_id")
         self.status        = input_dict["status"]
         self.type          = input_dict["task_type"]
-        self.subtype       = input_dict["task_subtype"]
-        self.starttime     = Specification.parse_datetime(input_dict["starttime"])
-        self.endtime       = Specification.parse_datetime(input_dict["endtime"])
-        self.duration      = Specification.parse_timedelta(input_dict["duration"])
-        self.min_starttime = Specification.parse_datetime(input_dict["min_starttime"])
-        self.max_endtime   = Specification.parse_datetime(input_dict["max_endtime"])
-        self.min_duration  = Specification.parse_timedelta(input_dict["min_duration"])
-        self.max_duration  = Specification.parse_timedelta(input_dict["max_duration"])
-        self.cluster       = input_dict["cluster"]
-        self.internal_dict = input_dict["specification"]
+        self.subtype       = input_dict.get("task_subtype")
+        self.starttime     = Specification.parse_datetime(input_dict.get("starttime"))
+        self.endtime       = Specification.parse_datetime(input_dict.get("endtime"))
+        self.duration      = Specification.parse_timedelta(input_dict.get("duration"))
+        self.min_starttime = Specification.parse_datetime(input_dict.get("min_starttime"))
+        self.max_endtime   = Specification.parse_datetime(input_dict.get("max_endtime"))
+        self.min_duration  = Specification.parse_timedelta(input_dict.get("min_duration"))
+        self.max_duration  = Specification.parse_timedelta(input_dict.get("max_duration"))
+        self.cluster       = input_dict.get("cluster")
+        self.internal_dict = input_dict.get("specification", {})
         self.predecessors  = []
-        for p in input_dict["predecessors"]:
+        for p in input_dict.get("predecessors",[]):
             spec = Specification(self.otdbrpc, self.momquery, self.radbrpc)
             spec.from_dict(p)
             self.predecessors.append(spec)
-        self.successor_ids = input_dict["successors"]
-        self.storagemanager = input_dict["storagemanager"]
+        self.successor_ids = input_dict.get("successors",[])
+        self.storagemanager = input_dict.get("storagemanager")
 
     def isObservation(self):
         """:return if the Specification is for an observation."""
-- 
GitLab