Committed by
Gerrit Code Review
Replace method call of DeviceResourceService with that of ResourceService
Change-Id: I7a0400652cd43831a3fff4c0dc73fbe79d4eb633
Showing
5 changed files
with
41 additions
and
69 deletions
... | @@ -45,6 +45,7 @@ import org.onosproject.net.intent.IntentState; | ... | @@ -45,6 +45,7 @@ import org.onosproject.net.intent.IntentState; |
45 | import org.onosproject.net.intent.OpticalCircuitIntent; | 45 | import org.onosproject.net.intent.OpticalCircuitIntent; |
46 | import org.onosproject.net.intent.OpticalConnectivityIntent; | 46 | import org.onosproject.net.intent.OpticalConnectivityIntent; |
47 | import org.onosproject.net.intent.PointToPointIntent; | 47 | import org.onosproject.net.intent.PointToPointIntent; |
48 | +import org.onosproject.net.newresource.ResourceService; | ||
48 | import org.onosproject.net.resource.device.DeviceResourceService; | 49 | import org.onosproject.net.resource.device.DeviceResourceService; |
49 | import org.onosproject.net.resource.link.LinkResourceAllocations; | 50 | import org.onosproject.net.resource.link.LinkResourceAllocations; |
50 | import org.onosproject.net.resource.link.LinkResourceService; | 51 | import org.onosproject.net.resource.link.LinkResourceService; |
... | @@ -102,6 +103,9 @@ public class OpticalPathProvisioner { | ... | @@ -102,6 +103,9 @@ public class OpticalPathProvisioner { |
102 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) | 103 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) |
103 | protected LinkResourceService linkResourceService; | 104 | protected LinkResourceService linkResourceService; |
104 | 105 | ||
106 | + @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) | ||
107 | + protected ResourceService resourceService; | ||
108 | + | ||
105 | private ApplicationId appId; | 109 | private ApplicationId appId; |
106 | 110 | ||
107 | private final InternalOpticalPathProvisioner pathProvisioner = new InternalOpticalPathProvisioner(); | 111 | private final InternalOpticalPathProvisioner pathProvisioner = new InternalOpticalPathProvisioner(); |
... | @@ -375,12 +379,12 @@ public class OpticalPathProvisioner { | ... | @@ -375,12 +379,12 @@ public class OpticalPathProvisioner { |
375 | private void releaseResources(Intent intent) { | 379 | private void releaseResources(Intent intent) { |
376 | LinkResourceAllocations lra = linkResourceService.getAllocations(intent.id()); | 380 | LinkResourceAllocations lra = linkResourceService.getAllocations(intent.id()); |
377 | if (intent instanceof OpticalConnectivityIntent) { | 381 | if (intent instanceof OpticalConnectivityIntent) { |
378 | - deviceResourceService.releasePorts(intent.id()); | 382 | + resourceService.release(intent.id()); |
379 | if (lra != null) { | 383 | if (lra != null) { |
380 | linkResourceService.releaseResources(lra); | 384 | linkResourceService.releaseResources(lra); |
381 | } | 385 | } |
382 | } else if (intent instanceof OpticalCircuitIntent) { | 386 | } else if (intent instanceof OpticalCircuitIntent) { |
383 | - deviceResourceService.releasePorts(intent.id()); | 387 | + resourceService.release(intent.id()); |
384 | deviceResourceService.releaseMapping(intent.id()); | 388 | deviceResourceService.releaseMapping(intent.id()); |
385 | if (lra != null) { | 389 | if (lra != null) { |
386 | linkResourceService.releaseResources(lra); | 390 | linkResourceService.releaseResources(lra); | ... | ... |
... | @@ -16,8 +16,6 @@ | ... | @@ -16,8 +16,6 @@ |
16 | package org.onosproject.net.resource.device; | 16 | package org.onosproject.net.resource.device; |
17 | 17 | ||
18 | import com.google.common.annotations.Beta; | 18 | import com.google.common.annotations.Beta; |
19 | -import org.onosproject.net.Port; | ||
20 | -import org.onosproject.net.intent.Intent; | ||
21 | import org.onosproject.net.intent.IntentId; | 19 | import org.onosproject.net.intent.IntentId; |
22 | 20 | ||
23 | import java.util.Set; | 21 | import java.util.Set; |
... | @@ -27,30 +25,6 @@ import java.util.Set; | ... | @@ -27,30 +25,6 @@ import java.util.Set; |
27 | */ | 25 | */ |
28 | @Beta | 26 | @Beta |
29 | public interface DeviceResourceService { | 27 | public interface DeviceResourceService { |
30 | - /** | ||
31 | - * Request a set of ports needed to satisfy the intent. | ||
32 | - * | ||
33 | - * @param ports set of ports to allocate | ||
34 | - * @param intent the intent | ||
35 | - * @return true if ports were successfully allocated, false otherwise | ||
36 | - */ | ||
37 | - boolean requestPorts(Set<Port> ports, Intent intent); | ||
38 | - | ||
39 | - /** | ||
40 | - * Returns the set of ports allocated for an intent. | ||
41 | - * | ||
42 | - * @param intentId the intent ID | ||
43 | - * @return set of allocated ports | ||
44 | - */ | ||
45 | - Set<Port> getAllocations(IntentId intentId); | ||
46 | - | ||
47 | - /** | ||
48 | - * Returns the intent allocated to a port. | ||
49 | - * | ||
50 | - * @param port the port | ||
51 | - * @return intent ID allocated to the port | ||
52 | - */ | ||
53 | - IntentId getAllocations(Port port); | ||
54 | 28 | ||
55 | /** | 29 | /** |
56 | * Request a mapping between the given intents. | 30 | * Request a mapping between the given intents. |
... | @@ -75,11 +49,4 @@ public interface DeviceResourceService { | ... | @@ -75,11 +49,4 @@ public interface DeviceResourceService { |
75 | * @param intentId intent ID | 49 | * @param intentId intent ID |
76 | */ | 50 | */ |
77 | void releaseMapping(IntentId intentId); | 51 | void releaseMapping(IntentId intentId); |
78 | - | ||
79 | - /** | ||
80 | - * Release ports associated with given intent ID. | ||
81 | - * | ||
82 | - * @param intentId intent ID | ||
83 | - */ | ||
84 | - void releasePorts(IntentId intentId); | ||
85 | } | 52 | } | ... | ... |
... | @@ -15,7 +15,6 @@ | ... | @@ -15,7 +15,6 @@ |
15 | */ | 15 | */ |
16 | package org.onosproject.net.intent.impl.compiler; | 16 | package org.onosproject.net.intent.impl.compiler; |
17 | 17 | ||
18 | -import com.google.common.collect.Sets; | ||
19 | import org.apache.commons.lang3.tuple.Pair; | 18 | import org.apache.commons.lang3.tuple.Pair; |
20 | import org.apache.felix.scr.annotations.Activate; | 19 | import org.apache.felix.scr.annotations.Activate; |
21 | import org.apache.felix.scr.annotations.Component; | 20 | import org.apache.felix.scr.annotations.Component; |
... | @@ -50,6 +49,9 @@ import org.onosproject.net.intent.IntentService; | ... | @@ -50,6 +49,9 @@ import org.onosproject.net.intent.IntentService; |
50 | import org.onosproject.net.intent.OpticalCircuitIntent; | 49 | import org.onosproject.net.intent.OpticalCircuitIntent; |
51 | import org.onosproject.net.intent.OpticalConnectivityIntent; | 50 | import org.onosproject.net.intent.OpticalConnectivityIntent; |
52 | import org.onosproject.net.intent.impl.IntentCompilationException; | 51 | import org.onosproject.net.intent.impl.IntentCompilationException; |
52 | +import org.onosproject.net.newresource.ResourceAllocation; | ||
53 | +import org.onosproject.net.newresource.ResourcePath; | ||
54 | +import org.onosproject.net.newresource.ResourceService; | ||
53 | import org.onosproject.net.resource.device.DeviceResourceService; | 55 | import org.onosproject.net.resource.device.DeviceResourceService; |
54 | import org.onosproject.net.resource.link.LinkResourceAllocations; | 56 | import org.onosproject.net.resource.link.LinkResourceAllocations; |
55 | import org.osgi.service.component.ComponentContext; | 57 | import org.osgi.service.component.ComponentContext; |
... | @@ -60,6 +62,7 @@ import java.util.Collections; | ... | @@ -60,6 +62,7 @@ import java.util.Collections; |
60 | import java.util.Dictionary; | 62 | import java.util.Dictionary; |
61 | import java.util.LinkedList; | 63 | import java.util.LinkedList; |
62 | import java.util.List; | 64 | import java.util.List; |
65 | +import java.util.Optional; | ||
63 | import java.util.Set; | 66 | import java.util.Set; |
64 | 67 | ||
65 | import static com.google.common.base.Preconditions.checkArgument; | 68 | import static com.google.common.base.Preconditions.checkArgument; |
... | @@ -92,6 +95,9 @@ public class OpticalCircuitIntentCompiler implements IntentCompiler<OpticalCircu | ... | @@ -92,6 +95,9 @@ public class OpticalCircuitIntentCompiler implements IntentCompiler<OpticalCircu |
92 | protected DeviceService deviceService; | 95 | protected DeviceService deviceService; |
93 | 96 | ||
94 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) | 97 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) |
98 | + protected ResourceService resourceService; | ||
99 | + | ||
100 | + @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) | ||
95 | protected DeviceResourceService deviceResourceService; | 101 | protected DeviceResourceService deviceResourceService; |
96 | 102 | ||
97 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) | 103 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) |
... | @@ -153,7 +159,10 @@ public class OpticalCircuitIntentCompiler implements IntentCompiler<OpticalCircu | ... | @@ -153,7 +159,10 @@ public class OpticalCircuitIntentCompiler implements IntentCompiler<OpticalCircu |
153 | log.debug("Compiling optical circuit intent between {} and {}", src, dst); | 159 | log.debug("Compiling optical circuit intent between {} and {}", src, dst); |
154 | 160 | ||
155 | // Reserve OduClt ports | 161 | // Reserve OduClt ports |
156 | - if (!deviceResourceService.requestPorts(Sets.newHashSet(srcPort, dstPort), intent)) { | 162 | + ResourcePath srcPortPath = new ResourcePath(src.deviceId(), src.port()); |
163 | + ResourcePath dstPortPath = new ResourcePath(dst.deviceId(), dst.port()); | ||
164 | + List<ResourceAllocation> allocation = resourceService.allocate(intent.id(), srcPortPath, dstPortPath); | ||
165 | + if (allocation.isEmpty()) { | ||
157 | throw new IntentCompilationException("Unable to reserve ports for intent " + intent); | 166 | throw new IntentCompilationException("Unable to reserve ports for intent " + intent); |
158 | } | 167 | } |
159 | 168 | ||
... | @@ -301,8 +310,13 @@ public class OpticalCircuitIntentCompiler implements IntentCompiler<OpticalCircu | ... | @@ -301,8 +310,13 @@ public class OpticalCircuitIntentCompiler implements IntentCompiler<OpticalCircu |
301 | 310 | ||
302 | if (ochCP != null) { | 311 | if (ochCP != null) { |
303 | OchPort ochPort = (OchPort) deviceService.getPort(ochCP.deviceId(), ochCP.port()); | 312 | OchPort ochPort = (OchPort) deviceService.getPort(ochCP.deviceId(), ochCP.port()); |
304 | - IntentId intentId = deviceResourceService.getAllocations(ochPort); | 313 | + Optional<IntentId> intentId = |
305 | - if (isAvailable(intentId)) { | 314 | + resourceService.getResourceAllocation(new ResourcePath(ochCP.deviceId(), ochCP.port())) |
315 | + .map(ResourceAllocation::consumer) | ||
316 | + .filter(x -> x instanceof IntentId) | ||
317 | + .map(x -> (IntentId) x); | ||
318 | + | ||
319 | + if (isAvailable(intentId.orElse(null))) { | ||
306 | return ochPort; | 320 | return ochPort; |
307 | } | 321 | } |
308 | } | 322 | } |
... | @@ -315,8 +329,12 @@ public class OpticalCircuitIntentCompiler implements IntentCompiler<OpticalCircu | ... | @@ -315,8 +329,12 @@ public class OpticalCircuitIntentCompiler implements IntentCompiler<OpticalCircu |
315 | continue; | 329 | continue; |
316 | } | 330 | } |
317 | 331 | ||
318 | - IntentId intentId = deviceResourceService.getAllocations(port); | 332 | + Optional<IntentId> intentId = |
319 | - if (isAvailable(intentId)) { | 333 | + resourceService.getResourceAllocation(new ResourcePath(oduPort.deviceId(), port.number())) |
334 | + .map(ResourceAllocation::consumer) | ||
335 | + .filter(x -> x instanceof IntentId) | ||
336 | + .map(x -> (IntentId) x); | ||
337 | + if (isAvailable(intentId.orElse(null))) { | ||
320 | return (OchPort) port; | 338 | return (OchPort) port; |
321 | } | 339 | } |
322 | } | 340 | } | ... | ... |
... | @@ -16,7 +16,6 @@ | ... | @@ -16,7 +16,6 @@ |
16 | package org.onosproject.net.intent.impl.compiler; | 16 | package org.onosproject.net.intent.impl.compiler; |
17 | 17 | ||
18 | import com.google.common.collect.ImmutableList; | 18 | import com.google.common.collect.ImmutableList; |
19 | -import com.google.common.collect.ImmutableSet; | ||
20 | import org.apache.felix.scr.annotations.Activate; | 19 | import org.apache.felix.scr.annotations.Activate; |
21 | import org.apache.felix.scr.annotations.Component; | 20 | import org.apache.felix.scr.annotations.Component; |
22 | import org.apache.felix.scr.annotations.Deactivate; | 21 | import org.apache.felix.scr.annotations.Deactivate; |
... | @@ -40,6 +39,8 @@ import org.onosproject.net.intent.IntentExtensionService; | ... | @@ -40,6 +39,8 @@ import org.onosproject.net.intent.IntentExtensionService; |
40 | import org.onosproject.net.intent.OpticalConnectivityIntent; | 39 | import org.onosproject.net.intent.OpticalConnectivityIntent; |
41 | import org.onosproject.net.intent.OpticalPathIntent; | 40 | import org.onosproject.net.intent.OpticalPathIntent; |
42 | import org.onosproject.net.intent.impl.IntentCompilationException; | 41 | import org.onosproject.net.intent.impl.IntentCompilationException; |
42 | +import org.onosproject.net.newresource.ResourcePath; | ||
43 | +import org.onosproject.net.newresource.ResourceService; | ||
43 | import org.onosproject.net.resource.ResourceType; | 44 | import org.onosproject.net.resource.ResourceType; |
44 | import org.onosproject.net.resource.device.DeviceResourceService; | 45 | import org.onosproject.net.resource.device.DeviceResourceService; |
45 | import org.onosproject.net.resource.link.DefaultLinkResourceRequest; | 46 | import org.onosproject.net.resource.link.DefaultLinkResourceRequest; |
... | @@ -78,6 +79,9 @@ public class OpticalConnectivityIntentCompiler implements IntentCompiler<Optical | ... | @@ -78,6 +79,9 @@ public class OpticalConnectivityIntentCompiler implements IntentCompiler<Optical |
78 | protected DeviceService deviceService; | 79 | protected DeviceService deviceService; |
79 | 80 | ||
80 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) | 81 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) |
82 | + protected ResourceService resourceService; | ||
83 | + | ||
84 | + @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) | ||
81 | protected LinkResourceService linkResourceService; | 85 | protected LinkResourceService linkResourceService; |
82 | 86 | ||
83 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) | 87 | @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) |
... | @@ -108,7 +112,11 @@ public class OpticalConnectivityIntentCompiler implements IntentCompiler<Optical | ... | @@ -108,7 +112,11 @@ public class OpticalConnectivityIntentCompiler implements IntentCompiler<Optical |
108 | log.debug("Compiling optical connectivity intent between {} and {}", src, dst); | 112 | log.debug("Compiling optical connectivity intent between {} and {}", src, dst); |
109 | 113 | ||
110 | // Reserve OCh ports | 114 | // Reserve OCh ports |
111 | - if (!deviceResourceService.requestPorts(ImmutableSet.of(srcPort, dstPort), intent)) { | 115 | + ResourcePath srcPortPath = new ResourcePath(src.deviceId(), src.port()); |
116 | + ResourcePath dstPortPath = new ResourcePath(dst.deviceId(), dst.port()); | ||
117 | + List<org.onosproject.net.newresource.ResourceAllocation> allocation = | ||
118 | + resourceService.allocate(intent.id(), srcPortPath, dstPortPath); | ||
119 | + if (allocation.isEmpty()) { | ||
112 | throw new IntentCompilationException("Unable to reserve ports for intent " + intent); | 120 | throw new IntentCompilationException("Unable to reserve ports for intent " + intent); |
113 | } | 121 | } |
114 | 122 | ||
... | @@ -161,7 +169,7 @@ public class OpticalConnectivityIntentCompiler implements IntentCompiler<Optical | ... | @@ -161,7 +169,7 @@ public class OpticalConnectivityIntentCompiler implements IntentCompiler<Optical |
161 | } | 169 | } |
162 | 170 | ||
163 | // Release port allocations if unsuccessful | 171 | // Release port allocations if unsuccessful |
164 | - deviceResourceService.releasePorts(intent.id()); | 172 | + resourceService.release(intent.id()); |
165 | 173 | ||
166 | throw new IntentCompilationException("Unable to find suitable lightpath for intent " + intent); | 174 | throw new IntentCompilationException("Unable to find suitable lightpath for intent " + intent); |
167 | } | 175 | } | ... | ... |
... | @@ -21,8 +21,6 @@ import org.apache.felix.scr.annotations.Deactivate; | ... | @@ -21,8 +21,6 @@ import org.apache.felix.scr.annotations.Deactivate; |
21 | import org.apache.felix.scr.annotations.Reference; | 21 | import org.apache.felix.scr.annotations.Reference; |
22 | import org.apache.felix.scr.annotations.ReferenceCardinality; | 22 | import org.apache.felix.scr.annotations.ReferenceCardinality; |
23 | import org.apache.felix.scr.annotations.Service; | 23 | import org.apache.felix.scr.annotations.Service; |
24 | -import org.onosproject.net.Port; | ||
25 | -import org.onosproject.net.intent.Intent; | ||
26 | import org.onosproject.net.intent.IntentId; | 24 | import org.onosproject.net.intent.IntentId; |
27 | import org.onosproject.net.resource.device.DeviceResourceService; | 25 | import org.onosproject.net.resource.device.DeviceResourceService; |
28 | import org.onosproject.net.resource.device.DeviceResourceStore; | 26 | import org.onosproject.net.resource.device.DeviceResourceStore; |
... | @@ -30,7 +28,6 @@ import org.slf4j.Logger; | ... | @@ -30,7 +28,6 @@ import org.slf4j.Logger; |
30 | 28 | ||
31 | import java.util.Set; | 29 | import java.util.Set; |
32 | 30 | ||
33 | -import static com.google.common.base.Preconditions.checkNotNull; | ||
34 | import static org.slf4j.LoggerFactory.getLogger; | 31 | import static org.slf4j.LoggerFactory.getLogger; |
35 | 32 | ||
36 | /** | 33 | /** |
... | @@ -56,23 +53,6 @@ public class DeviceResourceManager implements DeviceResourceService { | ... | @@ -56,23 +53,6 @@ public class DeviceResourceManager implements DeviceResourceService { |
56 | } | 53 | } |
57 | 54 | ||
58 | @Override | 55 | @Override |
59 | - public boolean requestPorts(Set<Port> ports, Intent intent) { | ||
60 | - checkNotNull(intent); | ||
61 | - | ||
62 | - return store.allocatePorts(ports, intent.id()); | ||
63 | - } | ||
64 | - | ||
65 | - @Override | ||
66 | - public Set<Port> getAllocations(IntentId intentId) { | ||
67 | - return store.getAllocations(intentId); | ||
68 | - } | ||
69 | - | ||
70 | - @Override | ||
71 | - public IntentId getAllocations(Port port) { | ||
72 | - return store.getAllocations(port); | ||
73 | - } | ||
74 | - | ||
75 | - @Override | ||
76 | public void releaseMapping(IntentId intentId) { | 56 | public void releaseMapping(IntentId intentId) { |
77 | store.releaseMapping(intentId); | 57 | store.releaseMapping(intentId); |
78 | } | 58 | } |
... | @@ -86,9 +66,4 @@ public class DeviceResourceManager implements DeviceResourceService { | ... | @@ -86,9 +66,4 @@ public class DeviceResourceManager implements DeviceResourceService { |
86 | public Set<IntentId> getMapping(IntentId intentId) { | 66 | public Set<IntentId> getMapping(IntentId intentId) { |
87 | return store.getMapping(intentId); | 67 | return store.getMapping(intentId); |
88 | } | 68 | } |
89 | - | ||
90 | - @Override | ||
91 | - public void releasePorts(IntentId intentId) { | ||
92 | - store.releasePorts(intentId); | ||
93 | - } | ||
94 | } | 69 | } | ... | ... |
-
Please register or login to post a comment