# custodian.ansible.actions module

This module defines various classes of supported actions. All actions are implemented as static methods, but are defined using classes (as opposed to modules) so that a set of well-defined actions can be namespaced easily.

## class custodian.ansible.actions.DictActions()

Bases: `object`

Class to implement the supported mongo-like modifications on a dict. Supported keywords include the following Mongo-based keywords, with the usual meanings (refer to Mongo documentation for information):

> _inc _set _unset _push _push_all _add_to_set (but _each is not supported) _pop _pull _pull_all _rename

However, note that “_set” does not support modification of nested dicts using the mongo {“a.b”:1} notation. This is because mongo does not allow keys with “.” to be inserted. Instead, nested dict modification is supported using a special “->” keyword, e.g. {“a->b”: 1}

### static add_to_set(input_dict, settings)

Add to set using MongoDB syntax.

- Parameters

  - input_dict (dict) – The input dictionary to be modified.

  - settings (dict) – The specification of the modification to be made.

### static inc(input_dict, settings)

Increment a value using MongdoDB syntax.

- Parameters

  - input_dict (dict) – The input dictionary to be modified.

  - settings (dict) – The specification of the modification to be made.

### static pop(input_dict, settings)

Pop item from a list using MongoDB syntax.

- Parameters

  - input_dict (dict) – The input dictionary to be modified.

  - settings (dict) – The specification of the modification to be made.

### static pull(input_dict, settings)

Pull an item using MongoDB syntax.

- Parameters

  - input_dict (dict) – The input dictionary to be modified.

  - settings (dict) – The specification of the modification to be made.

### static pull_all(input_dict, settings)

Pull multiple items to a list using MongoDB syntax.

- Parameters

  - input_dict (dict) – The input dictionary to be modified.

  - settings (dict) – The specification of the modification to be made.

### static push(input_dict, settings)

Push to a list using MongoDB syntax.

- Parameters

  - input_dict (dict) – The input dictionary to be modified.

  - settings (dict) – The specification of the modification to be made.

### static push_all(input_dict, settings)

Push multiple items to a list using MongoDB syntax.

- Parameters

  - input_dict (dict) – The input dictionary to be modified.

  - settings (dict) – The specification of the modification to be made.

### static rename(input_dict, settings)

Rename a key using MongoDB syntax.

- Parameters

  - input_dict (dict) – The input dictionary to be modified.

  - settings (dict) – The specification of the modification to be made.

### static set(input_dict, settings)

Sets a value using MongoDB syntax.

- Parameters

  - input_dict (dict) – The input dictionary to be modified.

  - settings (dict) – The specification of the modification to be made.

### static unset(input_dict, settings)

Unsets a value using MongoDB syntax.

- Parameters

  - input_dict (dict) – The input dictionary to be modified.

  - settings (dict) – The specification of the modification to be made.

## class custodian.ansible.actions.FileActions()

Bases: `object`

Class of supported file actions. For FileActions, the modder class takes in a filename as a string. The filename should preferably be a full path to avoid ambiguity.

### static file_copy(filename, settings)

Copies a file. {‘_file_copy’: {‘dest’: ‘new_file_name’}}

- Parameters

  - filename (str) – Filename.

  - settings (dict) – Must be {“dest”: path of new file}

### static file_create(filename, settings)

Creates a file.

- Parameters

  - filename (str) – Filename.

  - settings (dict) – Must be {“content”: actual_content}

### static file_delete(filename, settings)

Deletes a file. {‘_file_delete’: {‘mode’: “actual”}}

- Parameters

  - filename (str) – Filename.

  - settings (dict) – Must be {“mode”: actual/simulated}. Simulated mode only prints the action without performing it.

### static file_modify(filename, settings)

Modifies file access

- Parameters

  - filename (str) – Filename.

  - settings (dict) – Can be “mode” or “owners”

### static file_move(filename, settings)

Moves a file. {‘_file_move’: {‘dest’: ‘new_file_name’}}

- Parameters

  - filename (str) – Filename.

  - settings (dict) – Must be {“dest”: path of new file}

## custodian.ansible.actions.get_nested_dict(input_dict, key)

Helper function to interpret a nested dict input.