diff --git a/pilab/crud/Pi.py b/pilab/crud/Pi.py index aa72b978e4d956828205dadc1d15ca240539390a..58763ba1277bed297a9ed8cdc4de376f91bc0fb1 100644 --- a/pilab/crud/Pi.py +++ b/pilab/crud/Pi.py @@ -7,6 +7,7 @@ from pilab.crud.Host import Host from pilab.schemas.Pi import PiType from pilab.schemas.Host import HostType from pilab.schemas.Cube import CubesType +from pilab.schemas.ImageBinding import ImageBindingType from pilab.events import meta log.getLogger('sqlalchemy.engine').setLevel(log.WARNING) @@ -31,42 +32,6 @@ class Pi(object): pi = meta.Pi(**vars(db_pi), **host.dict()) return pi - @staticmethod - def update_image(db: Session, pi_id: int, image_id: int, user_data_id: int): - db_pi = db.query(PiType).filter( - PiType.host_id == pi_id).first() - db_pi.image_id = image_id - db_pi.user_data_id = user_data_id - db.flush() - - @staticmethod - def update_playbook(db: Session, pi_id: int, playbook_id: int): - db_pi = db.query(PiType).filter( - PiType.host_id == pi_id).first() - db_pi.playbook_id = playbook_id - db.flush() - - @staticmethod - def assign_image(db: Session, pi_id: int, image_id: int): - db_pi = db.query(PiType).filter( - PiType.host_id == pi_id).first() - db_pi.image_id = image_id - db.flush() - - @staticmethod - def assign_host_key(db: Session, pi_id: int, key_id: int): - db_pi = db.query(PiType).filter( - PiType.host_id == pi_id).first() - db_pi.key_id = key_id - db.flush() - - @staticmethod - def assign_data(db: Session, pi_id: int, user_data_id: int): - db_pi = db.query(PiType).filter( - PiType.host_id == pi_id).first() - db_pi.user_data_id = user_data_id - db.flush() - @staticmethod def get(db: Session, id: int = None, serial : bytes = None, mac: int = None):#DONE if id: @@ -127,7 +92,13 @@ class Pi(object): PiType.cube_id == db_cube.id ).all() elif image_id: - ids = db.query(PiType.host_id).filter(PiType.image_id == image_id).all() + db_image_bindings = db.query(ImageBindingType).filter( + ImageBindingType.image_id == image_id + ).all() + pi_ids = [image_binding.pi_id for image_binding in db_image_bindings] + ids = db.query(PiType.host_id).filter( + PiType.host_id in pi_ids + ).all() else: ids = db.query(PiType.host_id).all() diff --git a/pilab/schemas/Key.py b/pilab/schemas/Key.py index 1c4ee03853c928a47bacfa63e4d95a63a024c65d..6aefbb0d92e301a2bb89232439c3dcf8de767cf4 100644 --- a/pilab/schemas/Key.py +++ b/pilab/schemas/Key.py @@ -9,8 +9,3 @@ 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/setup.py b/setup.py index cb6bcfa60495f422237b39f38250bb316e5cff84..d1888dad126d275dcb5e1687e7b063e25fcfdd25 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages setup( name='pilab', - version='5.1.4', + version='5.2.0', 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',