PathIntentInstaller: avoiding calls to Resource Store when unnecessary
Change-Id: I846ca543f922063ddc67a06353f43c590bd57d96
Showing
1 changed file
with
18 additions
and
4 deletions
... | @@ -114,10 +114,8 @@ public class PathIntentInstaller implements IntentInstaller<PathIntent> { | ... | @@ -114,10 +114,8 @@ public class PathIntentInstaller implements IntentInstaller<PathIntent> { |
114 | 114 | ||
115 | @Override | 115 | @Override |
116 | public List<FlowRuleBatchOperation> uninstall(PathIntent intent) { | 116 | public List<FlowRuleBatchOperation> uninstall(PathIntent intent) { |
117 | - LinkResourceAllocations allocatedResources = resourceService.getAllocations(intent.id()); | 117 | + deallocateResources(intent); |
118 | - if (allocatedResources != null) { | 118 | + |
119 | - resourceService.releaseResources(allocatedResources); | ||
120 | - } | ||
121 | TrafficSelector.Builder builder = | 119 | TrafficSelector.Builder builder = |
122 | DefaultTrafficSelector.builder(intent.selector()); | 120 | DefaultTrafficSelector.builder(intent.selector()); |
123 | Iterator<Link> links = intent.path().links().iterator(); | 121 | Iterator<Link> links = intent.path().links().iterator(); |
... | @@ -167,4 +165,20 @@ public class PathIntentInstaller implements IntentInstaller<PathIntent> { | ... | @@ -167,4 +165,20 @@ public class PathIntentInstaller implements IntentInstaller<PathIntent> { |
167 | LinkResourceRequest request = builder.build(); | 165 | LinkResourceRequest request = builder.build(); |
168 | return request.resources().isEmpty() ? null : resourceService.requestResources(request); | 166 | return request.resources().isEmpty() ? null : resourceService.requestResources(request); |
169 | } | 167 | } |
168 | + | ||
169 | + /** | ||
170 | + * Deallocate resources held by an intent. | ||
171 | + * | ||
172 | + * @param intent intent to deallocate resources for | ||
173 | + */ | ||
174 | + private void deallocateResources(PathIntent intent) { | ||
175 | + if (intent.constraints().isEmpty()) { | ||
176 | + return; | ||
177 | + } | ||
178 | + | ||
179 | + LinkResourceAllocations allocatedResources = resourceService.getAllocations(intent.id()); | ||
180 | + if (allocatedResources != null) { | ||
181 | + resourceService.releaseResources(allocatedResources); | ||
182 | + } | ||
183 | + } | ||
170 | } | 184 | } | ... | ... |
-
Please register or login to post a comment