Charles Chan
Committed by Gerrit Code Review

HostLocationProvider should not remove hosts installed by other providers

Change-Id: I0d95a3c9409a9d8bb4e0c0039ea24dc9c0efc45f
...@@ -462,7 +462,9 @@ public class HostLocationProvider extends AbstractProvider implements HostProvid ...@@ -462,7 +462,9 @@ public class HostLocationProvider extends AbstractProvider implements HostProvid
462 // Signals host vanish for all specified hosts. 462 // Signals host vanish for all specified hosts.
463 private void removeHosts(Set<Host> hosts) { 463 private void removeHosts(Set<Host> hosts) {
464 for (Host host : hosts) { 464 for (Host host : hosts) {
465 - providerService.hostVanished(host.id()); 465 + if (host.providerId().equals(HostLocationProvider.this.id())) {
466 + providerService.hostVanished(host.id());
467 + }
466 } 468 }
467 } 469 }
468 470
......
...@@ -86,6 +86,9 @@ import static org.onosproject.net.PortNumber.portNumber; ...@@ -86,6 +86,9 @@ import static org.onosproject.net.PortNumber.portNumber;
86 import static org.onosproject.net.device.DeviceEvent.Type.*; 86 import static org.onosproject.net.device.DeviceEvent.Type.*;
87 87
88 public class HostLocationProviderTest { 88 public class HostLocationProviderTest {
89 + private static final ProviderId PROVIDER_ID =
90 + new ProviderId("of", "org.onosproject.provider.host");
91 +
89 private static final Integer INPORT = 10; 92 private static final Integer INPORT = 10;
90 private static final String DEV1 = "of:1"; 93 private static final String DEV1 = "of:1";
91 private static final String DEV2 = "of:2"; 94 private static final String DEV2 = "of:2";
...@@ -105,7 +108,7 @@ public class HostLocationProviderTest { ...@@ -105,7 +108,7 @@ public class HostLocationProviderTest {
105 private static final HostLocation LOCATION = 108 private static final HostLocation LOCATION =
106 new HostLocation(deviceId(DEV1), portNumber(INPORT), 0L); 109 new HostLocation(deviceId(DEV1), portNumber(INPORT), 0L);
107 private static final DefaultHost HOST = 110 private static final DefaultHost HOST =
108 - new DefaultHost(ProviderId.NONE, hostId(MAC), MAC, 111 + new DefaultHost(PROVIDER_ID, hostId(MAC), MAC,
109 vlanId(VlanId.UNTAGGED), LOCATION, 112 vlanId(VlanId.UNTAGGED), LOCATION,
110 ImmutableSet.of(IP_ADDRESS)); 113 ImmutableSet.of(IP_ADDRESS));
111 114
...@@ -118,7 +121,7 @@ public class HostLocationProviderTest { ...@@ -118,7 +121,7 @@ public class HostLocationProviderTest {
118 private static final HostLocation LOCATION2 = 121 private static final HostLocation LOCATION2 =
119 new HostLocation(deviceId(DEV4), portNumber(INPORT), 0L); 122 new HostLocation(deviceId(DEV4), portNumber(INPORT), 0L);
120 private static final DefaultHost HOST2 = 123 private static final DefaultHost HOST2 =
121 - new DefaultHost(ProviderId.NONE, hostId(MAC2), MAC2, 124 + new DefaultHost(PROVIDER_ID, hostId(MAC2), MAC2,
122 vlanId(VlanId.UNTAGGED), LOCATION2, 125 vlanId(VlanId.UNTAGGED), LOCATION2,
123 ImmutableSet.of(IP_ADDRESS2)); 126 ImmutableSet.of(IP_ADDRESS2));
124 127
......