Defines interface for DB access.
The underlying driver is loaded as a LazyPluggable.
Functions in this module are imported into the nova.db namespace. Call these functions from nova.db namespace, not the nova.db.api namespace.
All functions in this module return objects that implement a dictionary-like interface. Currently, many of these objects are sqlalchemy objects that implement a dictionary interface. However, a future goal is to have all of these objects be simple dictionaries.
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) |
Bases: nova.exception.NovaException
No more available networks.
Bases: nova.exception.NovaException
No more available targets
Create a new agent build entry.
Destroy agent build entry.
Get all agent builds.
Get agent build by hypervisor/OS/architecture triple.
Update agent build entry.
Create a new aggregate with metadata.
Delete an aggregate.
Get a specific aggregate by id.
Get all aggregates.
Get a list of aggregates that host belongs to
Add host to the aggregate.
Delete the given host from the aggregate.
Get hosts for the specified aggregate.
Add/update metadata. If set_delete=True, it adds only.
Delete the given metadata key.
Get metadata for the specified aggregate.
Get metadata for all aggregates that host belongs to.
Returns a dictionary where each value is a set, this is to cover the case where there two aggregates have different values for the same key. Optional key filter
Update the attributes of an aggregates. If values contains a metadata key, it updates the aggregate metadata too.
Create an entry of block device mapping
Destroy the block device mapping.
Destroy the block device mapping.
Destroy the block device mapping.
Get all block device mapping belonging to an instance
Update an entry of block device mapping
Update an entry of block device mapping. If not existed, create a new entry
Return bw usages for instance(s) in a given audit period.
Update cached bandwidth usage for an instance’s network based on mac address. Creates new record if needed.
Create a certificate from the values dictionary.
Get all certificates for a project.
Get all certificates for a user.
Get all certificates for a user and project.
Create a computeNode from the values dictionary.
Get a computeNode.
Get all computeNodes.
Get computeNodes given a hypervisor hostname match string.
Set the given properties on a computeNode and update it.
Raises NotFound if computeNode does not exist.
Create a console.
Delete a console.
Get a specific console (possibly on a given instance).
Get consoles for a given instance.
Get console entry for a given instance and pool.
Create console pool.
Fetch all pools for given proxy host and type.
Fetch a console pool for a given proxy host, compute host, and type.
Return a constraint object suitable for use with some updates.
Get the db record for the specified domain.
Get a list of all zones in our database, public and private.
Associated a DNS domain with a project id
Associated a DNS domain with an availability zone
Purge associations for the specified DNS zone
Create the ec2 id to instance uuid mapping on demand
Return an equality condition object suitable for use in a constraint.
Equal_any conditions require that a model object’s attribute equal any one of the given values.
Associate fixed ip to instance.
Raises if fixed ip is not available.
Find free ip in network and associate it to instance or host.
Raises if one is not available.
Create a lot of fixed ips from the values dictionary.
Count fixed ips used by project.
Create a fixed ip from the values dictionary.
Disassociate a fixed ip from an instance by address.
Disassociate old fixed ips from host.
Get fixed ip by id or raise if it does not exist.
Get all defined fixed ips.
Get a fixed ip by address or raise if it does not exist.
Get fixed ips by instance or raise if none exist.
Get fixed ip for a host in a network.
Get a network for a fixed ip by address.
Create a fixed ip from the values dictionary.
Get fixed ips by virtual interface or raise if none exist.
Allocate free floating ip from specified pool and return the address.
Raises if one is not available.
Create a lot of floating ips from the values dictionary.
Destroy a lot of floating ips from the values dictionary.
Count floating ips used by project.
Create a floating ip from the values dictionary.
Deallocate a floating ip by address.
Destroy the floating_ip or raise if it does not exist.
Disassociate a floating ip from a fixed ip by address.
Returns: | the address of the previous fixed ip or None if the ip was not associated to an ip. |
---|
Associate a floating ip to a fixed_ip by address.
Returns: | the address of the new fixed ip (fixed_address) or None if the ip was already associated to the fixed ip. |
---|
Get all floating ips.
Get all floating ips by host.
Get all floating ips by project.
Get a floating ip by address or raise if it doesn’t exist.
Get a floating ips by fixed address
Get a floating ips by fixed address
Returns a list of floating ip pools
Set auto_assigned flag to floating ip
Update a floating ip by address or raise if it doesn’t exist.
Get ec2 id through uuid from instance_id_mappings table
Get uuid through ec2 id from instance_id_mappings table
Associate the given security group with the given instance.
Create an instance from the values dictionary.
Get (instance_count, total_cores, total_ram) for project.
Destroy the instance or raise if it does not exist.
Create a new Instance Fault.
Get all instance faults for the provided instance_uuids.
Get an instance or raise if it does not exist.
Get instances active during a certain time window.
Specifying a project_id will filter for a certain project. Specifying a host will filter for instances on a given compute host.
Get instances and joins active during a certain time window.
Specifying a project_id will filter for a certain project. Specifying a host will filter for instances on a given compute host.
Get all instances.
Get all instances that match all filters.
Get all instances belonging to a host.
Get all instances belonging to a host with a different type_id.
Get all instances belonging to a project.
Get all instances belonging to a reservation.
Get all instances stuck in a rebooting state.
Get an instance or raise if it does not exist.
Get the first floating ip address of an instance.
Create a new instance cache record in the table.
Parameters: |
|
---|
Deletes an existing instance_info_cache record
Parameters: | instance_uuid – = uuid of the instance tied to the cache record |
---|
Gets an instance info cache from the table.
Parameters: | instance_uuid – = uuid of the info cache’s instance |
---|
Update an instance info cache record in the table.
Parameters: |
|
---|
Delete the given metadata item.
Get all metadata for an instance.
Update metadata if it exists, otherwise create it.
Disassociate the given security group from the given instance.
Delete the given system metadata item.
Get all system metadata for an instance.
Update metadata if it exists, otherwise create it.
Atomically check if an instance is in a valid state, and if it is, set the instance into a new state.
Add flavor access for project.
Get flavor access by flavor id.
Remove flavor access for project.
Create a new instance type.
Delete an instance type.
Delete the given extra specs item.
Get all extra specs for an instance type.
Create or update instance type extra specs. This adds or modifies the key/value pairs specified in the extra specs dict argument
Get instance type by id.
Get all instance types.
Get instance type by flavor id.
Get instance type by name.
Set the given properties on an instance and update it.
Raises NotFound if instance does not exist.
Set the given properties on an instance and update it. Return a shallow copy of the original instance reference, as well as the updated one.
Parameters: |
|
---|---|
Returns: | a tuple of the form (old_instance_ref, new_instance_ref) |
Raises NotFound if instance does not exist.
Return count of export devices.
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.
Count number of key pairs for the given user ID.
Create a key_pair from the values dictionary.
Destroy the key_pair or raise if it does not exist.
Destroy all key_pairs by user.
Get a key_pair or raise if it does not exist.
Get all key_pairs by user.
Create a migration record.
Finds a migration by the id.
Finds a migration by the instance uuid its migrating.
Finds all unconfirmed migrations within the confirmation window for a specific destination compute host.
Update a migration instance.
Associate a free network to a project.
Return the number of networks.
Return the number of reserved ips in the network.
Create the ips for the network, reserving sepecified ips.
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.
Delete network with key network_id.
This method assumes that the network is not associated with any project
Disassociate the network from project or raise if it does not exist.
Get a network or raise if it does not exist.
Return all defined networks.
All networks for which the given host is the network host.
Get all networks by instance id or raise if none exist.
Return networks by ids.
Get all network’s ips that have been associated.
Get a network by bridge or raise if it does not exist.
Get a network by cidr or raise if it does not exist
Get a network by instance id or raise if it does not exist.
Get a network by uuid or raise if it does not exist.
Get non-conflicting index for network.
Set the Classless Inner Domain Routing for the network.
Safely set the host for network.
Set the given properties on a network and update it.
Raises NotFound if network does not exist.
Return an inequality condition object suitable for use in a constraint.
Not_equal conditions require that a model object’s attribute differs from all of the given values.
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.
Add a firewall rule at the provider level (all hosts & instances).
Delete a provider firewall rule from the database.
Get all provider-level firewall rules.
Create a quota class for the given name and resource.
Destroy the quota class or raise if it does not exist.
Destroy all quotas associated with a given quota class.
Retrieve a quota class or raise if it does not exist.
Retrieve all quotas associated with a given quota class.
Update a quota class or raise if it does not exist.
Create a quota for the given project and resource.
Destroy the quota or raise if it does not exist.
Destroy all quotas associated with a given project.
Retrieve a quota or raise if it does not exist.
Retrieve all quotas associated with a given project.
Check quotas and create appropriate reservations.
Update a quota or raise if it does not exist.
Create a quota usage for the given project and resource.
Destroy the quota usage or raise if it does not exist.
Retrieve a quota usage or raise if it does not exist.
Retrieve all usage associated with a given resource.
Update a quota usage or raise if it does not exist.
Commit quota reservations.
Create a reservation for the given project and resource.
Destroy the reservation or raise if it does not exist.
Roll back any expired reservations.
Retrieve a reservation or raise if it does not exist.
Retrieve all reservations associated with a given project.
Roll back quota reservations.
Create local s3 image represented by provided uuid
Find local s3 image represented by the provided id
Find local s3 image represented by the provided uuid
Count number of security groups in a project.
Create a new security group.
Deletes a security group.
Ensure default security group exists for a project_id.
Returns a tuple with the first element being a bool indicating if the default security group previously existed. Second element is the dict used to create the default security group.
Indicates if a group name exists in a project.
Get security group by its id.
Get all security groups.
Get security groups to which the instance is assigned.
Returns a security group with the specified name from a project.
Get all security groups belonging to a project.
Indicates if a security group is currently in use.
Count rules in a given security group.
Create a new security group.
Deletes a security group rule.
Gets a security group rule.
Get all rules for a given security group.
Get all rules that grant access to the given security group.
Create a service from the values dictionary.
Destroy the service or raise if it does not exist.
Get a service or raise if it does not exist.
Get all services.
Get all services for a given host.
Get all services for a given topic.
Get all compute services for a given host.
Get all compute services sorted by instance count.
Returns: | a list of (Service, instance_count) tuples. |
---|
Get all volume services sorted by volume count.
Returns: | a list of (Service, volume_count) tuples. |
---|
Get the state of a service by node name and binary.
Get a service by host it’s on and topic it listens to.
Set the given properties on a service and update it.
Raises NotFound if service does not exist.
Create a new SM Backend Config entry.
Delete a SM Backend Config.
Get a specific SM Backend Config.
Get all SM Backend Configs.
Get a specific SM Backend Config.
Update a SM Backend Config entry.
Create a new SM Flavor entry.
Delete a SM Flavor.
Get a specific SM Flavor.
Get all SM Flavors.
Get a specific SM Flavor given label.
Update a SM Flavor entry.
Create a new child Zone entry.
Delete a child Zone.
Get a specific child Zone.
Get all child Zones.
Update a child Zone entry.
Create a snapshot from the values dictionary.
Destroy the snapshot or raise if it does not exist.
Get a snapshot or raise if it does not exist.
Get all snapshots.
Get all snapshots belonging to a project.
Get all snapshots for a volume.
Set the given properties on a snapshot and update it.
Raises NotFound if snapshot does not exist.
Mark a task as started for a given host/time period
Mark a task as complete for a given host/time period
Create a virtual interface record in the database.
Delete virtual interface record from the database.
Delete virtual interface records associated with instance.
Gets a virtual interface from the table,
Gets all virtual interfaces from the table
Gets a virtual interface from the table filtering on address.
Gets all virtual_interfaces for instance.
Gets all virtual interfaces for instance.
Gets a virtual interface from the table filtering on vif uuid.
Atomically allocate a free iscsi_target from the pool.
Ensure that a volume is set as attached.
Create a volume from the values dictionary.
Get (volume_count, gigabytes) for project.
Destroy the volume or raise if it does not exist.
Ensure that a volume is set as detached.
Get a volume or raise if it does not exist.
Get all the volumes inside the window.
Specifying a project_id will filter for a certain project.
Get all volumes.
Get all volumes belonging to a host.
Get all volumes belonging to an instance.
Get all volumes belonging to a project.
Get a volume by ec2 id.
Get the target num (tid) allocated to the volume.
Delete the given metadata item.
Get all metadata for a volume.
Update metadata if it exists, otherwise create it.
Create a new volume type.
Delete a volume type.
Delete the given extra specs item.
Get all extra specs for a volume type.
Create or update volume type extra specs. This adds or modifies the key/value pairs specified in the extra specs dict argument
Get volume type by id.
Get all volume types.
Get volume type by name.
Set the given properties on a volume and update it.
Raises NotFound if volume does not exist.
SQLAlchemy models for nova data.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents an agent build.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a cluster of hosts that exists in this zone.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a host that is member of an aggregate.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a metadata key/value pair for an aggregate.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Cache for instance bandwidth usage data pulled from the hypervisor
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents block device mapping that is defined by EC2
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a x509 certificate
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a running compute service on a host.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Stats related to the current workload of a compute host that are intended to aid in making scheduler decisions.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a console session for an instance.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents pool of consoles on the same physical node.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a DNS domain with availability zone or project info.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a fixed ip for an instance.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a floating ip that dynamically forwards to a fixed ip.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a guest VM.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Compatability layer for the EC2 instance service
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a cache of information about an instance
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a user-provided metadata key/value pair for an instance
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a system-owned metadata key/value pair for an instance
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents additional specs as key/value pairs for an instance_type
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represent projects associated instance_types
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represent possible instance_types or flavor of VM offered
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents an iscsi target for a given host
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a public key pair for ssh.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a running host-to-host migration.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a network.
Bases: object
Base class for Nova Models.
Delete this object.
Make the model object behave like a dict.
Includes attributes from joins.
Save this object.
Make the model object behave like a dict
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a rule in a security group.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a single quota override for a project.
If there is no row for a given project id and resource, then the default for the quota class is used. If there is no row for a given quota class and resource, then the default for the deployment is used. If the row is present but the hard limit is Null, then the resource is unlimited.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a single quota override for a quota class.
If there is no row for a given quota class and resource, then the default for the deployment is used. If the row is present but the hard limit is Null, then the resource is unlimited.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents the current usage for a given resource.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a resource reservation for quotas.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Compatibility layer for the S3 image service talking to Glance
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents the connection to the backend for SM.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a flavor for SM volumes.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a security group.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a rule in a security group.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a running service on a host.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a block storage device that can be attached to a VM.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Compatibility layer for the EC2 snapshot service
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Audit log for background periodic tasks
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a virtual interface on an instance.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a block storage device that can be attached to a VM.
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Compatibility layer for the EC2 volume service
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents a metadata key/value pair for a volume
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represents additional specs as key/value pairs for a volume_type
Bases: sqlalchemy.ext.declarative.Base, nova.db.sqlalchemy.models.NovaBase
Represent possible volume_types of volumes offered
Session Handling for SQLAlchemy backend.
Add REGEXP function to sqlite connections.
Return a debug version of MySQLdb.cursors._do_query
Return a SQLAlchemy engine.
Return a SQLAlchemy sessionmaker using the given engine.
Return a SQLAlchemy session.
Return True if error in connecting to db.
Ensures that MySQL connections checked out of the pool are alive.
Borrowed from: http://groups.google.com/group/sqlalchemy/msg/a4ce563d802c929f
Switch sqlite connections to non-synchronous mode
Tests are lacking for the db api layer and for the sqlalchemy driver. Failures in the drivers would be detected in other test cases, though.