update and get available link resource consindering existing linkAllocations
Change-Id: Iee93253d253ff38d23630a2c5ac9c0a14329d92f
diff --git a/core/api/src/main/java/org/onlab/onos/net/resource/LinkResourceService.java b/core/api/src/main/java/org/onlab/onos/net/resource/LinkResourceService.java
index 08c4985..69cc5c0 100644
--- a/core/api/src/main/java/org/onlab/onos/net/resource/LinkResourceService.java
+++ b/core/api/src/main/java/org/onlab/onos/net/resource/LinkResourceService.java
@@ -86,7 +86,7 @@
* @param allocations allocations to be included as available
* @return available resources for the target link
*/
- ResourceRequest getAvailableResources(Link link,
+ Iterable<ResourceRequest> getAvailableResources(Link link,
LinkResourceAllocations allocations);
}
diff --git a/core/api/src/test/java/org/onlab/onos/net/intent/IntentTestsMocks.java b/core/api/src/test/java/org/onlab/onos/net/intent/IntentTestsMocks.java
index 90e9bec..cc2ef75 100644
--- a/core/api/src/test/java/org/onlab/onos/net/intent/IntentTestsMocks.java
+++ b/core/api/src/test/java/org/onlab/onos/net/intent/IntentTestsMocks.java
@@ -269,7 +269,7 @@
}
@Override
- public ResourceRequest getAvailableResources(Link link, LinkResourceAllocations allocations) {
+ public Iterable<ResourceRequest> getAvailableResources(Link link, LinkResourceAllocations allocations) {
return null;
}
}
diff --git a/core/net/src/main/java/org/onlab/onos/net/resource/impl/LinkResourceManager.java b/core/net/src/main/java/org/onlab/onos/net/resource/impl/LinkResourceManager.java
index ce01dd1..e7f22be 100644
--- a/core/net/src/main/java/org/onlab/onos/net/resource/impl/LinkResourceManager.java
+++ b/core/net/src/main/java/org/onlab/onos/net/resource/impl/LinkResourceManager.java
@@ -156,8 +156,8 @@
@Override
public LinkResourceAllocations updateResources(LinkResourceRequest req,
LinkResourceAllocations oldAllocations) {
- // TODO
- return null;
+ releaseResources(oldAllocations);
+ return requestResources(req);
}
@Override
@@ -196,10 +196,13 @@
}
@Override
- public ResourceRequest getAvailableResources(Link link,
+ public Iterable<ResourceRequest> getAvailableResources(Link link,
LinkResourceAllocations allocations) {
- // TODO
- return null;
+ Set<ResourceRequest> result = new HashSet<>();
+ Set<ResourceAllocation> allocatedRes = allocations.getResourceAllocation(link);
+ result = (Set<ResourceRequest>) getAvailableResources(link);
+ result.addAll(allocatedRes);
+ return result;
}
}