+ private void selectNewOwnerForEntitiesOwnedBy(MemberName downMemberName) {
+ final BatchedModifications modifications = commitCoordinator.newBatchedModifications();
+ searchForEntitiesOwnedBy(downMemberName.getName(), (entityTypeNode, entityNode) -> {
+ YangInstanceIdentifier entityPath = YangInstanceIdentifier.builder(ENTITY_TYPES_PATH).
+ node(entityTypeNode.getIdentifier()).node(ENTITY_NODE_ID).node(entityNode.getIdentifier()).
+ node(ENTITY_OWNER_NODE_ID).build();
+ String newOwner = newOwner(getCurrentOwner(entityPath), getCandidateNames(entityNode),
+ getEntityOwnerElectionStrategy(entityPath));
+
+ if(!newOwner.isEmpty()) {
+ LOG.debug("{}: Found entity {}, writing new owner {}", persistenceId(), entityPath, newOwner);
+
+ modifications.addModification(new WriteModification(entityPath,
+ ImmutableNodes.leafNode(ENTITY_OWNER_NODE_ID, newOwner)));
+
+ } else {
+ LOG.debug("{}: Found entity {} but no other candidates - not clearing owner", persistenceId(),
+ entityPath, newOwner);
+ }
+ });
+
+ commitCoordinator.commitModifications(modifications, this);
+ }
+