Removed some unused files and dependencies.
[ovsdb.git] / plugin / src / main / java / org / opendaylight / ovsdb / plugin / api / OvsVswitchdSchemaConstants.java
1 /*
2  * Copyright (C) 2014 Red Hat, Inc.
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  * Authors : Madhu Venugopal
9  */
10
11 package org.opendaylight.ovsdb.plugin.api;
12
13 import java.util.Map;
14
15 import com.google.common.collect.Maps;
16
17 public final class OvsVswitchdSchemaConstants {
18     public static String DATABASE_NAME = "Open_vSwitch";
19
20     private static final String OVSDB_AUTOCONFIGURECONTROLLER = "ovsdb.autoconfigurecontroller";
21     private static final boolean defaultAutoConfigureController = true;
22     private static boolean autoConfigureController = defaultAutoConfigureController;
23
24     private static Map<String, String[]> columnToMutate = Maps.newHashMap();
25     public static String[] getParentColumnToMutate(String childTabletoInsert) {
26         return columnToMutate.get(childTabletoInsert);
27     }
28     private static void addParentColumnToMutate(String childTable, String parentTable, String columnName) {
29         String[] parentColumn = {parentTable, columnName};
30         columnToMutate.put(childTable, parentColumn);
31     }
32
33     static {
34         addParentColumnToMutate("Bridge", "Open_vSwitch", "bridges");
35         addParentColumnToMutate("Port", "Bridge", "ports");
36         addParentColumnToMutate("Interface", "Port", "interfaces");
37         addParentColumnToMutate("SSL", "Open_vSwitch", "ssl");
38         addParentColumnToMutate("IPFIX", "Bridge", "ipfix");
39         addParentColumnToMutate("sFlow", "Bridge", "sflow");
40         addParentColumnToMutate("Flow_Table", "Bridge", "flow_tables");
41         addParentColumnToMutate("QoS", "Port", "qos");
42         addParentColumnToMutate("NetFlow", "Bridge", "netflow");
43         addParentColumnToMutate("Mirror", "Bridge", "mirrors");
44         addParentColumnToMutate("Manager", "Open_vSwitch", "manager_options");
45         addParentColumnToMutate("Controller", "Bridge", "controller");
46         // Keep the default value if the property is not set
47         if (System.getProperty(OVSDB_AUTOCONFIGURECONTROLLER) != null)
48             autoConfigureController = Boolean.getBoolean(OVSDB_AUTOCONFIGURECONTROLLER);
49     }
50
51     public static void setAutoConfigureController(boolean autoConfigure) {
52         autoConfigureController = autoConfigure;
53     }
54
55     public static boolean shouldConfigureController (String databaseName, String tableName) {
56         if (autoConfigureController && databaseName.equals(DATABASE_NAME) && tableName.equals("Bridge")) return true;
57         return false;
58     }
59
60     public enum PortType {
61         VLAN("vlan"),
62         TUNNEL("Tunnel"),
63         BONDING("Bonding"),
64         PATCH("patch"),
65         INTERNAL("internal");
66
67         private PortType(String name) {
68             this.name = name;
69         }
70
71         private String name;
72
73         @Override
74         public String toString() {
75             return name;
76         }
77     }
78
79 }