diff --git a/quark/db/api.py b/quark/db/api.py index 7c8662d..399a194 100644 --- a/quark/db/api.py +++ b/quark/db/api.py @@ -267,7 +267,7 @@ def mac_address_range_find_allocation_counts(context, address=None): sql_func.count(models.MacAddress.address). label("count")).with_lockmode("update") query = query.outerjoin(models.MacAddress) - query = query.group_by(models.MacAddressRange) + query = query.group_by(models.MacAddressRange.id) query = query.order_by("count DESC") if address: query = query.filter(models.MacAddressRange.last_address >= address) diff --git a/quark/db/models.py b/quark/db/models.py index b8974c9..8c48776 100644 --- a/quark/db/models.py +++ b/quark/db/models.py @@ -119,14 +119,14 @@ class IPAddress(BASEV2, models.HasId): """ __tablename__ = "quark_ip_addresses" address_readable = sa.Column(sa.String(128), nullable=False) - address = sa.Column(custom_types.INET(), nullable=False) + address = sa.Column(custom_types.INET(), nullable=False, index=True) subnet_id = sa.Column(sa.String(36), sa.ForeignKey("quark_subnets.id", ondelete="CASCADE")) network_id = sa.Column(sa.String(36), sa.ForeignKey("quark_networks.id", ondelete="CASCADE")) - version = sa.Column(sa.Integer()) + version = sa.Column(sa.Integer(), index=True) allocated_at = sa.Column(sa.DateTime()) subnet = orm.relationship("Subnet", lazy="joined") # Need a constant to facilitate the indexed search for new IPs @@ -157,7 +157,7 @@ class IPAddress(BASEV2, models.HasId): return str(ip.ipv4()) return str(ip.ipv6()) - deallocated_at = sa.Column(sa.DateTime()) + deallocated_at = sa.Column(sa.DateTime(), index=True) class Route(BASEV2, models.HasTenant, models.HasId, IsHazTags): diff --git a/quark/plugin_modules/networks.py b/quark/plugin_modules/networks.py index a1ef792..26ff8d1 100644 --- a/quark/plugin_modules/networks.py +++ b/quark/plugin_modules/networks.py @@ -156,7 +156,6 @@ def get_network(context, id, fields=None): (id, context.tenant_id, fields)) network = db_api.network_find(context, id=id, scope=db_api.ONE) - if not network: raise exceptions.NetworkNotFound(net_id=id) return v._make_network_dict(network)