Committed by
Gerrit Code Review
CORD-537 Added removing vSG
- Remove vSG from ONOS host list with allowed-ip-pairs update event - Remove vSG from ONOS host list when vSG VM removed Change-Id: Ic93fceec67d3faada795805d4c4a56ab5187d7e2
Showing
2 changed files
with
22 additions
and
17 deletions
... | @@ -291,17 +291,9 @@ public class CordVtn extends AbstractProvider implements CordVtnService, HostPro | ... | @@ -291,17 +291,9 @@ public class CordVtn extends AbstractProvider implements CordVtnService, HostPro |
291 | 291 | ||
292 | @Override | 292 | @Override |
293 | public void removeServiceVm(ConnectPoint connectPoint) { | 293 | public void removeServiceVm(ConnectPoint connectPoint) { |
294 | - Host host = hostService.getConnectedHosts(connectPoint) | 294 | + hostService.getConnectedHosts(connectPoint) |
295 | .stream() | 295 | .stream() |
296 | - .findFirst() | 296 | + .forEach(host -> hostProvider.hostVanished(host.id())); |
297 | - .orElse(null); | ||
298 | - | ||
299 | - if (host == null) { | ||
300 | - log.debug("No host is connected on {}", connectPoint.toString()); | ||
301 | - return; | ||
302 | - } | ||
303 | - | ||
304 | - hostProvider.hostVanished(host.id()); | ||
305 | } | 297 | } |
306 | 298 | ||
307 | @Override | 299 | @Override |
... | @@ -322,6 +314,14 @@ public class CordVtn extends AbstractProvider implements CordVtnService, HostPro | ... | @@ -322,6 +314,14 @@ public class CordVtn extends AbstractProvider implements CordVtnService, HostPro |
322 | entry.getValue(), | 314 | entry.getValue(), |
323 | serviceVlan)); | 315 | serviceVlan)); |
324 | 316 | ||
317 | + hostService.getConnectedHosts(vSgVm.location()).stream() | ||
318 | + .filter(host -> !host.mac().equals(vSgVm.mac())) | ||
319 | + .filter(host -> !vSgs.values().contains(host.mac())) | ||
320 | + .forEach(host -> { | ||
321 | + log.info("Removed vSG {}", host.toString()); | ||
322 | + hostProvider.hostVanished(host.id()); | ||
323 | + }); | ||
324 | + | ||
325 | ruleInstaller.populateSubscriberGatewayRules(vSgVm, vSgs.keySet()); | 325 | ruleInstaller.populateSubscriberGatewayRules(vSgVm, vSgs.keySet()); |
326 | } | 326 | } |
327 | 327 | ||
... | @@ -333,11 +333,12 @@ public class CordVtn extends AbstractProvider implements CordVtnService, HostPro | ... | @@ -333,11 +333,12 @@ public class CordVtn extends AbstractProvider implements CordVtnService, HostPro |
333 | * @param vSgMac vSG mac address | 333 | * @param vSgMac vSG mac address |
334 | * @param serviceVlan service vlan | 334 | * @param serviceVlan service vlan |
335 | */ | 335 | */ |
336 | - public void addVirtualSubscriberGateway(Host vSgHost, IpAddress vSgIp, MacAddress vSgMac, String serviceVlan) { | 336 | + private void addVirtualSubscriberGateway(Host vSgHost, IpAddress vSgIp, MacAddress vSgMac, |
337 | + String serviceVlan) { | ||
337 | HostId hostId = HostId.hostId(vSgMac); | 338 | HostId hostId = HostId.hostId(vSgMac); |
338 | Host host = hostService.getHost(hostId); | 339 | Host host = hostService.getHost(hostId); |
339 | if (host != null) { | 340 | if (host != null) { |
340 | - log.debug("vSG with {} already exists", vSgMac.toString()); | 341 | + log.trace("vSG with {} already exists", vSgMac.toString()); |
341 | return; | 342 | return; |
342 | } | 343 | } |
343 | 344 | ||
... | @@ -524,7 +525,7 @@ public class CordVtn extends AbstractProvider implements CordVtnService, HostPro | ... | @@ -524,7 +525,7 @@ public class CordVtn extends AbstractProvider implements CordVtnService, HostPro |
524 | private void serviceVmAdded(Host host) { | 525 | private void serviceVmAdded(Host host) { |
525 | String vNetId = host.annotations().value(SERVICE_ID); | 526 | String vNetId = host.annotations().value(SERVICE_ID); |
526 | if (vNetId == null) { | 527 | if (vNetId == null) { |
527 | - // ignore this host, it not a VM we injected or a vSG | 528 | + // ignore this host, it is not the service VM, or it's a vSG |
528 | return; | 529 | return; |
529 | } | 530 | } |
530 | 531 | ||
... | @@ -583,12 +584,16 @@ public class CordVtn extends AbstractProvider implements CordVtnService, HostPro | ... | @@ -583,12 +584,16 @@ public class CordVtn extends AbstractProvider implements CordVtnService, HostPro |
583 | * @param host host | 584 | * @param host host |
584 | */ | 585 | */ |
585 | private void serviceVmRemoved(Host host) { | 586 | private void serviceVmRemoved(Host host) { |
586 | - if (host.annotations().value(OPENSTACK_VM_ID) == null) { | 587 | + String vNetId = host.annotations().value(SERVICE_ID); |
587 | - // this host was not injected from CordVtn, just return | 588 | + if (vNetId == null) { |
589 | + // ignore it, it's not the service VM or it's a vSG | ||
590 | + String serviceVlan = host.annotations().value(S_TAG); | ||
591 | + if (serviceVlan != null) { | ||
592 | + log.info("vSG {} removed", host.id()); | ||
593 | + } | ||
588 | return; | 594 | return; |
589 | } | 595 | } |
590 | 596 | ||
591 | - String vNetId = host.annotations().value(SERVICE_ID); | ||
592 | OpenstackNetwork vNet = openstackService.network(vNetId); | 597 | OpenstackNetwork vNet = openstackService.network(vNetId); |
593 | if (vNet == null) { | 598 | if (vNet == null) { |
594 | log.warn("Failed to get OpenStack network {} for VM {}({}).", | 599 | log.warn("Failed to get OpenStack network {} for VM {}({}).", | ... | ... |
... | @@ -233,7 +233,7 @@ public class CordVtnArpProxy { | ... | @@ -233,7 +233,7 @@ public class CordVtnArpProxy { |
233 | .orElse(null); | 233 | .orElse(null); |
234 | 234 | ||
235 | if (host != null) { | 235 | if (host != null) { |
236 | - log.debug("Found MAC from host service for {}", targetIp.toString()); | 236 | + log.trace("Found MAC from host service for {}", targetIp.toString()); |
237 | return host.mac(); | 237 | return host.mac(); |
238 | } else { | 238 | } else { |
239 | return MacAddress.NONE; | 239 | return MacAddress.NONE; | ... | ... |
-
Please register or login to post a comment