Try to fetch the element as deleted if initial access failed
The reference to the object might be already deleted by when the request is failing. plus setting deleted=0 is rejected by the API. So try with deleted=1 if and only if the previous access failed.
This commit is contained in:
parent
dc0f33354e
commit
c9e07e536f
26
lib/obs.py
26
lib/obs.py
@ -148,12 +148,28 @@ class OBS:
|
||||
]
|
||||
|
||||
def _download(self, project, package, name, revision):
|
||||
# the object might be deleted but we can only pass deleted=1
|
||||
# if it is actually deleted
|
||||
deleted = 0
|
||||
while deleted < 2:
|
||||
url = osc.core.makeurl(
|
||||
self.url,
|
||||
["source", project, package, urllib.parse.quote(name)],
|
||||
{"rev": revision, "expand": 1, "deleted": deleted if deleted else ()},
|
||||
)
|
||||
try:
|
||||
osc.core.http_request("HEAD", url)
|
||||
break
|
||||
except Exception:
|
||||
pass
|
||||
deleted += 1
|
||||
|
||||
url = osc.core.makeurl(
|
||||
self.url,
|
||||
["source", project, package, urllib.parse.quote(name)],
|
||||
{"rev": revision, "expand": 1},
|
||||
)
|
||||
return osc.core.http_GET(url)
|
||||
self.url,
|
||||
["source", project, package, urllib.parse.quote(name)],
|
||||
{"rev": revision, "expand": 1, "deleted": 1 if deleted else ()},
|
||||
)
|
||||
return osc.core.http_request("GET", url)
|
||||
|
||||
def download(
|
||||
self,
|
||||
|
Loading…
Reference in New Issue
Block a user