[sqlalchemy2] Added missing relationships in models

Some missing relationships triggered issues when creating many objects
in the same transaction, for instance a FlavorProfile, a Flavor and a
LoadBalancer. The FlavorProfile was not created before the Flavor,
violating the foreign key constraint.

Change-Id: I2c8b235835d1c00f81302ed881e18040cb2c7c16
This commit is contained in:
Gregory Thiemonge 2023-02-23 14:27:51 -05:00
parent 022b407784
commit e63e149b75

View File

@ -19,6 +19,7 @@ from oslo_db.sqlalchemy import models
import sqlalchemy as sa
from sqlalchemy.ext import orderinglist
from sqlalchemy import orm
from sqlalchemy.orm import Mapped
from sqlalchemy.orm import validates
from sqlalchemy.sql import func
from sqlalchemy_utils import ScalarListType
@ -454,6 +455,7 @@ class LoadBalancer(base_models.BASE, base_models.IdMixin,
sa.ForeignKey("availability_zone.name",
name="fk_load_balancer_availability_zone_name"),
nullable=True)
flavor: Mapped["Flavor"] = orm.relationship("Flavor")
def __str__(self):
return (f"LoadBalancer(id={self.id!r}, name={self.name!r}, "
@ -909,6 +911,7 @@ class Flavor(base_models.BASE,
sa.ForeignKey("flavor_profile.id",
name="fk_flavor_flavor_profile_id"),
nullable=False)
flavor_profile: Mapped["FlavorProfile"] = orm.relationship("FlavorProfile")
class AvailabilityZoneProfile(base_models.BASE, base_models.IdMixin,
@ -944,6 +947,8 @@ class AvailabilityZone(base_models.BASE,
sa.ForeignKey("availability_zone_profile.id",
name="fk_az_az_profile_id"),
nullable=False)
availability_zone_profile: Mapped["AvailabilityZoneProfile"] = (
orm.relationship("AvailabilityZoneProfile"))
class ClientAuthenticationMode(base_models.BASE):