config/sysinv/sysinv/sysinv/sysinv/objects/__init__.py

252 lines
7.6 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-2018 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 alarm
from sysinv.objects import ceph_mon
from sysinv.objects import certificate
from sysinv.objects import cluster
from sysinv.objects import community
from sysinv.objects import controller_fs
from sysinv.objects import cpu
from sysinv.objects import disk
from sysinv.objects import firewallrules
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 event_log
from sysinv.objects import event_suppression
from sysinv.objects import host
from sysinv.objects import host_upgrade
from sysinv.objects import network_infra
from sysinv.objects import interface
from sysinv.objects import interface_ae
from sysinv.objects import interface_ethernet
from sysinv.objects import interface_virtual
from sysinv.objects import interface_vlan
from sysinv.objects import journal
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 node
from sysinv.objects import ntp
from sysinv.objects import network_oam
from sysinv.objects import pci_device
from sysinv.objects import peer
from sysinv.objects import port
from sysinv.objects import profile
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 trapdest
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
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
profile = profile.Profile
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
port = port.Port
ethernet_port = port_ethernet.EthernetPort
disk = disk.Disk
partition = partition.Partition
firewallrules = firewallrules.FirewallRules
storage = storage.Storage
journal = journal.Journal
lvg = lvg.LVG
pv = pv.PV
trapdest = trapdest.TrapDest
community = community.Community
alarm = alarm.Alarm
user = user.User
dns = dns.DNS
ntp = ntp.NTP
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
event_log = event_log.EventLog
event_suppression = event_suppression.EventSuppression
infra_network = network_infra.InfraNetwork
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
__all__ = (system,
cluster,
peer,
host,
profile,
node,
cpu,
memory,
interface,
ethernet_interface,
ae_interface,
vlan_interface,
port,
ethernet_port,
virtual_interface,
disk,
storage,
journal,
lvg,
pv,
trapdest,
community,
alarm,
user,
dns,
ntp,
oam_network,
storage_backend,
storage_ceph,
storage_lvm,
ceph_mon,
drbdconfig,
event_log,
event_suppression,
infra_network,
address,
address_mode,
route,
sensor,
sensor_analog,
sensor_discrete,
sensorgroup,
sensorgroup_analog,
sensorgroup_discrete,
load,
pci_device,
software_upgrade,
host_upgrade,
network,
service_parameter,
lldp_agent,
lldp_neighbour,
lldp_tlv,
remotelogging,
sdn_controller,
service,
tpmconfig,
tpmdevice,
certificate,
firewallrules,
objectify,
storage_file,
storage_external,
storage_tier,
storage_ceph_external,
# alias objects for RPC compatibility
ihost,
ilvg,
objectify)