304 lines
9.8 KiB
Python
304 lines
9.8 KiB
Python
# Copyright 2013 IBM Corp.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
#
|
|
# Copyright (c) 2013-2021 Wind River Systems, Inc.
|
|
#
|
|
|
|
|
|
import functools
|
|
|
|
from sysinv.objects import address
|
|
from sysinv.objects import address_mode
|
|
from sysinv.objects import address_pool
|
|
from sysinv.objects import ceph_mon
|
|
from sysinv.objects import certificate
|
|
from sysinv.objects import cluster
|
|
from sysinv.objects import controller_fs
|
|
from sysinv.objects import cpu
|
|
from sysinv.objects import datanetwork
|
|
from sysinv.objects import device_image
|
|
from sysinv.objects import device_image_label
|
|
from sysinv.objects import device_image_state
|
|
from sysinv.objects import device_label
|
|
from sysinv.objects import disk
|
|
from sysinv.objects import fpga_device
|
|
from sysinv.objects import partition
|
|
from sysinv.objects import dns
|
|
from sysinv.objects import drbdconfig
|
|
from sysinv.objects import port_ethernet
|
|
from sysinv.objects import helm_overrides
|
|
from sysinv.objects import host
|
|
from sysinv.objects import host_upgrade
|
|
from sysinv.objects import kube_app
|
|
from sysinv.objects import kube_app_releases
|
|
from sysinv.objects import kube_host_upgrade
|
|
from sysinv.objects import kube_upgrade
|
|
from sysinv.objects import kube_version
|
|
from sysinv.objects import kube_cmd_version
|
|
from sysinv.objects import interface
|
|
from sysinv.objects import interface_ae
|
|
from sysinv.objects import interface_ethernet
|
|
from sysinv.objects import interface_datanetwork
|
|
from sysinv.objects import interface_network
|
|
from sysinv.objects import interface_vf
|
|
from sysinv.objects import interface_virtual
|
|
from sysinv.objects import interface_vlan
|
|
from sysinv.objects import journal
|
|
from sysinv.objects import label
|
|
from sysinv.objects import lldp_agent
|
|
from sysinv.objects import lldp_neighbour
|
|
from sysinv.objects import lldp_tlv
|
|
from sysinv.objects import load
|
|
from sysinv.objects import lvg
|
|
from sysinv.objects import memory
|
|
from sysinv.objects import network
|
|
from sysinv.objects import network_oam
|
|
from sysinv.objects import node
|
|
from sysinv.objects import ntp
|
|
from sysinv.objects import pci_device
|
|
from sysinv.objects import peer
|
|
from sysinv.objects import port
|
|
from sysinv.objects import ptp
|
|
from sysinv.objects import ptp_instance
|
|
from sysinv.objects import ptp_interface
|
|
from sysinv.objects import ptp_parameter
|
|
from sysinv.objects import pv
|
|
from sysinv.objects import remote_logging
|
|
from sysinv.objects import route
|
|
from sysinv.objects import sdn_controller
|
|
from sysinv.objects import sensor
|
|
from sysinv.objects import sensor_analog
|
|
from sysinv.objects import sensor_discrete
|
|
from sysinv.objects import sensorgroup
|
|
from sysinv.objects import sensorgroup_analog
|
|
from sysinv.objects import sensorgroup_discrete
|
|
from sysinv.objects import service_parameter
|
|
from sysinv.objects import software_upgrade
|
|
from sysinv.objects import storage
|
|
from sysinv.objects import storage_backend
|
|
from sysinv.objects import storage_ceph
|
|
from sysinv.objects import storage_lvm
|
|
from sysinv.objects import system
|
|
from sysinv.objects import user
|
|
from sysinv.objects import service
|
|
from sysinv.objects import tpmconfig
|
|
from sysinv.objects import tpmdevice
|
|
from sysinv.objects import storage_file
|
|
from sysinv.objects import storage_external
|
|
from sysinv.objects import storage_tier
|
|
from sysinv.objects import storage_ceph_external
|
|
from sysinv.objects import storage_ceph_rook
|
|
from sysinv.objects import host_fs
|
|
from sysinv.objects import restore
|
|
from sysinv.objects import kube_rootca_update
|
|
from sysinv.objects import kube_rootca_host_update
|
|
|
|
|
|
def objectify(klass):
|
|
"""Decorator to convert database results into specified objects.
|
|
:param klass: database results class
|
|
"""
|
|
|
|
def the_decorator(fn):
|
|
@functools.wraps(fn)
|
|
def wrapper(*args, **kwargs):
|
|
result = fn(*args, **kwargs)
|
|
try:
|
|
return klass.from_db_object(result)
|
|
except TypeError:
|
|
# TODO(deva): handle lists of objects better
|
|
# once support for those lands and is imported.
|
|
return [klass.from_db_object(obj) for obj in result]
|
|
|
|
return wrapper
|
|
|
|
return the_decorator
|
|
|
|
|
|
# alias objects for RPC compatibility
|
|
ihost = host.ihost
|
|
ilvg = lvg.LVG
|
|
|
|
system = system.System
|
|
cluster = cluster.Cluster
|
|
peer = peer.Peer
|
|
host = host.Host
|
|
node = node.Node
|
|
cpu = cpu.CPU
|
|
memory = memory.Memory
|
|
interface = interface.Interface
|
|
ethernet_interface = interface_ethernet.EthernetInterface
|
|
ae_interface = interface_ae.AEInterface
|
|
virtual_interface = interface_virtual.VirtualInterface
|
|
vlan_interface = interface_vlan.VLANInterface
|
|
sriov_vf_interface = interface_vf.SriovVFInterface
|
|
interface_network = interface_network.InterfaceNetwork
|
|
interface_datanetwork = interface_datanetwork.InterfaceDataNetwork
|
|
port = port.Port
|
|
ethernet_port = port_ethernet.EthernetPort
|
|
disk = disk.Disk
|
|
partition = partition.Partition
|
|
storage = storage.Storage
|
|
journal = journal.Journal
|
|
lvg = lvg.LVG
|
|
pv = pv.PV
|
|
user = user.User
|
|
dns = dns.DNS
|
|
ntp = ntp.NTP
|
|
ptp = ptp.PTP
|
|
ptp_instance = ptp_instance.PtpInstance
|
|
ptp_interface = ptp_interface.PtpInterface
|
|
ptp_parameter = ptp_parameter.PtpParameter
|
|
oam_network = network_oam.OAMNetwork
|
|
storage_backend = storage_backend.StorageBackend
|
|
storage_ceph = storage_ceph.StorageCeph
|
|
storage_lvm = storage_lvm.StorageLVM
|
|
ceph_mon = ceph_mon.CephMon
|
|
controller_fs = controller_fs.ControllerFS
|
|
drbdconfig = drbdconfig.DRBDConfig
|
|
address = address.Address
|
|
address_pool = address_pool.AddressPool
|
|
route = route.Route
|
|
address_mode = address_mode.AddressMode
|
|
network = network.Network
|
|
sensor = sensor.Sensor
|
|
sensor_analog = sensor_analog.SensorAnalog
|
|
sensor_discrete = sensor_discrete.SensorDiscrete
|
|
sensorgroup = sensorgroup.SensorGroup
|
|
sensorgroup_analog = sensorgroup_analog.SensorGroupAnalog
|
|
sensorgroup_discrete = sensorgroup_discrete.SensorGroupDiscrete
|
|
load = load.Load
|
|
pci_device = pci_device.PCIDevice
|
|
software_upgrade = software_upgrade.SoftwareUpgrade
|
|
host_upgrade = host_upgrade.HostUpgrade
|
|
service_parameter = service_parameter.ServiceParameter
|
|
lldp_agent = lldp_agent.LLDPAgent
|
|
lldp_neighbour = lldp_neighbour.LLDPNeighbour
|
|
lldp_tlv = lldp_tlv.LLDPTLV
|
|
remotelogging = remote_logging.RemoteLogging
|
|
sdn_controller = sdn_controller.SDNController
|
|
service = service.Service
|
|
tpmconfig = tpmconfig.TPMConfig
|
|
tpmdevice = tpmdevice.TPMDevice
|
|
certificate = certificate.Certificate
|
|
storage_file = storage_file.StorageFile
|
|
storage_external = storage_external.StorageExternal
|
|
storage_tier = storage_tier.StorageTier
|
|
storage_ceph_external = storage_ceph_external.StorageCephExternal
|
|
storage_ceph_rook = storage_ceph_rook.StorageCephRook
|
|
helm_overrides = helm_overrides.HelmOverrides
|
|
label = label.Label
|
|
kube_app = kube_app.KubeApp
|
|
kube_app_releases = kube_app_releases.KubeAppReleases
|
|
kube_host_upgrade = kube_host_upgrade.KubeHostUpgrade
|
|
kube_upgrade = kube_upgrade.KubeUpgrade
|
|
kube_version = kube_version.KubeVersion
|
|
kube_cmd_version = kube_cmd_version.KubeCmdVersion
|
|
datanetwork = datanetwork.DataNetwork
|
|
host_fs = host_fs.HostFS
|
|
device_image = device_image.DeviceImage
|
|
device_image_label = device_image_label.DeviceImageLabel
|
|
device_image_state = device_image_state.DeviceImageState
|
|
device_label = device_label.DeviceLabel
|
|
fpga_device = fpga_device.FPGADevice
|
|
restore = restore.Restore
|
|
kube_rootca_host_update = kube_rootca_host_update.KubeRootCAHostUpdate
|
|
kube_rootca_update = kube_rootca_update.KubeRootCAUpdate
|
|
|
|
__all__ = ("system",
|
|
"cluster",
|
|
"peer",
|
|
"host",
|
|
"node",
|
|
"cpu",
|
|
"memory",
|
|
"interface",
|
|
"ethernet_interface",
|
|
"ae_interface",
|
|
"vlan_interface",
|
|
"port",
|
|
"ethernet_port",
|
|
"virtual_interface",
|
|
"disk",
|
|
"storage",
|
|
"journal",
|
|
"lvg",
|
|
"pv",
|
|
"user",
|
|
"dns",
|
|
"ntp",
|
|
"ptp",
|
|
"ptp_instance",
|
|
"ptp_interface",
|
|
"ptp_parameter",
|
|
"oam_network",
|
|
"storage_backend",
|
|
"storage_ceph",
|
|
"storage_lvm",
|
|
"ceph_mon",
|
|
"drbdconfig",
|
|
"address",
|
|
"address_mode",
|
|
"route",
|
|
"sensor",
|
|
"sensor_analog",
|
|
"sensor_discrete",
|
|
"sensorgroup",
|
|
"sensorgroup_analog",
|
|
"sensorgroup_discrete",
|
|
"load",
|
|
"pci_device",
|
|
"software_upgrade",
|
|
"host_upgrade",
|
|
"network",
|
|
"interface_network",
|
|
"service_parameter",
|
|
"label",
|
|
"lldp_agent",
|
|
"lldp_neighbour",
|
|
"lldp_tlv",
|
|
"remotelogging",
|
|
"sdn_controller",
|
|
"service",
|
|
"tpmconfig",
|
|
"tpmdevice",
|
|
"certificate",
|
|
"objectify",
|
|
"storage_file",
|
|
"storage_external",
|
|
"storage_ceph_rook",
|
|
"storage_tier",
|
|
"storage_ceph_external",
|
|
"helm_overrides",
|
|
"kube_app",
|
|
"kube_app_releases",
|
|
"kube_host_upgrade",
|
|
"kube_upgrade",
|
|
"kube_version",
|
|
"kube_cmd_version",
|
|
"datanetwork",
|
|
"interface_network",
|
|
"host_fs",
|
|
"device_image",
|
|
"device_image_label",
|
|
"device_label",
|
|
"fpga_device",
|
|
"restore",
|
|
"kube_rootca_host_update",
|
|
"kube_rootca_update",
|
|
# alias objects for RPC compatibility
|
|
"ihost",
|
|
"ilvg",
|
|
"objectify")
|