ironicclient.common.utils module

class ironicclient.common.utils.HelpFormatter(prog, indent_increment=2, max_help_position=24, width=None)[source]

Bases: HelpFormatter

start_section(heading)[source]
ironicclient.common.utils.args_array_to_dict(kwargs, key_to_convert)[source]

Convert the value in a dictionary entry to a dictionary.

From the kwargs dictionary, converts the value of the key_to_convert entry from a list of key-value pairs to a dictionary.

Parameters:
  • kwargs – a dictionary

  • key_to_convert – the key (in kwargs), whose value is expected to be a list of key=value strings. This value will be converted to a dictionary.

Returns:

kwargs, the (modified) dictionary

ironicclient.common.utils.args_array_to_patch(op, attributes)[source]
ironicclient.common.utils.bool_argument_value(arg_name, bool_str, strict=True, default=False)[source]

Returns the Boolean represented by bool_str.

Returns the Boolean value for the argument named arg_name. The value is represented by the string bool_str. If the string is an invalid Boolean string: if strict is True, a CommandError exception is raised; otherwise the default value is returned.

Parameters:
  • arg_name – The name of the argument

  • bool_str – The string representing a Boolean value

  • strict – Used if the string is invalid. If True, raises an exception. If False, returns the default value.

  • default – The default value to return if the string is invalid and not strict

Returns:

the Boolean value represented by bool_str or the default value if bool_str is invalid and strict is False

Raises:

CommandError – if bool_str is an invalid Boolean string

ironicclient.common.utils.check_empty_arg(arg, arg_descriptor)[source]
ironicclient.common.utils.check_for_invalid_fields(fields, valid_fields)[source]

Check for invalid fields.

Parameters:
  • fields – A list of fields specified by the user.

  • valid_fields – A list of valid fields.

Raises:

CommandError – If invalid fields were specified by the user.

ironicclient.common.utils.common_filters(marker=None, limit=None, sort_key=None, sort_dir=None, fields=None, detail=False)[source]

Generate common filters for any list request.

Parameters:
  • marker – entity ID from which to start returning entities.

  • limit – maximum number of entities to return.

  • sort_key – field to use for sorting.

  • sort_dir – direction of sorting: ‘asc’ or ‘desc’.

  • fields – a list with a specified set of fields of the resource to be returned.

  • detail – Boolean, True to return detailed information. This parameter can be used for resources which accept ‘detail’ as a URL parameter.

Returns:

list of string filters.

ironicclient.common.utils.common_params_for_list(args, fields, field_labels)[source]

Generate ‘params’ dict that is common for every ‘list’ command.

Parameters:
  • args – arguments from command line.

  • fields – possible fields for sorting.

  • field_labels – possible field labels for sorting.

Returns:

a dict with params to pass to the client method.

ironicclient.common.utils.convert_list_props_to_comma_separated(data, props=None)[source]

Convert the list-type properties to comma-separated strings

Parameters:
  • data – the input dict object.

  • props – the properties whose values will be converted. Default to None to convert all list-type properties of the input.

Returns:

the result dict instance.

ironicclient.common.utils.define_command(subparsers, command, callback, cmd_mapper)[source]

Define a command in the subparsers collection.

Parameters:
  • subparsers – subparsers collection where the command will go

  • command – command name

  • callback – function that will be used to process the command

ironicclient.common.utils.define_commands_from_module(subparsers, command_module, cmd_mapper)[source]

Add do_ methods in a module and add as commands into a subparsers.

ironicclient.common.utils.get_from_stdin(info_desc)[source]

Read information from stdin.

Parameters:

info_desc – A string description of the desired information

Raises:

InvalidAttribute if there was a problem reading from stdin

Returns:

the string that was read from stdin

ironicclient.common.utils.get_json_data(data)[source]

Check if the binary data is JSON and parse it if so.

Only supports dictionaries.

ironicclient.common.utils.handle_json_arg(json_arg, info_desc)[source]

Read a JSON argument from stdin, file or string.

Parameters:
  • json_arg – May be a file name containing the JSON, a JSON string, or ‘-’ indicating that the argument should be read from standard input.

  • info_desc – A string description of the desired information

Returns:

A list or dictionary parsed from JSON.

Raises:

InvalidAttribute if the argument cannot be parsed.

ironicclient.common.utils.handle_json_or_file_arg(json_arg)[source]

Attempts to read JSON argument from file or string.

Parameters:

json_arg – May be a file name containing the YAML or JSON, or a JSON string.

Returns:

A list or dictionary parsed from JSON.

Raises:

InvalidAttribute if the argument cannot be parsed.

ironicclient.common.utils.key_value_pairs_to_dict(key_value_pairs)[source]

Convert a list of key-value pairs to a dictionary.

Parameters:

key_value_pairs – a list of strings, each string is in the form <key>=<value>

Returns:

a dictionary, possibly empty

ironicclient.common.utils.make_configdrive(path)[source]

Make the config drive file.

Parameters:

path – The directory containing the config drive files.

Returns:

A gzipped and base64 encoded configdrive string.

ironicclient.common.utils.poll(timeout, poll_interval, poll_delay_function, timeout_message)[source]
ironicclient.common.utils.split_and_deserialize(string)[source]

Split and try to JSON deserialize a string.

Gets a string with the KEY=VALUE format, split it (using ‘=’ as the separator) and try to JSON deserialize the VALUE.

Returns:

A tuple of (key, value).

ironicclient.common.utils.tempdir(*args, **kwargs)[source]