Sho SHIMIZU
Committed by Gerrit Code Review

Avoid overlap of resource allocations

Change-Id: I7b1905ea694039909623fdc0bf3e505799cbdafa
...@@ -363,6 +363,15 @@ public class ConsistentLinkResourceStore extends ...@@ -363,6 +363,15 @@ public class ConsistentLinkResourceStore extends
363 after.add(allocations); 363 after.add(allocations);
364 linkAllocs.putIfAbsent(linkKey, after); 364 linkAllocs.putIfAbsent(linkKey, after);
365 } else { 365 } else {
366 + boolean overlapped = before.stream()
367 + .flatMap(x -> x.getResourceAllocation(link).stream())
368 + .anyMatch(x -> allocations.getResourceAllocation(link).contains(x));
369 + if (overlapped) {
370 + throw new ResourceAllocationException(
371 + String.format("Resource allocations are overlapped between %s and %s",
372 + before, allocations)
373 + );
374 + }
366 List<LinkResourceAllocations> after = new ArrayList<>(before.size() + 1); 375 List<LinkResourceAllocations> after = new ArrayList<>(before.size() + 1);
367 after.addAll(before); 376 after.addAll(before);
368 after.add(allocations); 377 after.add(allocations);
......