diff --git a/SAS/ResourceAssignment/Common/lib/specification.py b/SAS/ResourceAssignment/Common/lib/specification.py index f3018278f3eb2ea056bff7853b722af28531ad96..d3a82677cd76ba789800b33b7e6ce5e34e7ab308 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."""