[ONOS-3583] Update VTNRSC's bug:null exception.
Change-Id: I6edbef13270acf75899bccca383602caa5b1a562
Showing
1 changed file
with
22 additions
and
12 deletions
| ... | @@ -227,6 +227,10 @@ public class VtnRscManager extends AbstractListenerManager<VtnRscEvent, VtnRscLi | ... | @@ -227,6 +227,10 @@ public class VtnRscManager extends AbstractListenerManager<VtnRscEvent, VtnRscLi |
| 227 | checkNotNull(event, EVENT_NOT_NULL); | 227 | checkNotNull(event, EVENT_NOT_NULL); |
| 228 | Host host = event.subject(); | 228 | Host host = event.subject(); |
| 229 | String ifaceId = host.annotations().value(IFACEID); | 229 | String ifaceId = host.annotations().value(IFACEID); |
| 230 | + if (ifaceId == null) { | ||
| 231 | + log.error("The ifaceId of Host is null"); | ||
| 232 | + return; | ||
| 233 | + } | ||
| 230 | VirtualPortId hPortId = VirtualPortId.portId(ifaceId); | 234 | VirtualPortId hPortId = VirtualPortId.portId(ifaceId); |
| 231 | TenantId tenantId = virtualPortService.getPort(hPortId).tenantId(); | 235 | TenantId tenantId = virtualPortService.getPort(hPortId).tenantId(); |
| 232 | DeviceId deviceId = host.location().deviceId(); | 236 | DeviceId deviceId = host.location().deviceId(); |
| ... | @@ -477,18 +481,21 @@ public class VtnRscManager extends AbstractListenerManager<VtnRscEvent, VtnRscLi | ... | @@ -477,18 +481,21 @@ public class VtnRscManager extends AbstractListenerManager<VtnRscEvent, VtnRscLi |
| 477 | checkNotNull(deviceId, DEVICEID_NOT_NULL); | 481 | checkNotNull(deviceId, DEVICEID_NOT_NULL); |
| 478 | checkNotNull(tenantId, TENANTID_NOT_NULL); | 482 | checkNotNull(tenantId, TENANTID_NOT_NULL); |
| 479 | Set<Host> hostSet = hostService.getConnectedHosts(deviceId); | 483 | Set<Host> hostSet = hostService.getConnectedHosts(deviceId); |
| 484 | + Set<Host> sfcHostSet = new HashSet<Host>(); | ||
| 485 | + if (hostSet != null) { | ||
| 480 | for (Host h : hostSet) { | 486 | for (Host h : hostSet) { |
| 481 | String ifaceId = h.annotations().value(IFACEID); | 487 | String ifaceId = h.annotations().value(IFACEID); |
| 488 | + if (ifaceId != null) { | ||
| 482 | VirtualPortId hPortId = VirtualPortId.portId(ifaceId); | 489 | VirtualPortId hPortId = VirtualPortId.portId(ifaceId); |
| 483 | - if (virtualPortService.getPort(hPortId).tenantId() != tenantId) { | 490 | + if (virtualPortService.getPort(hPortId).tenantId().tenantId() |
| 484 | - hostSet.remove(h); | 491 | + .equals(tenantId.tenantId()) |
| 485 | - } else { | 492 | + && isServiceFunction(hPortId)) { |
| 486 | - if (!isServiceFunction(hPortId)) { | 493 | + sfcHostSet.add(h); |
| 487 | - hostSet.remove(h); | 494 | + } |
| 488 | } | 495 | } |
| 489 | } | 496 | } |
| 490 | } | 497 | } |
| 491 | - if (hostSet.size() == 1 && hostSet.contains(host)) { | 498 | + if (sfcHostSet.size() == 1 && sfcHostSet.contains(host)) { |
| 492 | return true; | 499 | return true; |
| 493 | } | 500 | } |
| 494 | return false; | 501 | return false; |
| ... | @@ -509,18 +516,21 @@ public class VtnRscManager extends AbstractListenerManager<VtnRscEvent, VtnRscLi | ... | @@ -509,18 +516,21 @@ public class VtnRscManager extends AbstractListenerManager<VtnRscEvent, VtnRscLi |
| 509 | checkNotNull(deviceId, DEVICEID_NOT_NULL); | 516 | checkNotNull(deviceId, DEVICEID_NOT_NULL); |
| 510 | checkNotNull(tenantId, TENANTID_NOT_NULL); | 517 | checkNotNull(tenantId, TENANTID_NOT_NULL); |
| 511 | Set<Host> hostSet = hostService.getConnectedHosts(deviceId); | 518 | Set<Host> hostSet = hostService.getConnectedHosts(deviceId); |
| 519 | + Set<Host> sfcHostSet = new HashSet<Host>(); | ||
| 520 | + if (hostSet != null) { | ||
| 512 | for (Host h : hostSet) { | 521 | for (Host h : hostSet) { |
| 513 | String ifaceId = h.annotations().value(IFACEID); | 522 | String ifaceId = h.annotations().value(IFACEID); |
| 523 | + if (ifaceId != null) { | ||
| 514 | VirtualPortId hPortId = VirtualPortId.portId(ifaceId); | 524 | VirtualPortId hPortId = VirtualPortId.portId(ifaceId); |
| 515 | - if (virtualPortService.getPort(hPortId).tenantId() != tenantId) { | 525 | + if (virtualPortService.getPort(hPortId).tenantId().tenantId() |
| 516 | - hostSet.remove(h); | 526 | + .equals(tenantId.tenantId()) |
| 517 | - } else { | 527 | + && !isServiceFunction(hPortId)) { |
| 518 | - if (isServiceFunction(hPortId)) { | 528 | + sfcHostSet.add(h); |
| 519 | - hostSet.remove(h); | 529 | + } |
| 520 | } | 530 | } |
| 521 | } | 531 | } |
| 522 | } | 532 | } |
| 523 | - if (hostSet.size() == 1 && hostSet.contains(host)) { | 533 | + if (sfcHostSet.size() == 1 && sfcHostSet.contains(host)) { |
| 524 | return true; | 534 | return true; |
| 525 | } | 535 | } |
| 526 | return false; | 536 | return false; | ... | ... |
-
Please register or login to post a comment