2 * Copyright (c) 2017 Cisco Systems. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.event.manager;
11 import com.google.common.base.Preconditions;
12 import com.google.common.eventbus.Subscribe;
14 import javax.annotation.Nonnull;
16 import org.opendaylight.groupbasedpolicy.renderer.vpp.event.GbpSubnetEvent;
17 import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.loopback.LoopbackManager;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.vpp_renderer.rev160425.config.GbpSubnet;
19 import org.slf4j.Logger;
20 import org.slf4j.LoggerFactory;
22 public class GbpSubnetEventManager {
23 private static final Logger LOG = LoggerFactory.getLogger(GbpSubnetEventManager.class);
25 private LoopbackManager loopbackManager;
27 public GbpSubnetEventManager(@Nonnull LoopbackManager loopbackManager) {
28 this.loopbackManager = loopbackManager;
32 public synchronized void gbpSubnetChanged(GbpSubnetEvent event) {
33 final GbpSubnet oldGbpSubnet = event.getBefore().orNull();
34 final GbpSubnet newGbpSubnet = event.getAfter().orNull();
36 LOG.debug("GbpSubnet information updated.\nPrevious: {}\nPresent: {}\n", oldGbpSubnet, newGbpSubnet);
38 switch (event.getDtoModificationType()) {
40 Preconditions.checkNotNull(newGbpSubnet);
41 processSubnetCreated(newGbpSubnet.getId(), newGbpSubnet);
44 Preconditions.checkNotNull(oldGbpSubnet);
45 Preconditions.checkNotNull(newGbpSubnet);
46 processSubnetDeleted(oldGbpSubnet.getId());
47 processSubnetCreated(newGbpSubnet.getId(), newGbpSubnet);
50 Preconditions.checkNotNull(oldGbpSubnet);
51 processSubnetDeleted(oldGbpSubnet.getId());
56 private void processSubnetCreated(String subnetUuid, GbpSubnet subnetInfo) {
57 loopbackManager.gbpSubnetCreated(subnetUuid, subnetInfo);
60 private void processSubnetDeleted(String subnetUuid) {
61 loopbackManager.gbpSubnetdeleted(subnetUuid);