Revision b726aff0

b/daemons/ganeti-masterd
520 520
    try:
521 521
      # activate ip
522 522
      master_node = ssconf.SimpleConfigReader().GetMasterNode()
523
      if not rpc.RpcRunner.call_node_start_master(master_node, False):
524
        logging.error("Can't activate master IP address")
523
      result = rpc.RpcRunner.call_node_start_master(master_node, False)
524
      msg = result.RemoteFailMsg()
525
      if msg:
526
        logging.error("Can't activate master IP address: %s", msg)
525 527

  
526 528
      master.setup_queue()
527 529
      try:
b/lib/backend.py
189 189
  @rtype: None
190 190

  
191 191
  """
192
  ok = True
193 192
  master_netdev, master_ip, _ = GetMasterInfo()
194 193
  if not master_netdev:
195
    return False
194
    return False, "Cluster configuration incomplete, cannot read ssconf files"
196 195

  
196
  payload = []
197 197
  if utils.TcpPing(master_ip, constants.DEFAULT_NODED_PORT):
198 198
    if utils.OwnIpAddress(master_ip):
199 199
      # we already have the ip:
200
      logging.debug("Already started")
200
      logging.debug("Master IP already configured, doing nothing")
201 201
    else:
202
      logging.error("Someone else has the master ip, not activating")
203
      ok = False
202
      msg = "Someone else has the master ip, not activating"
203
      logging.error(msg)
204
      payload.append(msg)
204 205
  else:
205 206
    result = utils.RunCmd(["ip", "address", "add", "%s/32" % master_ip,
206 207
                           "dev", master_netdev, "label",
207 208
                           "%s:0" % master_netdev])
208 209
    if result.failed:
209
      logging.error("Can't activate master IP: %s", result.output)
210
      ok = False
210
      msg = "Can't activate master IP: %s" % result.output
211
      logging.error(msg)
212
      payload.append(msg)
211 213

  
212 214
    result = utils.RunCmd(["arping", "-q", "-U", "-c 3", "-I", master_netdev,
213 215
                           "-s", master_ip, master_ip])
......
218 220
    for daemon in 'ganeti-masterd', 'ganeti-rapi':
219 221
      result = utils.RunCmd([daemon])
220 222
      if result.failed:
221
        logging.error("Can't start daemon %s: %s", daemon, result.output)
222
        ok = False
223
  return ok
223
        msg = "Can't start daemon %s: %s" % (daemon, result.output)
224
        logging.error(msg)
225
        payload.append(msg)
226

  
227
  return not payload, "; ".join(payload)
224 228

  
225 229

  
226 230
def StopMaster(stop_daemons):
b/lib/bootstrap.py
271 271

  
272 272
  # start the master ip
273 273
  # TODO: Review rpc call from bootstrap
274
  # TODO: Warn on failed start master
274 275
  rpc.RpcRunner.call_node_start_master(hostname.name, True)
275 276

  
276 277

  
......
444 445
  cfg.Update(cluster_info)
445 446

  
446 447
  result = rpc.RpcRunner.call_node_start_master(new_master, True)
447
  if result.failed or not result.data:
448
  msg = result.RemoteFailMsg()
449
  if msg:
448 450
    logging.error("Could not start the master role on the new master"
449
                  " %s, please check", new_master)
451
                  " %s, please check: %s", new_master, msg)
450 452
    rcode = 1
451 453

  
452 454
  return rcode
b/lib/cmdlib.py
1425 1425

  
1426 1426
    finally:
1427 1427
      result = self.rpc.call_node_start_master(master, False)
1428
      if result.failed or not result.data:
1428
      msg = result.RemoteFailMsg()
1429
      if msg:
1429 1430
        self.LogWarning("Could not re-enable the master role on"
1430
                        " the master, please restart manually.")
1431
                        " the master, please restart manually: %s", msg)
1431 1432

  
1432 1433

  
1433 1434
def _RecursiveCheckIfLVMBased(disk):

Also available in: Unified diff