The nova.compute.utils Module

Compute-related Utilities and helpers.

class EventReporter(context, event_name, *instance_uuids)

Bases: object

Context manager to report instance action events.

class UnlimitedSemaphore

Bases: object

balance
add_instance_fault_from_exc(context, instance, fault, exc_info=None)

Adds the specified fault to the database.

default_device_names_for_instance(instance, root_device_name, *block_device_lists)

Generate missing device names for an instance.

downsize_quota_delta(context, instance)

Calculate deltas required to adjust quota for an instance downsize.

exception_to_dict(fault)

Converts exceptions to a dict for use in notifications.

get_device_name_for_instance(instance, bdms, device)

Validates (or generates) a device name for instance.

This method is a wrapper for get_next_device_name that gets the list of used devices and the root device from a block device mapping.

get_inst_attrs_from_migration(migration, instance)

Get the instance vcpus and memory_mb attributes.

Provides instance vcpus and memory_mb attributes according to old flavor type using migration object if old flavor exists.

get_machine_ips()

Get the machine’s ip addresses

Returns:list of Strings of ip addresses
get_next_device_name(instance, device_name_list, root_device_name=None, device=None)

Validates (or generates) a device name for instance.

If device is not set, it will generate a unique device appropriate for the instance. It uses the root_device_name (if provided) and the list of used devices to find valid device names. If the device name is valid but applicable to a different backend (for example /dev/vdc is specified but the backend uses /dev/xvdc), the device name will be converted to the appropriate format.

get_nw_info_for_instance(instance)
get_reboot_type(task_state, current_power_state)

Checks if the current instance state requires a HARD reboot.

get_value_from_system_metadata(instance, key, type, default)

Get a value of a specified type from image metadata.

@param instance: The instance object @param key: The name of the property to get @param type: The python type the value is be returned as @param default: The value to return if key is not set or not the right type

notify_about_aggregate_update(context, event_suffix, aggregate_payload)

Send a notification about aggregate update.

Parameters:
  • event_suffix – Event type like “create.start” or “create.end”
  • aggregate_payload – payload for aggregate update
notify_about_host_update(context, event_suffix, host_payload)

Send a notification about host update.

Parameters:
  • event_suffix – Event type like “create.start” or “create.end”
  • host_payload – payload for host update. It is a dict and there should be at least the ‘host_name’ key in this dict.
notify_about_instance_usage(notifier, context, instance, event_suffix, network_info=None, system_metadata=None, extra_usage_info=None, fault=None)

Send a notification about an instance.

Parameters:
  • notifier – a messaging.Notifier
  • event_suffix – Event type like “delete.start” or “exists”
  • network_info – Networking information, if provided.
  • system_metadata – system_metadata DB entries for the instance, if provided.
  • extra_usage_info – Dictionary containing extra values to add or override in the notification.
notify_about_server_group_update(context, event_suffix, sg_payload)

Send a notification about server group update.

Parameters:
  • event_suffix – Event type like “create.start” or “create.end”
  • sg_payload – payload for server group update
notify_usage_exists(notifier, context, instance_ref, current_period=False, ignore_missing_network_data=True, system_metadata=None, extra_usage_info=None)

Generates ‘exists’ notification for an instance for usage auditing purposes.

Parameters:
  • notifier – a messaging.Notifier
  • current_period – if True, this will generate a usage for the current usage period; if False, this will generate a usage for the previous audit period.
  • ignore_missing_network_data – if True, log any exceptions generated while getting network info; if False, raise the exception.
  • system_metadata – system_metadata DB entries for the instance, if not None. NOTE: Currently unused here in trunk, but needed for potential custom modifications.
  • extra_usage_info – Dictionary containing extra values to add or override in the notification if not None.
refresh_info_cache_for_instance(context, instance)

Refresh the info cache for an instance.

Parameters:instance – The instance object.
remove_shelved_keys_from_system_metadata(instance)
reserve_quota_delta(context, deltas, instance)

If there are deltas to reserve, construct a Quotas object and reserve the deltas for the given project.

Parameters:
  • context – The nova request context.
  • deltas – A dictionary of the proposed delta changes.
  • instance – The instance we’re operating on, so that quotas can use the correct project_id/user_id.
Returns:

nova.objects.quotas.Quotas

resize_quota_delta(context, new_flavor, old_flavor, sense, compare)

Calculate any quota adjustment required at a particular point in the resize cycle.

Parameters:
  • context – the request context
  • new_flavor – the target instance type
  • old_flavor – the original instance type
  • sense – the sense of the adjustment, 1 indicates a forward adjustment, whereas -1 indicates a reversal of a prior adjustment
  • compare – the direction of the comparison, 1 indicates we’re checking for positive deltas, whereas -1 indicates negative deltas
reverse_upsize_quota_delta(context, instance)

Calculate deltas required to reverse a prior upsizing quota adjustment.

upsize_quota_delta(context, new_flavor, old_flavor)

Calculate deltas required to adjust quota for an instance upsize.

usage_volume_info(vol_usage)

Previous topic

The nova.compute.task_states Module

Next topic

The nova.compute.vm_mode Module

Project Source

This Page