Fix license header violations in plugin
[ovsdb.git] / plugin / src / main / java / org / opendaylight / ovsdb / plugin / api / OvsVswitchdSchemaConstants.java
1 /*
2  * Copyright (c) 2014, 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
9 package org.opendaylight.ovsdb.plugin.api;
10
11 import org.opendaylight.ovsdb.utils.config.ConfigProperties;
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         final String autoConfigureControllerStr =
48                 ConfigProperties.getProperty(OvsVswitchdSchemaConstants.class, OVSDB_AUTOCONFIGURECONTROLLER);
49         if (autoConfigureControllerStr != null) {
50             autoConfigureController = Boolean.getBoolean(autoConfigureControllerStr);
51         }
52     }
53
54     public static void setAutoConfigureController(boolean autoConfigure) {
55         autoConfigureController = autoConfigure;
56     }
57
58     public static boolean shouldConfigureController (String databaseName, String tableName) {
59         return autoConfigureController && databaseName.equals(DATABASE_NAME) && tableName.equals("Bridge");
60     }
61
62     public enum PortType {
63         VLAN("vlan"),
64         TUNNEL("Tunnel"),
65         BONDING("Bonding"),
66         PATCH("patch"),
67         INTERNAL("internal");
68
69         private PortType(String name) {
70             this.name = name;
71         }
72
73         private String name;
74
75         @Override
76         public String toString() {
77             return name;
78         }
79     }
80
81 }