This Page

Psst... hey. You're reading the latest content, but it might be out of sync with code. You can read Nova 2011.1 docs or all OpenStack docs too.

The nova.db.api Module

Defines interface for DB access.

The underlying driver is loaded as a LazyPluggable.

Related Flags

db_backend:string to lookup in the list of LazyPluggable backends. sqlalchemy is the only supported backend right now.
sql_connection:string specifying the sqlalchemy connection to use, like: sqlite:///var/lib/nova/nova.sqlite.
enable_new_services:
 when adding a new service to the database, is it in the pool of available hardware (Default: True)
exception nova.db.api.NoMoreAddresses(message=None)

Bases: nova.exception.Error

No more available addresses.

exception nova.db.api.NoMoreBlades(message=None)

Bases: nova.exception.Error

No more available blades.

exception nova.db.api.NoMoreNetworks(message=None)

Bases: nova.exception.Error

No more available networks.

exception nova.db.api.NoMoreTargets(message=None)

Bases: nova.exception.Error

No more available blades

nova.db.api.auth_token_create(context, token)

Creates a new token.

nova.db.api.auth_token_destroy(context, token_id)

Destroy an auth token.

nova.db.api.auth_token_get(context, token_hash)

Retrieves a token given the hash representing it.

nova.db.api.auth_token_update(context, token_hash, values)

Updates a token given the hash representing it.

nova.db.api.certificate_create(context, values)

Create a certificate from the values dictionary.

nova.db.api.certificate_destroy(context, certificate_id)

Destroy the certificate or raise if it does not exist.

nova.db.api.certificate_get_all_by_project(context, project_id)

Get all certificates for a project.

nova.db.api.certificate_get_all_by_user(context, user_id)

Get all certificates for a user.

nova.db.api.certificate_get_all_by_user_and_project(context, user_id, project_id)

Get all certificates for a user and project.

nova.db.api.certificate_update(context, certificate_id, values)

Set the given properties on an certificate and update it.

Raises NotFound if service does not exist.

nova.db.api.compute_node_create(context, values)

Create a computeNode from the values dictionary.

nova.db.api.compute_node_get(context, compute_id, session=None)

Get an computeNode or raise if it does not exist.

nova.db.api.compute_node_update(context, compute_id, values)

Set the given properties on an computeNode and update it.

Raises NotFound if computeNode does not exist.

nova.db.api.console_create(context, values)

Create a console.

nova.db.api.console_delete(context, console_id)

Delete a console.

nova.db.api.console_get(context, console_id, instance_id=None)

Get a specific console (possibly on a given instance).

nova.db.api.console_get_all_by_instance(context, instance_id)

Get consoles for a given instance.

nova.db.api.console_get_by_pool_instance(context, pool_id, instance_id)

Get console entry for a given instance and pool.

nova.db.api.console_pool_create(context, values)

Create console pool.

nova.db.api.console_pool_get(context, pool_id)

Get a console pool.

nova.db.api.console_pool_get_all_by_host_type(context, host, console_type)

Fetch all pools for given proxy host and type.

nova.db.api.console_pool_get_by_host_type(context, compute_host, proxy_host, console_type)

Fetch a console pool for a given proxy host, compute host, and type.

nova.db.api.export_device_count(context)

Return count of export devices.

nova.db.api.export_device_create_safe(context, values)

Create an export_device from the values dictionary.

The device is not returned. If the create violates the unique constraints because the shelf_id and blade_id already exist, no exception is raised.

nova.db.api.fixed_ip_associate(context, address, instance_id)

Associate fixed ip to instance.

Raises if fixed ip is not available.

nova.db.api.fixed_ip_associate_pool(context, network_id, instance_id)

Find free ip in network and associate it to instance.

Raises if one is not available.

nova.db.api.fixed_ip_create(context, values)

Create a fixed ip from the values dictionary.

nova.db.api.fixed_ip_disassociate(context, address)

Disassociate a fixed ip from an instance by address.

