def get_what_depends_on(self,name): command = ['rpm', '-q', '--provides', name] output = self.executor.run_command(command) command = ['sed', r'''s/^/"/;s/\([^[:space:]]\) *$/\1"/;/=/{h;s/ =.*$/"/;G}'''] output = self.executor.run_command(command, command_input=output) command = ['xargs', 'rpm', '-q', '--whatrequires'] output = self.executor.run_command(command, command_input=output) command = ['grep', '-v', '-E', r'''^no package'''] packages = self.executor.run_command(command, command_input=output) packages = packages.split("\n") packages = sorted(packages) packages = list(set(packages)) packages = list(filter(lambda v: v != "",packages)) packages = map(lambda pkgStr: PackageParser.parsePackage(pkgStr), packages) return map(lambda pkgHsh: Package(pkgHsh['name'], pkgHsh['version'], pkgHsh['release'], pkgHsh['arch'], repository=""), packages)
def parseSingleItem(self,node): try: if node.tag == 'meta': return None # Sometimes empty elements are in there if 'type' not in node.attrib: return None the_type = self.getType(node.attrib['type']) severity = self.getSeverity(node.attrib.get('severity')) architectures = map(lambda x: x.text, node.findall('os_arch')) releases = map(lambda x: x.text, node.findall('os_release')) packages = map(lambda x: PackageParser.parsePackage(x.text), node.findall('packages')) references = node.attrib.get('references').split(' ') return ErrataItem(node.tag, the_type, severity, architectures, releases, packages, references) except: print "Problem while parsing node %s" % (node) raise
def parseSingleItem(self, node): try: if node.tag == 'meta': return None # Sometimes empty elements are in there if 'type' not in node.attrib: return None the_type = self.getType(node.attrib['type']) severity = self.getSeverity(node.attrib.get('severity')) architectures = map(lambda x: x.text, node.findall('os_arch')) releases = map(lambda x: x.text, node.findall('os_release')) packages = map(lambda x: PackageParser.parsePackage(x.text), node.findall('packages')) references = node.attrib.get('references').split(' ') return ErrataItem(node.tag, the_type, severity, architectures, releases, packages, references) except: print "Problem while parsing node %s" % (node) raise