2 * Copyright (c) 2014, 2015 Red Hat, Inc. and others. All rights reserved.
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
9 package org.opendaylight.ovsdb.plugin.api;
11 import org.opendaylight.ovsdb.utils.config.ConfigProperties;
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 final String autoConfigureControllerStr =
48 ConfigProperties.getProperty(OvsVswitchdSchemaConstants.class, OVSDB_AUTOCONFIGURECONTROLLER);
49 if (autoConfigureControllerStr != null) {
50 autoConfigureController = Boolean.getBoolean(autoConfigureControllerStr);
54 public static void setAutoConfigureController(boolean autoConfigure) {
55 autoConfigureController = autoConfigure;
58 public static boolean shouldConfigureController (String databaseName, String tableName) {
59 return autoConfigureController && databaseName.equals(DATABASE_NAME) && tableName.equals("Bridge");
62 public enum PortType {
69 private PortType(String name) {
76 public String toString() {