'Make the RPC call to delete a volume backup.
Call backup manager to execute backup delete or force delete operation.
:param context: running context
:param backup: the dict of backup that is got from DB.
:param force: indicate force delete or not
:raises InvalidBackup:
:raises BackupDriverException:
:raises ServiceNotFound:'

def delete(self, context, backup, force=False):

    check_policy(context, 'delete')
    if ((not force) and (backup.status not in [fields.BackupStatus.AVAILABLE, fields.BackupStatus.ERROR])):
        msg = _('Backup    status    must    be    available    or    error')
        raise exception.InvalidBackup(reason=msg)
    if (force and (not self._check_support_to_force_delete(context, backup.host))):
        msg = _('force    delete')
        raise exception.NotSupportedOperation(operation=msg)
    deltas = self.get_all(context, search_opts={'parent_id': backup.id})
    if (deltas and len(deltas)):
        msg = _('Incremental    backups    exist    for    this    backup.')
        raise exception.InvalidBackup(reason=msg)
    backup.status = fields.BackupStatus.DELETING
    backup.host = self._get_available_backup_service_host(backup.host, backup.availability_zone)
    backup.save()
    self.backup_rpcapi.delete_backup(context, backup)
