diff --git a/src/middlewared/middlewared/plugins/enclosure.py b/src/middlewared/middlewared/plugins/enclosure.py index 614a6b3cfd3a..e4325c29521e 100644 --- a/src/middlewared/middlewared/plugins/enclosure.py +++ b/src/middlewared/middlewared/plugins/enclosure.py @@ -45,6 +45,7 @@ X_SERIES_REGEX = re.compile(r"CELESTIC (P3215-O|P3217-B)") ES24_REGEX = re.compile(r"(ECStream|iX) 4024J") ES24F_REGEX = re.compile(r"(ECStream|iX) 2024J([ps])") +MINI_REGEX = re.compile(r"(TRUE|FREE)NAS-MINI") class EnclosureLabelModel(sa.Model): @@ -536,6 +537,13 @@ def _set_model(self, data): self.model = "ES24F" elif self.encname.startswith("CELESTIC X2012"): self.model = "ES12" + elif ( + self.encname == "AHCI SGPIO Enclosure 2.00" and + MINI_REGEX.match(self.system_info["system_product"]) + ): + self.model = self.system_info["system_product"] + self.controller = True + def _parse_raw_value(self, value): newvalue = 0 diff --git a/src/middlewared/middlewared/plugins/enclosure_/map.py b/src/middlewared/middlewared/plugins/enclosure_/map.py index fc717ae343c3..874cc2971d57 100644 --- a/src/middlewared/middlewared/plugins/enclosure_/map.py +++ b/src/middlewared/middlewared/plugins/enclosure_/map.py @@ -139,16 +139,11 @@ async def _map_enclosures(self, enclosures, slots): elements.append(element) - info = await self.middleware.call("system.info") - if '-MINI-' in info["system_product"]: - model = info["system_product"] - else: - model = info["system_product"].replace("TRUENAS-", "") - return [ + mapped = [ { "id": "mapped_enclosure_0", "name": "Drive Bays", - "model": model, + "model": enclosures[0].model, "controller": True, "elements": [ { @@ -161,3 +156,8 @@ async def _map_enclosures(self, enclosures, slots): ], } ] + #Add shelves back in + for enclosure in enclosures: + if enclosure.controller == false: + mapped.append(enclosure) + return mapped