def get_intf_config(intf=None): results = OrderedDict() if intf: conditions = [['name', '==', str(intf)]] else: conditions = [] rows = ovsdb.get('Interface', columns=['name', 'other_config'], conditions=conditions) for row in rows: # TODO should get 'rxtx' from defaults state = 'rxtx' for key, value in row['other_config'][1]: if key == 'lldp_enable_dir': state = value break if state == 'off': rx = tx = False else: rx = tx = True if state.find('rx') == -1: rx = False if state.find('tx') == -1: tx = False results[row['name']] = (rx, tx) return results
def get_interface(intf): data = {} if intf == "mgmt": results = ovsdb.get("System", columns=["mgmt_intf_status"]) for key, value in results[0]["mgmt_intf_status"][1]: if key in mgmt_intf_keys: data[key] = value data["ip"] += "/" + data["subnet_mask"] data.pop("subnet_mask") else: conditions = [["name", "==", str(intf)]] results = ovsdb.get("Interface", conditions=conditions)[0] for key in intf_keys: if key in results: data[key] = results[key] # Transceiver information. for key, value in results["hw_intf_info"][1]: data[key] = value return data
def get_interface(intf): data = {} if intf == 'mgmt': results = ovsdb.get('System', columns=['mgmt_intf_status']) for key, value in results[0]['mgmt_intf_status'][1]: if key in mgmt_intf_keys: data[key] = value data['ip'] += '/' + data['subnet_mask'] data.pop('subnet_mask') else: conditions = [['name', '==', str(intf)]] results = ovsdb.get('Interface', conditions=conditions)[0] for key in intf_keys: if key in results: data[key] = results[key] # Transceiver information. for key, value in results['hw_intf_info'][1]: data[key] = value return data
def generate_cli(): columns = ['id', 'admin'] rows = ovsdb.get('VLAN', columns) lines = [] vlans = {} for row in rows: vlan_id = int(row['id']) vlans[vlan_id] = row['admin'] for vlan_id in sorted(vlans): lines.append("vlan %s" % vlan_id) if vlans[vlan_id] == 'up': lines.append("\tno shutdown") return lines
def generate_cli(): lines = [] # hostname results = ovsdb.get_map('System', column='mgmt_intf_status') lines.append("hostname %s" % results.get('hostname', '')) # alias results = ovsdb.get('CLI_Alias', columns=['alias_name', 'alias_definition']) for row in results: lines.append("alias %s %s" % (row['alias_name'], row['alias_definition'])) return lines
def generate_cli(): lines = [] results = ovsdb.get('Interface') for row in results: intf = [] for key, value in row['other_config'][1]: if key == 'lldp_enable_dir': if value == 'off' or value.find('rx') == -1: intf.append("\tno lldp reception") if value == 'off' or value.find('tx') == -1: intf.append("\tno lldp transmission") if intf: lines.append("interface %s" % row['name']) lines.extend(intf) return lines
def generate_cli(): lines = [] radius_keys = ( ('passkey', 'key'), ('udp_port', 'auth_port'), ('priority', 'priority'), ('retries', 'retries'), ('timeout', 'timeout'), ) results = ovsdb.get('Radius_Server') for row in results: host = row['ip_address'] line = "radius-server %s" % host for key, word in radius_keys: val = row.get(key) if val: lines.append(line + " %s %s" % (word, val)) return lines
def run(self, opts, flags): columns = ['id', 'name', 'oper_state', 'oper_state_reason'] query = [] if opts: if opts[0] == 'internal': self.show_vlan_internal() return elif isinstance(opts[0].value, int): query = [['id', '==', opts[0].value]] rows = ovsdb.get('VLAN', columns, query) if opts and opts[0] == 'summary': cli_out("Number of existing VLANs: %d" % len(rows)) else: if opts and len(rows) == 0: cli_out("VLAN %d has not been configured." % opts[0].value) else: col_data = [] for row in rows: col = [] for name in columns: col.append(str(row[name])) col_data.append(col) out_table(col_data, title=['ID', 'Name', 'State', 'Reason'])
def get_intf_stats(intf=None): results = {} totals = { 'lldp_insert': 0, 'lldp_delete': 0, 'lldp_drop': 0, 'lldp_ageout': 0, } if intf: conditions = [['name', '==', str(intf)]] else: conditions = [] rows = ovsdb.get('Interface', columns=['name', 'lldp_statistics'], conditions=conditions) for row in rows: intf_name = row['name'] for key, value in row['lldp_statistics'][1]: results[intf_name][key] = value if key in totals: totals[key] += value return results, totals
def get_interface_list(): intflist = [] response = ovsdb.get("Interface", columns=["name"]) for row in response: intflist.append(row["name"]) return intflist
def get_interface_list(): intflist = [] response = ovsdb.get('Interface', columns=['name']) for row in response: intflist.append(row['name']) return intflist