39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
from pillar_tool.db.base_model import Base
|
|
|
|
from sqlalchemy import Column, UUID, String, ForeignKey, UniqueConstraint, Boolean
|
|
import uuid
|
|
|
|
|
|
class Environment(Base):
|
|
__tablename__ = "pillar_tool_environment"
|
|
|
|
id = Column(UUID, primary_key=True, default=uuid.uuid4)
|
|
name = Column(String, nullable=False)
|
|
|
|
__table_args__ = (
|
|
UniqueConstraint('name', name="pillar_tool_unique_environment_unique_name")
|
|
)
|
|
|
|
|
|
class State(Base):
|
|
__tablename__ = "pillar_tool_state"
|
|
|
|
id = Column(UUID, primary_key=True, default=uuid.uuid4)
|
|
name = Column(String, nullable=False)
|
|
|
|
__table_args__ = (
|
|
UniqueConstraint('name', name="pillar_tool_unique_state_unique_name")
|
|
)
|
|
|
|
|
|
class StateAssignment(Base):
|
|
__tablename__ = "pillar_tool_state_assignment"
|
|
|
|
id = Column(UUID, primary_key=True, default=uuid.uuid4)
|
|
environment_id = Column(UUID, ForeignKey("pillar_tool_environment.id"), nullable=False)
|
|
state_id = Column(UUID, ForeignKey("pillar_tool_state.id"), nullable=False)
|
|
host_id = Column(UUID, ForeignKey("pillar_tool_host.id"), nullable=False)
|
|
|
|
__table_args__ = (
|
|
UniqueConstraint('environment_id', 'state_id', 'host_id', name="pillar_tool_state_assignment_unique_env_state_host"),
|
|
) |