Use ResourceId or DiscreteResourceId when specifying a resource
Change-Id: I4e29558ec649510c8d08bb5e5f8ed10c189252e5
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/MplsPathIntentCompiler.java b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/MplsPathIntentCompiler.java
index c8c7e8f..94b178e 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/MplsPathIntentCompiler.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/MplsPathIntentCompiler.java
@@ -157,7 +157,7 @@
}
private Set<MplsLabel> findMplsLabel(ConnectPoint cp) {
- return resourceService.getAvailableResources(Resources.discrete(cp.deviceId(), cp.port()).resource()).stream()
+ return resourceService.getAvailableResources(Resources.discrete(cp.deviceId(), cp.port()).id()).stream()
.filter(x -> x.last() instanceof MplsLabel)
.map(x -> (MplsLabel) x.last())
.collect(Collectors.toSet());
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalCircuitIntentCompiler.java b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalCircuitIntentCompiler.java
index d2f92d5..b76ece8 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalCircuitIntentCompiler.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalCircuitIntentCompiler.java
@@ -313,8 +313,7 @@
if (ochCP != null) {
OchPort ochPort = (OchPort) deviceService.getPort(ochCP.deviceId(), ochCP.port());
Optional<IntentId> intentId =
- resourceService.getResourceAllocations(
- Resources.discrete(ochCP.deviceId(), ochCP.port()).resource())
+ resourceService.getResourceAllocations(Resources.discrete(ochCP.deviceId(), ochCP.port()).id())
.stream()
.map(ResourceAllocation::consumer)
.filter(x -> x instanceof IntentId)
@@ -335,8 +334,7 @@
}
Optional<IntentId> intentId =
- resourceService.getResourceAllocations(
- Resources.discrete(oduPort.deviceId(), port.number()).resource())
+ resourceService.getResourceAllocations(Resources.discrete(oduPort.deviceId(), port.number()).id())
.stream()
.map(ResourceAllocation::consumer)
.filter(x -> x instanceof IntentId)
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalConnectivityIntentCompiler.java b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalConnectivityIntentCompiler.java
index 2f04cfd..5b741bc 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalConnectivityIntentCompiler.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalConnectivityIntentCompiler.java
@@ -214,8 +214,8 @@
private Set<OchSignal> findCommonLambdasOverLinks(List<Link> links) {
return links.stream()
.flatMap(x -> Stream.of(
- Resources.discrete(x.src().deviceId(), x.src().port()).resource(),
- Resources.discrete(x.dst().deviceId(), x.dst().port()).resource()
+ Resources.discrete(x.src().deviceId(), x.src().port()).id(),
+ Resources.discrete(x.dst().deviceId(), x.dst().port()).id()
))
.map(resourceService::getAvailableResources)
.map(x -> Iterables.filter(x, r -> r.last() instanceof OchSignal))
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/PathIntentCompiler.java b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/PathIntentCompiler.java
index 93e2d8c..7309a09 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/PathIntentCompiler.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/PathIntentCompiler.java
@@ -285,7 +285,7 @@
}
private Set<VlanId> findVlanId(ConnectPoint cp) {
- return resourceService.getAvailableResources(Resources.discrete(cp.deviceId(), cp.port()).resource()).stream()
+ return resourceService.getAvailableResources(Resources.discrete(cp.deviceId(), cp.port()).id()).stream()
.filter(x -> x.last() instanceof VlanId)
.map(x -> (VlanId) x.last())
.collect(Collectors.toSet());
diff --git a/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceManager.java b/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceManager.java
index 517ee10..5fc9d55 100644
--- a/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceManager.java
+++ b/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceManager.java
@@ -25,10 +25,12 @@
import org.apache.felix.scr.annotations.Service;
import org.onlab.util.GuavaCollectors;
import org.onosproject.event.AbstractListenerManager;
+import org.onosproject.net.newresource.DiscreteResourceId;
import org.onosproject.net.newresource.ResourceAdminService;
import org.onosproject.net.newresource.ResourceAllocation;
import org.onosproject.net.newresource.ResourceConsumer;
import org.onosproject.net.newresource.ResourceEvent;
+import org.onosproject.net.newresource.ResourceId;
import org.onosproject.net.newresource.ResourceListener;
import org.onosproject.net.newresource.ResourceService;
import org.onosproject.net.newresource.Resource;
@@ -115,25 +117,21 @@
}
@Override
- public List<ResourceAllocation> getResourceAllocations(Resource resource) {
- checkNotNull(resource);
+ public List<ResourceAllocation> getResourceAllocations(ResourceId id) {
+ checkNotNull(id);
- List<ResourceConsumer> consumers = store.getConsumers(resource);
- return consumers.stream()
- .map(x -> new ResourceAllocation(resource, x))
- .collect(GuavaCollectors.toImmutableList());
+ return store.getResourceAllocations(id);
}
@Override
- public <T> Collection<ResourceAllocation> getResourceAllocations(Resource parent, Class<T> cls) {
+ public <T> Collection<ResourceAllocation> getResourceAllocations(DiscreteResourceId parent, Class<T> cls) {
checkNotNull(parent);
checkNotNull(cls);
// We access store twice in this method, then the store may be updated by others
Collection<Resource> resources = store.getAllocatedResources(parent, cls);
return resources.stream()
- .flatMap(resource -> store.getConsumers(resource).stream()
- .map(consumer -> new ResourceAllocation(resource, consumer)))
+ .flatMap(resource -> store.getResourceAllocations(resource.id()).stream())
.collect(GuavaCollectors.toImmutableList());
}
@@ -148,7 +146,7 @@
}
@Override
- public Set<Resource> getAvailableResources(Resource parent) {
+ public Set<Resource> getAvailableResources(DiscreteResourceId parent) {
checkNotNull(parent);
Set<Resource> children = store.getChildResources(parent);
@@ -159,7 +157,7 @@
}
@Override
- public Set<Resource> getRegisteredResources(Resource parent) {
+ public Set<Resource> getRegisteredResources(DiscreteResourceId parent) {
checkNotNull(parent);
return store.getChildResources(parent);
diff --git a/core/net/src/test/java/org/onosproject/net/intent/impl/compiler/MockResourceService.java b/core/net/src/test/java/org/onosproject/net/intent/impl/compiler/MockResourceService.java
index c985882..4083f5b 100644
--- a/core/net/src/test/java/org/onosproject/net/intent/impl/compiler/MockResourceService.java
+++ b/core/net/src/test/java/org/onosproject/net/intent/impl/compiler/MockResourceService.java
@@ -19,11 +19,16 @@
import com.google.common.collect.ImmutableSet;
import org.onlab.packet.MplsLabel;
import org.onlab.packet.VlanId;
+import org.onosproject.net.newresource.ContinuousResourceId;
+import org.onosproject.net.newresource.DiscreteResource;
+import org.onosproject.net.newresource.DiscreteResourceId;
import org.onosproject.net.newresource.ResourceAllocation;
import org.onosproject.net.newresource.ResourceConsumer;
+import org.onosproject.net.newresource.ResourceId;
import org.onosproject.net.newresource.ResourceListener;
import org.onosproject.net.newresource.Resource;
import org.onosproject.net.newresource.ResourceService;
+import org.onosproject.net.newresource.Resources;
import java.util.Collection;
import java.util.HashMap;
@@ -70,17 +75,21 @@
}
@Override
- public List<ResourceAllocation> getResourceAllocations(Resource resource) {
- return Optional.ofNullable(assignment.get(resource))
- .map(x -> ImmutableList.of(new ResourceAllocation(resource, x)))
+ public List<ResourceAllocation> getResourceAllocations(ResourceId id) {
+ if (id instanceof ContinuousResourceId) {
+ return ImmutableList.of();
+ }
+ DiscreteResource discrete = Resources.discrete((DiscreteResourceId) id).resource();
+ return Optional.ofNullable(assignment.get(discrete))
+ .map(x -> ImmutableList.of(new ResourceAllocation(discrete, x)))
.orElse(ImmutableList.of());
}
@Override
- public <T> Collection<ResourceAllocation> getResourceAllocations(Resource parent, Class<T> cls) {
+ public <T> Collection<ResourceAllocation> getResourceAllocations(DiscreteResourceId parent, Class<T> cls) {
return assignment.entrySet().stream()
.filter(x -> x.getKey().parent().isPresent())
- .filter(x -> x.getKey().parent().get().equals(parent))
+ .filter(x -> x.getKey().parent().get().id().equals(parent))
.map(x -> new ResourceAllocation(x.getKey(), x.getValue()))
.collect(Collectors.toList());
}
@@ -94,16 +103,15 @@
}
@Override
- public Set<Resource> getAvailableResources(Resource parent) {
-
- Collection<Resource> resources = new HashSet<Resource>();
- resources.add(parent.child(VlanId.vlanId((short) 10)));
- resources.add(parent.child(MplsLabel.mplsLabel(10)));
+ public Set<Resource> getAvailableResources(DiscreteResourceId parent) {
+ Collection<Resource> resources = new HashSet<>();
+ resources.add(Resources.discrete(parent).resource().child(VlanId.vlanId((short) 10)));
+ resources.add(Resources.discrete(parent).resource().child(MplsLabel.mplsLabel(10)));
return ImmutableSet.copyOf(resources);
}
@Override
- public Set<Resource> getRegisteredResources(Resource parent) {
+ public Set<Resource> getRegisteredResources(DiscreteResourceId parent) {
return getAvailableResources(parent);
}