def deprovision_instance(self, server_id, display_name=None, delete_attached_volumes=False):
        flow, subflows = get_deprovision_flow()
        if delete_attached_volumes:
            subflows['main'].add(DeleteVolumes())

        try:
            return taskflow.engines.run(flow, engine='parallel', store=dict(
                server_id=server_id,
                config=self._config))
        except Exception as e:
            logging.error(e)
            return {'error': 'flow failed due to: %s' % (e)}