+ deviceInfo.addToDeviceUpdate(transactionType, element);
+ }
+
+ public void clearDeviceOpUUID(Class<? extends Identifiable> cls, InstanceIdentifier iid, UUID uuid) {
+ deviceInfo.clearDeviceOperUUID(cls, iid, uuid);
+ }
+
+ public void addToDeleteTx(ReadWriteTransaction tx, Class<? extends Identifiable> cls, InstanceIdentifier iid,
+ UUID uuid) {
+ if (deviceInfo.isAvailableInOperDs(cls, iid)) {
+ tx.delete(LogicalDatastoreType.OPERATIONAL, iid);
+ }
+ deletedKeys.add(Pair.of(cls, iid));
+ clearDeviceOpUUID(cls, iid, uuid);
+ }
+
+ public void addToUpdateTx(Class<? extends Identifiable> cls, InstanceIdentifier iid, UUID uuid,
+ Object southboundData) {
+ addedKeys.add(Pair.of(cls, iid));
+ deviceInfo.updateDeviceOperData(cls, iid, uuid, southboundData);
+ }
+
+ public void onSuccess() {
+ addedKeys.stream().forEach(pair -> {
+ deviceInfo.markAvailableInOperDs(pair.getLeft(), pair.getRight());
+ });
+ deletedKeys.stream().forEach(pair -> {
+ deviceInfo.clearOperDsAvailability(pair.getLeft(), pair.getRight());
+ deviceInfo.clearDeviceOperData(pair.getLeft(), pair.getRight());
+ });
+ }
+
+ public void onFailure() {
+ addedKeys.stream().forEach(pair -> {
+ LOG.error("Failed to add {}", pair.getLeft().getSimpleName());
+ });
+ deletedKeys.stream().forEach(pair -> {
+ LOG.error("Failed to delete {}", pair.getLeft().getSimpleName());
+ });