# Other Class Definitions

## Wrapper

class curator.classdef.Wrapper(cls)

  Bases: `object`

  Wrapper Class

  Instantiate with passed Class (not instance or object)

  Parameters:

    cls – A class (not an instance of the class)

  class_instance

    An instance of `class_object`

  class_object

    The class itself (not an instance of it), passed from `cls`

  get_instance(*args, **kwargs)

    Return the instance with `*args` and `**kwargs`

  set_instance(*args, **kwargs)

    Set up `class_instance` from `class_object`

## ActionsFile

class curator.classdef.ActionsFile(action_file)

  Bases: `object`

  Class to parse and verify entire actions file

  Individual actions are `ActionDef` objects

  actions

    A dict of all actions in the provided configuration. Each original key name is preserved and the value is now an `ActionDef`, rather than a dict.

  fullconfig

    The full, validated configuration from `action_file`.

  get_validated(action_file)
    Parameters:

      action_file (str) – The path to a valid YAML action configuration file

    Returns:

      The result from passing `action_file` to `validate_actions()`

  parse_actions(all_actions)

    Parse the individual actions found in `all_actions['actions']`

    Parameters:

      all_actions (dict) – All actions, each its own dictionary behind a numeric key. Making the keys numeric guarantees that if they are sorted, they will always be executed in order.

    Returns:

    Return type:

      list of `ActionDef`

  set_actions(all_actions)

    Set the actions via `parse_actions()`

    Parameters:

      all_actions (dict) – All actions, each its own dictionary behind a numeric key. Making the keys numeric guarantees that if they are sorted, they will always be executed in order.

    Return type:

      None

## ActionDef

class curator.classdef.ActionDef(action_dict)

  Bases: `object`

  Individual Action Definition Class

  Instances of this class represent an individual action from an action file.

  action

    The action name

  action_cls

    The action’s class (Alias, Allocation, etc.)

  action_dict

    The whole action dictionary

  alias_adds

    Only when action is alias will this be a `IndexList`

  alias_removes

    Only when action is alias will this be a `IndexList`

  allow_ilm

    The action option `allow_ilm_indices`

  cif

    The action option `continue_if_exception`

  description

    The action `description`

  disabled

    The action option `disable_action`

  filters

    The action `filters` `list`

  get_action_class()

    Get the action class from `CLASS_MAP`

    Do extra setup when action is `alias`

    Set `list_obj` to `SnapshotList` when `action` is `delete_snapshots` or `restore`

  get_obj_instance(wrapper, *args, **kwargs)

    Get the class instance wrapper identified by `wrapper` Pass all other args and kwargs to the `get_instance()` method.

    Returns:

      An instance of the class that `Wrapper` is wrapping

  iel

    The action option `ignore_empty_list`

  instantiate(attribute, *args, **kwargs)

    Convert `attribute` from being a `Wrapper` of a Class to an instantiated object of that Class.

    This is madness or genius. You decide. This entire method plus the `Wrapper` class came about because I couldn’t cleanly instantiate a class variable into a class object. It works, and that’s good enough for me.

    Parameters:

      attribute (str) – The name of an attribute that references a Wrapper class instance

  list_obj

    The list class, either `IndexList` or `SnapshotList`. Default is `IndexList`

  log_the_options()

    Log options at initialization time

  options

    The action `options` `dict`

  set_alias_extras()

    Populate the `alias_adds` and `alias_removes` attributes

  set_option_attrs()

    Iteratively get the keys and values from `options` and set the attributes

  set_root_attrs()

    Iteratively get the keys and values from `action_dict` and set the attributes

  timeout_override

    The action option `timeout_override`