diff --git a/roles/gpu/files/scripts/nvidia-xconf-gen.py b/roles/gpu/files/scripts/nvidia-xconf-gen.py index 7cd9cb551f348d608b583466322b1acc137e9b8d..6993d3339bd57d42fb2860dc3a7ac87a79c9e71b 100755 --- a/roles/gpu/files/scripts/nvidia-xconf-gen.py +++ b/roles/gpu/files/scripts/nvidia-xconf-gen.py @@ -29,8 +29,18 @@ def grab_card_ids(): cards = [] for line in p.stdout.readlines(): - line = line.rstrip().split(":")[2] - pcibus_num = int(re.sub('[.:]', '', line).rstrip("0"),16) + stripped_line = line.rstrip().split(":")[2] + #check for different format of pcibus_id. This happens on baremetals + # i.e. 00000000:06:00.0 not 00000000:00:06.0 + pcibus_id = re.sub('[.:]', '', stripped_line).rstrip("0") + if not pcibus_id: # empty string, try the other way + stripped_line = line.rstrip().split(":")[1] + pcibus_id = re.sub('[.:]', '', stripped_line).rstrip("0") + if not pcibus_id: + print("Error in grab_card_ids: we can not parse the line {}".format(line)) + print("Command that generated it is: {}".format(cmd)) + system.exit(1) + pcibus_num = int(pcibus_id,16) card = "PCI:0:{}:0".format(str(pcibus_num)) cards.append(card) return cards