summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-08-27 16:43:03 +0000
committerGerrit Code Review <review@openstack.org>2012-08-27 16:43:03 +0000
commitf10e4480d4c3d7ebcbd97a3e64753bae645e537c (patch)
treef285633d5bcbd65afc948f0ef901fae746a22922
parent34c012c709cc5ae577330c7d67ba060293158210 (diff)
parente88218ee0f4b04c86ed6f611d4566e38427f3075 (diff)
downloadnova-f10e4480d4c3d7ebcbd97a3e64753bae645e537c.tar.gz
nova-f10e4480d4c3d7ebcbd97a3e64753bae645e537c.tar.xz
nova-f10e4480d4c3d7ebcbd97a3e64753bae645e537c.zip
Merge "Move ensure_tree to utils"
-rw-r--r--nova/tests/fake_libvirt_utils.py4
-rw-r--r--nova/tests/test_imagebackend.py6
-rw-r--r--nova/tests/test_libvirt.py6
-rw-r--r--nova/tests/test_utils.py8
-rw-r--r--nova/utils.py15
-rw-r--r--nova/virt/baremetal/driver.py6
-rw-r--r--nova/virt/configdrive.py2
-rw-r--r--nova/virt/libvirt/driver.py6
-rw-r--r--nova/virt/libvirt/imagebackend.py2
-rw-r--r--nova/virt/libvirt/utils.py17
10 files changed, 35 insertions, 37 deletions
diff --git a/nova/tests/fake_libvirt_utils.py b/nova/tests/fake_libvirt_utils.py
index aa613f35d..510774939 100644
--- a/nova/tests/fake_libvirt_utils.py
+++ b/nova/tests/fake_libvirt_utils.py
@@ -63,10 +63,6 @@ def remove_logical_volumes(*paths):
pass
-def ensure_tree(path):
- pass
-
-
def write_to_file(path, contents, umask=None):
pass
diff --git a/nova/tests/test_imagebackend.py b/nova/tests/test_imagebackend.py
index 62153ab1f..e34f35f74 100644
--- a/nova/tests/test_imagebackend.py
+++ b/nova/tests/test_imagebackend.py
@@ -55,8 +55,8 @@ class _ImageTestCase(test.TestCase):
os.path.exists(self.TEMPLATE_PATH).AndReturn(False)
fn = self.mox.CreateMockAnything()
fn(target=self.TEMPLATE_PATH)
- self.mox.StubOutWithMock(imagebackend.libvirt_utils, 'ensure_tree')
- imagebackend.libvirt_utils.ensure_tree(self.TEMPLATE_DIR)
+ self.mox.StubOutWithMock(imagebackend.utils, 'ensure_tree')
+ imagebackend.utils.ensure_tree(self.TEMPLATE_DIR)
self.mox.ReplayAll()
image = self.image_class(self.INSTANCE, self.NAME)
@@ -82,7 +82,7 @@ class _ImageTestCase(test.TestCase):
os.path.exists(self.TEMPLATE_PATH).AndReturn(False)
fn = self.mox.CreateMockAnything()
fn(target=self.TEMPLATE_PATH)
- self.mox.StubOutWithMock(imagebackend.libvirt_utils, 'ensure_tree')
+ self.mox.StubOutWithMock(imagebackend.utils, 'ensure_tree')
self.mox.ReplayAll()
image = self.image_class(self.INSTANCE, self.NAME)
diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py
index da2a7e306..885cf7e83 100644
--- a/nova/tests/test_libvirt.py
+++ b/nova/tests/test_libvirt.py
@@ -3393,12 +3393,6 @@ disk size: 4.4M''', ''))
libvirt_utils.mkfs('ext4', '/my/block/dev')
libvirt_utils.mkfs('swap', '/my/swap/block/dev')
- def test_ensure_tree(self):
- with utils.tempdir() as tmpdir:
- testdir = '%s/foo/bar/baz' % (tmpdir,)
- libvirt_utils.ensure_tree(testdir)
- self.assertTrue(os.path.isdir(testdir))
-
def test_write_to_file(self):
dst_fd, dst_path = tempfile.mkstemp()
try:
diff --git a/nova/tests/test_utils.py b/nova/tests/test_utils.py
index c7a323875..39dc9ab6d 100644
--- a/nova/tests/test_utils.py
+++ b/nova/tests/test_utils.py
@@ -762,3 +762,11 @@ class DiffDict(test.TestCase):
diff = utils.diff_dict(old, new)
self.assertEqual(diff, dict(b=['-']))
+
+
+class EnsureTree(test.TestCase):
+ def test_ensure_tree(self):
+ with utils.tempdir() as tmpdir:
+ testdir = '%s/foo/bar/baz' % (tmpdir,)
+ utils.ensure_tree(testdir)
+ self.assertTrue(os.path.isdir(testdir))
diff --git a/nova/utils.py b/nova/utils.py
index 7eb7aa662..6f199e659 100644
--- a/nova/utils.py
+++ b/nova/utils.py
@@ -1266,3 +1266,18 @@ class UndoManager(object):
LOG.exception(msg, **kwargs)
self._rollback()
+
+
+def ensure_tree(path):
+ """Create a directory (and any ancestor directories required)
+
+ :param path: Directory to create
+ """
+ try:
+ os.makedirs(path)
+ except OSError as exc:
+ if exc.errno == errno.EEXIST:
+ if not os.path.isdir(path):
+ raise
+ else:
+ raise
diff --git a/nova/virt/baremetal/driver.py b/nova/virt/baremetal/driver.py
index d92688276..58ad6b13b 100644
--- a/nova/virt/baremetal/driver.py
+++ b/nova/virt/baremetal/driver.py
@@ -303,7 +303,7 @@ class BareMetalDriver(driver.ComputeDriver):
if not os.path.exists(target):
base_dir = os.path.join(FLAGS.instances_path, '_base')
if not os.path.exists(base_dir):
- libvirt_utils.ensure_tree(base_dir)
+ utils.ensure_tree(base_dir)
base = os.path.join(base_dir, fname)
@utils.synchronized(fname)
@@ -331,7 +331,7 @@ class BareMetalDriver(driver.ComputeDriver):
fname + suffix)
# ensure directories exist and are writable
- libvirt_utils.ensure_tree(basepath(suffix=''))
+ utils.ensure_tree(basepath(suffix=''))
utils.execute('chmod', '0777', basepath(suffix=''))
LOG.info(_('instance %s: Creating image'), inst['name'],
@@ -339,7 +339,7 @@ class BareMetalDriver(driver.ComputeDriver):
if FLAGS.baremetal_type == 'lxc':
container_dir = '%s/rootfs' % basepath(suffix='')
- libvirt_utils.ensure_tree(container_dir)
+ utils.ensure_tree(container_dir)
# NOTE(vish): No need add the suffix to console.log
libvirt_utils.write_to_file(basepath('console.log', ''), '', 007)
diff --git a/nova/virt/configdrive.py b/nova/virt/configdrive.py
index 11b9cd1c0..bc9ef55c4 100644
--- a/nova/virt/configdrive.py
+++ b/nova/virt/configdrive.py
@@ -61,7 +61,7 @@ class ConfigDriveBuilder(object):
def _add_file(self, path, data):
filepath = os.path.join(self.tempdir, path)
dirname = os.path.dirname(filepath)
- virtutils.ensure_tree(dirname)
+ utils.ensure_tree(dirname)
with open(filepath, 'w') as f:
f.write(data)
diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py
index 418ae778b..7bb4cbc22 100644
--- a/nova/virt/libvirt/driver.py
+++ b/nova/virt/libvirt/driver.py
@@ -805,7 +805,7 @@ class LibvirtDriver(driver.ComputeDriver):
# Export the snapshot to a raw image
snapshot_directory = FLAGS.libvirt_snapshots_directory
- libvirt_utils.ensure_tree(snapshot_directory)
+ utils.ensure_tree(snapshot_directory)
with utils.tempdir(dir=snapshot_directory) as tmpdir:
try:
out_path = os.path.join(tmpdir, snapshot_name)
@@ -1237,7 +1237,7 @@ class LibvirtDriver(driver.ComputeDriver):
return image(fname, image_type='raw')
# ensure directories exist and are writable
- libvirt_utils.ensure_tree(basepath(suffix=''))
+ utils.ensure_tree(basepath(suffix=''))
LOG.info(_('Creating image'), instance=instance)
libvirt_utils.write_to_file(basepath('libvirt.xml'), libvirt_xml)
@@ -1246,7 +1246,7 @@ class LibvirtDriver(driver.ComputeDriver):
container_dir = os.path.join(FLAGS.instances_path,
instance['name'],
'rootfs')
- libvirt_utils.ensure_tree(container_dir)
+ utils.ensure_tree(container_dir)
# NOTE(dprince): for rescue console.log may already exist... chown it.
self._chown_console_log_for_instance(instance['name'])
diff --git a/nova/virt/libvirt/imagebackend.py b/nova/virt/libvirt/imagebackend.py
index 001bf58a3..146234ca9 100644
--- a/nova/virt/libvirt/imagebackend.py
+++ b/nova/virt/libvirt/imagebackend.py
@@ -114,7 +114,7 @@ class Image(object):
if not os.path.exists(self.path):
base_dir = os.path.join(FLAGS.instances_path, '_base')
if not os.path.exists(base_dir):
- libvirt_utils.ensure_tree(base_dir)
+ utils.ensure_tree(base_dir)
base = os.path.join(base_dir, fname)
self.create_image(call_if_not_exists, base, size,
diff --git a/nova/virt/libvirt/utils.py b/nova/virt/libvirt/utils.py
index 997628405..1f40bcc71 100644
--- a/nova/virt/libvirt/utils.py
+++ b/nova/virt/libvirt/utils.py
@@ -250,21 +250,6 @@ def mkfs(fs, path, label=None):
execute(*args)
-def ensure_tree(path):
- """Create a directory (and any ancestor directories required)
-
- :param path: Directory to create
- """
- try:
- os.makedirs(path)
- except OSError as exc:
- if exc.errno == errno.EEXIST:
- if not os.path.isdir(path):
- raise
- else:
- raise
-
-
def write_to_file(path, contents, umask=None):
"""Write the given contents to a file
@@ -479,7 +464,7 @@ def write_stored_info(target, field=None, value=None):
return
info_file = get_info_filename(target)
- ensure_tree(os.path.dirname(info_file))
+ utils.ensure_tree(os.path.dirname(info_file))
d = read_stored_info(info_file)
d[field] = value