Add UT for SouthboundMapper and SouthboundProvider
[netvirt.git] / openstack / net-virt / src / main / java / org / opendaylight / ovsdb / openstack / netvirt / api / Southbound.java
1 /*
2  * Copyright (c) 2015 Red Hat, Inc. 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.ovsdb.openstack.netvirt.api;
9
10 import java.util.List;
11 import java.util.Map;
12
13 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeAugmentation;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ConnectionInfo;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.Options;
19 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
20 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
21 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
22 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint;
23
24 /**
25  * Utility class to wrap southbound transactions.
26  *
27  * @author Sam Hague (shague@redhat.com)
28  */
29 public interface Southbound {
30     ConnectionInfo getConnectionInfo(Node node);
31     OvsdbNodeAugmentation extractOvsdbNode(Node node);
32     NodeId extractBridgeOvsdbNodeId(Node bridgeNode);
33     List<Node> readOvsdbTopologyNodes();
34     Node readOvsdbNode(Node bridgeNode);
35     boolean isBridgeOnOvsdbNode(Node node, String bridgeName);
36     String getOvsdbNodeUUID(Node node);
37     String getOsdbNodeExternalIdsValue(OvsdbNodeAugmentation ovsdbNodeAugmentation, String key);
38     boolean addBridge(Node ovsdbNode, String bridgeName, String target);
39     boolean deleteBridge(Node ovsdbNode);
40     OvsdbBridgeAugmentation readBridge(Node node, String name);
41     Node readBridgeNode(Node node, String name);
42     Node getBridgeNode(Node node, String bridgeName);
43     String getBridgeUuid(Node node, String name);
44     long getDataPathId(Node node);
45     String getDatapathId(Node node);
46     String getDatapathId(OvsdbBridgeAugmentation ovsdbBridgeAugmentation);
47     OvsdbBridgeAugmentation getBridge(Node node, String name);
48     OvsdbBridgeAugmentation getBridge(Node node);
49     String getBridgeName(Node node);
50     String extractBridgeName(Node node);
51     OvsdbBridgeAugmentation extractBridgeAugmentation(Node node);
52     List<Node> getAllBridgesOnOvsdbNode(Node node);
53     OvsdbNodeAugmentation extractNodeAugmentation(Node node);
54     List<OvsdbTerminationPointAugmentation> getTerminationPointsOfBridge(Node node);
55     OvsdbTerminationPointAugmentation getTerminationPointOfBridge(Node node, String terminationPoint);
56     OvsdbTerminationPointAugmentation extractTerminationPointAugmentation(Node bridgeNode, String portName);
57     List<TerminationPoint> extractTerminationPoints(Node node);
58     List<OvsdbTerminationPointAugmentation> extractTerminationPointAugmentations(Node node);
59     List<OvsdbTerminationPointAugmentation> readTerminationPointAugmentations(Node node);
60     String getInterfaceExternalIdsValue(
61             OvsdbTerminationPointAugmentation terminationPointAugmentation, String key);
62     Boolean addTerminationPoint(Node bridgeNode, String bridgeName, String portName, String type);
63     Boolean deleteTerminationPoint(Node bridgeNode, String portName);
64     Boolean addTerminationPoint(Node bridgeNode, String bridgeName, String portName,
65                                 String type, Map<String, String> options);
66     TerminationPoint readTerminationPoint(Node bridgeNode, String bridgeName, String portName);
67     Boolean addTunnelTerminationPoint(Node bridgeNode, String bridgeName, String portName, String type,
68                                       Map<String, String> options);
69     Boolean isTunnelTerminationPointExist(Node bridgeNode, String bridgeName, String portName);
70     Boolean addPatchTerminationPoint(Node node, String bridgeName, String portName, String peerPortName);
71     String getExternalId(Node node, OvsdbTables table, String key);
72     String getOtherConfig(Node node, OvsdbTables table, String key);
73     boolean addVlanToTp(long vlan);
74     boolean isTunnel(OvsdbTerminationPointAugmentation port);
75     String getOptionsValue(List<Options> options, String key);
76     Topology getOvsdbTopology();
77     Long getOFPort(OvsdbTerminationPointAugmentation port);
78     Long getOFPort(Node bridgeNode, String portName);
79     DataBroker getDatabroker();
80     OvsdbBridgeAugmentation getBridgeFromConfig(Node ovsdbNode, String bridgeName);
81 }