'Destroy a node with the given name, if there is one.  Otherwise, do
nothing.'

def _async_cleanup_node_named(self, reactor, name):

    d = _retry_exception_async(reactor, self._driver.list_nodes)
    d = DeferredContext(d)
    def destroy_if_found(nodes):
        for node in nodes:
            if (node.name == name):
                Message.new(message_type=u'flocker:provision:libcloud:cleanup_node_named', name=name, id=node.id, state=node.state).write()
                return _retry_exception_async(reactor, node.destroy)
    d.addCallback(destroy_if_found)
    return d.result
