Include the delete request analysis in the text file
This commit is contained in:
parent
9a259088c8
commit
2f3379467c
@ -75,13 +75,13 @@ class InstallChecker(object):
|
|||||||
|
|
||||||
self.existing_problems = self.binary_list_existing_problem(api.project, api.cmain_repo)
|
self.existing_problems = self.binary_list_existing_problem(api.project, api.cmain_repo)
|
||||||
|
|
||||||
def check_required_by(self, fileinfo, provides, requiredby, built_binaries):
|
def check_required_by(self, fileinfo, provides, requiredby, built_binaries, comments):
|
||||||
if requiredby.get('name') in built_binaries:
|
if requiredby.get('name') in built_binaries:
|
||||||
return True
|
return True
|
||||||
# extract >= and the like
|
# extract >= and the like
|
||||||
provide = provides.get('dep')
|
provide = provides.get('dep')
|
||||||
provide = provide.split(' ')[0]
|
provide = provide.split(' ')[0]
|
||||||
self.logger.info('{} provides {} required by {}'.format(fileinfo.find('name').text, provide, requiredby.get('name')))
|
comments.append('{} provides {} required by {}'.format(fileinfo.find('name').text, provide, requiredby.get('name')))
|
||||||
url = api.makeurl(['build', api.project, api.cmain_repo, 'x86_64', '_repository', requiredby.get('name') + '.rpm'],
|
url = api.makeurl(['build', api.project, api.cmain_repo, 'x86_64', '_repository', requiredby.get('name') + '.rpm'],
|
||||||
{'view': 'fileinfo_ext'})
|
{'view': 'fileinfo_ext'})
|
||||||
reverse_fileinfo = ET.parse(osc.core.http_GET(url)).getroot()
|
reverse_fileinfo = ET.parse(osc.core.http_GET(url)).getroot()
|
||||||
@ -93,12 +93,12 @@ class InstallChecker(object):
|
|||||||
for provided_by in require.findall('providedby'):
|
for provided_by in require.findall('providedby'):
|
||||||
if provided_by.get('name') in built_binaries:
|
if provided_by.get('name') in built_binaries:
|
||||||
continue
|
continue
|
||||||
self.logger.info(' also provided by {} -> ignoring'.format(provided_by.get('name')))
|
comments.append(' also provided by {} -> ignoring'.format(provided_by.get('name')))
|
||||||
return True
|
return True
|
||||||
self.logger.warn('missing requires')
|
comments.append('Error: missing alternative provides for {}'.format(provide))
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def check_delete_request(self, req, to_ignore):
|
def check_delete_request(self, req, to_ignore, comments):
|
||||||
package = req['package']
|
package = req['package']
|
||||||
if package in to_ignore:
|
if package in to_ignore:
|
||||||
self.logger.info('Delete request for package {} ignored'.format(package))
|
self.logger.info('Delete request for package {} ignored'.format(package))
|
||||||
@ -114,7 +114,7 @@ class InstallChecker(object):
|
|||||||
for fileinfo in file_infos:
|
for fileinfo in file_infos:
|
||||||
for provides in fileinfo.findall('provides_ext'):
|
for provides in fileinfo.findall('provides_ext'):
|
||||||
for requiredby in provides.findall('requiredby[@name]'):
|
for requiredby in provides.findall('requiredby[@name]'):
|
||||||
result = result and self.check_required_by(fileinfo, provides, requiredby, built_binaries)
|
result = result and self.check_required_by(fileinfo, provides, requiredby, built_binaries, comments)
|
||||||
|
|
||||||
what_depends_on = depends_on(api.apiurl, api.project, api.cmain_repo, [package], True)
|
what_depends_on = depends_on(api.apiurl, api.project, api.cmain_repo, [package], True)
|
||||||
|
|
||||||
@ -124,7 +124,7 @@ class InstallChecker(object):
|
|||||||
what_depends_on.remove(package)
|
what_depends_on.remove(package)
|
||||||
|
|
||||||
if len(what_depends_on):
|
if len(what_depends_on):
|
||||||
self.logger.warn('{} is still a build requirement of:\n\n- {}'.format(
|
comments.append('{} is still a build requirement of:\n\n- {}'.format(
|
||||||
package, '\n- '.join(sorted(what_depends_on))))
|
package, '\n- '.join(sorted(what_depends_on))))
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@ -193,13 +193,13 @@ class InstallChecker(object):
|
|||||||
self.logger.error('no project status for {}'.format(project))
|
self.logger.error('no project status for {}'.format(project))
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
result_comment = []
|
||||||
|
|
||||||
to_ignore = self.packages_to_ignore(project)
|
to_ignore = self.packages_to_ignore(project)
|
||||||
meta = api.load_prj_pseudometa(status['description'])
|
meta = api.load_prj_pseudometa(status['description'])
|
||||||
for req in meta['requests']:
|
for req in meta['requests']:
|
||||||
if req['type'] == 'delete':
|
if req['type'] == 'delete':
|
||||||
result = result and self.check_delete_request(req, to_ignore)
|
result = result and self.check_delete_request(req, to_ignore, result_comment)
|
||||||
|
|
||||||
result_comment = []
|
|
||||||
|
|
||||||
for arch in architectures:
|
for arch in architectures:
|
||||||
# hit the first repository in the target project (if existant)
|
# hit the first repository in the target project (if existant)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user