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