'Create a compute instance.
:return: If the node is created successfully, a two-tuple of the
libcloud node object and the instance\'s public IP address.  If an
error occurs creating the node, ``None``.'

def _get_node(self, name, **kwargs):

    try:
        node = self._driver.create_node(name=name, **kwargs)
    except:
        self._cleanup_node_named(name)
        raise
    try:
        poll_until((lambda : self._node_in_state(node, self.TERMINAL_STATES)), steps=iter(([15] * (600 / 15))))
        if self._node_in_state(node, {NodeState.RUNNING}):
            return _retry_exception((lambda : self._driver.wait_until_running([node], timeout=1)))[0]
        else:
            _retry_exception(node.destroy)
            return None
    except:
        _retry_exception(node.destroy)
        raise
