On Mon, Apr 29, 2013 at 1:51 PM, Thomas Thrainer <[email protected]>wrote:
> QA cleans up DRBD 8.4 devices via drbdsetup, which currently only worked > for DRBD 8.3. This (rather ugly) command makes sure that DRBD 8.4 > devices are cleaned up as well. > > Signed-off-by: Thomas Thrainer <[email protected]> > --- > qa/qa_instance.py | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/qa/qa_instance.py b/qa/qa_instance.py > index 3d1ef8c..c290b76 100644 > --- a/qa/qa_instance.py > +++ b/qa/qa_instance.py > @@ -1053,7 +1053,16 @@ def TestRemoveInstanceOfflineNode(instance, snode, > set_offline, set_online): > # FIXME: abstract the cleanup inside the disks > if info["storage-type"] == constants.ST_LVM_VG: > for minor in info["drbd-minors"][snode.primary]: > - AssertCommand(["drbdsetup", str(minor), "down"], node=snode) > + # DRBD 8.3 syntax comes first, then DRBD 8.4 syntax. The 8.4 > syntax > + # relies on the fact that we always create a resources for each > minor, > + # and that this resources is always named resource{minor}. > + # As 'drbdsetup 0 down' does return success (even tough that's > invalid > Missing "h" in "though", but I'll fix it before pushing. No need to resend. > + # syntax), we always have to perform both commands and ignore the > + # output. > + drbd_shutdown_cmd = \ > + "(drbdsetup %d down && drbdsetup down resource%d) || /bin/true" > % \ > + (minor, minor) > + AssertCommand(drbd_shutdown_cmd, node=snode) > AssertCommand(["lvremove", "-f"] + info["volumes"], node=snode) > elif info["storage-type"] == constants.ST_FILE: > filestorage = pathutils.DEFAULT_FILE_STORAGE_DIR > -- > 1.8.2.1 > > LGTM, thanks. Michele
