2
# Copyright (c) 2008 Canonical
4
# Written by Marc Tardif <marc@interunion.ca>
6
# This file is part of Checkbox.
8
# Checkbox is free software: you can redistribute it and/or modify
9
# it under the terms of the GNU General Public License as published by
10
# the Free Software Foundation, either version 3 of the License, or
11
# (at your option) any later version.
13
# Checkbox is distributed in the hope that it will be useful,
14
# but WITHOUT ANY WARRANTY; without even the implied warranty of
15
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
# GNU General Public License for more details.
18
# You should have received a copy of the GNU General Public License
19
# along with Checkbox. If not, see <http://www.gnu.org/licenses/>.
23
from checkbox.plugin import Plugin
26
class DiskInfo(Plugin):
28
required_attributes = ["filename"]
30
def register(self, manager):
31
super(DiskInfo, self).register(manager)
32
self._manager.reactor.call_on("report", self.report)
35
# Try to open the disk info file logged by the installer
37
file = open(self._config.filename)
41
# Found label 'Ubuntu 8.04.1 _Hardy Heron_ - Release amd64 (20080702.1)'
42
distributor_regex = r"(?P<distributor>[\w\-]+)"
43
release_regex = r"(?P<release>[\d\.]+)"
44
codename_regex = r"(?P<codename>[^_]+)"
45
official_regex = r"(?P<official>[\w ]+)"
46
architecture_regex = r"(?P<architecture>[\w\+]+)"
47
type_regex = r"(?P<type>Binary-\d+)"
48
date_regex = r"(?P<date>[^\)]+)"
50
info_regex = r"%s %s _%s_ - %s %s (%s )?\(%s\)" % (distributor_regex,
51
release_regex, codename_regex, official_regex, architecture_regex,
52
type_regex, date_regex)
53
line_regex = r"Found label '%s'" % info_regex
54
line_pattern = re.compile(line_regex)
56
for line in file.readlines():
57
match = line_pattern.match(line)
59
keys = ["distributor", "release", "codename", "official",
60
"architecture", "date"]
61
values = [match.group(k) for k in keys]
62
message = dict(zip(keys, values))
63
self._manager.reactor.fire("report-disk", message)