Revision 55011921

b/lib/cmdlib.py
11789 11789
    self.relocate_from = None
11790 11790
    self.name = None
11791 11791
    self.evac_nodes = None
11792
    self.instances = None
11793
    self.reloc_mode = None
11794
    self.target_groups = None
11792 11795
    # computed fields
11793 11796
    self.required_nodes = None
11794 11797
    # init result fields
......
11839 11842
      hypervisor_name = self.hypervisor
11840 11843
    elif self.mode == constants.IALLOCATOR_MODE_RELOC:
11841 11844
      hypervisor_name = cfg.GetInstanceInfo(self.name).hypervisor
11842
    elif self.mode == constants.IALLOCATOR_MODE_MEVAC:
11845
    elif self.mode in (constants.IALLOCATOR_MODE_MEVAC,
11846
                       constants.IALLOCATOR_MODE_MRELOC):
11843 11847
      hypervisor_name = cluster_info.enabled_hypervisors[0]
11844 11848

  
11845 11849
    node_data = self.rpc.call_node_info(node_list, cfg.GetVGName(),
......
12073 12077
      }
12074 12078
    return request
12075 12079

  
12080
  def _AddMultiRelocate(self):
12081
    """Get data for multi-relocate requests.
12082

  
12083
    """
12084
    return {
12085
      "instances": self.instances,
12086
      "reloc_mode": self.reloc_mode,
12087
      "target_groups": self.target_groups,
12088
      }
12089

  
12076 12090
  def _BuildInputData(self, fn):
12077 12091
    """Build input data structures.
12078 12092

  
......
12094 12108
      (_AddRelocateInstance, ["name", "relocate_from"]),
12095 12109
    constants.IALLOCATOR_MODE_MEVAC:
12096 12110
      (_AddEvacuateNodes, ["evac_nodes"]),
12111
    constants.IALLOCATOR_MODE_MRELOC:
12112
      (_AddMultiRelocate, ["instances", "reloc_mode", "target_groups"]),
12097 12113
    }
12098 12114

  
12099 12115
  def Run(self, name, validate=True, call_fn=None):

Also available in: Unified diff