diff --git a/pilab/events/meta.py b/pilab/events/meta.py index 4c8818b6085b72990da56652f7da6e4eda40bd01..481193ca0fe43935f57642b9e91f68441d73d8db 100644 --- a/pilab/events/meta.py +++ b/pilab/events/meta.py @@ -61,7 +61,7 @@ class Pi_old(Host): position: int ssh_host_ed25519_key: Optional[str] -class Pi(Host): +class Pi_legacy(Host): """ representation of pi object with host id """ @@ -73,6 +73,14 @@ class Pi(Host): playbook_id: Optional[int] cube_id: int +class Pi(Host): + """ + representation of pi object with host id + """ + serial: bytes + position: int + cube_id: int + class PiUpdate(HostUpdate): """ representation of pi object for update diff --git a/pilab/schemas/Image.py b/pilab/schemas/Image.py index b9f8ae66e97488482d1724dd6a8a222f72de2656..917bac107e26429fea2be034f230b0e3f3f0cbda 100644 --- a/pilab/schemas/Image.py +++ b/pilab/schemas/Image.py @@ -1,4 +1,4 @@ -from sqlalchemy import Column, Integer, ForeignKey, String, Boolean, BigInteger, DateTime +from sqlalchemy import Column, Integer, ForeignKey, String, Boolean, DateTime from pilab.database import Base, MAC, SERIAL, IP @@ -13,6 +13,11 @@ class ScriptType(Base): script = Column(String) script_chroot = Column(String) +class ScriptBindingType(Base): + __tablename__ = "script_bindings" + script_id = Column(Integer, ForeignKey('scripts.id'), primary_key=True) + pi_id = Column(Integer, ForeignKey('pis.host_id'), primary_key=True) + class ImageType(Base): __tablename__ = "images" id = Column(Integer, primary_key=True) @@ -25,8 +30,18 @@ class ImageType(Base): change = Column(DateTime) script_id = Column(Integer, ForeignKey('scripts.id')) +class ImageBindingType(Base): + __tablename__ = "image_bindings" + image_id = Column(Integer, ForeignKey('images.id'), primary_key=True) + pi_id = Column(Integer, ForeignKey('pis.host_id'), primary_key=True) + class UserDataType(Base): __tablename__ = "user_data" id = Column(Integer, primary_key=True) owner = Column(String) - data = Column(String) \ No newline at end of file + data = Column(String) + +class UserDataBindingType(Base): + __tablename__ = "user_data_bindings" + user_data_id = Column(Integer, ForeignKey('user_data.id'), primary_key=True) + pi_id = Column(Integer, ForeignKey('pis.host_id'), primary_key=True) \ No newline at end of file diff --git a/pilab/schemas/Key.py b/pilab/schemas/Key.py index 35e305353c2806ce8e7e8164fb244af72f8fedc6..1c4ee03853c928a47bacfa63e4d95a63a024c65d 100644 --- a/pilab/schemas/Key.py +++ b/pilab/schemas/Key.py @@ -1,4 +1,4 @@ -from sqlalchemy import Column, Integer, String +from sqlalchemy import Column, Integer, ForeignKey, String from pilab.database import Base, MAC, SERIAL, IP @@ -9,3 +9,8 @@ class KeyType(Base): id = Column(Integer, primary_key=True) owner = Column(String) host_key = Column(String) + +class KeyBindingType(Base): + __tablename__ = "key_bindings" + key_id = Column(Integer, ForeignKey('keys.id'), primary_key=True) + pi_id = Column(Integer, ForeignKey('pis.host_id'), primary_key=True) \ No newline at end of file diff --git a/pilab/schemas/Pi.py b/pilab/schemas/Pi.py index 7b5bdb3877ea549bc49822e1354df7a2c32f4695..32c5b58620dd4fbbb85e08c49abb852f5a7c01d9 100644 --- a/pilab/schemas/Pi.py +++ b/pilab/schemas/Pi.py @@ -8,8 +8,4 @@ class PiType(Base): host_id = Column(Integer, ForeignKey('hosts.id'), primary_key=True) cube_id = Column(Integer, ForeignKey('cubes.id'), primary_key=True) serial = Column(SERIAL()) - position = Column(Integer) - user_data_id = Column(Integer, ForeignKey('user_data.id')) - image_id = Column(Integer, ForeignKey('images.id')) - playbook_id = Column(Integer) - key_id = Column(Integer, ForeignKey('keys.id')) \ No newline at end of file + position = Column(Integer) \ No newline at end of file diff --git a/setup.py b/setup.py index df4658fbad4192097a826105b41b65b85e40ba09..ffb615b9d65133fcb1490272fba53e985aa6d231 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages setup( name='pilab', - version='5.0.2', + version='5.0.3', description='Shared-Libs for the pi-lab microservices', url='https://code.fbi.h-da.de/api/v4/projects/27896/packages/pypi/pilab', author='Max Reinheimer',