'Wait until the LDEV status changes to the specified status.'

def _wait_full_copy(self, ldev, status, **kwargs):

    interval = kwargs.pop('interval', self.conf.vsp_copy_check_interval)
    def _wait_for_full_copy_pair_status(start_time, ldev, status, **kwargs):
        'Raise    True    if    the    LDEV    is    in    the    specified    status.'
        timeout = kwargs.pop('timeout', utils.DEFAULT_PROCESS_WAITTIME)
        if (self._run_pairevtwait(ldev) in status):
            raise loopingcall.LoopingCallDone()
        if utils.check_timeout(start_time, timeout):
            raise loopingcall.LoopingCallDone(False)
    loop = loopingcall.FixedIntervalLoopingCall(_wait_for_full_copy_pair_status, timeutils.utcnow(), ldev, status, **kwargs)
    if (not loop.start(interval=interval).wait()):
        msg = utils.output_log(MSG.SI_PAIR_STATUS_WAIT_TIMEOUT, svol=ldev)
        raise exception.VSPError(msg)
