def get_system_serial_from_iqn(iqn_str): from infi.dtypes.iqn import IQN, InvalidIQN try: last_iqn_field = IQN(iqn_str).get_extra_fields()[-1] except InvalidIQN: raise InvalidInfiniboxConnectivity("Invalid IQN {}".format(iqn_str)) if last_iqn_field.startswith("infinibox-sn-"): try: return int(last_iqn_field.split("-")[-2]) except ValueError: raise InvalidInfiniboxConnectivity("Invalid InfiniBox IQN {}".format(iqn_str)) raise InvalidInfiniboxConnectivity("Could not get InfiniBox serial from IQN {}".format(iqn_str))