Skip to content

Commit 3d90367

Browse files
committed
added support for 2ugw
1 parent 0201d1e commit 3d90367

2 files changed

Lines changed: 51 additions & 21 deletions

File tree

tools/lsdev

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,7 @@ def build_server(options):
393393
try:
394394
vdev_id = open(CONFIG_PATH + "/vdev_id.conf", mode='r')
395395
except IOError:
396-
if "Chassis Size" in server_obj.keys() and server_obj["Chassis Size"] in ["2UGW"]:
396+
if "Chassis Size" in server_obj.keys() and server_obj["Chassis Size"] in ["2UGW", "2UGW-REV2"]:
397397
print("This program is intended to display disk information for servers with dedicated storage bays.".format(astyle=server_obj["Alias Style"]))
398398
print("Use command line utilities such as lsblk to see disk information for Ceph Gateways.".format(astyle=server_obj["Alias Style"]))
399399
exit(1)
@@ -404,7 +404,7 @@ def build_server(options):
404404
print("Unable to determine Alias Style from /etc/45drives/server_info/server_info.json: ")
405405
print(json.dumps(server_obj,indent=4))
406406
exit(1)
407-
elif "Chassis Size" in server_obj.keys() and server_obj["Chassis Size"] in ["2UGW"]:
407+
elif "Chassis Size" in server_obj.keys() and server_obj["Chassis Size"] in ["2UGW", "2UGW-REV2"]:
408408
print("This program is intended to display disk information for servers with dedicated storage bays.".format(astyle=server_obj["Alias Style"]))
409409
print("Use command line utilities such as lsblk to see disk information for Ceph Gateways.".format(astyle=server_obj["Alias Style"]))
410410
exit(1)

tools/server_identifier

Lines changed: 49 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,20 @@ g_product_lut_idx = {
2323
"ALIAS_STYLE": 4
2424
}
2525

26-
g_chassis_sizes = ["?","AV15","Q30","S45","XL60","F8X1","F8X2","F8X3","2U","2UGW","1UGW","F2","HL15","VM8","VM16","VM32","HL4","HL8","PRO4","PRO8","PRO15","STUDIO8","HL15_BEAST","F16","VM2"]
26+
g_chassis_sizes = ["?","AV15","Q30","S45","XL60","F8X1","F8X2","F8X3","2U","2UGW","1UGW","F2","HL15","VM8","VM16","VM32","HL4","HL8","PRO4","PRO8","PRO15","STUDIO8","HL15_BEAST","F16","VM2","2UGW_REV2"]
2727

