From b07cf871939ce5dfea8e8a145ebca39c95e07439 Mon Sep 17 00:00:00 2001 From: "Anthony G. Basile" Date: Wed, 1 Jul 2015 12:08:11 -0400 Subject: Clean up makedirs(). makedirs() exist_ok=True. Use it to avoid FileExistsError. We are now logging exceptions vi stderr in Daemon.py, so let exceptions propagate up for debugging. --- grs/Kernel.py | 3 ++- grs/Log.py | 5 +---- grs/MountDirectories.py | 6 ++---- grs/Populate.py | 5 +---- grs/Seed.py | 5 +++-- 5 files changed, 9 insertions(+), 15 deletions(-) diff --git a/grs/Kernel.py b/grs/Kernel.py index 7dd76fa..16d2247 100644 --- a/grs/Kernel.py +++ b/grs/Kernel.py @@ -96,7 +96,8 @@ class Kernel(): cwd = os.getcwd() os.chdir(image_dir) - os.unlink(tarball_path) + if os.path.isfile(tarball_path): + os.unlink(tarball_path) cmd = 'tar -Jcf %s .' % tarball_path Execute(cmd, timeout=600, logfile=self.logfile) os.chdir(cwd) diff --git a/grs/Log.py b/grs/Log.py index 91141e8..2a7ef9d 100644 --- a/grs/Log.py +++ b/grs/Log.py @@ -11,10 +11,7 @@ class Log(): def __init__(self, logfile = CONST.LOGFILE): self.logfile = logfile - try: - os.makedirs(os.path.dirname(self.logfile)) - except FileExistsError: - pass + os.makedirs(os.path.dirname(self.logfile), exist_ok=True) open(self.logfile, 'a').close() diff --git a/grs/MountDirectories.py b/grs/MountDirectories.py index 43cd91a..16edc32 100644 --- a/grs/MountDirectories.py +++ b/grs/MountDirectories.py @@ -83,8 +83,7 @@ class MountDirectories(): # Here source_directory is assumet to be an abspath # and we create it if it doesn't exist source_directory = mount[0] - if not os.path.isdir(source_directory): - os.makedirs(source_directory) + os.makedirs(source_directory, mode=0o755, exist_ok=True) target_directory = mount[1] elif isinstance(mount, dict): tmp = list(mount.values()) @@ -94,8 +93,7 @@ class MountDirectories(): tmp = list(mount.keys()) target_directory = tmp[0] target_directory = os.path.join(self.portage_configroot, target_directory) - if not os.path.isdir(target_directory): - os.makedirs(target_directory) + os.makedirs(target_directory, mode=0o755, exist_ok=True) if isinstance(mount, str): cmd = 'mount --bind /%s %s' % (source_directory, target_directory) elif isinstance(mount, list): diff --git a/grs/Populate.py b/grs/Populate.py index 504283c..75b7ed8 100644 --- a/grs/Populate.py +++ b/grs/Populate.py @@ -34,10 +34,7 @@ class Populate(): Execute(cmd, timeout=60, logfile = self. logfile) # Add any extra files - try: - os.makedirs(self.etc) - except FileExistsError: - pass + os.makedirs(self.etc, mode=0o755, exist_ok=True) with open(self.resolv_conf, 'w') as f: f.write('nameserver %s' % self.nameserver) diff --git a/grs/Seed.py b/grs/Seed.py index 0da8354..76034cc 100644 --- a/grs/Seed.py +++ b/grs/Seed.py @@ -50,8 +50,9 @@ class Seed(): if os.path.isdir(directory): shutil.move(directory, '%s.0' % directory) # Now that all prevous directory are out of the way, - # create a new empty directory - os.makedirs(directory) + # create a new empty directory. Fail if the directory + # is still around. + os.makedirs(directory, mode=0o755, exist_ok=False) # Download a stage tarball if we don't have one if not os.path.isfile(self.filepath): -- cgit v1.2.3-65-gdbad