osclib/core: provide entity_exists() and use in StagingAPI.item_exists().
This commit is contained in:
parent
53bbe0341b
commit
249491d6f6
@ -461,3 +461,14 @@ def project_meta_revision(apiurl, project):
|
||||
root = ET.fromstringlist(get_commitlog(
|
||||
apiurl, project, '_project', None, format='xml', meta=True))
|
||||
return int(root.find('logentry').get('revision'))
|
||||
|
||||
def entity_exists(apiurl, project, package=None):
|
||||
try:
|
||||
http_GET(makeurl(apiurl, filter(None, ['source', project, package]) + ['_meta']))
|
||||
except HTTPError as e:
|
||||
if e.code == 404:
|
||||
return False
|
||||
|
||||
raise e
|
||||
|
||||
return True
|
||||
|
@ -47,6 +47,7 @@ from osc.core import streamfile
|
||||
|
||||
from osclib.cache import Cache
|
||||
from osclib.core import devel_project_get
|
||||
from osclib.core import entity_exists
|
||||
from osclib.core import project_list_prefix
|
||||
from osclib.core import project_pseudometa_file_load
|
||||
from osclib.core import project_pseudometa_file_save
|
||||
@ -1406,15 +1407,7 @@ class StagingAPI(object):
|
||||
:param project: project name to check
|
||||
:param package: optional package to check
|
||||
"""
|
||||
if package:
|
||||
url = self.makeurl(['source', project, package, '_meta'])
|
||||
else:
|
||||
url = self.makeurl(['source', project, '_meta'])
|
||||
try:
|
||||
http_GET(url)
|
||||
except HTTPError:
|
||||
return False
|
||||
return True
|
||||
return entity_exists(self.apiurl, project, package)
|
||||
|
||||
def package_version(self, project, package):
|
||||
"""
|
||||
|
Loading…
x
Reference in New Issue
Block a user