diff options
author | Michal Toman <mtoman@redhat.com> | 2011-03-07 12:37:42 +0100 |
---|---|---|
committer | Michal Toman <mtoman@redhat.com> | 2011-03-07 12:37:42 +0100 |
commit | 757c90f2a618287ff92fd6a1b929a3278d8f3bef (patch) | |
tree | f2806a3cdcb14cd15364715036ee05494d09f7c2 /src/retrace/worker.py | |
parent | 1e2ccb9242a76abeb27ce98aa44c08b3449cccfb (diff) | |
download | abrt-757c90f2a618287ff92fd6a1b929a3278d8f3bef.tar.gz abrt-757c90f2a618287ff92fd6a1b929a3278d8f3bef.tar.xz abrt-757c90f2a618287ff92fd6a1b929a3278d8f3bef.zip |
retrace server: guess release if 'os_release' file is missing
Diffstat (limited to 'src/retrace/worker.py')
-rwxr-xr-x | src/retrace/worker.py | 45 |
1 files changed, 30 insertions, 15 deletions
diff --git a/src/retrace/worker.py b/src/retrace/worker.py index 2bb33237..f7381c72 100755 --- a/src/retrace/worker.py +++ b/src/retrace/worker.py @@ -68,6 +68,16 @@ if __name__ == "__main__": LOG.close() sys.exit(16) + # read package file + try: + package_file = open("%s/crash/package" % savedir, "r") + crash_package = package_file.read() + package_file.close() + except Exception as ex: + LOG.write("Unable to read crash package from 'package' file: %s.\n" % ex) + LOG.close() + sys.exit(17) + # read release, distribution and version from release file release_path = "%s/crash/os_release" % savedir if not os.path.isfile(release_path): @@ -77,23 +87,28 @@ if __name__ == "__main__": release_file = open(release_path, "r") release = release_file.read() release_file.close() - except Exception as ex: - LOG.write("Unable to read distribution and version from 'release' file: %s.\n" % ex) - LOG.close() - sys.exit(17) - version = distribution = None - for distro in RELEASE_PARSERS.keys(): - match = RELEASE_PARSERS[distro].match(release) - if match: - version = match.group(1) - distribution = distro - break + version = distribution = None + for distro in RELEASE_PARSERS.keys(): + match = RELEASE_PARSERS[distro].match(release) + if match: + version = match.group(1) + distribution = distro + break - if not version or not distribution: - LOG.write("Release '%s' is not supported.\n" % release) - LOG.close() - sys.exit(18) + if not version or not distribution: + raise Exception, "Release '%s' is not supported.\n" + + except Exception as ex: + LOG.write("Unable to read distribution and version from 'release' file: %s.\n" % ex) + LOG.write("Trying to guess distribution and version... ") + distribution, version = guess_release(crash_package) + if distribution and version: + LOG.write("%s-%s\n" % (distribution, version)) + else: + LOG.write("Failure\n") + LOG.close() + sys.exit(18) # read package file try: |