zun/zun/db/api.py

1261 lines
40 KiB
Python

# Copyright 2013 Hewlett-Packard Development Company, L.P.
#
# 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.
"""
Base API for Database
"""
from oslo_db import api as db_api
from zun.common import profiler
import zun.conf
"""Add the database backend mapping here"""
CONF = zun.conf.CONF
_BACKEND_MAPPING = {'sqlalchemy': 'zun.db.sqlalchemy.api',
'etcd': 'zun.db.etcd.api'}
IMPL = db_api.DBAPI.from_config(CONF,
backend_mapping=_BACKEND_MAPPING,
lazy=True)
@profiler.trace("db")
def _get_dbdriver_instance():
"""Return a DB API instance."""
return IMPL
@profiler.trace("db")
def list_containers(context, filters=None, limit=None, marker=None,
sort_key=None, sort_dir=None):
"""List matching containers.
Return a list of the specified columns for all containers that match
the specified filters.
:param context: The security context
:param filters: Filters to apply. Defaults to None.
:param limit: Maximum number of containers to return.
:param marker: the last item of the previous page; we return the next
result set.
:param sort_key: Attribute by which results should be sorted.
:param sort_dir: Direction in which results should be sorted.
(asc, desc)
:returns: A list of tuples of the specified columns.
"""
return _get_dbdriver_instance().list_containers(
context, filters, limit, marker, sort_key, sort_dir)
@profiler.trace("db")
def create_container(context, values):
"""Create a new container.
:param context: The security context
:param values: A dict containing several items used to identify
and track the container, and several dicts which are
passed
into the Drivers when managing this container. For
example:
::
{
'uuid': uuidutils.generate_uuid(),
'name': 'example',
'type': 'virt'
}
:returns: A container.
"""
return _get_dbdriver_instance().create_container(context, values)
@profiler.trace("db")
def get_container_by_uuid(context, container_uuid):
"""Return a container.
:param context: The security context
:param container_uuid: The uuid of a container.
:returns: A container.
"""
return _get_dbdriver_instance().get_container_by_uuid(
context, container_uuid)
@profiler.trace("db")
def get_container_by_name(context, container_name):
"""Return a container.
:param context: The security context
:param container_name: The name of a container.
:returns: A container.
"""
return _get_dbdriver_instance().get_container_by_name(
context, container_name)
@profiler.trace("db")
def destroy_container(context, container_id):
"""Destroy a container and all associated interfaces.
:param context: Request context
:param container_id: The id or uuid of a container.
"""
return _get_dbdriver_instance().destroy_container(context, container_id)
@profiler.trace("db")
def update_container(context, container_id, values):
"""Update properties of a container.
:param context: Request context
:param container_id: The id or uuid of a container.
:param values: The properties to be updated
:returns: A container.
:raises: ContainerNotFound
"""
return _get_dbdriver_instance().update_container(
context, container_id, values)
@profiler.trace("db")
def list_volume_mappings(context, filters=None, limit=None, marker=None,
sort_key=None, sort_dir=None):
"""List matching volume mappings.
Return a list of the specified columns for all volume mappings that match
the specified filters.
:param context: The security context
:param filters: Filters to apply. Defaults to None.
:param limit: Maximum number of containers to return.
:param marker: the last item of the previous page; we return the next
result set.
:param sort_key: Attribute by which results should be sorted.
:param sort_dir: Direction in which results should be sorted.
(asc, desc)
:returns: A list of tuples of the specified columns.
"""
return _get_dbdriver_instance().list_volume_mappings(
context, filters, limit, marker, sort_key, sort_dir)
@profiler.trace("db")
def count_volume_mappings(context, **filters):
"""Count matching volume mappings.
Return the count of all volume mappings that match
the specified filters.
:param context: The security context
:param filters: Filters to apply.
:returns: The count of volume mapping.
"""
return _get_dbdriver_instance().count_volume_mappings(context, **filters)
@profiler.trace("db")
def create_volume_mapping(context, values):
"""Create a volume mapping.
:param context: The security context
:param values: A dict containing several items used to identify
and track the volume mapping.
:returns: A volume mapping.
"""
return _get_dbdriver_instance().create_volume_mapping(context, values)
@profiler.trace("db")
def get_volume_mapping_by_uuid(context, vm_uuid):
"""Return a volume mapping.
:param context: The security context
:param vm_uuid: The uuid of a volume mapping.
:returns: A volume mapping.
"""
return _get_dbdriver_instance().get_volume_mapping_by_uuid(
context, vm_uuid)
@profiler.trace("db")
def destroy_volume_mapping(context, vm_id):
"""Destroy a volume mapping.
:param context: Request context
:param vm_id: The id or uuid of a volume mapping.
"""
return _get_dbdriver_instance().destroy_volume_mapping(context, vm_id)
@profiler.trace("db")
def update_volume_mapping(context, vm_id, values):
"""Update properties of a volume mapping.
:param context: Request context
:param vm_id: The id or uuid of a volume mapping.
:param values: The properties to be updated
:returns: A volume mapping.
:raises: VolumeMappingNotFound
"""
return _get_dbdriver_instance().update_volume_mapping(
context, vm_id, values)
@profiler.trace("db")
def create_volume(context, values):
"""Create a volume.
:param context: The security context
:param values: A dict containing several items used to identify
and track the volume.
:returns: A volume.
"""
return _get_dbdriver_instance().create_volume(context, values)
@profiler.trace("db")
def get_volume_by_id(context, vol_id):
"""Return a volume
:param context: The security context
:param vol_id: The id of a volume.
:returns: A volume.
"""
return _get_dbdriver_instance().get_volume_by_id(
context, vol_id)
@profiler.trace("db")
def destroy_volume(context, vol_id):
"""Destroy a volume.
:param context: Request context
:param vm_id: The id or uuid of a volume.
"""
return _get_dbdriver_instance().destroy_volume(context, vol_id)
@profiler.trace("db")
def update_volume(context, vol_id, values):
"""Update properties of a volume.
:param context: Request context
:param vm_id: The id or uuid of a volume.
:param values: The properties to be updated
:returns: A volume.
:raises: VolumeNotFound
"""
return _get_dbdriver_instance().update_volume(
context, vol_id, values)
@profiler.trace("db")
def destroy_zun_service(host, binary):
"""Destroys a zun_service record.
:param host: The host on which the service resides.
:param binary: The binary file name of the service.
:returns: A zun service record.
"""
return _get_dbdriver_instance().destroy_zun_service(host, binary)
@profiler.trace("db")
def update_zun_service(host, binary, values):
"""Update properties of a zun_service.
:param host: The host on which the service resides.
:param binary: The binary file name of the service.
:param values: The attributes to be updated.
:returns: A zun service record.
"""
return _get_dbdriver_instance().update_zun_service(host, binary, values)
@profiler.trace("db")
def get_zun_service(context, host, binary):
"""Return a zun_service record.
:param context: The security context
:param host: The host where the binary is located.
:param binary: The name of the binary.
:returns: A zun_service record.
"""
return _get_dbdriver_instance().get_zun_service(host, binary)
@profiler.trace("db")
def create_zun_service(values):
"""Create a new zun_service record.
:param values: A dict containing several items used to identify
and define the zun_service record.
:returns: A zun_service record.
"""
return _get_dbdriver_instance().create_zun_service(values)
@profiler.trace("db")
def list_zun_services(context, filters=None, limit=None,
marker=None, sort_key=None, sort_dir=None):
"""Get matching zun_service records.
Return a list of the specified columns for all zun_services
those match the specified filters.
:param context: The security context
:param filters: Filters disbaled services. Defaults to None.
:param limit: Maximum number of zun_services to return.
:param marker: the last item of the previous page; we return the next
result set.
:param sort_key: Attribute by which results should be sorted.
:param sort_dir: Direction in which results should be sorted.
(asc, desc)
:returns: A list of tuples of the specified columns.
"""
return _get_dbdriver_instance().list_zun_services(
filters, limit, marker, sort_key, sort_dir)
@profiler.trace("db")
def list_zun_services_by_binary(context, binary):
"""List matching zun services.
Return a list of the specified binary.
:param context: The security context
:param binary: The name of the binary.
:returns: A list of tuples of the specified binary.
"""
return _get_dbdriver_instance().list_zun_services_by_binary(binary)
@profiler.trace("db")
def destroy_image(context, image_uuid):
"""Destroy a image"""
return _get_dbdriver_instance().destroy_image(context, image_uuid)
@profiler.trace("db")
def pull_image(context, values):
"""Create a new image.
:param context: The security context
:param values: A dict containing several items used to identify
and track the image, and several dicts which are
passed
into the Drivers when managing this image. For
example:
::
{
'uuid': uuidutils.generate_uuid(),
'repo': 'hello-world',
'tag': 'latest'
}
:returns: An image.
"""
return _get_dbdriver_instance().pull_image(context, values)
@profiler.trace("db")
def update_image(image_id, values):
"""Update properties of an image.
:param image_id: The id or uuid of an image.
:param values: The properties to be updated.
:returns: An Image.
:raises: ImageNotFound
"""
return _get_dbdriver_instance().update_image(image_id, values)
@profiler.trace("db")
def list_images(context, filters=None,
limit=None, marker=None,
sort_key=None, sort_dir=None):
"""Get matching images.
Return a list of the specified columns for all images that
match the specified filters.
:param context: The security context
:param filters: Filters to apply. Defaults to None.
:param limit: Maximum number of images to return.
:param marker: the last item of the previous page; we
return the next
:param sort_key: Attribute by which results should be sorted.
:param sort_dir: Direction in which results should be sorted.
(asc, desc)
:returns: A list of tuples of the specified columns.
"""
return _get_dbdriver_instance().list_images(
context, filters, limit, marker, sort_key, sort_dir)
@profiler.trace("db")
def get_image_by_id(context, image_id):
"""Return an image.
:param context: The security context
:param image_id: The id of an image.
:returns: An image.
"""
return _get_dbdriver_instance().get_image_by_id(context, image_id)
@profiler.trace("db")
def get_image_by_uuid(context, image_uuid):
"""Return an image.
:param context: The security context
:param image_uuid: The uuid of an image.
:returns: An image.
"""
return _get_dbdriver_instance().get_image_by_uuid(context, image_uuid)
@profiler.trace("db")
def list_resource_providers(context, filters=None, limit=None, marker=None,
sort_key=None, sort_dir=None):
"""Get matching resource providers.
Return a list of the specified columns for all resource providers that
match the specified filters.
:param context: The security context
:param filters: Filters to apply. Defaults to None.
:param limit: Maximum number of resource providers to return.
:param marker: the last item of the previous page; we
return the next
:param sort_key: Attribute by which results should be sorted.
(asc, desc)
:param sort_dir: Direction in which results should be sorted.
(asc, desc)
:returns: A list of tuples of the specified columns.
"""
return _get_dbdriver_instance().list_resource_providers(
context, filters, limit, marker, sort_key, sort_dir)
@profiler.trace("db")
def create_resource_provider(context, values):
"""Create a new resource provider.
:param context: The security context
:param values: A dict containing several items used to identify and
track the resource provider, and several dicts which are
passed into the Drivers when managing this resource
provider.
:returns: A resource provider.
"""
return _get_dbdriver_instance().create_resource_provider(context, values)
@profiler.trace("db")
def get_resource_provider(context, provider_ident):
"""Return a resource provider.
:param context: The security context
:param provider_ident: The uuid or name of a resource provider.
:returns: A resource provider.
"""
return _get_dbdriver_instance().get_resource_provider(
context, provider_ident)
@profiler.trace("db")
def destroy_resource_provider(context, provider_id):
"""Destroy a resource provider and all associated interfaces.
:param context: Request context
:param provider_id: The id or uuid of a resource provider.
"""
return _get_dbdriver_instance().destroy_resource_provider(
context, provider_id)
@profiler.trace("db")
def update_resource_provider(context, provider_id, values):
"""Update properties of a resource provider.
:param context: Request context
:param provider_id: The id or uuid of a resource provider.
:param values: The properties to be updated
:returns: A resource provider.
:raises: ResourceProviderNotFound
"""
return _get_dbdriver_instance().update_resource_provider(
context, provider_id, values)
@profiler.trace("db")
def list_resource_classes(context, limit=None, marker=None, sort_key=None,
sort_dir=None):
"""Get matching resource classes.
Return a list of the specified columns for all resource classes.
:param context: The security context
:param limit: Maximum number of resource classes to return.
:param marker: the last item of the previous page; we
return the next
:param sort_key: Attribute by which results should be sorted.
:param sort_dir: Direction in which results should be sorted.
(asc, desc)
:returns: A list of tuples of the specified columns.
"""
return _get_dbdriver_instance().list_resource_classes(
context, limit, marker, sort_key, sort_dir)
@profiler.trace("db")
def create_resource_class(context, values):
"""Create a new resource class.
:param context: The security context
:param values: A dict containing several items used to identify
and track the resource class, and several dicts which are
passed into the Drivers when managing this resource class.
:returns: A resource class.
"""
return _get_dbdriver_instance().create_resource_class(context, values)
@profiler.trace("db")
def get_resource_class(context, resource_ident):
"""Return a resource class.
:param context: The security context
:param resource_ident: The uuid or name of a resource class.
:returns: A resource class.
"""
return _get_dbdriver_instance().get_resource_class(
context, resource_ident)
@profiler.trace("db")
def destroy_resource_class(context, resource_uuid):
"""Destroy a resource class and all associated interfaces.
:param context: Request context
:param resource_uuid: The uuid of a resource class.
"""
return _get_dbdriver_instance().destroy_resource_class(
context, resource_uuid)
@profiler.trace("db")
def update_resource_class(context, resource_uuid, values):
"""Update properties of a resource class.
:param context: Request context
:param resource_uuid: The uuid of a resource class.
:param values: The properties to be updated
:returns: A resource class.
:raises: ResourceClassNotFound
"""
return _get_dbdriver_instance().update_resource_class(
context, resource_uuid, values)
@profiler.trace("db")
def list_inventories(context, filters=None, limit=None, marker=None,
sort_key=None, sort_dir=None):
"""List matching inventories.
Return a list of the specified columns for all inventories that match
the specified filters.
:param context: The security context
:param filters: Filters to apply. Defaults to None.
:param limit: Maximum number of inventories to return.
:param marker: the last item of the previous page; we return the next
result set.
:param sort_key: Attribute by which results should be sorted.
:param sort_dir: Direction in which results should be sorted.
(asc, desc)
:returns: A list of tuples of the specified columns.
"""
return _get_dbdriver_instance().list_inventories(
context, filters, limit, marker, sort_key, sort_dir)
@profiler.trace("db")
def create_inventory(context, provider_id, values):
"""Create a new inventory.
:param context: The security context
:param provider_id: The id of a resource provider.
:param values: A dict containing several items used to identify
and track the inventory, and several dicts which are
passed into the Drivers when managing this inventory.
:returns: An inventory.
"""
return _get_dbdriver_instance().create_inventory(
context, provider_id, values)
@profiler.trace("db")
def get_inventory(context, inventory_ident):
"""Return a inventory.
:param context: The security context
:param inventory_ident: The id or name of an inventory.
:returns: An inventory.
"""
return _get_dbdriver_instance().get_inventory(
context, inventory_ident)
@profiler.trace("db")
def destroy_inventory(context, inventory_id):
"""Destroy an inventory and all associated interfaces.
:param context: Request context
:param inventory_id: The id of a inventory.
"""
return _get_dbdriver_instance().destroy_inventory(context, inventory_id)
@profiler.trace("db")
def update_inventory(context, inventory_id, values):
"""Update properties of an inventory.
:param context: Request context
:param inventory_id: The id of an inventory.
:param values: The properties to be updated
:returns: An inventory.
:raises: InventoryNotFound
"""
return _get_dbdriver_instance().update_inventory(
context, inventory_id, values)
@profiler.trace("db")
def list_allocations(context, filters=None, limit=None, marker=None,
sort_key=None, sort_dir=None):
"""List matching allocations.
Return a list of the specified columns for all allocations that match
the specified filters.
:param context: The security context
:param filters: Filters to apply. Defaults to None.
:param limit: Maximum number of allocations to return.
:param marker: the last item of the previous page; we return the next
result set.
:param sort_key: Attribute by which results should be sorted.
:param sort_dir: Direction in which results should be sorted.
(asc, desc)
:returns: A list of tuples of the specified columns.
"""
return _get_dbdriver_instance().list_allocations(
context, filters, limit, marker, sort_key, sort_dir)
@profiler.trace("db")
def create_allocation(context, values):
"""Create a new allocation.
:param context: The security context
:param values: A dict containing several items used to identify
and track the allocation, and several dicts which are
passed into the Drivers when managing this allocation.
:returns: An allocation.
"""
return _get_dbdriver_instance().create_allocation(context, values)
@profiler.trace("db")
def get_allocation(context, allocation_id):
"""Return an allocation.
:param context: The security context
:param allocation_id: The id of an allocation.
:returns: An allocation.
"""
return _get_dbdriver_instance().get_allocation(context, allocation_id)
@profiler.trace("db")
def destroy_allocation(context, allocation_id):
"""Destroy an allocation and all associated interfaces.
:param context: Request context
:param allocation_id: The id of an allocation.
"""
return _get_dbdriver_instance().destroy_allocation(context, allocation_id)
@profiler.trace("db")
def update_allocation(context, allocation_id, values):
"""Update properties of an allocation.
:param context: Request context
:param allocation_id: The id of an allocation.
:param values: The properties to be updated
:returns: An allocation.
:raises: AllocationNotFound
"""
return _get_dbdriver_instance().update_allocation(
context, allocation_id, values)
@profiler.trace("db")
def list_compute_nodes(context, filters=None, limit=None, marker=None,
sort_key=None, sort_dir=None):
"""List matching compute nodes.
Return a list of the specified columns for all compute nodes that match
the specified filters.
:param context: The security context
:param filters: Filters to apply. Defaults to None.
:param limit: Maximum number of compute nodes to return.
:param marker: the last item of the previous page; we return the next
result set.
:param sort_key: Attribute by which results should be sorted.
:param sort_dir: Direction in which results should be sorted.
(asc, desc)
:returns: A list of tuples of the specified columns.
"""
return _get_dbdriver_instance().list_compute_nodes(
context, filters, limit, marker, sort_key, sort_dir)
@profiler.trace("db")
def create_compute_node(context, values):
"""Create a new compute node.
:param context: The security context
:param values: A dict containing several items used to identify
and track the compute node, and several dicts which are
passed into the Drivers when managing this compute node.
:returns: A compute node.
"""
return _get_dbdriver_instance().create_compute_node(context, values)
@profiler.trace("db")
def get_compute_node(context, node_uuid):
"""Return a compute node.
:param context: The security context
:param node_uuid: The uuid of a compute node.
:returns: A compute node.
"""
return _get_dbdriver_instance().get_compute_node(context, node_uuid)
@profiler.trace("db")
def get_compute_node_by_hostname(context, hostname):
"""Return a compute node.
:param context: The security context
:param hostname: The hostname of a compute node.
:returns: A compute node.
"""
return _get_dbdriver_instance().get_compute_node_by_hostname(
context, hostname)
@profiler.trace("db")
def destroy_compute_node(context, node_uuid):
"""Destroy a compute node and all associated interfaces.
:param context: Request context
:param node_uuid: The uuid of a compute node.
"""
return _get_dbdriver_instance().destroy_compute_node(context, node_uuid)
@profiler.trace("db")
def update_compute_node(context, node_uuid, values):
"""Update properties of a compute node.
:param context: Request context
:param node_uuid: The uuid of a compute node.
:param values: The properties to be updated
:returns: A compute node.
:raises: ComputeNodeNotFound
"""
return _get_dbdriver_instance().update_compute_node(
context, node_uuid, values)
@profiler.trace("db")
def list_capsules(context, filters=None, limit=None, marker=None,
sort_key=None, sort_dir=None):
"""List matching capsules.
Return a list of the specified columns for all capsules that match
the specified filters.
:param context: The security context
:param filters: Filters to apply. Defaults to None.
:param limit: Maximum number of capsules to return.
:param marker: the last item of the previous page; we return the next
result set.
:param sort_key: Attribute by which results should be sorted.
:param sort_dir: Direction in which results should be sorted.
(asc, desc)
:returns: A list of tuples of the specified columns.
"""
return _get_dbdriver_instance().list_capsules(
context, filters, limit, marker, sort_key, sort_dir)
@profiler.trace("db")
def create_capsule(context, values):
"""Create a new capsule.
:param context: The security context
:param values: A dict containing several items used to identify
and track the container, and several dicts which are
passed into the Drivers when managing this container.
For example:
::
{
'uuid': uuidutils.generate_uuid(),
'restart_policy': 'always',
'project_id': '***'
}
:returns: A capsule.
"""
return _get_dbdriver_instance().create_capsule(context, values)
@profiler.trace("db")
def get_capsule_by_uuid(context, capsule_uuid):
"""Return a capsule.
:param context: The security context
:param capsule_uuid: The uuid of a capsule.
:returns: A capsule.
"""
return _get_dbdriver_instance().get_capsule_by_uuid(
context, capsule_uuid)
@profiler.trace("db")
def get_capsule_by_meta_name(context, capsule_name):
"""Return a capsule.
:param context: The security context
:param capsule_name: The meta_name of a capsule.
:returns: A capsule.
"""
return _get_dbdriver_instance().get_capsule_by_meta_name(
context, capsule_name)
@profiler.trace("db")
def destroy_capsule(context, capsule_id):
"""Destroy a capsule and all associated interfaces.
:param context: Request context
:param capsule_id: The id or uuid of a capsule.
"""
return _get_dbdriver_instance().destroy_capsule(context, capsule_id)
@profiler.trace("db")
def update_capsule(context, capsule_id, values):
"""Update properties of a capsule.
:param context: Request context
:param capsule_id: The id or uuid of a capsule.
:param values: The properties to be updated
:returns: A capsule.
:raises: CapsuleNotFound
"""
return _get_dbdriver_instance().update_capsule(
context, capsule_id, values)
@profiler.trace("db")
def get_pci_device_by_addr(node_id, dev_addr):
"""Get PCI device by address."""
return _get_dbdriver_instance().get_pci_device_by_addr(node_id, dev_addr)
@profiler.trace("db")
def get_pci_device_by_id(id):
"""Get PCI device by id."""
return _get_dbdriver_instance().get_pci_device_by_id(id)
@profiler.trace("db")
def get_all_pci_device_by_node(node_id):
"""Get all PCI devices for one host."""
return _get_dbdriver_instance().get_all_pci_device_by_node(node_id)
@profiler.trace("db")
def get_all_pci_device_by_container_uuid(container_uuid):
"""Get PCI devices allocated to container."""
return _get_dbdriver_instance().get_all_pci_device_by_container_uuid(
container_uuid)
@profiler.trace("db")
def get_all_pci_device_by_parent_addr(node_id, parent_addr):
"""Get all PCI devices by parent address."""
return _get_dbdriver_instance().get_all_pci_device_by_parent_addr(
node_id, parent_addr)
@profiler.trace("db")
def destroy_pci_device(node_id, address):
"""Delete a PCI device record."""
return _get_dbdriver_instance().destroy_pci_device(node_id, address)
@profiler.trace("db")
def update_pci_device(node_id, address, value):
"""Update a pci device."""
return _get_dbdriver_instance().update_pci_device(node_id, address, value)
@profiler.trace("db")
def action_start(context, values):
"""Start an action for an container."""
return _get_dbdriver_instance().action_start(context, values)
@profiler.trace("db")
def actions_get(context, uuid):
"""Get all container actions for the provided container."""
return _get_dbdriver_instance().actions_get(context, uuid)
@profiler.trace("db")
def action_get_by_request_id(context, uuid, request_id):
"""Get the action by request_id and given container."""
return _get_dbdriver_instance().action_get_by_request_id(context, uuid,
request_id)
@profiler.trace("db")
def action_event_start(context, values):
"""Start an event on an container action."""
return _get_dbdriver_instance().action_event_start(context, values)
@profiler.trace("db")
def action_event_finish(context, values):
"""Finish an event on an container action."""
return _get_dbdriver_instance().action_event_finish(context, values)
@profiler.trace("db")
def action_events_get(context, action_id):
"""Get the events by action id."""
return _get_dbdriver_instance().action_events_get(context, action_id)
@profiler.trace("db")
def quota_create(context, project_id, resource, limit):
"""Create a quota for the given project and resource"""
return _get_dbdriver_instance().quota_create(context, project_id,
resource, limit)
@profiler.trace("db")
def quota_get(context, project_id, resource):
"""Retrieve a quota or raise if it does not exist"""
return _get_dbdriver_instance().quota_get(context, project_id,
resource)
@profiler.trace("db")
def quota_get_all_by_project(context, project_id):
"""Retrieve all quotas associated with a given project"""
return _get_dbdriver_instance().quota_get_all_by_project(context,
project_id)
@profiler.trace("db")
def quota_update(context, project_id, resource, limit):
"""Update a quota or raise if it does not exist"""
return _get_dbdriver_instance().quota_update(context, project_id,
resource, limit)
@profiler.trace("db")
def quota_destroy(context, project_id, resource):
"""Destroy resource quota associated with a given project"""
return _get_dbdriver_instance().quota_destroy(context, project_id,
resource)
@profiler.trace("db")
def quota_destroy_all_by_project(context, project_id):
"""Destroy all resource associated with a given project."""
return _get_dbdriver_instance().quota_destroy_all_by_project(context,
project_id)
@profiler.trace("db")
def quota_class_create(context, class_name, resource, limit):
"""Create a quota class for the given name and resource"""
return _get_dbdriver_instance().quota_class_create(context, class_name,
resource, limit)
@profiler.trace("db")
def quota_class_get(context, class_name, resource):
"""Retrieve a quota class or raise if it does not exist"""
return _get_dbdriver_instance().quota_class_get(context, class_name,
resource)
@profiler.trace("db")
def quota_class_get_default(context):
"""Retrieve all default quota"""
return _get_dbdriver_instance().quota_class_get_default(context)
@profiler.trace("db")
def quota_class_get_all_by_name(context, class_name):
"""Retrieve all quotas associated with a given quota class"""
return _get_dbdriver_instance().quota_class_get_all_by_name(
context, class_name)
@profiler.trace("db")
def quota_class_update(context, class_name, resource, limit):
"""Update a quota class or raise if it does not exist"""
return _get_dbdriver_instance().quota_class_update(context, class_name,
resource, limit)
def quota_usage_get_all_by_project(context, project_id):
"""Retrieve all usage associated with a given resource."""
return _get_dbdriver_instance().quota_usage_get_all_by_project(context,
project_id)
@profiler.trace("db")
def create_network(context, values):
"""Create a new network.
:param context: The security context
:param values: A dict containing several items used to identify
and track the network, and several dicts which are
passed
into the Drivers when managing this network. For
example:
::
{
'uuid': uuidutils.generate_uuid(),
'name': 'example',
'type': 'virt'
}
:returns: A network.
"""
return _get_dbdriver_instance().create_network(context, values)
@profiler.trace("db")
def get_network_by_uuid(context, network_uuid):
"""Return a network.
:param context: The security context
:param network_uuid: The uuid of a network.
:returns: A network.
"""
return _get_dbdriver_instance().get_network_by_uuid(context, network_uuid)
@profiler.trace("db")
def list_networks(context, filters=None, limit=None, marker=None,
sort_key=None, sort_dir=None):
"""List matching networks.
Return a list of the specified columns for all networks that match
the specified filters.
:param context: The security context
:param filters: Filters to apply. Defaults to None.
:param limit: Maximum number of networks to return.
:param marker: the last item of the previous page; we return the next
result set.
:param sort_key: Attribute by which results should be sorted.
:param sort_dir: Direction in which results should be sorted.
(asc, desc)
:returns: A list of tuples of the specified columns.
"""
return _get_dbdriver_instance().list_networks(
context, filters, limit, marker, sort_key, sort_dir)
@profiler.trace("db")
def update_network(context, uuid, values):
"""Update properties of a network.
:param context: Request context
:param uuid: The id or uuid of a network.
:param values: The properties to be updated
:returns: A network.
"""
return _get_dbdriver_instance().update_network(
context, uuid, values)
@profiler.trace("db")
def destroy_network(context, network_uuid):
"""Destroy a network.
:param context: Request context
:param network_uuid: The uuid of a network.
"""
return _get_dbdriver_instance().destroy_network(context, network_uuid)
@profiler.trace("db")
def create_exec_instance(context, values):
"""Create a new exec instance.
:param context: The security context
:param values: A dict containing several items used to identify
and track the exec instance, and several dicts which are
passed into the Drivers when managing this exec instance.
:returns: An exec instance.
"""
return _get_dbdriver_instance().create_exec_instance(context, values)
@profiler.trace("db")
def list_exec_instances(context, filters=None, limit=None, marker=None,
sort_key=None, sort_dir=None):
"""List matching exec instances.
Return a list exec instances that match the specified filters.
:param context: The security context
:param filters: Filters to apply. Defaults to None.
:param limit: Maximum number of containers to return.
:param marker: the last item of the previous page; we return the next
result set.
:param sort_key: Attribute by which results should be sorted.
:param sort_dir: Direction in which results should be sorted.
(asc, desc)
:returns: A list of exec instances.
"""
return _get_dbdriver_instance().list_exec_instances(
context, filters, limit, marker, sort_key, sort_dir)
@profiler.trace('db')
def count_usage(context, project_id, flag):
return _get_dbdriver_instance().count_usage(context, project_id, flag)
@profiler.trace("db")
def create_registry(context, values):
"""Create a new registry.
:param context: The security context
:param values: A dict containing several items used to identify
and track the registry, and several dicts which are
passed
into the Drivers when managing this registry.
:returns: A registry.
"""
return _get_dbdriver_instance().create_registry(context, values)
@profiler.trace("db")
def get_registry_by_id(context, registry_id):
"""Return a registry.
:param context: The security context
:param registry_id: The id of a registry.
:returns: A registry.
"""
return _get_dbdriver_instance().get_registry_by_id(
context, registry_id)
@profiler.trace("db")
def get_registry_by_uuid(context, registry_uuid):
"""Return a registry.
:param context: The security context
:param registry_uuid: The uuid of a registry.
:returns: A registry.
"""
return _get_dbdriver_instance().get_registry_by_uuid(
context, registry_uuid)
@profiler.trace("db")
def get_registry_by_name(context, registry_name):
"""Return a registry.
:param context: The security context
:param registry_name: The name of a registry.
:returns: A registry.
"""
return _get_dbdriver_instance().get_registry_by_name(
context, registry_name)
@profiler.trace("db")
def list_registries(context, filters=None, limit=None, marker=None,
sort_key=None, sort_dir=None):
"""List matching registries.
Return a list of the specified columns for all registries that match
the specified filters.
:param context: The security context
:param filters: Filters to apply. Defaults to None.
:param limit: Maximum number of registries to return.
:param marker: the last item of the previous page; we return the next
result set.
:param sort_key: Attribute by which results should be sorted.
:param sort_dir: Direction in which results should be sorted.
(asc, desc)
:returns: A list of tuples of the specified columns.
"""
return _get_dbdriver_instance().list_registries(
context, filters, limit, marker, sort_key, sort_dir)
@profiler.trace("db")
def update_registry(context, uuid, values):
"""Update properties of a registry.
:param context: Request context
:param uuid: The id or uuid of a registry.
:param values: The properties to be updated
:returns: A registry.
"""
return _get_dbdriver_instance().update_registry(
context, uuid, values)
@profiler.trace("db")
def destroy_registry(context, registry_uuid):
"""Destroy a registry.
:param context: Request context
:param registry_uuid: The uuid of a registry.
"""
return _get_dbdriver_instance().destroy_registry(context, registry_uuid)