diff --git a/shared/workspaces/src/workspaces/schema.py b/shared/workspaces/src/workspaces/schema.py index f403943aa9247bd81052d2969df8ab3a6b01de6e..a061380d672d0d2976c7fda0cd4190703a1993f2 100644 --- a/shared/workspaces/src/workspaces/schema.py +++ b/shared/workspaces/src/workspaces/schema.py @@ -156,6 +156,7 @@ class Capability(Base, CapabilityIF): name = sa.Column('capability_name', sa.String) steps = sa.Column('capability_steps', sa.String) max_jobs = sa.Column('max_jobs', sa.Integer) + requests = relationship("CapabilityRequest", back_populates='capability') @classmethod def from_file(cls, filename: str): @@ -225,8 +226,8 @@ class CapabilityRequest(Base, CapabilityRequestIF): __tablename__ = 'capability_requests' id = sa.Column('capability_request_id', sa.Integer, primary_key=True) state = sa.Column('state', sa.String) - capability = sa.Column( - 'capability', + capability_id = sa.Column( + 'capability_id', sa.Integer, sa.ForeignKey('capabilities.capability_id') ) @@ -234,6 +235,7 @@ class CapabilityRequest(Base, CapabilityRequestIF): # FIXME: This needs to be changed to properly keep track of product locators. #future_products = sa.Column('future_products', sa.String) versions = relationship("CapabilityVersion", back_populates="capability_request") + capability = relationship(Capability, back_populates='requests') def update_status(self, status: str): # TODO: create field in table diff --git a/shared/workspaces/src/workspaces/services.py b/shared/workspaces/src/workspaces/services.py index a0167316ff030ae5788464c5f2a99a39886017c1..ba36214f1662e63ea3de1232a030e1b850c2a9e8 100644 --- a/shared/workspaces/src/workspaces/services.py +++ b/shared/workspaces/src/workspaces/services.py @@ -133,10 +133,8 @@ class CapabilityInfo(CapabilityInfoIF): capability = self.lookup_capability(capability_name) request = CapabilityRequest( state=RequestState.Ready.name, - capability=capability.id, - parameters=str(parameters), - future_products=str(future_products), - versions=str(versions) + capability=capability, + parameters=str(parameters) ) return self.save_entity(request)