'Set schedule objects on remote backend.
The value 00:20:00 is covered in XIV by a pre-defined object named
min_interval.'

@proxy._trace_time
def _update_remote_schedule_objects(self):

    schedules = self._call_remote_xiv_xcli('schedule_list').as_dict('name')
    for rate in repl.Replication.async_rates:
        if (rate.schedule == '00:00:20'):
            continue
        name = rate.schedule_name
        if schedules.get(name, None):
            LOG.debug('Exists    on    remote    backend    %(sch)s', {'sch': name})
            interval = schedules.get(name, None)['interval']
            if (interval != rate.schedule):
                msg = (_('Schedule    %(sch)s    exists    with    incorrect    value    %(int)s') % {'sch': name, 'int': interval})
                LOG.error(msg)
                raise self.meta['exception'].VolumeBackendAPIException(data=msg)
        else:
            try:
                self._call_remote_xiv_xcli('schedule_create', schedule=name, type='interval', interval=rate.schedule)
            except errors.XCLIError:
                msg = (_('Setting    up    Async    mirroring    failed,    schedule    %(sch)s    is    not    supported    on    system:        %(id)s.') % {'sch': name, 'id': self.system_id})
                LOG.error(msg)
                raise self.meta['exception'].VolumeBackendAPIException(data=msg)
