def schedule_backup_restore(self,
                                backup_id,
                                destination_uri,
                                tags=None,
                                source_database_name=None):
        backup = get_mbs().backup_collection.get_by_id(backup_id)
        destination = build_backup_source(destination_uri)
        logger.info("Scheduling a restore for backup '%s'" % backup.id)
        restore = Restore()

        restore.source_backup = backup
        restore.source_database_name = source_database_name
        restore.strategy = backup.strategy
        restore.destination = destination
        restore.tags = tags or restore.source_backup.tags
        restore.state = STATE_SCHEDULED
        restore.created_date = date_now()

        logger.info("Saving restore task: %s" % restore)
        restore_doc = restore.to_document()
        get_mbs().restore_collection.save_document(restore_doc)
        restore.id = restore_doc["_id"]
        return restore