def parse()

in mysqloperator/controller/innodbcluster/cluster_api.py [0:0]


    def parse(self, spec: dict, prefix: str) -> None:
        dump = dget_dict(spec, "dump", "spec.initDB", {})
        clone = dget_dict(spec, "clone", "spec.initDB", {})
        snapshot = dget_dict(spec, "snapshot", "spec.initDB", {})
        meb = dget_dict(spec, "meb", "spec.initDB", {})
        cluster_set = dget_dict(spec, "clusterSet", "spec.initDB", {})

        if len([x for x in [dump, clone, snapshot, meb, cluster_set] if x]) > 1:
            raise ApiSpecError(
                "Only one of dump, snapshot, meb, clone, or clsuterSet may be specified in spec.initDB")
        if not dump and not clone and not snapshot and not meb and not cluster_set:
            raise ApiSpecError(
                "One of dump, snapshot, meb, clone, or clusterSet may be specified in spec.initDB")

        if clone:
            self.clone = CloneInitDBSpec()
            self.clone.parse(clone, "spec.initDB.clone")
        elif dump:
            self.dump = DumpInitDBSpec()
            self.dump.parse(dump, "spec.initDB.dump")
        elif snapshot:
            self.snapshot = SnapshotInitDBSpec()
            self.snapshot.parse(snapshot, "spec.initDB.snapshot")
        elif meb:
            self.meb = MebInitDBSpec()
            self.meb.parse(meb, "spec.initDB.meb")
        elif cluster_set:
            self.cluster_set = ClusterSetInitDBSpec()
            self.cluster_set.parse(cluster_set, "spec.initDB.clusterSet")