Initial Commit
This commit is contained in:
0
api/app/models/nutanix/__init__.py
Normal file
0
api/app/models/nutanix/__init__.py
Normal file
0
api/app/models/nutanix/core/__init__.py
Normal file
0
api/app/models/nutanix/core/__init__.py
Normal file
40
api/app/models/nutanix/core/pcentral.py
Normal file
40
api/app/models/nutanix/core/pcentral.py
Normal 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"
|
||||
)
|
||||
52
api/app/models/nutanix/core/pelement.py
Normal file
52
api/app/models/nutanix/core/pelement.py
Normal 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
|
||||
0
api/app/models/nutanix/reports/__init__.py
Normal file
0
api/app/models/nutanix/reports/__init__.py
Normal file
0
api/app/models/nutanix/reports/mmhosts/__init__.py
Normal file
0
api/app/models/nutanix/reports/mmhosts/__init__.py
Normal file
37
api/app/models/nutanix/reports/mmhosts/report.py
Normal file
37
api/app/models/nutanix/reports/mmhosts/report.py
Normal 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
|
||||
)
|
||||
34
api/app/models/nutanix/reports/prismCentral/report.py
Normal file
34
api/app/models/nutanix/reports/prismCentral/report.py
Normal 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
|
||||
)
|
||||
49
api/app/models/nutanix/reports/prismElement/report.py
Normal file
49
api/app/models/nutanix/reports/prismElement/report.py
Normal 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"
|
||||
)
|
||||
31
api/app/models/nutanix/reports/utilization/report.py
Normal file
31
api/app/models/nutanix/reports/utilization/report.py
Normal 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
|
||||
)
|
||||
Reference in New Issue
Block a user