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;
13 import org.opendaylight.ovsdb.utils.config.ConfigProperties;
17 import com.google.common.collect.Maps;
19 public final class OvsVswitchdSchemaConstants {
20 public static String DATABASE_NAME = "Open_vSwitch";
22 private static final String OVSDB_AUTOCONFIGURECONTROLLER = "ovsdb.autoconfigurecontroller";
23 private static final boolean defaultAutoConfigureController = true;
24 private static boolean autoConfigureController = defaultAutoConfigureController;
26 private static Map<String, String[]> columnToMutate = Maps.newHashMap();
27 public static String[] getParentColumnToMutate(String childTabletoInsert) {
28 return columnToMutate.get(childTabletoInsert);
30 private static void addParentColumnToMutate(String childTable, String parentTable, String columnName) {
31 String[] parentColumn = {parentTable, columnName};
32 columnToMutate.put(childTable, parentColumn);
36 addParentColumnToMutate("Bridge", "Open_vSwitch", "bridges");
37 addParentColumnToMutate("Port", "Bridge", "ports");
38 addParentColumnToMutate("Interface", "Port", "interfaces");
39 addParentColumnToMutate("SSL", "Open_vSwitch", "ssl");
40 addParentColumnToMutate("IPFIX", "Bridge", "ipfix");
41 addParentColumnToMutate("sFlow", "Bridge", "sflow");
42 addParentColumnToMutate("Flow_Table", "Bridge", "flow_tables");
43 addParentColumnToMutate("QoS", "Port", "qos");
44 addParentColumnToMutate("NetFlow", "Bridge", "netflow");
45 addParentColumnToMutate("Mirror", "Bridge", "mirrors");
46 addParentColumnToMutate("Manager", "Open_vSwitch", "manager_options");
47 addParentColumnToMutate("Controller", "Bridge", "controller");
48 // Keep the default value if the property is not set
49 final String autoConfigureControllerStr =
50 ConfigProperties.getProperty(OvsVswitchdSchemaConstants.class, OVSDB_AUTOCONFIGURECONTROLLER);
51 if (autoConfigureControllerStr != null) {
52 autoConfigureController = Boolean.getBoolean(autoConfigureControllerStr);
56 public static void setAutoConfigureController(boolean autoConfigure) {
57 autoConfigureController = autoConfigure;
60 public static boolean shouldConfigureController (String databaseName, String tableName) {
61 return autoConfigureController && databaseName.equals(DATABASE_NAME) && tableName.equals("Bridge");
64 public enum PortType {
71 private PortType(String name) {
78 public String toString() {