def unpublish_all_versions(self, **args):
        '''
        Sends a PID update request for the unpublication of all versions
        of a dataset currently published at the given data node.

        If the library has solr access, it will try to find all the
        dataset versions and their handles from solr, and send individual
        messages for each version. Otherwise, one message is sent, and the
        queue consuming servlet has to identify the relevant versions,
        also making sure not to unpublish any versions that may have been
        republished in the meantime.

        :param drs_id: Dataset id of the dataset to be unpublished.
        :raises: ArgumentError: If the data node
                 was not provided at library initialization.

        '''

        # Check args
        mandatory_args = ['drs_id']
        esgfpid.utils.check_presence_of_mandatory_args(args, mandatory_args)

        # Check if data node is given
        if self.__data_node is None:
            msg = 'No data_node given (but it is mandatory for publication)'
            logwarn(LOGGER, msg)
            raise esgfpid.exceptions.ArgumentError(msg)

        # Check if solr has access:
        if self.__coupler.is_solr_switched_off():
            msg = 'Unpublication of all versions. Without solr access, we cannot identify the versions, so the consumer will have to take care of this.'
            logdebug(LOGGER, msg)
            #raise esgfpid.exceptions.ArgumentError('No solr access. Solr access is needed for publication. Please provide access to a solr index when initializing the library')

        # Unpublish
        assistant = esgfpid.assistant.unpublish.AssistantAllVersions(
            drs_id = args['drs_id'],
            data_node = self.__data_node,
            prefix=self.prefix,
            coupler=self.__coupler,
            message_timestamp=esgfpid.utils.get_now_utc_as_formatted_string(),
            consumer_solr_url = self.__consumer_solr_url # may be None
        )
        assistant.unpublish_all_dataset_versions()
Sends a PID update request for the unpublication of all versions
        of a dataset currently published at the given data node.

        If the library has solr access, it will try to find all the
        dataset versions and their handles from solr, and send individual
        messages for each version. Otherwise, one message is sent, and the
        queue consuming servlet has to identify the relevant versions,
        also making sure not to unpublish any versions that may have been
        republished in the meantime.

        :param drs_id: Dataset id of the dataset to be unpublished.
        :raises: ArgumentError: If the data node
                 was not provided at library initialization.