示例#1
0
def speed(bond_name):
    """Return the bond speed if bond_name refers to a bond, 0 otherwise."""
    opts = properties(bond_name,
                      filter_properties=('slaves', 'active_slave', 'mode'))
    try:
        if opts['slaves']:
            if opts['mode'][1] in BONDING_FAILOVER_MODES:
                active_slave = opts['active_slave']
                s = nic.speed(active_slave[0]) if active_slave else 0
            elif opts['mode'][1] in BONDING_LOADBALANCE_MODES:
                s = sum(nic.speed(slave) for slave in opts['slaves'])
            return s
    except Exception:
        logging.exception('cannot read %s speed', bond_name)
    return 0
示例#2
0
文件: speed.py 项目: nirs/vdsm
def speed(bond_name):
    """Return the bond speed if bond_name refers to a bond, 0 otherwise."""
    opts = properties(bond_name,
                      filter_properties=('slaves', 'active_slave', 'mode'))
    try:
        if opts['slaves']:
            if opts['mode'][1] in BONDING_FAILOVER_MODES:
                active_slave = opts['active_slave']
                s = nic.speed(active_slave[0]) if active_slave else 0
            elif opts['mode'][1] in BONDING_LOADBALANCE_MODES:
                s = sum(nic.speed(slave) for slave in opts['slaves'])
            return s
    except Exception:
        logging.exception('cannot read %s speed', bond_name)
    return 0
示例#3
0
def _getLinkSpeed(dev):
    if dev.isNIC():
        speed = nic.speed(dev.name)
    elif dev.isBOND():
        speed = bond.speed(dev.name)
    elif dev.isVLAN():
        speed = vlan.speed(dev.name)
    else:
        speed = 0
    return speed
示例#4
0
文件: configurator.py 项目: nirs/vdsm
def _add_speed_device_info(net_caps):
    """Collect and include device speed information in the report."""
    timeout = 2
    for devname, devattr in six.viewitems(net_caps['nics']):
        timeout -= _wait_for_link_up(devname, timeout)
        devattr['speed'] = nic.speed(devname)

    for devname, devattr in six.viewitems(net_caps['bondings']):
        timeout -= _wait_for_link_up(devname, timeout)
        devattr['speed'] = bond.speed(devname)
示例#5
0
def _add_speed_device_info(net_caps):
    """Collect and include device speed information in the report."""
    timeout = 2
    for devname, devattr in six.viewitems(net_caps['nics']):
        timeout -= _wait_for_link_up(devname, timeout)
        devattr['speed'] = nic.speed(devname)

    for devname, devattr in six.viewitems(net_caps['bondings']):
        timeout -= _wait_for_link_up(devname, timeout)
        devattr['speed'] = bond.speed(devname)
示例#6
0
    def test_valid_nic_speed(self, mock_io_open, mock_iface):
        IS_UP = True
        values = ((b'0', IS_UP, 0), (b'-10', IS_UP, 0), (six.b(str(2**16 - 1)),
                                                         IS_UP, 0),
                  (six.b(str(2**32 - 1)), IS_UP, 0), (b'123', IS_UP, 123),
                  (b'', IS_UP, 0), (b'', not IS_UP, 0), (b'123', not IS_UP, 0))

        for passed, is_nic_up, expected in values:
            mock_io_open.return_value = io.BytesIO(passed)
            mock_iface.return_value.is_oper_up.return_value = is_nic_up

            self.assertEqual(nic.speed('fake_nic'), expected)
示例#7
0
def speed(dev_name):
    """Return the vlan's underlying device speed."""
    dev_speed = 0
    dev_vlan = iface.iface(dev_name)
    dev_base_name = dev_vlan.properties()['device']
    dev_base = iface.iface(dev_base_name)
    dev_base_type = dev_base.type()
    if dev_base_type == iface.Type.NIC:
        dev_speed = nic.speed(dev_name)
    elif dev_base_type == iface.Type.BOND:
        dev_speed = bond.speed(dev_base_name)

    return dev_speed
示例#8
0
文件: vlan.py 项目: nirs/vdsm
def speed(dev_name):
    """Return the vlan's underlying device speed."""
    dev_speed = 0
    dev_vlan = iface.iface(dev_name)
    dev_base_name = dev_vlan.properties()['device']
    dev_base = iface.iface(dev_base_name)
    dev_base_type = dev_base.type()
    if dev_base_type == iface.Type.NIC:
        dev_speed = nic.speed(dev_name)
    elif dev_base_type == iface.Type.BOND:
        dev_speed = bond.speed(dev_base_name)

    return dev_speed
