aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/core/store/dist/src/main/java/org/onosproject/store/resource/impl/ConsistentLinkResourceStore.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/core/store/dist/src/main/java/org/onosproject/store/resource/impl/ConsistentLinkResourceStore.java')
-rw-r--r--framework/src/onos/core/store/dist/src/main/java/org/onosproject/store/resource/impl/ConsistentLinkResourceStore.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/framework/src/onos/core/store/dist/src/main/java/org/onosproject/store/resource/impl/ConsistentLinkResourceStore.java b/framework/src/onos/core/store/dist/src/main/java/org/onosproject/store/resource/impl/ConsistentLinkResourceStore.java
index 11137aa2..c332ada5 100644
--- a/framework/src/onos/core/store/dist/src/main/java/org/onosproject/store/resource/impl/ConsistentLinkResourceStore.java
+++ b/framework/src/onos/core/store/dist/src/main/java/org/onosproject/store/resource/impl/ConsistentLinkResourceStore.java
@@ -363,6 +363,15 @@ public class ConsistentLinkResourceStore extends
after.add(allocations);
linkAllocs.putIfAbsent(linkKey, after);
} else {
+ boolean overlapped = before.stream()
+ .flatMap(x -> x.getResourceAllocation(link).stream())
+ .anyMatch(x -> allocations.getResourceAllocation(link).contains(x));
+ if (overlapped) {
+ throw new ResourceAllocationException(
+ String.format("Resource allocations are overlapped between %s and %s",
+ before, allocations)
+ );
+ }
List<LinkResourceAllocations> after = new ArrayList<>(before.size() + 1);
after.addAll(before);
after.add(allocations);