bitbake: fetch2: ssh: support checkstatus

This implements support for sstate mirrors using ssh as transport
protocol.

(Bitbake rev: 0a3b5b3de7bcb1c5c3748cba42d394cc484e966b)

Signed-off-by: Daniel Wagenknecht <dwagenknecht@emlix.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Daniel Wagenknecht
2022-03-02 20:50:36 +01:00
committed by Richard Purdie
parent 5937b2e073
commit fe0d6dbef5

View File

@@ -113,3 +113,43 @@ class SSH(FetchMethod):
runfetchcmd(cmd, d)
def checkstatus(self, fetch, urldata, d):
"""
Check the status of the url
"""
m = __pattern__.match(urldata.url)
path = m.group('path')
host = m.group('host')
port = m.group('port')
user = m.group('user')
password = m.group('pass')
if port:
portarg = '-P %s' % port
else:
portarg = ''
if user:
fr = user
if password:
fr += ':%s' % password
fr += '@%s' % host
else:
fr = host
if path[0] != '~':
path = '/%s' % path
path = path.replace("%3A", ":")
cmd = 'ssh -o BatchMode=true %s %s [ -f %s ]' % (
portarg,
fr,
path
)
check_network_access(d, cmd, urldata.url)
if runfetchcmd(cmd, d):
return True
return False