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;
     }
 
 }