def ValidateResult(self, ia, result): """Validates the result of an relocation request. """ IARequestBase.ValidateResult(self, ia, result) node2group = dict((name, ndata["group"]) for (name, ndata) in ia.in_data["nodes"].items()) fn = compat.partial(self._NodesToGroups, node2group, ia.in_data["nodegroups"]) instance = ia.cfg.GetInstanceInfo(self.inst_uuid) request_groups = fn( ia.cfg.GetNodeNames(self.relocate_from_node_uuids) + ia.cfg.GetNodeNames([instance.primary_node])) result_groups = fn(result + ia.cfg.GetNodeNames([instance.primary_node])) if ia.success and not set(result_groups).issubset(request_groups): raise errors.ResultValidationError( "Groups of nodes returned by" " iallocator (%s) differ from original" " groups (%s)" % (utils.CommaJoin(result_groups), utils.CommaJoin(request_groups)))
def ValidateResult(self, ia, result): """Validates an single instance allocation request. """ IARequestBase.ValidateResult(self, ia, result) if ia.success and len(result) != self.RequiredNodes(): raise errors.ResultValidationError("iallocator returned invalid number" " of nodes (%s), required %s" % (len(result), self.RequiredNodes()))
def ValidateResult(self, ia, result): """Validates the result of an request. @param ia: The IAllocator instance @param result: The IAllocator run result @raises ResultValidationError: If validation fails """ if ia.success and not self.REQ_RESULT(result): # pylint: disable=E1102 raise errors.ResultValidationError( "iallocator returned invalid result," " expected %s, got %s" % (self.REQ_RESULT, result))