Richard Purdie <richard.pur...@linuxfoundation.org> writes: > On Wed, 2020-08-05 at 13:15 -0400, Mingde (Matthew) Zeng wrote: >> [YOCTO #13802] >> >> Make the scp failure non-fatal so the ltp tests continue to run and >> the rest of the logs will be available to see afterwards. >> >> Signed-off-by: Mingde (Matthew) Zeng <matthew.z...@windriver.com> >> --- >> meta/lib/oeqa/core/target/ssh.py | 11 +++++++---- >> 1 file changed, 7 insertions(+), 4 deletions(-) >> >> diff --git a/meta/lib/oeqa/core/target/ssh.py >> b/meta/lib/oeqa/core/target/ssh.py >> index 090b40a814..e891a4bbfa 100644 >> --- a/meta/lib/oeqa/core/target/ssh.py >> +++ b/meta/lib/oeqa/core/target/ssh.py >> @@ -50,7 +50,7 @@ class OESSHTarget(OETarget): >> def stop(self, **kwargs): >> pass >> >> - def _run(self, command, timeout=None, ignore_status=True): >> + def _run(self, command, timeout=None, ignore_status=True, >> ignore_error=False): >> """ >> Runs command in target using SSHProcess. >> """ >> @@ -62,8 +62,11 @@ class OESSHTarget(OETarget): >> "" % (status, time.time() - starttime)) >> >> if status and not ignore_status: >> - raise AssertionError("Command '%s' returned non-zero exit " >> - "status %d:\n%s" % (command, status, >> output)) >> + if ignore_error: >> + self.logger.warning("Command '%s' returned non-zero exit >> status %d:\n%s" % (command, status, output)) >> + else: >> + raise AssertionError("Command '%s' returned non-zero exit " >> + "status %d:\n%s" % (command, status, >> output)) >> >> return (status, output) >> >> @@ -113,7 +116,7 @@ class OESSHTarget(OETarget): >> """ >> remotePath = '%s@%s:%s' % (self.user, self.ip, remoteSrc) >> scpCmd = self.scp + [remotePath, localDst] >> - return self._run(scpCmd, ignore_status=False) >> + return self._run(scpCmd, ignore_error=True) >> >> def copyDirTo(self, localSrc, remoteDst): >> """ > > That isn't what I meant, I mean something like: > > diff --git a/meta/lib/oeqa/core/target/ssh.py > b/meta/lib/oeqa/core/target/ssh.py > index 090b40a8143..cbc56f2e0ad 100644 > --- a/meta/lib/oeqa/core/target/ssh.py > +++ b/meta/lib/oeqa/core/target/ssh.py > @@ -107,13 +107,16 @@ class OESSHTarget(OETarget): > scpCmd = self.scp + [localSrc, remotePath] > return self._run(scpCmd, ignore_status=False) > > - def copyFrom(self, remoteSrc, localDst): > + def copyFrom(self, remoteSrc, localDst, warn_on_failure=False): > """ > Copy file from target. > """ > remotePath = '%s@%s:%s' % (self.user, self.ip, remoteSrc) > scpCmd = self.scp + [remotePath, localDst] > - return self._run(scpCmd, ignore_status=False) > + (status, output) = self._run(scpCmd, ignore_status=warn_on_failure) > + if warn_on_failure and not status: > + self.logger.warning("Copy X returned non-zero exit status > %d:\n%s" % (XXX, status, output)) > + return (status, output) > > def copyDirTo(self, localSrc, remoteDst): > """ > > so that we enable this in the specific case og the copy we might accept > failure for.
This works too, my implementation is not as specific as this, however it enables warning when the optional parameter ignore_error=True, which is only specified in the copyFrom function. I'll adjust my patch. > > Cheers, > > Richard -- Mingde (Matthew) Zeng
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#141244): https://lists.openembedded.org/g/openembedded-core/message/141244 Mute This Topic: https://lists.openembedded.org/mt/76012000/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-