From ad1dd4c7110575f9ec77794edcd4a0f07cb2c9fb Mon Sep 17 00:00:00 2001 From: Andrea Spadaccini <spadaccio@google.com> Date: Tue, 6 Dec 2011 14:50:43 +0000 Subject: [PATCH] Add net-custom and disk-custom DRBD parameters Those parameters can be used to pass options directly to drbdsetup disk and drbdsetup net. Signed-off-by: Andrea Spadaccini <spadaccio@google.com> Reviewed-by: Iustin Pop <iustin@google.com> Reviewed-by: Michael Hanselmann <hansmi@google.com> --- lib/bdev.py | 8 ++++++++ lib/cmdlib.py | 2 ++ lib/constants.py | 12 ++++++++++++ 3 files changed, 22 insertions(+) diff --git a/lib/bdev.py b/lib/bdev.py index f249c16cd..3f9441d59 100644 --- a/lib/bdev.py +++ b/lib/bdev.py @@ -24,6 +24,7 @@ import re import time import errno +import shlex import stat import pyparsing as pyp import os @@ -1372,6 +1373,9 @@ class DRBD8(BaseDRBD): self.params[constants.LDP_NO_META_FLUSH]) args.extend(barrier_args) + if self.params[constants.LDP_DISK_CUSTOM]: + args.extend(shlex.split(self.params[constants.LDP_DISK_CUSTOM])) + result = utils.RunCmd(args) if result.failed: _ThrowError("drbd%d: can't attach local disk: %s", minor, result.output) @@ -1495,6 +1499,10 @@ class DRBD8(BaseDRBD): args.append("-m") if hmac and secret: args.extend(["-a", hmac, "-x", secret]) + + if self.params[constants.LDP_NET_CUSTOM]: + args.extend(shlex.split(self.params[constants.LDP_NET_CUSTOM])) + result = utils.RunCmd(args) if result.failed: _ThrowError("drbd%d: can't setup network: %s - %s", diff --git a/lib/cmdlib.py b/lib/cmdlib.py index 352ed6f0b..646f0752c 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -8173,6 +8173,8 @@ def _ComputeLDParams(disk_template, disk_params): constants.LDP_BARRIERS: dt_params[constants.DRBD_DISK_BARRIERS], constants.LDP_NO_META_FLUSH: dt_params[constants.DRBD_META_BARRIERS], constants.LDP_DEFAULT_METAVG: dt_params[constants.DRBD_DEFAULT_METAVG], + constants.LDP_DISK_CUSTOM: dt_params[constants.DRBD_DISK_CUSTOM], + constants.LDP_NET_CUSTOM: dt_params[constants.DRBD_NET_CUSTOM], } drbd_params = \ diff --git a/lib/constants.py b/lib/constants.py index 9dc400d82..d27fefe97 100644 --- a/lib/constants.py +++ b/lib/constants.py @@ -936,12 +936,16 @@ LDP_STRIPES = "stripes" LDP_BARRIERS = "disabled-barriers" LDP_NO_META_FLUSH = "disable-meta-flush" LDP_DEFAULT_METAVG = "default-metavg" +LDP_DISK_CUSTOM = "disk-custom" +LDP_NET_CUSTOM = "net-custom" DISK_LD_TYPES = { LDP_RESYNC_RATE: VTYPE_INT, LDP_STRIPES: VTYPE_INT, LDP_BARRIERS: VTYPE_STRING, LDP_NO_META_FLUSH: VTYPE_BOOL, LDP_DEFAULT_METAVG: VTYPE_STRING, + LDP_DISK_CUSTOM: VTYPE_STRING, + LDP_NET_CUSTOM: VTYPE_STRING, } DISK_LD_PARAMETERS = frozenset(DISK_LD_TYPES.keys()) @@ -952,6 +956,8 @@ DRBD_META_STRIPES = "meta-stripes" DRBD_DISK_BARRIERS = "disk-barriers" DRBD_META_BARRIERS = "meta-barriers" DRBD_DEFAULT_METAVG = "metavg" +DRBD_DISK_CUSTOM = "disk-custom" +DRBD_NET_CUSTOM = "net-custom" LV_STRIPES = "stripes" DISK_DT_TYPES = { DRBD_RESYNC_RATE: VTYPE_INT, @@ -960,6 +966,8 @@ DISK_DT_TYPES = { DRBD_DISK_BARRIERS: VTYPE_STRING, DRBD_META_BARRIERS: VTYPE_BOOL, DRBD_DEFAULT_METAVG: VTYPE_STRING, + DRBD_DISK_CUSTOM: VTYPE_STRING, + DRBD_NET_CUSTOM: VTYPE_STRING, LV_STRIPES: VTYPE_INT, } @@ -1734,6 +1742,8 @@ DISK_LD_DEFAULTS = { LDP_BARRIERS: _autoconf.DRBD_BARRIERS, LDP_NO_META_FLUSH: _autoconf.DRBD_NO_META_FLUSH, LDP_DEFAULT_METAVG: DEFAULT_VG, + LDP_DISK_CUSTOM: "", + LDP_NET_CUSTOM: "", }, LD_LV: { LDP_STRIPES: _autoconf.LVM_STRIPECOUNT @@ -1755,6 +1765,8 @@ DISK_DT_DEFAULTS = { DRBD_DISK_BARRIERS: DISK_LD_DEFAULTS[LD_DRBD8][LDP_BARRIERS], DRBD_META_BARRIERS: DISK_LD_DEFAULTS[LD_DRBD8][LDP_NO_META_FLUSH], DRBD_DEFAULT_METAVG: DISK_LD_DEFAULTS[LD_DRBD8][LDP_DEFAULT_METAVG], + DRBD_DISK_CUSTOM: DISK_LD_DEFAULTS[LD_DRBD8][LDP_DISK_CUSTOM], + DRBD_NET_CUSTOM: DISK_LD_DEFAULTS[LD_DRBD8][LDP_NET_CUSTOM], }, DT_DISKLESS: { }, -- GitLab