Use the FileExistsError exception.

This commit is contained in:
grossmj committed 2014-04-12 16:46:02 -06:00
1 parent a874b63e40
commit 872515fa78
6 files changed
+42 -42

No files matched your search

+13 -11
View File
@@ -205,11 +205,12 @@ class Dynamips(IModule):
if not os.access(self._dynamips, os.X_OK):
raise DynamipsError("Dynamips {} is not executable".format(self._dynamips))
if not os.path.isdir(self._working_dir):
try:
os.makedirs(self._working_dir)
except OSError as e:
raise DynamipsError("Could not create working directory {}".format(e))
try:
os.makedirs(self._working_dir)
except FileExistsError:
pass
except OSError as e:
raise DynamipsError("Could not create working directory {}".format(e))
# check if the working directory is writable
if not os.access(self._working_dir, os.W_OK):
@@ -248,7 +249,7 @@ class Dynamips(IModule):
self._dynamips = request.pop("path")
if "working_dir" in request:
self._working_dir = request.pop("working_dir")
self._working_dir = os.path.join(request.pop("working_dir"), "dynamips")
log.info("this server is local")
else:
self._remote_server = True
@@ -407,11 +408,12 @@ class Dynamips(IModule):
config = "!\n" + config.replace("\r", "")
config = config.replace('%h', router.name)
config_dir = os.path.join(router.hypervisor.working_dir, "configs")
if not os.path.isdir(config_dir):
try:
os.makedirs(config_dir)
except OSError as e:
raise DynamipsError("Could not create configs directory: {}".format(e))
try:
os.makedirs(config_dir)
except FileExistsError:
pass
except OSError as e:
raise DynamipsError("Could not create configs directory: {}".format(e))
config_path = os.path.join(config_dir, config_filename)
try:
with open(config_path, "w") as f:
@@ -461,13 +461,6 @@ class HypervisorManager(object):
"""
port = self.allocate_tcp_port()
# working_dir = os.path.join(self._working_dir, "instance-{}".format(port))
# if not os.path.isdir(working_dir):
# try:
# os.makedirs(working_dir)
# except OSError as e:
# raise DynamipsError("{}".format(e))
hypervisor = Hypervisor(self._path,
self._working_dir,
self._host,