Invoke multiple Netmiko methods at once, and return their output, as list.

    methods
        A list of dictionaries with the following keys:

        - ``name``: the name of the Netmiko method to be executed.
        - ``args``: list of arguments to be sent to the Netmiko method.
        - ``kwargs``: dictionary of arguments to be sent to the Netmiko method.

    kwargs
        Key-value dictionary with the connection details (when not running
        under a Proxy Minion).

def multi_call(*methods, **kwargs):
    '''
    Invoke multiple Netmiko methods at once, and return their output, as list.

    methods
        A list of dictionaries with the following keys:

        - ``name``: the name of the Netmiko method to be executed.
        - ``args``: list of arguments to be sent to the Netmiko method.
        - ``kwargs``: dictionary of arguments to be sent to the Netmiko method.

    kwargs
        Key-value dictionary with the connection details (when not running
        under a Proxy Minion).
    '''
    kwargs = clean_kwargs(**kwargs)
    if 'netmiko.conn' in __proxy__:
        conn = __proxy__['netmiko.conn']()
    else:
        conn, kwargs = _prepare_connection(**kwargs)
    ret = []
    for method in methods:
        # Explicit unpacking
        method_name = method['name']
        method_args = method.get('args', [])
        method_kwargs = method.get('kwargs', [])
        ret.append(getattr(conn, method_name)(*method_args, **method_kwargs))
    if 'netmiko.conn' not in __proxy__:
        conn.disconnect()
    return ret