in src/worker/exporters/net_exporter.py [0:0]
def init_infiniband(args):
sysfs_path = args.inifiband_sysfs
for hca in os.listdir(sysfs_path):
sys_image_guid = ''
with open(os.path.join(sysfs_path, hca, 'sys_image_guid')) as f:
sys_image_guid = f.readline().strip().replace(':', '')
for port in os.listdir(os.path.join(sysfs_path, hca, 'ports')):
counter_path = os.path.join(sysfs_path, hca, 'ports', port,
'counters')
counter_file = {}
counters = {}
for field_name in IB_COUNTERS:
if field_name == 'port_physical_state':
state_path = os.path.join(sysfs_path, hca, 'ports', port)
counter_file[field_name] = open(os.path.join(state_path, 'phys_state'), 'r')
counters[field_name] = PORT_STATE[counter_file[field_name].readline().split()[1].strip()]
continue
counter_file[field_name] = open(
os.path.join(counter_path, field_name), 'r')
counters[field_name] = int(
counter_file[field_name].readline().strip())
config['ib_port']['{}:{}'.format(hca, port)] = {
'sys_image_guid': sys_image_guid,
'counter_path': counter_path,
'counter_file': counter_file,
'counters': counters,
}