예제 #1
0
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))