The cinder.openstack.common.strutils Module

System-level utilities and helper functions.

bool_from_string(subject, strict=False, default=False)

Interpret a string as a boolean.

A case-insensitive match is performed such that strings matching ‘t’, ‘true’, ‘on’, ‘y’, ‘yes’, or ‘1’ are considered True and, when strict=False, anything else returns the value specified by ‘default’.

Useful for JSON-decoded stuff and config file parsing.

If strict=True, unrecognized values, including None, will raise a ValueError which is useful when parsing values passed in from an API call. Strings yielding False are ‘f’, ‘false’, ‘off’, ‘n’, ‘no’, or ‘0’.

int_from_bool_as_string(subject)

Interpret a string as a boolean and return either 1 or 0.

Any string value in:

(‘True’, ‘true’, ‘On’, ‘on’, ‘1’)

is interpreted as a boolean True.

Useful for JSON-decoded stuff and config file parsing

mask_password(message, secret='***')

Replace password with ‘secret’ in message.

Parameters:
  • message – The string which includes security information.
  • secret – value with which to replace passwords.
Returns:

The unicode value of message with the password fields masked.

For example:

>>> mask_password("'adminPass' : 'aaaaa'")
"'adminPass' : '***'"
>>> mask_password("'admin_pass' : 'aaaaa'")
"'admin_pass' : '***'"
>>> mask_password('"password" : "aaaaa"')
'"password" : "***"'
>>> mask_password("'original_password' : 'aaaaa'")
"'original_password' : '***'"
>>> mask_password("u'original_password' :   u'aaaaa'")
"u'original_password' :   u'***'"
safe_decode(text, incoming=None, errors='strict')

Decodes incoming text/bytes string using incoming if they’re not already unicode.

Parameters:
Returns:

text or a unicode incoming encoded representation of it.

Raises TypeError:
 

If text is not an instance of str

safe_encode(text, incoming=None, encoding='utf-8', errors='strict')

Encodes incoming text/bytes string using encoding.

If incoming is not specified, text is expected to be encoded with current python’s default encoding. (sys.getdefaultencoding)

Parameters:
Returns:

text or a bytestring encoding encoded representation of it.

Raises TypeError:
 

If text is not an instance of str

string_to_bytes(text, unit_system='IEC', return_int=False)

Converts a string into an float representation of bytes.

The units supported for IEC

Kb(it), Kib(it), Mb(it), Mib(it), Gb(it), Gib(it), Tb(it), Tib(it)
KB, KiB, MB, MiB, GB, GiB, TB, TiB

The units supported for SI

kb(it), Mb(it), Gb(it), Tb(it)
kB, MB, GB, TB

Note that the SI unit system does not support capital letter ‘K’

Parameters:
  • text – String input for bytes size conversion.
  • unit_system – Unit system for byte size conversion.
  • return_int – If True, returns integer representation of text in bytes. (default: decimal)
Returns:

Numerical representation of text in bytes.

Raises ValueError:
 

If text has an invalid value.

to_slug(value, incoming=None, errors='strict')

Normalize string.

Convert to lowercase, remove non-word characters, and convert spaces to hyphens.

Inspired by Django’s slugify filter.

Parameters:
Returns:

slugified unicode representation of value

Raises TypeError:
 

If text is not an instance of str

Previous topic

The cinder.openstack.common.sslutils Module

Next topic

The cinder.openstack.common.systemd Module

This Page