53 lines
1.5 KiB
Python
53 lines
1.5 KiB
Python
from sqlalchemy import (
|
|
Column,
|
|
String,
|
|
Integer,
|
|
ForeignKey
|
|
)
|
|
from sqlalchemy.orm import relationship
|
|
|
|
from models.common.base import BaseModel
|
|
|
|
|
|
class pelement(BaseModel):
|
|
"""
|
|
description: Nutanix prism element model
|
|
"""
|
|
__tablename__ = "tnc_pelement"
|
|
_s_collection_name = "pelements"
|
|
_s_class_name = "pelement"
|
|
|
|
id = Column(Integer, primary_key=True, autoincrement=True, index=True)
|
|
ip = Column(String(15), unique=True, nullable=False)
|
|
name = Column(String(32), unique=True, nullable=False)
|
|
hostname = Column(String(64), unique=True, nullable=True)
|
|
description = Column(String(64), unique=False, nullable=False)
|
|
ncc_version = Column(String(16), index=True, nullable=False)
|
|
aos_version = Column(String(16), index=True, nullable=False)
|
|
cpu_decomiss = Column(Integer, nullable=True)
|
|
|
|
pcentral_id = Column(Integer, ForeignKey("tnc_pcentrals.id"))
|
|
environment_id = Column(Integer, ForeignKey("tcc_environments.id"))
|
|
|
|
environment = relationship("environment", back_populates="pelement")
|
|
pelement = relationship(
|
|
"npereport",
|
|
backref="pelement",
|
|
cascade="save-update, delete",
|
|
lazy="dynamic"
|
|
)
|
|
maintenance = relationship(
|
|
"nmreport",
|
|
backref="pelement",
|
|
cascade="save-update, delete",
|
|
lazy="dynamic"
|
|
)
|
|
|
|
def to_dict(self):
|
|
result = BaseModel.to_dict(self)
|
|
|
|
if (result['hostname'] is None):
|
|
result['hostname'] = result['hostname']
|
|
|
|
return result
|