Skip to content
Snippets Groups Projects
Commit 26ffc33e authored by Alfred Ashur Oshana's avatar Alfred Ashur Oshana
Browse files

Image Binding Rework(and Key)

parent 425e0ae7
No related branches found
No related tags found
No related merge requests found
import logging as log
from sqlalchemy.orm import Session
from typing import Optional
from pilab.schemas.Binding import ImageBindingType
from pilab.events import meta
log.getLogger('sqlalchemy.engine').setLevel(log.WARNING)
class ImageBinding(object):
@staticmethod
def create(db: Session, image_id: int, user_data_id: Optional[int], pi_id: int):
db_binding = ImageBindingType(
image_id=image_id,
user_data_id=user_data_id,
pi_id=pi_id,
)
db.add(db_binding)
db.flush()
return meta.ImageBinding(**vars(db_binding))
@staticmethod
def update(db: Session):
return
@staticmethod
def delete(db: Session, pi_id: int):
db_binding = db.query(ImageBindingType).filter(
ImageBindingType.pi_id == pi_id
).first()
if db_binding:
db.delete(db_binding)
db.flush()
@staticmethod
def get(db: Session, pi_id: int):
db_binding = db.query(ImageBindingType).filter(ImageBindingType.pi_id == pi_id).first()
return meta.ImageBinding(**vars(db_binding)) if db_binding else None
import logging as log
from sqlalchemy.orm import Session
from pilab.schemas.KeyBinding import KeyBindingType
from pilab.events import meta
log.getLogger('sqlalchemy.engine').setLevel(log.WARNING)
class KeyBinding(object):
@staticmethod
def create(db: Session, key_id: int, pi_id: int):
db_binding = KeyBindingType(
key_id=key_id,
pi_id=pi_id,
)
db.add(db_binding)
db.flush()
return meta.KeyBinding(**vars(db_binding))
@staticmethod
def update(db: Session):
return
@staticmethod
def delete(db: Session, pi_id: int):
db_binding = db.query(KeyBindingType).filter(
KeyBindingType.pi_id == pi_id
).first()
if db_binding:
db.delete(db_binding)
db.flush()
@staticmethod
def get(db: Session, pi_id: int):
db_binding = db.query(KeyBindingType).filter(KeyBindingType.pi_id == pi_id).first()
return meta.KeyBinding(**vars(db_binding)) if db_binding else None
\ No newline at end of file
...@@ -113,6 +113,15 @@ class Image(BaseModel): ...@@ -113,6 +113,15 @@ class Image(BaseModel):
script_id: Optional[int] script_id: Optional[int]
change: datetime change: datetime
class ImageBinding(BaseModel):
"""
representation of Image Binding object
"""
image_id: int
user_data_id: int
pi_id: str
class Script(BaseModel): class Script(BaseModel):
id: int id: int
name: str name: str
......
from sqlalchemy import Column, Integer, ForeignKey, String, Boolean, DateTime from sqlalchemy import Column, Integer, ForeignKey, String, Boolean, DateTime
from pilab.database import Base, MAC, SERIAL, IP from pilab.database import Base
...@@ -13,11 +13,6 @@ class ScriptType(Base): ...@@ -13,11 +13,6 @@ class ScriptType(Base):
script = Column(String) script = Column(String)
script_chroot = 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): class ImageType(Base):
__tablename__ = "images" __tablename__ = "images"
id = Column(Integer, primary_key=True) id = Column(Integer, primary_key=True)
...@@ -30,18 +25,8 @@ class ImageType(Base): ...@@ -30,18 +25,8 @@ class ImageType(Base):
change = Column(DateTime) change = Column(DateTime)
script_id = Column(Integer, ForeignKey('scripts.id')) 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): class UserDataType(Base):
__tablename__ = "user_data" __tablename__ = "user_data"
id = Column(Integer, primary_key=True) id = Column(Integer, primary_key=True)
owner = Column(String) owner = Column(String)
data = Column(String) 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
from sqlalchemy import Column, Integer, ForeignKey
from pilab.database import Base
class ImageBindingType(Base):
__tablename__ = "image_bindings"
pi_id = Column(Integer, ForeignKey('pis.host_id'), primary_key=True)
image_id = Column(Integer)
user_data_id = Column(Integer)
from sqlalchemy import Column, Integer, ForeignKey
from pilab.database import Base
class KeyBindingType(Base):
__tablename__ = "key_bindings"
pi_id = Column(Integer, ForeignKey('pis.host_id'), primary_key=True)
key_id = Column(Integer)
...@@ -2,7 +2,7 @@ from setuptools import setup, find_packages ...@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
setup( setup(
name='pilab', name='pilab',
version='5.0.3', version='5.1.0',
description='Shared-Libs for the pi-lab microservices', description='Shared-Libs for the pi-lab microservices',
url='https://code.fbi.h-da.de/api/v4/projects/27896/packages/pypi/pilab', url='https://code.fbi.h-da.de/api/v4/projects/27896/packages/pypi/pilab',
author='Max Reinheimer', author='Max Reinheimer',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment