def terminate(self, nodes=None):
        """Destroy one or many nodes.

        :param   nodes: Nodes to be destroyed.
        :type    nodes: ``list``

        :return: List of nodes which failed to terminate.
        :rtype:  ``list``
        """
        if not self.is_connected():
            return None

        nodes = nodes or self.nodes
        failed_kill = []

        result = self.gce.ex_destroy_multiple_nodes(nodes, poll_interval=1, ignore_errors=False)

        # Verify whether all instances have been terminated.
        for i, success in enumerate(result):
            if success:
                logging.info('Successfully destroyed: %s', nodes[i].name)
            else:
                logging.error('Failed to destroy: %s', nodes[i].name)
                failed_kill.append(nodes[i])

        return failed_kill
Destroy one or many nodes.

        :param   nodes: Nodes to be destroyed.
        :type    nodes: ``list``

        :return: List of nodes which failed to terminate.
        :rtype:  ``list``