summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-03-30 16:25:21 +0000
committerGerrit Code Review <review@openstack.org>2012-03-30 16:25:21 +0000
commit0a6ffe3f2a570aa222814efa149882edf8a7b224 (patch)
treee11602b85e5c9e7cf3ea0dbfd6d3342c7a730466 /nova
parent75676812e867a36778fa5b1beb3d2dbfcb87bec2 (diff)
parenta837f92e39c74f1a97e358f1a8ecfcdb0915bf6c (diff)
downloadnova-0a6ffe3f2a570aa222814efa149882edf8a7b224.tar.gz
nova-0a6ffe3f2a570aa222814efa149882edf8a7b224.tar.xz
nova-0a6ffe3f2a570aa222814efa149882edf8a7b224.zip
Merge "Fix libvirt rescue."
Diffstat (limited to 'nova')
-rw-r--r--nova/virt/libvirt/connection.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/nova/virt/libvirt/connection.py b/nova/virt/libvirt/connection.py
index 9a910d05b..caa912d98 100644
--- a/nova/virt/libvirt/connection.py
+++ b/nova/virt/libvirt/connection.py
@@ -955,9 +955,7 @@ class LibvirtConnection(driver.ComputeDriver):
else:
raise exception.Error(_("Guest does not have a console available"))
- console_log = os.path.join(FLAGS.instances_path, instance['name'],
- 'console.log')
- libvirt_utils.chown(console_log, os.getuid())
+ self._chown_console_log_for_instance(instance['name'])
data = self._flush_libvirt_console(pty)
fpath = self._append_to_file(data, console_log)
@@ -1099,6 +1097,13 @@ class LibvirtConnection(driver.ComputeDriver):
libvirt_utils.create_image('raw', target, '%dM' % swap_mb)
libvirt_utils.mkfs('swap', target)
+ @staticmethod
+ def _chown_console_log_for_instance(instance_name):
+ console_log = os.path.join(FLAGS.instances_path, instance_name,
+ 'console.log')
+ if os.path.exists(console_log):
+ libvirt_utils.chown(console_log, os.getuid())
+
def _create_image(self, context, instance, libvirt_xml, suffix='',
disk_images=None, network_info=None,
block_device_info=None):
@@ -1121,6 +1126,9 @@ class LibvirtConnection(driver.ComputeDriver):
container_dir = '%s/rootfs' % basepath(suffix='')
libvirt_utils.ensure_tree(container_dir)
+ # NOTE(dprince): for rescue console.log may already exist... chown it.
+ self._chown_console_log_for_instance(instance['name'])
+
# NOTE(vish): No need add the suffix to console.log
libvirt_utils.write_to_file(basepath('console.log', ''), '', 007)