1
# add_nfs_common_plugin.py - install nfs-common if nfs is used
2
# Copyright (C) 2009 Canonical, Ltd.
4
# This program is free software: you can redistribute it and/or modify
5
# it under the terms of the GNU General Public License as published by
6
# the Free Software Foundation, version 3 of the License.
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
# GNU General Public License for more details.
13
# You should have received a copy of the GNU General Public License
14
# along with this program. If not, see <http://www.gnu.org/licenses/>.
22
import computerjanitor
23
_ = computerjanitor.setup_gettext()
26
class AddNfsCommonPlugin(computerjanitor.Plugin):
28
"""Plugin to install missing nfs-common package, if nfs is being used.
30
This is a fix for the feisty->gutsy transition of utils-linux to
31
nfs-common. See also LP: #141559.
35
description = _("NFS is being used, so the nfs-common package needs "
39
if "nfs-common" not in self.app.apt_cache:
40
logging.warning("nfs-common package not available")
42
pkg = self.app.apt_cache["nfs-common"]
44
for line in map(string.strip, open("/proc/mounts")):
45
if line == '' or line.startswith("#"):
48
(device, mount_point, fstype, options, a, b) = line.split()
50
logging.error("can't parse line '%s'" % line)
52
if "nfs" in fstype and not pkg.isInstalled:
53
logging.debug("found nfs mount in line '%s', "
54
"marking nfs-common for install " % line)
55
yield computerjanitor.MissingPackageCruft(pkg)
58
logging.warning("problem while transitioning "
59
"util-linux -> nfs-common (%s)" % e)