Merge "Use tobiko.makedirs instead of os.makedirs to avoid concurrency problems"
This commit is contained in:
commit
e7e969c7fe
|
@ -20,6 +20,7 @@ from tobiko.common import _fixture
|
|||
from tobiko.common import _logging
|
||||
from tobiko.common.managers import testcase as testcase_manager
|
||||
from tobiko.common.managers import loader as loader_manager
|
||||
from tobiko.common import _os
|
||||
from tobiko.common import _select
|
||||
from tobiko.common import _skip
|
||||
|
||||
|
@ -55,6 +56,8 @@ CaptureLogFixture = _logging.CaptureLogFixture
|
|||
load_object = loader_manager.load_object
|
||||
load_module = loader_manager.load_module
|
||||
|
||||
makedirs = _os.makedirs
|
||||
|
||||
discover_testcases = testcase_manager.discover_testcases
|
||||
|
||||
Selection = _select.Selection
|
||||
|
|
|
@ -21,7 +21,7 @@ from oslo_log import log
|
|||
LOG = log.getLogger(__name__)
|
||||
|
||||
|
||||
def makedirs(path, mode=0o777, exist_ok=True):
|
||||
def makedirs(name, mode=0o777, exist_ok=True):
|
||||
"""Creates directory and its parents if directory doesn't exists.
|
||||
|
||||
This emulates Python3 os.makedirs behavior[1]
|
||||
|
@ -29,7 +29,7 @@ def makedirs(path, mode=0o777, exist_ok=True):
|
|||
[1] https://docs.python.org/3/library/os.html#os.makedirs)
|
||||
"""
|
||||
try:
|
||||
os.makedirs(path, mode)
|
||||
except os.error:
|
||||
if not exist_ok:
|
||||
os.makedirs(name, mode)
|
||||
except Exception:
|
||||
if not exist_ok or not os.path.isdir(name):
|
||||
raise
|
|
@ -19,8 +19,8 @@ import jinja2
|
|||
|
||||
from oslo_log import log
|
||||
|
||||
import tobiko
|
||||
from tobiko.fault import constants as fault_const
|
||||
from tobiko.common.utils import file as file_utils
|
||||
from tobiko.openstack import nova
|
||||
|
||||
|
||||
|
@ -49,7 +49,7 @@ class FaultConfig(object):
|
|||
def generate_config_file(self):
|
||||
"""Generates os-faults configuration file."""
|
||||
LOG.info("Generating os-fault configuration file.")
|
||||
file_utils.makedirs(self.DEFAULT_CONF_PATH)
|
||||
tobiko.makedirs(self.DEFAULT_CONF_PATH)
|
||||
rendered_conf = self.get_rendered_configuration()
|
||||
with open(self.DEFAULT_CONF_FILE, "w") as f:
|
||||
f.write(rendered_conf)
|
||||
|
|
|
@ -357,9 +357,8 @@ class URLGlanceImageFixture(FileGlanceImageFixture):
|
|||
|
||||
def _download_image_file(self, image_file, chunks, expected_size):
|
||||
image_dir = os.path.dirname(image_file)
|
||||
if not os.path.isdir(image_dir):
|
||||
LOG.debug('Creating image directory: %r', image_dir)
|
||||
os.makedirs(image_dir)
|
||||
LOG.debug('Ensure image directory exists: %r', image_dir)
|
||||
tobiko.makedirs(image_dir)
|
||||
|
||||
fd, temp_file = tempfile.mkstemp(dir=image_dir)
|
||||
with io.open(fd, 'wb', io.DEFAULT_BUFFER_SIZE) as image_data:
|
||||
|
|
|
@ -54,9 +54,7 @@ class KeyPairStackFixture(heat.HeatStackFixture):
|
|||
key_file = os.path.realpath(self.key_file)
|
||||
if not os.path.isfile(key_file):
|
||||
key_dir = os.path.dirname(key_file)
|
||||
if not os.path.isdir(key_dir):
|
||||
os.makedirs(key_dir)
|
||||
assert os.path.isdir(key_dir)
|
||||
tobiko.makedirs(key_dir)
|
||||
try:
|
||||
sh.local_execute(['ssh-keygen', '-f', key_file, '-P', ''])
|
||||
except sh.ShellCommandFailed:
|
||||
|
|
Loading…
Reference in New Issue