in mysqloperator/controller/backup/backup_api.py [0:0]
def parse(self, spec: dict, prefix: str, name_required: bool = True) -> None:
self.name = dget_str(spec, "name", prefix, default_value= None if name_required else "")
if "podAnnotations" in spec:
self.podAnnotations = dget_dict(spec, "podAnnotations", prefix)
if "podLabels" in spec:
self.podLabels = dget_dict(spec, "podLabels", prefix)
prefix += "." + self.name
method_spec = dget_dict(spec, "dumpInstance", prefix, {})
if method_spec:
self.dumpInstance = DumpInstance()
self.dumpInstance.parse(method_spec, prefix+".dumpInstance")
method_spec = dget_dict(spec, "snapshot", prefix, {})
if method_spec:
self.snapshot = Snapshot()
self.snapshot.parse(method_spec, prefix+".snapshot")
method_spec = dget_dict(spec, "meb", prefix, {})
if method_spec:
self.meb = MEB()
self.meb.parse(method_spec, prefix+".meb")
if self.dumpInstance and self.snapshot:
# TODO MEB!
raise ApiSpecError(
f"Only one of dumpInstance or snapshot may be set in {prefix}")
if not self.dumpInstance and not self.snapshot and not self.meb:
raise ApiSpecError(
f"One of dumpInstance, snapshot or meb must be set in a {prefix}")