The cinder.volume.utils Module

Volume-related Utilities and helpers.

append_host(host, pool)

Encode pool into host info.

check_already_managed_volume(db, vol_name)

Check cinder db for already managed volume.

Parameters:
  • db – database api parameter
  • vol_name – volume name parameter
Returns:

bool – return True, if db entry with specified volume name exist, otherwise return False

check_for_odirect_support(src, dest, flag='oflag=direct')
clear_volume(volume_size, volume_path, volume_clear=None, volume_clear_size=None, volume_clear_ionice=None, throttle=None)

Unprovision old volumes to prevent data leaking between users.

convert_config_string_to_dict(config_string)

Convert config file replication string to a dict.

The only supported form is as follows: “{‘key-1’=’val-1’ ‘key-2’=’val-2’...}”

Parameters:config_string – Properly formatted string to convert to dict.
Response:dict of string values
copy_volume(src, dest, size_in_m, blocksize, sync=False, execute=<function execute at 0x7f986ed44f50>, ionice=None, throttle=None, sparse=False)

Copy data from the source volume to the destination volume.

The parameters ‘src’ and ‘dest’ are both typically of type str, which represents the path to each volume on the filesystem. Connectors can optionally return a volume handle of type RawIOBase for volumes that are not available on the local filesystem for open/close operations.

If either ‘src’ or ‘dest’ are not of type str, then they are assumed to be of type RawIOBase or any derivative that supports file operations such as read and write. In this case, the handles are treated as file handles instead of file paths and, at present moment, throttling is unavailable.

extract_host(host, level='backend', default_pool_name=False)

Extract Host, Backend or Pool information from host string.

Parameters:
  • host – String for host, which could include host@backend#pool info
  • level – Indicate which level of information should be extracted from host string. Level can be ‘host’, ‘backend’ or ‘pool’, default value is ‘backend’
  • default_pool_name – this flag specify what to do if level == ‘pool’ and there is no ‘pool’ info encoded in host string. default_pool_name=True will return DEFAULT_POOL_NAME, otherwise we return None. Default value of this parameter is False.
Returns:

expected level of information

For example:

host = 'HostA@BackendB#PoolC‘ ret = extract_host(host, ‘host’) # ret is ‘HostA’ ret = extract_host(host, ‘backend’) # ret is 'HostA@BackendB‘ ret = extract_host(host, ‘pool’) # ret is ‘PoolC’

host = 'HostX@BackendY‘ ret = extract_host(host, ‘pool’) # ret is None ret = extract_host(host, ‘pool’, True) # ret is ‘_pool0’

generate_password(length=16, symbolgroups=('23456789', 'ABCDEFGHJKLMNPQRSTUVWXYZ', 'abcdefghijkmnopqrstuvwxyz'))

Generate a random password from the supplied symbol groups.

At least one symbol from each group will be included. Unpredictable results if length is less than the number of symbol groups.

Believed to be reasonably secure (with a reasonable password length!)

generate_username(length=20, symbolgroups=('23456789', 'ABCDEFGHJKLMNPQRSTUVWXYZ', 'abcdefghijkmnopqrstuvwxyz'))
get_all_physical_volumes(vg_name=None)
get_all_volume_groups(vg_name=None)
hosts_are_equivalent(host_1, host_2)
matching_backend_name(src_volume_type, volume_type)
notify_about_backup_usage(context, backup, event_suffix, extra_usage_info=None, host=None)
notify_about_cgsnapshot_usage(context, cgsnapshot, event_suffix, extra_usage_info=None, host=None)
notify_about_consistencygroup_usage(context, group, event_suffix, extra_usage_info=None, host=None)
notify_about_replication_error(context, volume, suffix, extra_error_info=None, host=None)
notify_about_replication_usage(context, volume, suffix, extra_usage_info=None, host=None)
notify_about_snapshot_usage(context, snapshot, event_suffix, extra_usage_info=None, host=None)
notify_about_volume_usage(context, volume, event_suffix, extra_usage_info=None, host=None)
null_safe_str(s)
process_reserve_over_quota(context, overs, usages, quotas, size)
read_proc_mounts()

Read the /proc/mounts file.

It’s a dummy function but it eases the writing of unit tests as mocking __builtin__open() for a specific file only is not trivial.

supports_thin_provisioning()

Previous topic

The cinder.volume.throttling Module

Next topic

The cinder.volume.volume_types Module

Project Source

This Page