From 425e0ae71530770a950ec41f5aae4cc447b622a3 Mon Sep 17 00:00:00 2001 From: Alfred Ashur Oshana <alfredashur.oshana@stud.h-da.de> Date: Fri, 1 Nov 2024 21:16:44 +0100 Subject: [PATCH] refactor --- pilab/events/meta.py | 10 +++++++++- pilab/schemas/Image.py | 19 +++++++++++++++++-- pilab/schemas/Key.py | 7 ++++++- pilab/schemas/Pi.py | 6 +----- setup.py | 2 +- 5 files changed, 34 insertions(+), 10 deletions(-) diff --git a/pilab/events/meta.py b/pilab/events/meta.py index 4c8818b..481193c 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 b9f8ae6..917bac1 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 35e3053..1c4ee03 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 7b5bdb3..32c5b58 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 df4658f..ffb615b 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', -- GitLab