1 from odltools.mdsal.model import Model
7 def dpn_endpoints(store, ip, port, path):
8 return DpnEndpoints(NAME, DpnEndpoints.CONTAINER, store, ip, port, path)
11 def interfaces(store, ip=None, port=None, path=None):
12 return DpnTepsState(NAME, DpnTepsState.CONTAINER, store, ip, port, path)
15 def tunnels_state(store, ip=None, port=None, path=None):
16 return TunnelsState(NAME, TunnelsState.CONTAINER, store, ip, port, path)
19 class DpnEndpoints(Model):
20 CONTAINER = "dpn-endpoints"
21 DPN_TEPS_INFO = "DPN-TEPs-info"
23 TUNNEL_END_POINTS = "tunnel-end-points"
24 IP_ADDRESS = "ip-address"
26 def get_dpn_teps_infos(self):
27 return self.data[self.CONTAINER][self.DPN_TEPS_INFO]
29 def get_dpn_teps_info(self, dpn_id):
30 dpn_teps_infos = self.get_dpn_teps_infos()
31 for dpn_teps_info in dpn_teps_infos:
32 if dpn_teps_info[self.DPN_ID] == dpn_id:
35 def get_tunnel_endpoints(self, dpn_id):
36 dpn_teps_infos = self.get_dpn_teps_infos()
37 for dpn_teps_info in dpn_teps_infos:
38 if dpn_teps_info[self.DPN_ID] == dpn_id:
39 return dpn_teps_info[self.TUNNEL_END_POINTS]
41 def get_dpn_ids(self):
42 return self.get_kv(DpnEndpoints.DPN_ID, self.data, values=[])
44 def get_ip_address(self, dpn_id):
45 tunnel_endpoints = self.get_tunnel_endpoints(dpn_id)
46 return tunnel_endpoints[0][self.IP_ADDRESS]
49 class DpnTepsState(Model):
50 CONTAINER = "dpn-teps-state"
51 DPN_TEPS = "dpns-teps"
53 def get_dpn_teps(self):
54 return self.data[self.CONTAINER][self.DPN_TEPS]
56 def get_tuninterfaces_by_name(self):
58 tunifaces = self.get_dpn_teps()
59 for sourcedpn in tunifaces:
60 for remotedpn in sourcedpn['remote-dpns']:
61 d[remotedpn['tunnel-name']] = remotedpn
65 class TunnelsState(Model):
66 CONTAINER = "tunnels_state"
67 STATE_TUNNEL_LIST = "state-tunnel-list"
69 def get_state_tunnel_list(self):
70 return self.data[self.CONTAINER][self.STATE_TUNNEL_LIST]
72 def get_tunnels_by_key(self, key="tunnel-interface-name"):
74 tunnels = self.get_state_tunnel_list()
75 for tunnel in tunnels:
76 d[tunnel[key]] = tunnel