Imagefactory uses oz, which in turn uses libguestfs. By
default libguestfs use /tmp to hold the temporary files
that it uses to launch. There are 2 reasons why you might
want to change this directory:
1) To conform to SELinux policies
2) To use a directory/partition with more space on it
libguestfs allows you to change the temporary directory
by setting TMPDIR appropriately, so add a command-line
option for tmpdir and set the environment variable.
Signed-off-by: Chris Lalancette <clalance(a)redhat.com>
---
imagefactory/ApplicationConfiguration.py | 1 +
imgfac.py | 5 +++++
2 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/imagefactory/ApplicationConfiguration.py
b/imagefactory/ApplicationConfiguration.py
index 450665f..e813aea 100644
--- a/imagefactory/ApplicationConfiguration.py
+++ b/imagefactory/ApplicationConfiguration.py
@@ -72,6 +72,7 @@ class ApplicationConfiguration(object):
argparser.add_argument('--config',
default='/etc/imagefactory.conf', help='Configuration file to use. (default:
%(default)s)')
argparser.add_argument('--output', default='/tmp',
help='Build image files in location specified. (default: %(default)s)')
argparser.add_argument('--timeout', type=int, default=3600, help='Set
the timeout period for image building in seconds. (default: %(default)s)')
+ argparser.add_argument('--tmpdir', default='/tmp', help='Use
the specified location for temporary files. (default: %(default)s)')
group_qmf = argparser.add_argument_group(title='QMF agent',
description='Provide a QMFv2 agent interface.')
group_qmf.add_argument('--qmf', action='store_true',
default=False, help='Turn on QMF agent interface. (default: %(default)s)')
group_qmf.add_argument('--qpidd', default='localhost',
help='URL of qpidd to connect to. (default: %(default)s)')
diff --git a/imgfac.py b/imgfac.py
index 5fb2179..5bc0af1 100755
--- a/imgfac.py
+++ b/imgfac.py
@@ -52,6 +52,11 @@ class Application(object):
self.pid_file_path = "/var/run/imagefactory.pid"
signal.signal(signal.SIGTERM, self.signal_handler)
self.app_config = ApplicationConfiguration().configuration
+
+ # by setting TMPDIR here we make sure that libguestfs
+ # (imagefactory -> oz -> libguestfs) uses the temporary directory of
+ # the user's choosing
+ os.putenv('TMPDIR', self.app_config['tmpdir'])
def setup_logging(self):
if (self.app_config['foreground']):
--
1.7.4.2
Show replies by date