nova.db.api.fixed_ip_disassociate_all_by_timeout(context, host, time)

Disassociate old fixed ips from host.

nova.db.api.fixed_ip_get_all(context)

Get all defined fixed ips.

nova.db.api.fixed_ip_get_all_by_host(context, host)

Get all defined fixed ips used by a host.

nova.db.api.fixed_ip_get_all_by_instance(context, instance_id)

Get fixed ips by instance or raise if none exist.

nova.db.api.fixed_ip_get_by_address(context, address)

Get a fixed ip by address or raise if it does not exist.

nova.db.api.fixed_ip_get_instance(context, address)

Get an instance for a fixed ip by address.

nova.db.api.fixed_ip_get_instance_v6(context, address)
nova.db.api.fixed_ip_get_network(context, address)

Get a network for a fixed ip by address.

nova.db.api.fixed_ip_update(context, address, values)

Create a fixed ip from the values dictionary.

nova.db.api.floating_ip_allocate_address(context, host, project_id)

Allocate free floating ip and return the address.

Raises if one is not available.

nova.db.api.floating_ip_count_by_project(context, project_id)

Count floating ips used by project.

nova.db.api.floating_ip_create(context, values)

Create a floating ip from the values dictionary.

nova.db.api.floating_ip_deallocate(context, address)

Deallocate an floating ip by address

nova.db.api.floating_ip_destroy(context, address)

Destroy the floating_ip or raise if it does not exist.

nova.db.api.floating_ip_disassociate(context, address)

Disassociate an floating ip from a fixed ip by address.

Returns the address of the existing fixed ip.

nova.db.api.floating_ip_fixed_ip_associate(context, floating_address, fixed_address)

Associate an floating ip to a fixed_ip by address.

nova.db.api.floating_ip_get_all(context)

Get all floating ips.

nova.db.api.floating_ip_get_all_by_host(context, host)

Get all floating ips by host.

nova.db.api.floating_ip_get_all_by_project(context, project_id)

Get all floating ips by project.

nova.db.api.floating_ip_get_by_address(context, address)

Get a floating ip by address or raise if it doesn’t exist.

nova.db.api.floating_ip_update(context, address, values)

Update a floating ip by address or raise if it doesn’t exist.

nova.db.api.host_get_networks(context, host)

Return all networks for which the given host is the designated network host.

nova.db.api.instance_action_create(context, values)

Create an instance action from the values dictionary.

nova.db.api.instance_add_security_group(context, instance_id, security_group_id)

Associate the given security group with the given instance.

nova.db.api.instance_create(context, values)

Create an instance from the values dictionary.

nova.db.api.instance_data_get_for_project(context, project_id)

Get (instance_count, core_count) for project.

nova.db.api.instance_destroy(context, instance_id)

Destroy the instance or raise if it does not exist.

nova.db.api.instance_get(context, instance_id)

Get an instance or raise if it does not exist.

nova.db.api.instance_get_actions(context, instance_id)

Get instance actions by instance id.

nova.db.api.instance_get_all(context)

Get all instances.

nova.db.api.instance_get_all_by_host(context, host)

Get all instance belonging to a host.

nova.db.api.instance_get_all_by_project(context, project_id)

Get all instance belonging to a project.

nova.db.api.instance_get_all_by_reservation(context, reservation_id)

Get all instance belonging to a reservation.

nova.db.api.instance_get_all_by_user(context, user_id)

Get all instances.

nova.db.api.instance_get_disk_sum_by_host_and_project(context, hostname, proj_id)

Get total amount of disk by host and project.

nova.db.api.instance_get_fixed_address(context, instance_id)

Get the fixed ip address of an instance.

nova.db.api.instance_get_fixed_address_v6(context, instance_id)
nova.db.api.instance_get_floating_address(context, instance_id)

Get the first floating ip address of an instance.

nova.db.api.instance_get_memory_sum_by_host_and_project(context, hostname, proj_id)

