2 * Copyright (C) 2014 Red Hat, Inc.
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
8 * Authors : Madhu Venugopal
11 package org.opendaylight.ovsdb.plugin.api;
15 import com.google.common.collect.Maps;
17 public final class OvsVswitchdSchemaConstants {
18 public static String DATABASE_NAME = "Open_vSwitch";
20 private static final String OVSDB_AUTOCONFIGURECONTROLLER = "ovsdb.autoconfigurecontroller";
21 private static final boolean defaultAutoConfigureController = true;
22 private static boolean autoConfigureController = defaultAutoConfigureController;
24 private static Map<String, String[]> columnToMutate = Maps.newHashMap();
25 public static String[] getParentColumnToMutate(String childTabletoInsert) {
26 return columnToMutate.get(childTabletoInsert);
28 private static void addParentColumnToMutate(String childTable, String parentTable, String columnName) {
29 String[] parentColumn = {parentTable, columnName};
30 columnToMutate.put(childTable, parentColumn);
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);
51 public static boolean shouldConfigureController (String databaseName, String tableName) {
52 if (autoConfigureController && databaseName.equals(DATABASE_NAME) && tableName.equals("Bridge")) return true;
56 public enum PortType {
63 private PortType(String name) {
70 public String toString() {