# 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)