Use key tunnel remove events on tunnel name
[genius.git] / mdsalutil / mdsalutil-api / src / main / java / org / opendaylight / genius / utils / hwvtep / HwvtepNodeHACache.java
1 /*
2  * Copyright (c) 2017 Inocybe Technologies and others.  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 package org.opendaylight.genius.utils.hwvtep;
9
10 import java.util.Map;
11 import java.util.Set;
12 import org.eclipse.jdt.annotation.NonNull;
13 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
14 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
15
16 /**
17  * Caches hwvtep Node HA info.
18  *
19  * @author Thomas Pantelis
20  */
21 public interface HwvtepNodeHACache {
22     void addChild(InstanceIdentifier<Node> parentId, InstanceIdentifier<Node> childId);
23
24     boolean isHAEnabledDevice(InstanceIdentifier<?> nodeId);
25
26     boolean isHAParentNode(InstanceIdentifier<Node> nodeId);
27
28     // Commented out for now - causes findbugs violation in netvirt
29     //@NonNull
30     Set<InstanceIdentifier<Node>> getChildrenForHANode(InstanceIdentifier<Node> parentId);
31
32     @NonNull
33     Set<InstanceIdentifier<Node>> getHAParentNodes();
34
35     @NonNull
36     Set<InstanceIdentifier<Node>> getHAChildNodes();
37
38     InstanceIdentifier<Node> getParent(InstanceIdentifier<Node> childId);
39
40     void removeParent(InstanceIdentifier<Node> parentId);
41
42     void updateConnectedNodeStatus(InstanceIdentifier<Node> nodeId);
43
44     void updateDisconnectedNodeStatus(InstanceIdentifier<Node> nodeId);
45
46     @NonNull
47     Map<String, Boolean> getNodeConnectionStatuses();
48 }