2828
g_mobo_to_version_lut = {
29-
"Base": ["X11SSH-CTF","X11SSM-F","ME03-CE0-000","MS03-6L0-000","MS73-HB0-000","MZ73-LM0-000","MC13-LE1-000","B550I AORUS PRO","EC266D2I-2T/AQC","ROMED8-2T/BCM","ROMED8-2T", "ProArt X870E-CREATOR WIFI"],
30-
"Base-B": ["X11SPL-F","ME03-CE0-000","MS03-6L0-000","MS73-HB0-000","MZ73-LM0-000","MC13-LE1-000","B550I AORUS PRO","EC266D2I-2T/AQC","ROMED8-2T/BCM","ROMED8-2T", "ProArt X870E-CREATOR WIFI"],
31-
"Enhanced": ["X11SPL-F","X10SRL-F","ME03-CE0-000","MS03-6L0-000","MS73-HB0-000","MZ73-LM0-000","MC13-LE1-000","B550I AORUS PRO","EC266D2I-2T/AQC","ROMED8-2T/BCM","ROMED8-2T", "ProArt X870E-CREATOR WIFI"],
32-
"Enhanced-S":["X11SPL-F","ME03-CE0-000","MS03-6L0-000","MS73-HB0-000","MZ73-LM0-000","MC13-LE1-000","B550I AORUS PRO","EC266D2I-2T/AQC","ROMED8-2T/BCM","ROMED8-2T", "ProArt X870E-CREATOR WIFI"],
33-
"Enhanced-AMD":["H11SSL-i","ME03-CE0-000","MS03-6L0-000","MS73-HB0-000","MZ73-LM0-000","MC13-LE1-000","B550I AORUS PRO","EC266D2I-2T/AQC","ROMED8-2T/BCM","ROMED8-2T", "ProArt X870E-CREATOR WIFI"],
34-
"Turbo": ["X11DPL-i","X10DRL-i","X12DPi-N6","ME03-CE0-000","MS03-6L0-000","MS73-HB0-000","MZ73-LM0-000","MC13-LE1-000","B550I AORUS PRO","EC266D2I-2T/AQC","ROMED8-2T/BCM","ROMED8-2T", "ProArt X870E-CREATOR WIFI"],
35-
"Turbo-G":["X11SPL-F","X12DPi-N6","ME03-CE0-000","MS03-6L0-000","MS73-HB0-000","MZ73-LM0-000","MC13-LE1-000","B550I AORUS PRO","EC266D2I-2T/AQC","ROMED8-2T/BCM","ROMED8-2T", "ProArt X870E-CREATOR WIFI"],
36-
"Good": ["H12SSL-i","H12SSL-I","ME03-CE0-000","MS03-6L0-000","MS73-HB0-000","MZ73-LM0-000","MC13-LE1-000","B550I AORUS PRO","EC266D2I-2T/AQC","ROMED8-2T/BCM","ROMED8-2T", "ProArt X870E-CREATOR WIFI"],
37-
"Better": ["H12SSL-i","H12SSL-I","ME03-CE0-000","MS03-6L0-000","MS73-HB0-000","MZ73-LM0-000","MC13-LE1-000","B550I AORUS PRO","EC266D2I-2T/AQC","ROMED8-2T/BCM","ROMED8-2T", "ProArt X870E-CREATOR WIFI"],
38-
"Best": ["H12SSL-i","H12SSL-I","ME03-CE0-000","MS03-6L0-000","MS73-HB0-000","MZ73-LM0-000","MC13-LE1-000","B550I AORUS PRO","EC266D2I-2T/AQC","ROMED8-2T/BCM","ROMED8-2T", "ProArt X870E-CREATOR WIFI"],
39-
"Super": ["H12SSL-i","H12SSL-I","ME03-CE0-000","MS03-6L0-000","MS73-HB0-000","MZ73-LM0-000","MC13-LE1-000","B550I AORUS PRO","EC266D2I-2T/AQC","ROMED8-2T/BCM","ROMED8-2T", "ProArt X870E-CREATOR WIFI"]
29+
"Base": ["X11SSH-CTF","X11SSM-F","ME03-CE0-000","MS03-6L0-000","MS73-HB0-000","MZ73-LM0-000","MC13-LE1-000","B550I AORUS PRO","EC266D2I-2T/AQC","ROMED8-2T/BCM","ROMED8-2T", "ProArt X870E-CREATOR WIFI","MH53-G40-000"],
30+
"Base-B": ["X11SPL-F","ME03-CE0-000","MS03-6L0-000","MS73-HB0-000","MZ73-LM0-000","MC13-LE1-000","B550I AORUS PRO","EC266D2I-2T/AQC","ROMED8-2T/BCM","ROMED8-2T", "ProArt X870E-CREATOR WIFI","MH53-G40-000"],
31+
"Enhanced": ["X11SPL-F","X10SRL-F","ME03-CE0-000","MS03-6L0-000","MS73-HB0-000","MZ73-LM0-000","MC13-LE1-000","B550I AORUS PRO","EC266D2I-2T/AQC","ROMED8-2T/BCM","ROMED8-2T", "ProArt X870E-CREATOR WIFI","MH53-G40-000"],
32+
"Enhanced-S":["X11SPL-F","ME03-CE0-000","MS03-6L0-000","MS73-HB0-000","MZ73-LM0-000","MC13-LE1-000","B550I AORUS PRO","EC266D2I-2T/AQC","ROMED8-2T/BCM","ROMED8-2T", "ProArt X870E-CREATOR WIFI","MH53-G40-000"],
33+
"Enhanced-AMD":["H11SSL-i","ME03-CE0-000","MS03-6L0-000","MS73-HB0-000","MZ73-LM0-000","MC13-LE1-000","B550I AORUS PRO","EC266D2I-2T/AQC","ROMED8-2T/BCM","ROMED8-2T", "ProArt X870E-CREATOR WIFI","MH53-G40-000"],
34+
"Turbo": ["X11DPL-i","X10DRL-i","X12DPi-N6","ME03-CE0-000","MS03-6L0-000","MS73-HB0-000","MZ73-LM0-000","MC13-LE1-000","B550I AORUS PRO","EC266D2I-2T/AQC","ROMED8-2T/BCM","ROMED8-2T", "ProArt X870E-CREATOR WIFI","MH53-G40-000"],
35+
"Turbo-G":["X11SPL-F","X12DPi-N6","ME03-CE0-000","MS03-6L0-000","MS73-HB0-000","MZ73-LM0-000","MC13-LE1-000","B550I AORUS PRO","EC266D2I-2T/AQC","ROMED8-2T/BCM","ROMED8-2T", "ProArt X870E-CREATOR WIFI","MH53-G40-000"],
36+
"Good": ["H12SSL-i","H12SSL-I","ME03-CE0-000","MS03-6L0-000","MS73-HB0-000","MZ73-LM0-000","MC13-LE1-000","B550I AORUS PRO","EC266D2I-2T/AQC","ROMED8-2T/BCM","ROMED8-2T", "ProArt X870E-CREATOR WIFI","MH53-G40-000"],
37+
"Better": ["H12SSL-i","H12SSL-I","ME03-CE0-000","MS03-6L0-000","MS73-HB0-000","MZ73-LM0-000","MC13-LE1-000","B550I AORUS PRO","EC266D2I-2T/AQC","ROMED8-2T/BCM","ROMED8-2T", "ProArt X870E-CREATOR WIFI","MH53-G40-000"],
38+
"Best": ["H12SSL-i","H12SSL-I","ME03-CE0-000","MS03-6L0-000","MS73-HB0-000","MZ73-LM0-000","MC13-LE1-000","B550I AORUS PRO","EC266D2I-2T/AQC","ROMED8-2T/BCM","ROMED8-2T", "ProArt X870E-CREATOR WIFI","MH53-G40-000"],
39+
"Super": ["H12SSL-i","H12SSL-I","ME03-CE0-000","MS03-6L0-000","MS73-HB0-000","MZ73-LM0-000","MC13-LE1-000","B550I AORUS PRO","EC266D2I-2T/AQC","ROMED8-2T/BCM","ROMED8-2T", "ProArt X870E-CREATOR WIFI","MH53-G40-000"]
4040
}
4141

