blob: 668024163004005f2c2b35d3197b4dcbda5ca0fa (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# vim:expandtab:autoindent:tabstop=4:shiftwidth=4:filetype=python:textwidth=0:
# License: GPL2 or later see COPYING
# Written by Michael Brown
# Copyright (C) 2007 Michael E Brown <mebrown@michaels-house.net>
# python library imports
# our imports
from mock.trace_decorator import decorate, traceLog
import mock.util
requires_api_version = "1.0"
# plugin entry point
decorate(traceLog())
def init(rootObj, conf):
BindMount(rootObj, conf)
# classes
class BindMount(object):
"""bind mount dirs from host into chroot"""
decorate(traceLog())
def __init__(self, rootObj, conf):
self.rootObj = rootObj
self.bind_opts = conf
rootObj.bindMountObj = self
rootObj.addHook("preinit", self._bindMountPreInitHook)
for srcdir, destdir in self.bind_opts['dirs']:
rootObj.umountCmds.append('umount -n %s' % rootObj.makeChrootPath(destdir))
rootObj.mountCmds.append('mount -n --bind %s %s' % (srcdir, rootObj.makeChrootPath(destdir)))
decorate(traceLog())
def _bindMountPreInitHook(self):
for srcdir, destdir in self.bind_opts['dirs']:
mock.util.mkdirIfAbsent(self.rootObj.makeChrootPath(destdir))
|