Remove OvsdbConfigurationService
[ovsdb.git] / openstack / net-virt / src / main / java / org / opendaylight / ovsdb / openstack / netvirt / impl / ConfigurationServiceImpl.java
1 /*
2  * Copyright (C) 2013 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, Brent Salisbury, Sam Hague, Dave Tucker
9  */
10 package org.opendaylight.ovsdb.openstack.netvirt.impl;
11
12 import com.google.common.collect.Maps;
13 import java.net.InetAddress;
14 import java.net.UnknownHostException;
15 import java.util.Map;
16
17 import org.apache.commons.lang3.tuple.ImmutablePair;
18 import org.apache.commons.lang3.tuple.Pair;
19 import org.opendaylight.ovsdb.openstack.netvirt.api.ConfigurationService;
20 import org.opendaylight.ovsdb.openstack.netvirt.api.Constants;
21 import org.opendaylight.ovsdb.openstack.netvirt.api.OvsdbTables;
22 import org.opendaylight.ovsdb.utils.config.ConfigProperties;
23 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
24 import org.slf4j.Logger;
25 import org.slf4j.LoggerFactory;
26
27 public class ConfigurationServiceImpl implements ConfigurationService {
28     static final Logger logger = LoggerFactory.getLogger(ConfigurationServiceImpl.class);
29
30     private String integrationBridgeName;
31     private String networkBridgeName;
32     private String externalBridgeName;
33     private String tunnelEndpointKey;
34
35     private Map<Pair<String, String>, String> patchPortNames = Maps.newHashMap();
36     private String providerMappingsKey;
37     private String providerMapping;
38
39     void init() {
40         logger.info(">>>>>> init {}", this.getClass());
41     }
42
43     public ConfigurationServiceImpl() {
44         tunnelEndpointKey = Constants.TUNNEL_ENDPOINT_KEY;
45         integrationBridgeName = Constants.INTEGRATION_BRIDGE;
46         networkBridgeName = Constants.NETWORK_BRIDGE;
47         externalBridgeName = Constants.EXTERNAL_BRIDGE;
48         patchPortNames.put(new ImmutablePair<>(integrationBridgeName, networkBridgeName),
49                            Constants.PATCH_PORT_TO_NETWORK_BRIDGE_NAME);
50         patchPortNames.put(new ImmutablePair<>(networkBridgeName, integrationBridgeName),
51                            Constants.PATCH_PORT_TO_INTEGRATION_BRIDGE_NAME);
52         providerMappingsKey = Constants.PROVIDER_MAPPINGS_KEY;
53         providerMapping = Constants.PROVIDER_MAPPING;
54     }
55
56     @Override
57     public String getIntegrationBridgeName() {
58         return integrationBridgeName;
59     }
60
61     @Override
62     public void setIntegrationBridgeName(String integrationBridgeName) {
63         this.integrationBridgeName = integrationBridgeName;
64     }
65
66     @Override
67     public String getNetworkBridgeName() {
68         return networkBridgeName;
69     }
70
71     @Override
72     public void setNetworkBridgeName(String networkBridgeName) {
73         this.networkBridgeName = networkBridgeName;
74     }
75
76     @Override
77     public String getExternalBridgeName() {
78         return externalBridgeName;
79     }
80
81     @Override
82     public void setExternalBridgeName(String externalBridgeName) {
83         this.externalBridgeName = externalBridgeName;
84     }
85
86     @Override
87     public String getTunnelEndpointKey() {
88         return tunnelEndpointKey;
89     }
90
91     @Override
92     public void setTunnelEndpointKey(String tunnelEndpointKey) {
93         this.tunnelEndpointKey = tunnelEndpointKey;
94     }
95
96     @Override
97     public String getProviderMappingsKey() {
98         return providerMappingsKey;
99     }
100
101     @Override
102     public void setProviderMappingsKey(String providerMappingsKey) {
103         this.providerMappingsKey = providerMappingsKey;
104     }
105
106     @Override
107     public Map<Pair<String, String>, String> getPatchPortNames() {
108         return patchPortNames;
109     }
110
111     @Override
112     public void setPatchPortNames(Map<Pair<String, String>, String> patchPortNames) {
113         this.patchPortNames = patchPortNames;
114     }
115
116     @Override
117     public String getPatchPortName(Pair portTuple){
118         return this.patchPortNames.get(portTuple);
119     }
120
121     @Override
122     public String getDefaultProviderMapping() {
123         return providerMapping;
124     }
125
126     @Override
127     public void setDefaultProviderMapping(String providerMapping) {
128         this.providerMapping = providerMapping;
129     }
130
131     @Override
132     public InetAddress getTunnelEndPoint(Node node) {
133         InetAddress address = null;
134         String tunnelEndpoint = MdsalUtils.getOtherConfig(node, OvsdbTables.OPENVSWITCH, tunnelEndpointKey);
135         if (tunnelEndpoint != null) {
136             try {
137                 address = InetAddress.getByName(tunnelEndpoint);
138             } catch (UnknownHostException e) {
139                 logger.error("Error populating Tunnel Endpoint for Node {} ", node, e);
140             }
141             logger.debug("Tunnel Endpoint for Node {} {}", node, address.getHostAddress());
142         }
143         return address;
144     }
145
146     @Override
147     public String getOpenflowVersion(Node node) {
148         return Constants.OPENFLOW13;
149     }
150
151     @Override
152     public String getDefaultGatewayMacAddress(Node node) {
153         String l3gatewayForNode = null;
154         if (node != null) {
155             l3gatewayForNode = ConfigProperties.getProperty(this.getClass(),
156                     "ovsdb.l3gateway.mac." + node.getNodeId().getValue());
157             if (l3gatewayForNode == null) {
158                 l3gatewayForNode = ConfigProperties.getProperty(this.getClass(), "ovsdb.l3gateway.mac");
159             }
160         }
161         return l3gatewayForNode;
162     }
163 }