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]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to