diff options
| author | Jenkins <jenkins@review.openstack.org> | 2013-01-28 17:19:11 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2013-01-28 17:19:11 +0000 |
| commit | f5a5ba84757a85836d78cc3d8a4f62f5ada2ac65 (patch) | |
| tree | 92f1880aa28699e4070127cad9c067d6d0e1ba07 | |
| parent | 18708b18a73b75dbe82583b402e9d310dd135057 (diff) | |
| parent | e8386a27968f5a53f97681e7caf63b2243b7ed05 (diff) | |
| download | nova-f5a5ba84757a85836d78cc3d8a4f62f5ada2ac65.tar.gz nova-f5a5ba84757a85836d78cc3d8a4f62f5ada2ac65.tar.xz nova-f5a5ba84757a85836d78cc3d8a4f62f5ada2ac65.zip | |
Merge "Allow users to specify a tmp location via config"
| -rw-r--r-- | nova/service.py | 11 | ||||
| -rw-r--r-- | nova/utils.py | 4 |
2 files changed, 15 insertions, 0 deletions
diff --git a/nova/service.py b/nova/service.py index c250673f4..4fc12f374 100644 --- a/nova/service.py +++ b/nova/service.py @@ -426,6 +426,7 @@ class Service(object): verstr = version.version_string_with_package() LOG.audit(_('Starting %(topic)s node (version %(version)s)'), {'topic': self.topic, 'version': verstr}) + self.basic_config_check() self.manager.init_host() self.model_disconnected = False ctxt = context.get_admin_context() @@ -570,6 +571,16 @@ class Service(object): ctxt = context.get_admin_context() return self.manager.periodic_tasks(ctxt, raise_on_error=raise_on_error) + def basic_config_check(self): + """Perform basic config checks before starting processing.""" + # Make sure the tempdir exists and is writable + try: + with utils.tempdir() as tmpdir: + pass + except Exception as e: + LOG.error(_('Temporary directory is invalid: %s'), e) + sys.exit(1) + class WSGIService(object): """Provides ability to launch API from a 'paste' configuration.""" diff --git a/nova/utils.py b/nova/utils.py index 97091e42c..52d4868c9 100644 --- a/nova/utils.py +++ b/nova/utils.py @@ -76,6 +76,9 @@ utils_opts = [ default="/etc/nova/rootwrap.conf", help='Path to the rootwrap configuration file to use for ' 'running commands as root'), + cfg.StrOpt('tempdir', + default=None, + help='Explicitly specify the temporary working directory'), ] CONF = cfg.CONF CONF.register_opts(monkey_patch_opts) @@ -1147,6 +1150,7 @@ def temporary_chown(path, owner_uid=None): @contextlib.contextmanager def tempdir(**kwargs): + tempfile.tempdir = CONF.tempdir tmpdir = tempfile.mkdtemp(**kwargs) try: yield tmpdir |
