Compute API¶
For details on how to use compute, see Using OpenStack Compute
The Compute Class¶
The compute high-level interface is available through the compute
member of a Connection
object. The
compute
member will only be added if the service is detected.
Server Operations¶
-
class
openstack.compute.v2._proxy.
Proxy
(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)¶ -
create_server
(**attrs)¶ Create a new server from attributes
-
update_server
(server, **attrs)¶ Update a server
-
delete_server
(server, ignore_missing=True, force=False)¶ Delete a server
- Parameters
server – The value can be either the ID of a server or a
Server
instance.ignore_missing (bool) – When set to
False
ResourceNotFound
will be raised when the server does not exist. When set toTrue
, no exception will be set when attempting to delete a nonexistent serverforce (bool) – When set to
True
, the server deletion will be forced immediately.
- Returns
None
-
get_server
(server)¶ Get a single server
-
find_server
(name_or_id, ignore_missing=True)¶ Find a single server
- Parameters
name_or_id – The name or ID of a server.
ignore_missing (bool) – When set to
False
ResourceNotFound
will be raised when the resource does not exist. When set toTrue
, None will be returned when attempting to find a nonexistent resource.
- Returns
One
Server
or None
-
servers
(details=True, all_projects=False, **query)¶ Retrieve a generator of servers
- Parameters
details (bool) – When set to
False
instances with only basic data will be returned. The default,True
, will cause instances with full data to be returned.query (kwargs) – Optional query parameters to be sent to limit the servers being returned. Available parameters can be seen under https://docs.openstack.org/api-ref/compute/#list-servers
- Returns
A generator of server instances.
-
get_server_metadata
(server)¶ Return a dictionary of metadata for a server
-
set_server_metadata
(server, **metadata)¶ Update metadata for a server
- Parameters
server – Either the ID of a server or a
Server
instance.metadata (kwargs) – Key/value pairs to be updated in the server’s metadata. No other metadata is modified by this call. All keys and values are stored as Unicode.
- Returns
A
Server
with only the server’s metadata. All keys and values are Unicode text.- Return type
-
delete_server_metadata
(server, keys)¶ Delete metadata for a server
Note: This method will do a HTTP DELETE request for every key in keys.
- Parameters
server – Either the ID of a server or a
Server
instance.keys – The keys to delete
- Return type
None
-
wait_for_server
(server, status='ACTIVE', failures=None, interval=2, wait=120)¶ Wait for a server to be in a particular status.
- Parameters
server (
Server
:) – TheServer
to wait on to reach the specified status.status – Desired status.
failures (
list
) – Statuses that would be interpreted as failures.interval (int) – Number of seconds to wait before to consecutive checks. Default to 2.
wait (int) – Maximum number of seconds to wait before the change. Default to 120.
- Returns
The resource is returned on success.
- Raises
ResourceTimeout
if transition to the desired status failed to occur in specified seconds.- Raises
ResourceFailure
if the resource has transited to one of the failure statuses.- Raises
AttributeError
if the resource does not have astatus
attribute.
-
create_server_image
(server, name, metadata=None, wait=False, timeout=120)¶ Create an image from a server
-
backup_server
(server, name, backup_type, rotation)¶ Backup a server
- Parameters
server – Either the ID of a server or a
Server
instance.name – The name of the backup image.
backup_type – The type of the backup, for example, daily.
rotation – The rotation of the back up image, the oldest image will be removed when image count exceed the rotation count.
- Returns
None
-
Network Actions¶
-
class
openstack.compute.v2._proxy.
Proxy
(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs) -
add_fixed_ip_to_server
(server, network_id)¶ Adds a fixed IP address to a server instance.
- Parameters
server – Either the ID of a server or a
Server
instance.network_id – The ID of the network from which a fixed IP address is about to be allocated.
- Returns
None
-
remove_fixed_ip_from_server
(server, address)¶ Removes a fixed IP address from a server instance.
- Parameters
server – Either the ID of a server or a
Server
instance.address – The fixed IP address to be disassociated from the server.
- Returns
None
-
add_floating_ip_to_server
(server, address, fixed_address=None)¶ Adds a floating IP address to a server instance.
- Parameters
server – Either the ID of a server or a
Server
instance.address – The floating IP address to be added to the server.
fixed_address – The fixed IP address to be associated with the floating IP address. Used when the server is connected to multiple networks.
- Returns
None
-
remove_floating_ip_from_server
(server, address)¶ Removes a floating IP address from a server instance.
- Parameters
server – Either the ID of a server or a
Server
instance.address – The floating IP address to be disassociated from the server.
- Returns
None
-
fetch_server_security_groups
(server)¶ Fetch security groups with details for a server.
-
add_security_group_to_server
(server, security_group)¶ Add a security group to a server
- Parameters
server – Either the ID of a server or a
Server
instance.security_group – Either the ID, Name of a security group or a
SecurityGroup
instance.
- Returns
None
-
remove_security_group_from_server
(server, security_group)¶ Remove a security group from a server
- Parameters
server – Either the ID of a server or a
Server
instance.security_group – Either the ID of a security group or a
SecurityGroup
instance.
- Returns
None
-
Starting, Stopping, etc.¶
-
class
openstack.compute.v2._proxy.
Proxy
(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs) -
start_server
(server)¶ Starts a stopped server and changes its state to
ACTIVE
.- Parameters
server – Either the ID of a server or a
Server
instance.- Returns
None
-
stop_server
(server)¶ Stops a running server and changes its state to
SHUTOFF
.- Parameters
server – Either the ID of a server or a
Server
instance.- Returns
None
-
suspend_server
(server)¶ Suspends a server and changes its status to
SUSPENDED
.- Parameters
server – Either the ID of a server or a
Server
instance.- Returns
None
-
resume_server
(server)¶ Resumes a suspended server and changes its status to
ACTIVE
.- Parameters
server – Either the ID of a server or a
Server
instance.- Returns
None
-
reboot_server
(server, reboot_type)¶ Reboot a server
- Parameters
server – Either the ID of a server or a
Server
instance.reboot_type (str) – The type of reboot to perform. “HARD” and “SOFT” are the current options.
- Returns
None
-
shelve_server
(server)¶ Shelves a server.
All associated data and resources are kept but anything still in memory is not retained. Policy defaults enable only users with administrative role or the owner of the server to perform this operation. Cloud provides could change this permission though.
- Parameters
server – Either the ID of a server or a
Server
instance.- Returns
None
-
unshelve_server
(server)¶ Unselves or restores a shelved server.
Policy defaults enable only users with administrative role or the owner of the server to perform this operation. Cloud provides could change this permission though.
- Parameters
server – Either the ID of a server or a
Server
instance.- Returns
None
-
lock_server
(server)¶ Locks a server.
- Parameters
server – Either the ID of a server or a
Server
instance.- Returns
None
-
unlock_server
(server)¶ Unlocks a locked server.
- Parameters
server – Either the ID of a server or a
Server
instance.- Returns
None
-
pause_server
(server)¶ Pauses a server and changes its status to
PAUSED
.- Parameters
server – Either the ID of a server or a
Server
instance.- Returns
None
-
unpause_server
(server)¶ Unpauses a paused server and changes its status to
ACTIVE
.- Parameters
server – Either the ID of a server or a
Server
instance.- Returns
None
-
rescue_server
(server, admin_pass=None, image_ref=None)¶ Puts a server in rescue mode and changes it status to
RESCUE
.- Parameters
server – Either the ID of a server or a
Server
instance.admin_pass – The password for the rescued server. If you omit this parameter, the operation generates a new password.
image_ref – The image reference to use to rescue your server. This can be the image ID or its full URL. If you omit this parameter, the base image reference will be used.
- Returns
None
-
unrescue_server
(server)¶ Unrescues a server and changes its status to
ACTIVE
.- Parameters
server – Either the ID of a server or a
Server
instance.- Returns
None
-
evacuate_server
(server, host=None, admin_pass=None, force=None)¶ Evacuates a server from a failed host to a new host.
- Parameters
server – Either the ID of a server or a
Server
instance.host – An optional parameter specifying the name or ID of the host to which the server is evacuated.
admin_pass – An optional parameter specifying the administrative password to access the evacuated or rebuilt server.
force – Force an evacuation by not verifying the provided destination host by the scheduler. (New in API version 2.29).
- Returns
None
-
migrate_server
(server)¶ Migrate a server from one host to another
- Parameters
server – Either the ID of a server or a
Server
instance.- Returns
None
-
get_server_console_output
(server, length=None)¶ Return the console output for a server.
- Parameters
server – Either the ID of a server or a
Server
instance.length – Optional number of line to fetch from the end of console log. All lines will be returned if this is not specified.
- Returns
The console output as a dict. Control characters will be escaped to create a valid JSON string.
-
live_migrate_server
(server, host=None, force=False, block_migration=None)¶ Live migrate a server from one host to target host
- Parameters
server – Either the ID of a server or a
Server
instance.host (str) – The host to which to migrate the server. If the Nova service is too old, the host parameter implies force=True which causes the Nova scheduler to be bypassed. On such clouds, a
ValueError
will be thrown ifhost
is given withoutforce
.force (bool) – Force a live-migration by not verifying the provided destination host by the scheduler. This is unsafe and not recommended.
block_migration – Perform a block live migration to the destination host by the scheduler. Can be ‘auto’, True or False. Some clouds are too old to support ‘auto’, in which case a ValueError will be thrown. If omitted, the value will be ‘auto’ on clouds that support it, and False on clouds that do not.
- Returns
None
-
Modifying a Server¶
-
class
openstack.compute.v2._proxy.
Proxy
(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs) -
resize_server
(server, flavor)¶ Resize a server
-
confirm_server_resize
(server)¶ Confirm a server resize
- Parameters
server – Either the ID of a server or a
Server
instance.- Returns
None
-
revert_server_resize
(server)¶ Revert a server resize
- Parameters
server – Either the ID of a server or a
Server
instance.- Returns
None
-
rebuild_server
(server, name, admin_password, **attrs)¶ Rebuild a server
- Parameters
server – Either the ID of a server or a
Server
instance.name (str) – The name of the server
admin_password (str) – The administrator password
preserve_ephemeral (bool) – Indicates whether the server is rebuilt with the preservation of the ephemeral partition. Default: False
image (str) – The id of an image to rebuild with. Default: None
access_ipv4 (str) – The IPv4 address to rebuild with. Default: None
access_ipv6 (str) – The IPv6 address to rebuild with. Default: None
metadata (dict) – A dictionary of metadata to rebuild with. Default: None
personality – A list of dictionaries, each including a path and contents key, to be injected into the rebuilt server at launch. Default: None
- Returns
The rebuilt
Server
instance.
-
reset_server_state
(server, state)¶ Reset the state of server
- Parameters
server – The server can be either the ID of a server or a
Server
.state – The state of the server to be set, active or error are valid.
- Returns
None
-
Image Operations¶
-
class
openstack.compute.v2._proxy.
Proxy
(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs) -
images
(details=True, **query)¶ Return a generator of images
- Parameters
details (bool) – When
True
, returnsImage
objects with all available properties, otherwise only basic properties are returned. Default: ``True``query (kwargs) – Optional query parameters to be sent to limit the resources being returned.
- Returns
A generator of image objects
-
get_image
(image)¶ Get a single image
-
find_image
(name_or_id, ignore_missing=True)¶ Find a single image
- Parameters
name_or_id – The name or ID of a image.
ignore_missing (bool) – When set to
False
ResourceNotFound
will be raised when the resource does not exist. When set toTrue
, None will be returned when attempting to find a nonexistent resource.
- Returns
One
Image
or None
-
delete_image
(image, ignore_missing=True)¶ Delete an image
- Parameters
image – The value can be either the ID of an image or a
Image
instance.ignore_missing (bool) – When set to
False
ResourceNotFound
will be raised when the image does not exist. When set toTrue
, no exception will be set when attempting to delete a nonexistent image.
- Returns
None
-
get_image_metadata
(image)¶ Return a dictionary of metadata for an image
-
set_image_metadata
(image, **metadata)¶ Update metadata for an image
- Parameters
image – Either the ID of an image or a
Image
instance.metadata (kwargs) – Key/value pairs to be updated in the image’s metadata. No other metadata is modified by this call. All keys and values are stored as Unicode.
- Returns
A
Image
with only the image’s metadata. All keys and values are Unicode text.- Return type
-
Flavor Operations¶
-
class
openstack.compute.v2._proxy.
Proxy
(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs) -
create_flavor
(**attrs)¶ Create a new flavor from attributes
-
delete_flavor
(flavor, ignore_missing=True)¶ Delete a flavor
- Parameters
flavor – The value can be either the ID of a flavor or a
Flavor
instance.ignore_missing (bool) – When set to
False
ResourceNotFound
will be raised when the flavor does not exist. When set toTrue
, no exception will be set when attempting to delete a nonexistent flavor.
- Returns
None
-
get_flavor
(flavor)¶ Get a single flavor
-
find_flavor
(name_or_id, ignore_missing=True)¶ Find a single flavor
- Parameters
name_or_id – The name or ID of a flavor.
ignore_missing (bool) – When set to
False
ResourceNotFound
will be raised when the resource does not exist. When set toTrue
, None will be returned when attempting to find a nonexistent resource.
- Returns
One
Flavor
or None
-
flavors
(details=True, **query)¶ Return a generator of flavors
- Parameters
details (bool) – When
True
, returnsFlavorDetail
objects, otherwiseFlavor
. Default: ``True``query (kwargs) – Optional query parameters to be sent to limit the flavors being returned.
- Returns
A generator of flavor objects
-
Service Operations¶
-
class
openstack.compute.v2._proxy.
Proxy
(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs) -
services
()¶ Return a generator of service
- Returns
A generator of service
- Return type
class: ~openstack.compute.v2.service.Service
-
enable_service
(service, host, binary)¶ Enable a service
- Parameters
service – Either the ID of a service or a
Service
instance.host (str) – The host where service runs.
binary (str) – The name of service.
- Returns
None
-
disable_service
(service, host, binary, disabled_reason=None)¶ Disable a service
- Parameters
service – Either the ID of a service or a
Service
instance.host (str) – The host where service runs.
binary (str) – The name of service.
disabled_reason (str) – The reason of force down a service.
- Returns
None
-
force_service_down
(service, host, binary)¶ Force a service down
- Parameters
service – Either the ID of a service or a
Service
instance.host (str) – The host where service runs.
binary (str) – The name of service.
- Returns
None
-
Volume Attachment Operations¶
-
class
openstack.compute.v2._proxy.
Proxy
(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs) -
create_volume_attachment
(server, **attrs)¶ Create a new volume attachment from attributes
- Parameters
server – The server can be either the ID of a server or a
Server
instance.attrs (dict) – Keyword arguments which will be used to create a
VolumeAttachment
, comprised of the properties on the VolumeAttachment class.
- Returns
The results of volume attachment creation
- Return type
VolumeAttachment
-
update_volume_attachment
(volume_attachment, server, **attrs)¶ update a volume attachment
- Parameters
volume_attachment – The value can be either the ID of a volume attachment or a
VolumeAttachment
instance.server – This parameter need to be specified when VolumeAttachment ID is given as value. It can be either the ID of a server or a
Server
instance that the attachment belongs to.ignore_missing (bool) – When set to
False
ResourceNotFound
will be raised when the volume attachment does not exist. When set toTrue
, no exception will be set when attempting to delete a nonexistent volume attachment.
- Returns
None
-
delete_volume_attachment
(volume_attachment, server, ignore_missing=True)¶ Delete a volume attachment
- Parameters
volume_attachment – The value can be either the ID of a volume attachment or a
VolumeAttachment
instance.server – This parameter need to be specified when VolumeAttachment ID is given as value. It can be either the ID of a server or a
Server
instance that the attachment belongs to.ignore_missing (bool) – When set to
False
ResourceNotFound
will be raised when the volume attachment does not exist. When set toTrue
, no exception will be set when attempting to delete a nonexistent volume attachment.
- Returns
None
-
get_volume_attachment
(volume_attachment, server, ignore_missing=True)¶ Get a single volume attachment
- Parameters
volume_attachment – The value can be the ID of a volume attachment or a
VolumeAttachment
instance.server – This parameter need to be specified when VolumeAttachment ID is given as value. It can be either the ID of a server or a
Server
instance that the attachment belongs to.ignore_missing (bool) – When set to
False
ResourceNotFound
will be raised when the volume attachment does not exist. When set toTrue
, no exception will be set when attempting to delete a nonexistent volume attachment.
- Returns
One
VolumeAttachment
- Raises
ResourceNotFound
when no resource can be found.
-
Keypair Operations¶
-
class
openstack.compute.v2._proxy.
Proxy
(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs) -
create_keypair
(**attrs)¶ Create a new keypair from attributes
-
delete_keypair
(keypair, ignore_missing=True)¶ Delete a keypair
- Parameters
keypair – The value can be either the ID of a keypair or a
Keypair
instance.ignore_missing (bool) – When set to
False
ResourceNotFound
will be raised when the keypair does not exist. When set toTrue
, no exception will be set when attempting to delete a nonexistent keypair.
- Returns
None
-
get_keypair
(keypair)¶ Get a single keypair
-
find_keypair
(name_or_id, ignore_missing=True)¶ Find a single keypair
- Parameters
name_or_id – The name or ID of a keypair.
ignore_missing (bool) – When set to
False
ResourceNotFound
will be raised when the resource does not exist. When set toTrue
, None will be returned when attempting to find a nonexistent resource.
- Returns
One
Keypair
or None
-
Server IPs¶
-
class
openstack.compute.v2._proxy.
Proxy
(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
Server Group Operations¶
-
class
openstack.compute.v2._proxy.
Proxy
(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs) -
create_server_group
(**attrs)¶ Create a new server group from attributes
- Parameters
attrs (dict) – Keyword arguments which will be used to create a
ServerGroup
, comprised of the properties on the ServerGroup class.- Returns
The results of server group creation
- Return type
ServerGroup
-
delete_server_group
(server_group, ignore_missing=True)¶ Delete a server group
- Parameters
server_group – The value can be either the ID of a server group or a
ServerGroup
instance.ignore_missing (bool) – When set to
False
ResourceNotFound
will be raised when the server group does not exist. When set toTrue
, no exception will be set when attempting to delete a nonexistent server group.
- Returns
None
-
get_server_group
(server_group)¶ Get a single server group
- Parameters
server_group – The value can be the ID of a server group or a
ServerGroup
instance.- Returns
A
ServerGroup
object.- Raises
ResourceNotFound
when no resource can be found.
-
find_server_group
(name_or_id, ignore_missing=True)¶ Find a single server group
- Parameters
name_or_id – The name or ID of a server group.
ignore_missing (bool) – When set to
False
ResourceNotFound
will be raised when the resource does not exist. When set toTrue
, None will be returned when attempting to find a nonexistent resource.
- Returns
One
ServerGroup
object or None
-
server_groups
(**query)¶ Return a generator of server groups
- Parameters
query (kwargs) – Optional query parameters to be sent to limit the resources being returned.
- Returns
A generator of ServerGroup objects
- Return type
ServerGroup
-
Server Interface Operations¶
-
class
openstack.compute.v2._proxy.
Proxy
(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs) -
create_server_interface
(server, **attrs)¶ Create a new server interface from attributes
- Parameters
server – The server can be either the ID of a server or a
Server
instance that the interface belongs to.attrs (dict) – Keyword arguments which will be used to create a
ServerInterface
, comprised of the properties on the ServerInterface class.
- Returns
The results of server interface creation
- Return type
-
delete_server_interface
(server_interface, server=None, ignore_missing=True)¶ Delete a server interface
- Parameters
server_interface – The value can be either the ID of a server interface or a
ServerInterface
instance.server – This parameter need to be specified when ServerInterface ID is given as value. It can be either the ID of a server or a
Server
instance that the interface belongs to.ignore_missing (bool) – When set to
False
ResourceNotFound
will be raised when the server interface does not exist. When set toTrue
, no exception will be set when attempting to delete a nonexistent server interface.
- Returns
None
-
get_server_interface
(server_interface, server=None)¶ Get a single server interface
- Parameters
server_interface – The value can be the ID of a server interface or a
ServerInterface
instance.server – This parameter need to be specified when ServerInterface ID is given as value. It can be either the ID of a server or a
Server
instance that the interface belongs to.
- Returns
One
ServerInterface
- Raises
ResourceNotFound
when no resource can be found.
-
Availability Zone Operations¶
-
class
openstack.compute.v2._proxy.
Proxy
(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs) -
availability_zones
(details=False)¶ Return a generator of availability zones
- Parameters
details (bool) – Return extra details about the availability zones. This defaults to False as it generally requires extra permission.
- Returns
A generator of availability zone
- Return type
AvailabilityZone
-
Limits Operations¶
-
class
openstack.compute.v2._proxy.
Proxy
(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs) -
get_limits
()¶ Retrieve limits that are applied to the project’s account
- Returns
A Limits object, including both
AbsoluteLimits
andRateLimits
- Return type
-
Hypervisor Operations¶
-
class
openstack.compute.v2._proxy.
Proxy
(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs) -
get_hypervisor
(hypervisor)¶ Get a single hypervisor
- Parameters
hypervisor – The value can be the ID of a hypervisor or a
Hypervisor
instance.- Returns
A
Hypervisor
object.- Raises
ResourceNotFound
when no resource can be found.
-
find_hypervisor
(name_or_id, ignore_missing=True)¶ Find a hypervisor from name or id to get the corresponding info
- Parameters
name_or_id – The name or id of a hypervisor
- Returns
One: class:~openstack.compute.v2.hypervisor.Hypervisor object or None
-
hypervisors
(details=False, **query)¶ Return a generator of hypervisor
- Parameters
details (bool) – When set to the default,
False
,Hypervisor
instances will be returned with only basic information populated.query (kwargs) – Optional query parameters to be sent to limit the resources being returned.
- Returns
A generator of hypervisor
- Return type
class: ~openstack.compute.v2.hypervisor.Hypervisor
-
Extension Operations¶
-
class
openstack.compute.v2._proxy.
Proxy
(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs) -
find_extension
(name_or_id, ignore_missing=True)¶ Find a single extension
- Parameters
name_or_id – The name or ID of an extension.
ignore_missing (bool) – When set to
False
ResourceNotFound
will be raised when the resource does not exist. When set toTrue
, None will be returned when attempting to find a nonexistent resource.
- Returns
One
Extension
or None
-