Example #1
0
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
Example #2
0
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
Example #3
0
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
Example #4
0
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
Example #5
0
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
Example #6
0
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
Example #7
0
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
Example #8
0
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
Example #9
0
 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'])
Example #10
0
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
Example #11
0
 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'])
Example #12
0
def get_interface_list():
    intflist = []
    response = ovsdb.get("Interface", columns=["name"])
    for row in response:
        intflist.append(row["name"])
    return intflist
Example #13
0
def get_interface_list():
    intflist = []
    response = ovsdb.get('Interface', columns=['name'])
    for row in response:
        intflist.append(row['name'])
    return intflist