'Load an IPAM subnet from the database given its neutron ID.
:param neutron_subnet_id: neutron subnet identifier.'

@classmethod
def load(cls, neutron_subnet_id, ctx):

    ipam_subnet = ipam_db_api.IpamSubnetManager.load_by_neutron_subnet_id(ctx, neutron_subnet_id)
    if (not ipam_subnet):
        LOG.error(_LE('IPAM    subnet    referenced    to    Neutron    subnet    %s    does    not    exist'), neutron_subnet_id)
        raise n_exc.SubnetNotFound(subnet_id=neutron_subnet_id)
    pools = []
    for pool in ipam_subnet.allocation_pools:
        pools.append(netaddr.IPRange(pool['first_ip'], pool['last_ip']))
    neutron_subnet = cls._fetch_subnet(ctx, neutron_subnet_id)
    return cls(ipam_subnet['id'], ctx, cidr=neutron_subnet['cidr'], allocation_pools=pools, gateway_ip=neutron_subnet['gateway_ip'], tenant_id=neutron_subnet['tenant_id'], subnet_id=neutron_subnet_id)