4242
g_product_lut = {
@@ -45,7 +45,14 @@ g_product_lut = {
4545
"Gateway-2UGW-Enhanced": [g_mobo_to_version_lut["Enhanced"],0,0,"2UGW","2UGW"],
4646
"Gateway-2UGW-Enhanced-S": [g_mobo_to_version_lut["Enhanced"],0,0,"2UGW","2UGW"],
4747
"Gateway-2UGW-Turbo-G": [g_mobo_to_version_lut["Turbo"],0,0,"2UGW","2UGW"],
48-
48+
49+
"Gateway-2UGW_REV2-Base": [g_mobo_to_version_lut["Base"],0,0,"2UGW_REV2","2UGW_REV2"],
50+
"Gateway-2UGW_REV2-Base-B": [g_mobo_to_version_lut["Base"],0,0,"2UGW_REV2","2UGW_REV2"],
51+
"Gateway-2UGW_REV2-Enhanced": [g_mobo_to_version_lut["Enhanced"],0,0,"2UGW_REV2","2UGW_REV2"],
52+
"Gateway-2UGW_REV2-Enhanced-S": [g_mobo_to_version_lut["Enhanced"],0,0,"2UGW_REV2","2UGW_REV2"],
53+
"Gateway-2UGW_REV2-Turbo-G": [g_mobo_to_version_lut["Turbo"],0,0,"2UGW_REV2","2UGW_REV2"],
54+
55+
4956
"Gateway-1UGW-Base": [g_mobo_to_version_lut["Base"],0,0,"1UGW","1UGW"],
5057
"Gateway-1UGW-Base-B": [g_mobo_to_version_lut["Base"],0,0,"1UGW","1UGW"],
5158
"Gateway-1UGW-Enhanced": [g_mobo_to_version_lut["Enhanced"],0,0,"1UGW","1UGW"],
@@ -1180,6 +1187,21 @@ def infer_homelab_model_from_sysfs_ports(allowed_mobos=None, detected_mobo_name=
11801187

11811188
return (None, None)
11821189

1190+
def normalize_model_key(model_name):
1191+
# Some firmware revisions report REV2 with dashes instead of underscores.
1192+
# Normalize to the LUT naming so lookups remain stable.
1193+
if model_name in g_product_lut:
1194+
return model_name
1195+
if "-REV2-" in model_name:
1196+
return model_name.replace("-REV2-", "_REV2-")
1197+
return model_name
1198+
1199+
def normalize_chassis_size(chassis_size):
1200+
# Normalize REV2 part numbers to match internal LUT/template naming.
1201+
if chassis_size == "2UGW-REV2":
1202+
return "2UGW_REV2"
1203+
return chassis_size
1204+
11831205
def main():
11841206
server = {
11851207
"Motherboard":"?",
@@ -1210,7 +1232,7 @@ def main():
12101232
if not server["VM"]:
12111233
serial_result = serial_check()
12121234
server["Serial"] = serial_result["Product Serial"].upper()
1213-
server["Chassis Size"] = serial_result["Product Part Number"].upper()
1235+
server["Chassis Size"] = normalize_chassis_size(serial_result["Product Part Number"].upper())
12141236
server["Model"] = determine_model(server["Motherboard"]["Product Name"],server["HBA"],server["Chassis Size"]) if old_serial(serial_result) else serial_result["Product Name"]
12151237

12161238
# If we don't have IPMI and fell back to a generic Product Name,
@@ -1232,7 +1254,14 @@ def main():
12321254
if len(server["HBA"]) > 0 and server["VM"]:
12331255
vm_passthrough(server) # VM with hba pass through detected, update server accordingly
12341256

1235-
server["Alias Style"] = g_product_lut[server["Model"]][g_product_lut_idx["ALIAS_STYLE"]]
1257+
server["Model"] = normalize_model_key(server["Model"])
1258+
server["Chassis Size"] = normalize_chassis_size(server["Chassis Size"])
1259+
if server["Model"] in g_product_lut:
1260+
server["Alias Style"] = g_product_lut[server["Model"]][g_product_lut_idx["ALIAS_STYLE"]]
1261+
else:
1262+
server["Alias Style"] = "?"
1263+
print("/opt/45drives/tools/server_identifier: !! WARNING !!")
1264+
print(" Unrecognized model \"{m}\". Alias style and HBA expectations are unknown.".format(m=server["Model"]))
12361265

12371266
# set auto alias flag for servers that are automatically aliased using udev rules.
12381267
if server["Alias Style"] in ["F2STORNADO","STORINATORUBM"]:
@@ -1252,10 +1281,11 @@ def main():
12521281
update_json_file(server,scan_time)
12531282

12541283
# warn user if improper number of HBA cards are detected.
1255-
if len(server["HBA"]) != g_product_lut[server["Model"]][g_product_lut_idx["24I_COUNT"]] + g_product_lut[server["Model"]][g_product_lut_idx["16I_COUNT"]]:
1256-
print("/opt/45drives/tools/server_identifier: !! WARNING !!")
1257-
print(" Quantity of HBA Cards detected does not match the quantity expected")
1258-
print(" for a \"{m}\". Drive aliasing may not work as desired. ".format(m=server["Model"]))
1284+
if server["Model"] in g_product_lut:
1285+
if len(server["HBA"]) != g_product_lut[server["Model"]][g_product_lut_idx["24I_COUNT"]] + g_product_lut[server["Model"]][g_product_lut_idx["16I_COUNT"]]:
1286+
print("/opt/45drives/tools/server_identifier: !! WARNING !!")
1287+
print(" Quantity of HBA Cards detected does not match the quantity expected")
1288+
print(" for a \"{m}\". Drive aliasing may not work as desired. ".format(m=server["Model"]))
12591289
exit(0)
12601290

12611291
if __name__ == "__main__":

0 commit comments

Comments
 (0)