'Check if a lease for a given dataset is already held by a
node other than the one given and raise an error if it is.
:param UUID dataset_id: The dataset to check.
:param UUID node_uuid: The node that should hold a lease
on the given dataset.
:param unicode action: The action we are attempting.'

def _check_lease(self, dataset_id, node_id, action):

    if ((dataset_id in self) and (self[dataset_id].node_id != node_id)):
        raise LeaseError(dataset_id, node_id, action)
