You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.6 KiB
Python
67 lines
1.6 KiB
Python
from sqlalchemy.orm import Session
|
|
|
|
from . import models, schemas
|
|
|
|
def get_hosts(db: Session):
|
|
hosts = db.query(models.Host).all()
|
|
|
|
return hosts
|
|
|
|
def get_host_by_hostname(db: Session, hostname: str):
|
|
db_host = db.query(models.Host).filter(models.Host.hostname == hostname).first()
|
|
if db_host:
|
|
return db_host
|
|
return {}
|
|
|
|
def get_host_id_for_hostname(db: Session, hostname: str):
|
|
try:
|
|
db_host_id = db.query(models.Host).filter(models.Host.hostname == hostname).first().id
|
|
except AttributeError:
|
|
return -1
|
|
return db_host_id
|
|
|
|
def create_host(db: Session, host: schemas.HostCreate):
|
|
db_host = models.Host(
|
|
hostname=host.hostname
|
|
)
|
|
|
|
db.add(db_host)
|
|
db.commit()
|
|
db.refresh(db_host)
|
|
|
|
return db_host
|
|
|
|
def delete_host(db: Session, host_id: str):
|
|
db_host = db.query(models.Host).filter(models.Host.id == host_id).first()
|
|
db.delete(db_host)
|
|
db.commit()
|
|
|
|
return {
|
|
"message": "Host successfully deleted"
|
|
}
|
|
|
|
def delete_host_by_hostname(db: Session, hostname: str):
|
|
db_host = db.query(models.Host).filter(models.Host.hostname == hostname).first()
|
|
db.delete(db_host)
|
|
db.commit()
|
|
|
|
return {
|
|
"message": "Host successfully deleted"
|
|
}
|
|
|
|
def get_cpus_by_host_id(db: Session, host_id: int):
|
|
return db.query(models.CPU).filter(models.CPU.host_id == host_id)
|
|
|
|
def create_cpu(db: Session, cpu: schemas.CPUCreate):
|
|
db_cpu = models.CPU(
|
|
name=cpu.name,
|
|
socket=cpu.socket,
|
|
host_id=cpu.host_id
|
|
)
|
|
|
|
db.add(db_cpu)
|
|
db.commit()
|
|
db.refresh(db_cpu)
|
|
|
|
return db_cpu
|