def LoadNodeEvacResult(lu, alloc_result, early_release, use_nodes):
  (moved, failed, jobs) = alloc_result

  if failed:
    failreason = utils.CommaJoin("%s (%s)" % (name, reason)
                                 for (name, reason) in failed)
    lu.LogWarning("Unable to evacuate instances %s", failreason)
    raise errors.OpExecError("Unable to evacuate instances %s" % failreason)

  if moved:
    lu.LogInfo("Instances to be moved: %s",
               utils.CommaJoin(
                 "%s (to %s)" %
                 (name, _NodeEvacDest(use_nodes, group, node_names))
                 for (name, group, node_names) in moved))

  return [map(compat.partial(_SetOpEarlyRelease, early_release),
              map(opcodes.OpCode.LoadOpCode, ops))
          for ops in jobs]
RESTful CRUD controller
dataset/ETHPy150Open ganeti/ganeti/lib/cmdlib/common.py/LoadNodeEvacResult--crossover with--dataset/ETHPy150Open sahana/eden/controllers/pr.py/group