Пример #1
0
def create_table_data(results, headers):
    table = []
    for name in sorted(results):
        for dist in sorted(results[name]):
            for comp in sorted(results[name][dist]):
                for arch in sorted(results[name][dist][comp]):
                    pkgs = results[name][dist][comp][arch]
                    pkgs.sort(
                        key=lambda x: Dpkg.compare_versions_key(x['version']))
                    for pkg in pkgs:
                        table.append([pkg[x] for x in headers])
    return table
 def getDebRepositoryLatestVersion(self, repository, packageName):
   repository = repository.split()
   URL = '{}/dists/{}'.format(repository[1], repository[2])
   packages = list()
   for i in range(3, len(repository)):
     packagesURL = '{}/{}/binary-amd64/Packages.gz'.format(URL, repository[i])
     data = zlib.decompress(requests.get(packagesURL).content, 16+zlib.MAX_WBITS).decode('UTF-8')
     for package in filter(None, data.split('\n\n')):
       packageDetails = self.convertDebPackagesSectionToYaml(package)
       if packageDetails['Package'] == packageName:
         packages.append(packageDetails)
   version = sorted(packages, key = lambda x:Dpkg.compare_versions_key(x['Version']), reverse=True)
   version = version[0]['Version']
   self.log.info('Package: {}, latest version: {}'.format(packageName, version))
   return version