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
Branches
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):
script_id: Optional[int]
change: datetime
class ImageBinding(BaseModel):
"""
representation of Image Binding object
"""
image_id: int
user_data_id: int
pi_id: str
class Script(BaseModel):
id: int
name: str
......
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):
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)
......@@ -30,18 +25,8 @@ 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)
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
setup(
name='pilab',
version='5.0.3',
version='5.1.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',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment