Kevin_Zheng 70fc4850d0 fix tox
Change-Id: I3f77424c3d41fb21b9d562ee1bb82ea0e869b773
2016-02-04 14:21:40 +08:00

193 lines
5.0 KiB
Python

# Copyright (c) 2015 Huawei Technologies Co., Ltd.
# All Rights Reserved.
#
# 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.
"""
Defines interface for DB access.
"""
from oslo_config import cfg
from oslo_db import concurrency as db_concurrency
CONF = cfg.CONF
_BACKEND_MAPPING = {'sqlalchemy': 'terracotta.db.sqlalchemy.api'}
IMPL = db_concurrency.TpoolDbapiWrapper(CONF, backend_mapping=_BACKEND_MAPPING)
def select_cpu_mhz_for_vm(uuid, limit):
"""Select n last values of CPU MHz for a VM UUID.
:param uuid: The UUID of a VM.
:param limit: The number of last values to select.
:return: The list of n last CPU Mhz values.
"""
return IMPL.select_cpu_mhz_for_vm(uuid, limit)
def select_last_cpu_mhz_for_vms():
"""Select the last value of CPU MHz for all the VMs.
:return: A dict of VM UUIDs to the last CPU MHz values.
"""
return IMPL.select_last_cpu_mhz_for_vms()
def select_vm_id(uuid):
"""Select the ID of a VM by the VM UUID, or insert a new record.
:param uuid: The UUID of a VM.
:return: The ID of the VM.
"""
return IMPL.select_vm_id(uuid)
def insert_vm_cpu_mhz(data):
"""Insert a set of CPU MHz values for a set of VMs.
:param data: A dictionary of VM UUIDs and CPU MHz values.
"""
return IMPL.insert_vm_cpu_mhz()
def update_host(hostname, cpu_mhz, cpu_cores, ram):
"""Insert new or update the corresponding host record.
:param hostname: A host name.
:param cpu_mhz: The total CPU frequency of the host in MHz.
:param cpu_cores: The number of physical CPU cores.
:param ram: The total amount of RAM of the host in MB.
:return: The ID of the host.
"""
return update_host(hostname, cpu_mhz, cpu_cores, ram)
def insert_host_cpu_mhz(hostname, cpu_mhz):
"""Insert a CPU MHz value for a host.
:param hostname: A host name.
:param cpu_mhz: The CPU usage of the host in MHz.
"""
return IMPL.insert_host_cpu_mhz(hostname, cpu_mhz)
def select_cpu_mhz_for_host(hostname, limit):
"""Select n last values of CPU MHz for a host.
:param hostname: A host name.
:param limit: The number of last values to select.
:return: The list of n last CPU Mhz values.
"""
return IMPL.select_cpu_mhz_for_host(hostname, limit)
def select_last_cpu_mhz_for_hosts():
"""Select the last value of CPU MHz for all the hosts.
:return: A dict of host names to the last CPU MHz values.
"""
return IMPL.select_last_cpu_mhz_for_hosts()
def select_host_characteristics(self):
"""Select the characteristics of all the hosts.
:return: Three dicts of hostnames to CPU MHz, cores, and RAM.
"""
return IMPL.select_host_characteristics()
def select_host_id(hostname):
"""Select the ID of a host.
:param hostname: A host name.
:return: The ID of the host.
"""
return IMPL.select_host_id(hostname)
def select_host_ids():
"""Select the IDs of all the hosts.
:return: A dict of host names to IDs.
"""
return IMPL.select_host_ids()
def cleanup_vm_resource_usage(datetime_threshold):
"""Delete VM resource usage data older than the threshold.
:param datetime_threshold: A datetime threshold.
"""
IMPL.cleanup_vm_resource_usage(datetime_threshold)
def cleanup_host_resource_usage(sdatetime_threshold):
"""Delete host resource usage data older than the threshold.
:param datetime_threshold: A datetime threshold.
"""
IMPL.cleanup_host_resource_usage()
def insert_host_states(hosts):
"""Insert host states for a set of hosts.
:param hosts: A dict of hostnames to states (0, 1).
"""
IMPL.insert_host_states(hosts)
def select_host_states():
"""Select the current states of all the hosts.
:return: A dict of host names to states.
"""
return IMPL.select_host_states()
def select_active_hosts():
"""Select the currently active hosts.
:return: A list of host names.
"""
return IMPL.select_active_hosts()
def select_inactive_hosts():
"""Select the currently inactive hosts.
:return: A list of host names.
"""
return IMPL.select_inactive_hosts()
def insert_host_overload(hostname, overload):
"""Insert whether a host is overloaded.
:param hostname: A host name.
:param overload: Whether the host is overloaded.
"""
IMPL.insert_host_overload(hostname, overload)
def insert_vm_migration(vm, hostname):
"""Insert a VM migration.
:param hostname: A VM UUID.
:param hostname: A host name.
"""
IMPL.insert_vm_migration(vm, hostname)