示例#9
0
def _generate_iface_stats(interface):
    stats = interface.statistics()
    speed = 0
    if interface.type() == iface.Type.NIC:
        speed = nic.speed(interface.device)
    elif interface.type() == iface.Type.BOND:
        speed = bond.speed(interface.device)
    elif interface.type() == iface.Type.VLAN:
        speed = vlan.speed(interface.device)

    stats['speed'] = speed
    stats['duplex'] = nic.duplex(interface.device)

    return stats
示例#10
0
文件: netinfo_test.py 项目: nirs/vdsm
    def test_valid_nic_speed(self, mock_io_open, mock_iface):
        IS_UP = True
        values = ((b'0', IS_UP, 0),
                  (b'-10', IS_UP, 0),
                  (six.b(str(2 ** 16 - 1)), IS_UP, 0),
                  (six.b(str(2 ** 32 - 1)), IS_UP, 0),
                  (b'123', IS_UP, 123),
                  (b'', IS_UP, 0),
                  (b'', not IS_UP, 0),
                  (b'123', not IS_UP, 0))

        for passed, is_nic_up, expected in values:
            mock_io_open.return_value = io.BytesIO(passed)
            mock_iface.return_value.is_oper_up.return_value = is_nic_up

            self.assertEqual(nic.speed('fake_nic'), expected)
示例#11
0
    def test_valid_nic_speed(self, mock_io_open, mock_iface):
        IS_UP = True
        values = (
            (b'0', IS_UP, 0),
            (b'-10', IS_UP, 0),
            (str(2**16 - 1).encode("utf8"), IS_UP, 0),
            (str(2**32 - 1).encode("utf8"), IS_UP, 0),
            (b'123', IS_UP, 123),
            (b'', IS_UP, 0),
            (b'', not IS_UP, 0),
            (b'123', not IS_UP, 0),
        )

        for passed, is_nic_up, expected in values:
            mock_io_open.return_value = io.BytesIO(passed)
            mock_iface.return_value.is_oper_up.return_value = is_nic_up

            assert nic.speed('fake_nic') == expected
示例#12
0
def report():
    stats = {}
    for iface_properties in iface.list():
        i = iface.iface(iface_properties['name'])
        stats[i.device] = i.statistics()

        speed = 0
        if i.type() == iface.Type.NIC:
            speed = nic.speed(i.device)
        elif i.type() == iface.Type.BOND:
            speed = bond.speed(i.device)
        elif i.type() == iface.Type.VLAN:
            speed = vlan.speed(i.device)
        elif i.type() == iface.Type.DPDK:
            speed = dpdk.speed(i.device)

        stats[i.device]['speed'] = speed
        stats[i.device]['duplex'] = nic.duplex(i.device)

    return stats
示例#13
0
 def test_dpdk_device_speed(self):
     assert nic.speed('dpdk0') == 0
示例#14
0
 def test_speed_in_range(self):
     for d in nics.nics():
         s = nic.speed(d)
         self.assertFalse(s < 0)
         self.assertTrue(s in ETHTOOL_SPEEDS or s == 0)
示例#15
0
 def test_speed_on_an_iface_that_does_not_support_speed(self):
     self.assertEqual(nic.speed('lo'), 0)
示例#16
0
 def test_dpdk_device_speed(self):
     self.assertEqual(nic.speed('dpdk0'), 0)
示例#17
0
文件: netinfo_test.py 项目: nirs/vdsm
 def test_dpdk_device_speed(self):
     self.assertEqual(nic.speed('dpdk0'), 0)
示例#18
0
文件: netinfo_test.py 项目: nirs/vdsm
 def test_speed_in_range(self):
     for d in nics.nics():
         s = nic.speed(d)
         self.assertFalse(s < 0)
         self.assertTrue(s in ETHTOOL_SPEEDS or s == 0)
示例#19
0
文件: netinfo_test.py 项目: nirs/vdsm
 def test_speed_on_an_iface_that_does_not_support_speed(self):
     self.assertEqual(nic.speed('lo'), 0)
示例#20
0
 def test_speed_in_range(self):
     for d in nics.nics():
         s = nic.speed(d)
         assert not s < 0
         assert s in ETHTOOL_SPEEDS or s == 0
示例#21
0
 def test_speed_on_an_iface_that_does_not_support_speed(self):
     assert nic.speed('lo') == 0