Get amount of memory by host and project.

nova.db.api.instance_get_project_vpn(context, project_id)

Get a vpn instance by project or return None.

nova.db.api.instance_get_vcpu_sum_by_host_and_project(context, hostname, proj_id)

Get instances.vcpus by host and project.

nova.db.api.instance_is_vpn(context, instance_id)

True if instance is a vpn.

nova.db.api.instance_metadata_delete(context, instance_id, key)

Delete the given metadata item

nova.db.api.instance_metadata_get(context, instance_id)

Get all metadata for an instance

nova.db.api.instance_metadata_update_or_create(context, instance_id, metadata)

Create or update instance metadata

nova.db.api.instance_set_state(context, instance_id, state, description=None)

Set the state of an instance.

nova.db.api.instance_type_create(context, values)

Create a new instance type

nova.db.api.instance_type_destroy(context, name)

Delete a instance type

nova.db.api.instance_type_get_all(context, inactive=False)

Get all instance types

nova.db.api.instance_type_get_by_flavor_id(context, id)

Get instance type by name

nova.db.api.instance_type_get_by_id(context, id)

Get instance type by id

nova.db.api.instance_type_get_by_name(context, name)

Get instance type by name

nova.db.api.instance_type_purge(context, name)

Purges (removes) an instance type from DB Use instance_type_destroy for most cases

nova.db.api.instance_update(context, instance_id, values)

Set the given properties on an instance and update it.

Raises NotFound if instance does not exist.

nova.db.api.iscsi_target_count_by_host(context, host)

Return count of export devices.

nova.db.api.iscsi_target_create_safe(context, values)

Create an iscsi_target from the values dictionary.

The device is not returned. If the create violates the unique constraints because the iscsi_target and host already exist, no exception is raised.

nova.db.api.key_pair_create(context, values)

Create a key_pair from the values dictionary.

nova.db.api.key_pair_destroy(context, user_id, name)

Destroy the key_pair or raise if it does not exist.

nova.db.api.key_pair_destroy_all_by_user(context, user_id)

Destroy all key_pairs by user.

nova.db.api.key_pair_get(context, user_id, name)

Get a key_pair or raise if it does not exist.

nova.db.api.key_pair_get_all_by_user(context, user_id)

Get all key_pairs by user.

nova.db.api.migration_create(context, values)

Create a migration record

nova.db.api.migration_get(context, migration_id)

Finds a migration by the id

nova.db.api.migration_get_by_instance_and_status(context, instance_id, status)

Finds a migration by the instance id its migrating

nova.db.api.migration_update(context, id, values)

Update a migration instance

nova.db.api.network_associate(context, project_id)

Associate a free network to a project.

nova.db.api.network_count(context)

Return the number of networks.

nova.db.api.network_count_allocated_ips(context, network_id)

Return the number of allocated non-reserved ips in the network.

nova.db.api.network_count_available_ips(context, network_id)

Return the number of available ips in the network.

nova.db.api.network_count_reserved_ips(context, network_id)

Return the number of reserved ips in the network.

nova.db.api.network_create_fixed_ips(context, network_id, num_vpn_clients)

Create the ips for the network, reserving sepecified ips.

nova.db.api.network_create_safe(context, values)

Create a network from the values dict.

The network is only returned if the create succeeds. If the create violates constraints because the network already exists, no exception is raised.

nova.db.api.network_delete_safe(context, network_id)

Delete network with key network_id. This method assumes that the network is not associated with any project

nova.db.api.network_disassociate(context, network_id)

Disassociate the network from project or raise if it does not exist.

nova.db.api.network_disassociate_all(context)

Disassociate all networks from projects.

nova.db.api.network_get(context, network_id)

Get an network or raise if it does not exist.

nova.db.api.network_get_all(context)

Return all defined networks.

nova.db.api.network_get_all_by_instance(context, instance_id)

Get all networks by instance id or raise if none exist.

nova.db.api.network_get_associated_fixed_ips(context, network_id)

