Cleanup of Lisp in VPP renderer
[groupbasedpolicy.git] / renderers / vpp / src / main / java / org / opendaylight / groupbasedpolicy / renderer / vpp / lisp / event / manager / GbpSubnetEventManager.java
1 /*
2  * Copyright (c) 2017 Cisco Systems. All rights reserved.
3  *
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
7  */
8
9 package org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.event.manager;
10
11 import com.google.common.base.Preconditions;
12 import com.google.common.eventbus.Subscribe;
13
14 import javax.annotation.Nonnull;
15
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;
21
22 public class GbpSubnetEventManager {
23     private static final Logger LOG = LoggerFactory.getLogger(GbpSubnetEventManager.class);
24
25     private LoopbackManager loopbackManager;
26
27     public GbpSubnetEventManager(@Nonnull LoopbackManager loopbackManager) {
28         this.loopbackManager = loopbackManager;
29     }
30
31     @Subscribe
32     public synchronized void gbpSubnetChanged(GbpSubnetEvent event) {
33         final GbpSubnet oldGbpSubnet = event.getBefore().orNull();
34         final GbpSubnet newGbpSubnet = event.getAfter().orNull();
35
36         LOG.debug("GbpSubnet information updated.\nPrevious: {}\nPresent: {}\n", oldGbpSubnet, newGbpSubnet);
37
38         switch (event.getDtoModificationType()) {
39             case CREATED:
40                 Preconditions.checkNotNull(newGbpSubnet);
41                 processSubnetCreated(newGbpSubnet.getId(), newGbpSubnet);
42                 break;
43             case UPDATED:
44                 Preconditions.checkNotNull(oldGbpSubnet);
45                 Preconditions.checkNotNull(newGbpSubnet);
46                 processSubnetDeleted(oldGbpSubnet.getId());
47                 processSubnetCreated(newGbpSubnet.getId(), newGbpSubnet);
48                 break;
49             case DELETED:
50                 Preconditions.checkNotNull(oldGbpSubnet);
51                 processSubnetDeleted(oldGbpSubnet.getId());
52                 break;
53         }
54     }
55
56     private void processSubnetCreated(String subnetUuid, GbpSubnet subnetInfo) {
57         loopbackManager.gbpSubnetCreated(subnetUuid, subnetInfo);
58     }
59
60     private void processSubnetDeleted(String subnetUuid) {
61         loopbackManager.gbpSubnetdeleted(subnetUuid);
62     }
63 }