Exemplo n.º 1
0
    def update(self):
        payload = {
            'release': self.suite,
            'notmain': 'ign',
            'merged': 'ign',
            'rc': 1,
            'format': 'json'
        }

        response = self.session.get(self.URL, params=payload)
        try:
            data = response.json()
        except ValueError:
            raise NewDataSource.DataError()

        bugs = set()
        for bug in data:
            try:
                bugs.add(bug['id'])
            except KeyError:
                pass

        if bugs:
            self.bugs = bugs
        else:
            raise NewDataSource.DataError()
Exemplo n.º 2
0
    def update(self):
        payload = {
            "release": self.suite,
            "notmain": "ign",
            "merged": "ign",
            "rc": 1,
            "format": "json",
        }

        response = self.session.get(self.URL, params=payload)
        try:
            data = response.json()
        except ValueError:
            raise NewDataSource.DataError()

        bugs = set()
        for bug in data:
            try:
                bugs.add(bug["id"])
            except KeyError:
                pass

        if bugs:
            self.bugs = bugs
        else:
            raise NewDataSource.DataError()
Exemplo n.º 3
0
    def get_maintainer(self, package):
        maintainer = pseudo_packages.get_maintainer(package)
        if maintainer is not None:
            return split_address(maintainer)

        if package in self.cache:
            candidate = self.depcache.get_candidate_ver(self.cache[package])
            if candidate is not None:
                records = apt_pkg.PackageRecords(self.cache)
                if records.lookup(candidate.file_list[0]):
                    return split_address(records.maintainer)

                # delete record iterator
                del records

        if package.startswith("src:"):
            package = package[4:]

        records = apt_pkg.SourceRecords()
        if records.lookup(package):
            version = records.version
            maintainer = records.maintainer
            while records.lookup(package) is not None:
                if apt_pkg.version_compare(records.version, version) > 0:
                    version = records.version
                    maintainer = records.maintainer

            return split_address(maintainer)

        raise NewDataSource.DataError(
            "Unable to get maintainer for {}.".format(package)
        )
Exemplo n.º 4
0
    def update_index(self, ignore_errors=False):
        import apt.progress.base

        lists = apt_pkg.config.find_dir("Dir::State::Lists")
        with apt_pkg.FileLock(os.path.join(lists, "lock")):
            try:
                self.cache.update(apt.progress.base.AcquireProgress(), self.source_list)
            except apt_pkg.Error as e:
                if not ignore_errors:
                    raise NewDataSource.DataError("Failed to update cache: {}".format(e))