Get all network’s ips that have been associated.

nova.db.api.network_get_by_bridge(context, bridge)

Get a network by bridge or raise if it does not exist.

nova.db.api.network_get_by_cidr(context, cidr)

Get a network by cidr or raise if it does not exist

nova.db.api.network_get_by_instance(context, instance_id)

Get a network by instance id or raise if it does not exist.

nova.db.api.network_get_index(context, network_id)

Get non-conflicting index for network.

nova.db.api.network_get_vpn_ip(context, network_id)

Get non-conflicting index for network.

nova.db.api.network_set_cidr(context, network_id, cidr)

Set the Classless Inner Domain Routing for the network.

nova.db.api.network_set_host(context, network_id, host_id)

Safely set the host for network.

nova.db.api.network_update(context, network_id, values)

Set the given properties on an network and update it.

Raises NotFound if network does not exist.

nova.db.api.project_add_member(context, project_id, user_id)

Add user to project.

nova.db.api.project_create(context, values)

Create a new project.

nova.db.api.project_delete(context, project_id)

Delete project.

nova.db.api.project_get(context, id)

Get project by id.

nova.db.api.project_get_all(context)

Get all projects.

nova.db.api.project_get_by_user(context, user_id)

Get all projects of which the given user is a member.

nova.db.api.project_get_network(context, project_id, associate=True)

Return the network associated with the project.

If associate is true, it will attempt to associate a new network if one is not found, otherwise it returns None.

nova.db.api.project_get_network_v6(context, project_id)
nova.db.api.project_remove_member(context, project_id, user_id)

Remove the given user from the given project.

nova.db.api.project_update(context, project_id, values)

Update Remove the given user from the given project.

nova.db.api.queue_get_for(context, topic, physical_node_id)

Return a channel to send a message to a node with a topic.

nova.db.api.quota_create(context, values)

Create a quota from the values dictionary.

nova.db.api.quota_destroy(context, project_id)

Destroy the quota or raise if it does not exist.

nova.db.api.quota_get(context, project_id)

Retrieve a quota or raise if it does not exist.

nova.db.api.quota_update(context, project_id, values)

Update a quota from the values dictionary.

nova.db.api.security_group_create(context, values)

Create a new security group.

nova.db.api.security_group_destroy(context, security_group_id)

Deletes a security group.

nova.db.api.security_group_destroy_all(context)

Deletes a security group.

nova.db.api.security_group_exists(context, project_id, group_name)

Indicates if a group name exists in a project.

nova.db.api.security_group_get(context, security_group_id)

Get security group by its id.

nova.db.api.security_group_get_all(context)

Get all security groups.

nova.db.api.security_group_get_by_instance(context, instance_id)

Get security groups to which the instance is assigned.

nova.db.api.security_group_get_by_name(context, project_id, group_name)

Returns a security group with the specified name from a project.

nova.db.api.security_group_get_by_project(context, project_id)

Get all security groups belonging to a project.

nova.db.api.security_group_rule_create(context, values)

Create a new security group.

nova.db.api.security_group_rule_destroy(context, security_group_rule_id)

Deletes a security group rule.

nova.db.api.security_group_rule_get_by_security_group(context, security_group_id)

Get all rules for a a given security group.

nova.db.api.security_group_rule_get_by_security_group_grantee(context, security_group_id)

Get all rules that grant access to the given security group.

nova.db.api.service_create(context, values)

Create a service from the values dictionary.

nova.db.api.service_destroy(context, instance_id)

Destroy the service or raise if it does not exist.

nova.db.api.service_get(context, service_id)

Get a service or raise if it does not exist.

nova.db.api.service_get_all(context, disabled=None)

Get all services.

nova.db.api.service_get_all_by_host(context, host)

Get all services for a given host.

nova.db.api.service_get_all_by_topic(context, topic)

Get all services for a given topic.

nova.db.api.service_get_all_compute_by_host(context, host)

