Revision d833acc6

b/lib/client/gnt_node.py
163 163
  readd = opts.readd
164 164

  
165 165
  try:
166
    output = cl.QueryNodes(names=[node], fields=['name', 'sip'],
166
    output = cl.QueryNodes(names=[node], fields=['name', 'sip', 'master'],
167 167
                           use_locking=False)
168
    node_exists, sip = output[0]
168
    node_exists, sip, is_master = output[0]
169 169
  except (errors.OpPrereqError, errors.OpExecError):
170 170
    node_exists = ""
171 171
    sip = None
......
175 175
      ToStderr("Node %s not in the cluster"
176 176
               " - please retry without '--readd'", node)
177 177
      return 1
178
    if is_master:
179
      ToStderr("Node %s is the master, cannot readd", node)
180
      return 1
178 181
  else:
179 182
    if node_exists:
180 183
      ToStderr("Node %s already in the cluster (as %s)"
b/lib/cmdlib.py
4053 4053
    self.hostname = netutils.GetHostname(name=self.op.node_name,
4054 4054
                                         family=self.primary_ip_family)
4055 4055
    self.op.node_name = self.hostname.name
4056

  
4057
    if self.op.readd and self.op.node_name == self.cfg.GetMasterNode():
4058
      raise errors.OpPrereqError("Cannot readd the master node",
4059
                                 errors.ECODE_STATE)
4060

  
4056 4061
    if self.op.readd and self.op.group:
4057 4062
      raise errors.OpPrereqError("Cannot pass a node group when a node is"
4058 4063
                                 " being readded", errors.ECODE_INVAL)

Also available in: Unified diff