Initial Commit

This commit is contained in:
2023-09-08 19:05:37 +03:00
commit 7e60195cb7
185 changed files with 27107 additions and 0 deletions

View File

View File

View File

@@ -0,0 +1,40 @@
from sqlalchemy import (
Column,
String,
Integer,
ForeignKey
)
from sqlalchemy.orm import relationship
from models.common.base import BaseModel
class pcentral(BaseModel):
"""
description: Nutanix prism central model
"""
__tablename__ = "tnc_pcentrals"
_s_collection_name = "pcentrals"
_s_class_name = "pcentral"
id = Column(Integer, primary_key=True, autoincrement=True, index=True)
name = Column(String(32), unique=True, index=True, nullable=False)
hostname = Column(String(64), unique=True, index=True, nullable=True)
ncc_version = Column(String(16), index=True, nullable=False)
aos_version = Column(String(16), index=True, nullable=False)
contour_id = Column(Integer, ForeignKey("tcc_contours.id"))
contour = relationship("contour", back_populates="pcentral")
npcreport = relationship(
"npcreport",
backref="pcentral",
cascade="save-update, delete",
lazy="dynamic"
)
pelement = relationship(
"pelement",
backref="pcentral",
cascade="save-update, delete",
lazy="dynamic"
)

View File

@@ -0,0 +1,52 @@
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

View File

@@ -0,0 +1,37 @@
from datetime import datetime
from sqlalchemy import (
Column,
String,
Integer,
DateTime,
ForeignKey
)
from models.common.base import BaseModel
class nmreport(BaseModel):
"""
description: Nutanix hosts in maintenance mode report
"""
__tablename__ = "tnrm_report"
_s_collection_name = "nmreport"
_s_class_name = "nmreport"
id = Column(Integer, primary_key=True, autoincrement=True, index=True)
ip = Column(String(15), unique=True, nullable=False)
ipmi = Column(String(15), unique=True, nullable=False)
hypervisor_name = Column(String(64), unique=True, nullable=False)
hypervisor_type = Column(String(32), index=True)
hypervisor_state = Column(String(64), index=True)
serial = Column(String(32), unique=True, nullable=False)
reason = Column(String(255), nullable=True)
date = Column(DateTime, default=datetime.utcnow)
pelement_id = Column(
Integer,
ForeignKey("tnc_pelement.id"),
nullable=False,
index=True
)

View File

@@ -0,0 +1,34 @@
from sqlalchemy import (
Column,
Integer,
ForeignKey
)
from models.common.base import BaseModel
class npcreport(BaseModel):
"""
description: Nutanix prism central report model
"""
__tablename__ = "tnrpc_report"
_s_collection_name = "npcreport"
_s_class_name = "prismCentral"
id = Column(Integer, primary_key=True, autoincrement=True, index=True)
vms_total = Column(Integer, nullable=False)
cert_status = Column(Integer, nullable=False)
aos_status = Column(Integer, nullable=False)
projects_total = Column(Integer, nullable=False)
alerts_crit_ack = Column(Integer, nullable=False)
alerts_crit_nack = Column(Integer, nullable=False)
alerts_warn_ack = Column(Integer, nullable=False)
alerts_warn_nack = Column(Integer, nullable=False)
pcentral_id = Column(
Integer,
ForeignKey("tnc_pcentrals.id"),
nullable=False,
index=True
)

View File

@@ -0,0 +1,49 @@
from sqlalchemy import (
Column,
String,
Integer,
ForeignKey
)
from sqlalchemy.orm import relationship
from models.common.base import BaseModel
class npereport(BaseModel):
"""
description: Nutanix prism element report model
"""
__tablename__ = "tnrpe_report"
_s_collection_name = "npereport"
_s_class_name = "prismElement"
id = Column(Integer, primary_key=True, autoincrement=True, index=True)
vms_total = Column(Integer, nullable=False)
cert_status = Column(Integer, nullable=False)
aos_status = Column(Integer, nullable=False)
storage_dedup = Column(Integer, nullable=False)
hosts_total = Column(Integer, nullable=False)
hosts_in_maintenance = Column(Integer, nullable=False)
storage_usage = Column(Integer, nullable=False)
cpu_usage = Column(Integer, nullable=False)
mem_usage = Column(Integer, nullable=False)
hypervisor = Column(String(32), nullable=True)
hypervisor_version = Column(String(32), nullable=True)
alerts_crit_ack = Column(Integer, nullable=False)
alerts_crit_nack = Column(Integer, nullable=False)
alerts_warn_ack = Column(Integer, nullable=False)
alerts_warn_nack = Column(Integer, nullable=False)
redundancy_factor = Column(Integer, nullable=False)
pelement_id = Column(
Integer,
ForeignKey("tnc_pelement.id"),
nullable=False,
index=True
)
decomission = relationship(
"nureport",
backref="npereport",
cascade="save-update, delete",
lazy="dynamic"
)

View File

@@ -0,0 +1,31 @@
from sqlalchemy import (
Column,
Integer,
Float,
ForeignKey
)
from models.common.base import BaseModel
class nureport(BaseModel):
"""
description: Nutanix utilization report
"""
__tablename__ = "tnru_report"
_s_collection_name = "nureport"
_s_class_name = "utilization"
id = Column(Integer, primary_key=True, autoincrement=True, index=True)
cpu_avg = Column(Float, nullable=False)
cpu_peak = Column(Float, nullable=False)
mem_avg = Column(Float, nullable=False)
mem_peak = Column(Float, nullable=False)
storage = Column(Float, nullable=False)
pelement_id = Column(
Integer,
ForeignKey("tnrpe_report.id"),
nullable=False,
index=True
)