60 lines
2.2 KiB
Python
60 lines
2.2 KiB
Python
import logging
|
|
|
|
from flask import Flask
|
|
from safrs import SAFRSAPI
|
|
|
|
from models.common.core.contour import contour as mcc_Contour
|
|
from models.common.core.environment import environment as mcc_Environment
|
|
from models.common.core.timestamps import timestamp as mcc_Timestamp
|
|
|
|
from models.vmware.core.vcenter import vcenter as mvc_vCenter
|
|
from models.vmware.core.cluster import cluster as mvc_Cluster
|
|
from models.vmware.reports.capacity.frame import frame as mvrc_Frame
|
|
from models.vmware.reports.capacity.report import capacity as mvrc_Report
|
|
from models.vmware.reports.mmhosts.report import maintenance as mvrm_Report
|
|
from models.vmware.reports.datastores.report import datastore as mvrd_Report # noqa
|
|
from models.vmware.reports.sharedNetworks.report import sharedNetwork as mvrsn_Report # noqa
|
|
|
|
from models.nutanix.core.pelement import pelement as mnc_Cluster
|
|
from models.nutanix.core.pcentral import pcentral as mnc_Central
|
|
from models.nutanix.reports.prismElement.report import npereport as mnrpe_Report # noqa
|
|
from models.nutanix.reports.prismCentral.report import npcreport as mnrpc_Report # noqa
|
|
from models.nutanix.reports.mmhosts.report import nmreport as mnrm_Report
|
|
from models.nutanix.reports.utilization.report import nureport as mnru_Report # noqa
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
def create_api(
|
|
app: Flask,
|
|
host: str,
|
|
port: str,
|
|
api_prefix: str,
|
|
custom_swagger: dict = {}
|
|
) -> None:
|
|
api = SAFRSAPI(
|
|
app,
|
|
host=host,
|
|
schemes=["http", "https"],
|
|
port=port,
|
|
prefix=api_prefix,
|
|
custom_swagger=custom_swagger
|
|
)
|
|
|
|
for model in [mcc_Contour, mcc_Environment, mcc_Timestamp]:
|
|
api.expose_object(model, url_prefix="/common")
|
|
|
|
for model in [mvc_vCenter, mvc_Cluster]:
|
|
api.expose_object(model, url_prefix="/vmware")
|
|
|
|
for model in [mvrc_Report, mvrm_Report, mvrd_Report, mvrsn_Report]:
|
|
api.expose_object(model, url_prefix="/vmware/report")
|
|
|
|
api.expose_object(mvrc_Frame, url_prefix="/vmware/report/capacity")
|
|
|
|
for model in [mnc_Cluster, mnc_Central]:
|
|
api.expose_object(model, url_prefix="/nutanix")
|
|
|
|
for model in [mnrpe_Report, mnrpc_Report, mnrm_Report, mnru_Report]:
|
|
api.expose_object(model, url_prefix="/nutanix/report")
|