'Wait for the function which returns a instance
with field status to match
Keep polling func until one of the desired states is matched
:param state: Either the desired state (`str`) or a `list` of states
:type  state: ``str`` or ``list``
:param  func: The function to call, e.g. ex_get_vlan
:type   func: ``function``
:param  poll_interval: The number of seconds to wait between checks
:type   poll_interval: `int`
:param  timeout: The total number of seconds to wait to reach a state
:type   timeout: `int`
:param  args: The arguments for func
:type   args: Positional arguments
:param  kwargs: The arguments for func
:type   kwargs: Keyword arguments'

def ex_wait_for_state(self, state, func, poll_interval=2, timeout=60, *args, **kwargs):

    return self.connection.wait_for_state(state, func, poll_interval, timeout, *args, **kwargs)
