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