in src/core/src/package_managers/ZypperPackageManager.py [0:0]
def extract_packages_from_patch_data(self, output):
"""Returns packages (sometimes with version information embedded) from patch data"""
self.composite_logger.log_debug("[ZPM] Extracting package entries from security patch data...")
packages = []
parser_seeing_packages_flag = False
lines = output.strip().split('\n')
for line in lines:
if not parser_seeing_packages_flag:
if 'package is going to be installed' in line or 'package is going to be upgraded' in line or \
'packages are going to be installed:' in line or 'packages are going to be upgraded:' in line:
self.composite_logger.log_verbose("[ZPM] > Start marker line: " + line)
parser_seeing_packages_flag = True # Start -- Next line contains information we need
else:
self.composite_logger.log_verbose("[ZPM] > Inapplicable line: " + line)
continue
if not line or line.isspace():
self.composite_logger.log_verbose("[ZPM] > End marker line: " + line)
parser_seeing_packages_flag = False
continue # End -- We're past a package information block
line_parts = line.strip().split(' ')
self.composite_logger.log_verbose("[ZPM] > Package list line: " + line)
for line_part in line_parts:
packages.append(line_part)
self.composite_logger.log_verbose(" - Package: " + line_part)
self.composite_logger.log_verbose("[ZPM] Extracted " + str(len(packages)) + " prospective package entries from security patch data.\n")
return packages