예제 #1
0
 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 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
예제 #4
0
 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