Make check_multiple_specfiles return the linked package name instead

Make check_multiple_specfiles return the linked package name rather than
True or False, and if it has not linkinfo node then continue to process
this package.
This commit is contained in:
Max Lin 2016-08-08 16:19:50 +08:00
parent 67983e4543
commit 5952e8e7cc

View File

@ -225,10 +225,12 @@ class FccSubmitter(object):
def check_multiple_specfiles(self, project, package): def check_multiple_specfiles(self, project, package):
url = makeurl(self.apiurl, ['source', project, package], { 'expand': '1' } ) url = makeurl(self.apiurl, ['source', project, package], { 'expand': '1' } )
root = ET.fromstring(http_GET(url).read()) root = ET.fromstring(http_GET(url).read())
linkinfo = root.find('linkinfo')
files = [ entry.get('name').replace('.spec', '') for entry in root.findall('entry') if entry.get('name').endswith('.spec') ] files = [ entry.get('name').replace('.spec', '') for entry in root.findall('entry') if entry.get('name').endswith('.spec') ]
if len(files) == 1: if linkinfo is not None and len(files) > 1:
return False return linkinfo.attrib['package']
return True else:
return
def is_sle_base_pkgs(self, package): def is_sle_base_pkgs(self, package):
link = self.get_link(self.to_prj, package) link = self.get_link(self.to_prj, package)
@ -282,8 +284,8 @@ class FccSubmitter(object):
continue continue
multi_specs = self.check_multiple_specfiles(self.factory, package) multi_specs = self.check_multiple_specfiles(self.factory, package)
if multi_specs is True: if multi_specs:
logging.info('%s in %s have multiple specs, skip for now and submit manually'%(package, 'openSUSE:Factory')) logging.info('%s in %s have multiple specs, it is linked to %s, skip it!'%(package, 'openSUSE:Factory', multi_specs))
ms_packages.append(package) ms_packages.append(package)
continue continue
@ -337,7 +339,7 @@ class FccSubmitter(object):
logging.debug('%s is exist in %s, skip!'%(package, self.to_prj)) logging.debug('%s is exist in %s, skip!'%(package, self.to_prj))
# dump multi specs packages # dump multi specs packages
print("Multi-specs packages:") print("Multi-specfile packages:")
if ms_packages: if ms_packages:
for pkg in ms_packages: for pkg in ms_packages:
print pkg print pkg