diff --git a/lib/block/drbd.py b/lib/block/drbd.py index 65274f326e3742ca4d79866028318c793268eba0..3cb78b446b50fbfbc235e3a2e888189a19bde847 100644 --- a/lib/block/drbd.py +++ b/lib/block/drbd.py @@ -320,8 +320,8 @@ class DRBD8Dev(base.BlockDev): if meta is not None: retval = retval and ("meta_dev" in info and info["meta_dev"] == meta.dev_path) - retval = retval and ("meta_index" in info and - info["meta_index"] == 0) + if "meta_index" in info: + retval = retval and info["meta_index"] == 0 else: retval = retval and ("meta_dev" not in info and "meta_index" not in info) @@ -830,7 +830,7 @@ class DRBD8Dev(base.BlockDev): # no local disk, but network attached and it matches self._AssembleLocal(minor, self._children[0].dev_path, self._children[1].dev_path, self.size) - if self._MatchesNet(self._GetShowInfo(minor)): + if self._MatchesLocal(self._GetShowInfo(minor)): break else: base.ThrowError("drbd%d: disk attach successful, but 'drbdsetup" diff --git a/lib/block/drbd_info.py b/lib/block/drbd_info.py index 9ebc7bd63a1d1ceba2370a4dbf4ae96b41e99a9b..cf0cda783458c343946e3572c34d765b98cab513 100644 --- a/lib/block/drbd_info.py +++ b/lib/block/drbd_info.py @@ -442,9 +442,11 @@ class DRBD84ShowInfo(BaseShowInfo): for inner in lst[1:]: if inner[0] == "disk" and len(inner) == 2: retval["local_dev"] = inner[1] - elif inner[0] == "meta-disk" and len(inner) == 3: - retval["meta_dev"] = inner[1] - retval["meta_index"] = inner[2] + elif inner[0] == "meta-disk": + if len(inner) > 1: + retval["meta_dev"] = inner[1] + if len(inner) > 2: + retval["meta_index"] = inner[2] elif sname == "_remote_host": for lst in section[1:]: if lst[0] == "address":