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

Reply via email to