Get all compute services for a given host.

nova.db.api.service_get_all_compute_sorted(context)

Get all compute services sorted by instance count.

Returns a list of (Service, instance_count) tuples.

nova.db.api.service_get_all_network_sorted(context)

Get all network services sorted by network count.

Returns a list of (Service, network_count) tuples.

nova.db.api.service_get_all_volume_sorted(context)

Get all volume services sorted by volume count.

Returns a list of (Service, volume_count) tuples.

nova.db.api.service_get_by_args(context, host, binary)

Get the state of an service by node name and binary.

nova.db.api.service_get_by_host_and_topic(context, host, topic)

Get a service by host it’s on and topic it listens to

nova.db.api.service_update(context, service_id, values)

Set the given properties on an service and update it.

Raises NotFound if service does not exist.

nova.db.api.user_add_project_role(context, user_id, project_id, role)

Add project role for user.

nova.db.api.user_add_role(context, user_id, role)

Add another global role for user.

nova.db.api.user_create(context, values)

Create a new user.

nova.db.api.user_delete(context, id)

Delete a user.

nova.db.api.user_get(context, id)

Get user by id.

nova.db.api.user_get_all(context)

Create a new user.

nova.db.api.user_get_by_access_key(context, access_key)

Get user by access key.

nova.db.api.user_get_by_uid(context, uid)

Get user by uid.

nova.db.api.user_get_roles(context, user_id)

Get global roles for user.

nova.db.api.user_get_roles_for_project(context, user_id, project_id)

Return list of roles a user holds on project.

nova.db.api.user_remove_project_role(context, user_id, project_id, role)

Remove project role from user.

nova.db.api.user_remove_role(context, user_id, role)

Remove global role from user.

nova.db.api.user_update(context, user_id, values)

Update user.

nova.db.api.volume_allocate_iscsi_target(context, volume_id, host)

Atomically allocate a free iscsi_target from the pool.

nova.db.api.volume_allocate_shelf_and_blade(context, volume_id)

Atomically allocate a free shelf and blade from the pool.

nova.db.api.volume_attached(context, volume_id, instance_id, mountpoint)

Ensure that a volume is set as attached.

nova.db.api.volume_create(context, values)

Create a volume from the values dictionary.

nova.db.api.volume_data_get_for_project(context, project_id)

Get (volume_count, gigabytes) for project.

nova.db.api.volume_destroy(context, volume_id)

Destroy the volume or raise if it does not exist.

nova.db.api.volume_detached(context, volume_id)

Ensure that a volume is set as detached.

nova.db.api.volume_get(context, volume_id)

Get a volume or raise if it does not exist.

nova.db.api.volume_get_all(context)

Get all volumes.

nova.db.api.volume_get_all_by_host(context, host)

Get all volumes belonging to a host.

nova.db.api.volume_get_all_by_instance(context, instance_id)

Get all volumes belonging to a instance.

nova.db.api.volume_get_all_by_project(context, project_id)

Get all volumes belonging to a project.

nova.db.api.volume_get_by_ec2_id(context, ec2_id)

Get a volume by ec2 id.

nova.db.api.volume_get_instance(context, volume_id)

Get the instance that a volume is attached to.

nova.db.api.volume_get_iscsi_target_num(context, volume_id)

Get the target num (tid) allocated to the volume.

nova.db.api.volume_get_shelf_and_blade(context, volume_id)

Get the shelf and blade allocated to the volume.

nova.db.api.volume_update(context, volume_id, values)

Set the given properties on an volume and update it.

Raises NotFound if volume does not exist.

nova.db.api.zone_create(context, values)

Create a new child Zone entry.

nova.db.api.zone_delete(context, zone_id)

Delete a child Zone.

nova.db.api.zone_get(context, zone_id)

Get a specific child Zone.

nova.db.api.zone_get_all(context)

Get all child Zones.

nova.db.api.zone_update(context, zone_id, values)

Update a child Zone entry.