Revision 7796e1f8 lib/client/gnt_cluster.py
b/lib/client/gnt_cluster.py | ||
---|---|---|
108 | 108 |
return vg_name |
109 | 109 |
|
110 | 110 |
|
111 |
def _InitDrbdHelper(opts): |
|
111 |
def _InitDrbdHelper(opts, enabled_disk_templates):
|
|
112 | 112 |
"""Initialize the DRBD usermode helper. |
113 | 113 |
|
114 | 114 |
""" |
115 |
if not opts.drbd_storage and opts.drbd_helper: |
|
115 |
drbd_enabled = constants.DT_DRBD8 in enabled_disk_templates |
|
116 |
|
|
117 |
# This raises an exception due to historical reasons, one might consider |
|
118 |
# letting the user set a helper without having DRBD enabled. |
|
119 |
if not drbd_enabled and opts.drbd_helper: |
|
116 | 120 |
raise errors.OpPrereqError( |
117 |
"Options --no-drbd-storage and --drbd-usermode-helper conflict.") |
|
121 |
"Enabling the DRBD disk template and setting a drbd usermode helper" |
|
122 |
" with --drbd-usermode-helper conflict.") |
|
118 | 123 |
|
119 |
if opts.drbd_storage and not opts.drbd_helper: |
|
120 |
return constants.DEFAULT_DRBD_HELPER |
|
124 |
if drbd_enabled: |
|
125 |
if opts.drbd_helper is None: |
|
126 |
return constants.DEFAULT_DRBD_HELPER |
|
127 |
if opts.drbd_helper == '': |
|
128 |
raise errors.OpPrereqError( |
|
129 |
"Unsetting the drbd usermode helper while enabling DRBD is not" |
|
130 |
" allowed.") |
|
121 | 131 |
|
122 | 132 |
return opts.drbd_helper |
123 | 133 |
|
... | ... | |
141 | 151 |
|
142 | 152 |
try: |
143 | 153 |
vg_name = _InitVgName(opts, enabled_disk_templates) |
144 |
drbd_helper = _InitDrbdHelper(opts) |
|
154 |
drbd_helper = _InitDrbdHelper(opts, enabled_disk_templates)
|
|
145 | 155 |
except errors.OpPrereqError, e: |
146 | 156 |
ToStderr(str(e)) |
147 | 157 |
return 1 |
Also available in: Unified diff