summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cloudinit/cmd/clean.py26
-rw-r--r--cloudinit/cmd/tests/test_clean.py3
2 files changed, 15 insertions, 14 deletions
diff --git a/cloudinit/cmd/clean.py b/cloudinit/cmd/clean.py
index de22f7f2..28ee7b84 100644
--- a/cloudinit/cmd/clean.py
+++ b/cloudinit/cmd/clean.py
@@ -5,12 +5,13 @@
"""Define 'clean' utility and handler as part of cloud-init commandline."""
import argparse
+import glob
import os
import sys
from cloudinit.stages import Init
from cloudinit.util import (
- ProcessExecutionError, chdir, del_dir, del_file, get_config_logfiles,
+ ProcessExecutionError, del_dir, del_file, get_config_logfiles,
is_link, subp)
@@ -61,18 +62,17 @@ def remove_artifacts(remove_logs, remove_seed=False):
if not os.path.isdir(init.paths.cloud_dir):
return 0 # Artifacts dir already cleaned
- with chdir(init.paths.cloud_dir):
- for path in os.listdir('.'):
- if path == 'seed' and not remove_seed:
- continue
- try:
- if os.path.isdir(path) and not is_link(path):
- del_dir(path)
- else:
- del_file(path)
- except OSError as e:
- error('Could not remove {0}: {1}'.format(path, str(e)))
- return 1
+ for path in glob.glob('%s/*' % init.paths.cloud_dir):
+ if path == '%s/seed' % init.paths.cloud_dir and not remove_seed:
+ continue
+ try:
+ if os.path.isdir(path) and not is_link(path):
+ del_dir(path)
+ else:
+ del_file(path)
+ except OSError as e:
+ error('Could not remove {0}: {1}'.format(path, str(e)))
+ return 1
return 0
diff --git a/cloudinit/cmd/tests/test_clean.py b/cloudinit/cmd/tests/test_clean.py
index 5a3ec3bf..15c3294e 100644
--- a/cloudinit/cmd/tests/test_clean.py
+++ b/cloudinit/cmd/tests/test_clean.py
@@ -136,7 +136,8 @@ class TestClean(CiTestCase):
clean.remove_artifacts, remove_logs=False)
self.assertEqual(1, retcode)
self.assertEqual(
- 'ERROR: Could not remove dir1: oops\n', m_stderr.getvalue())
+ 'ERROR: Could not remove %s/dir1: oops\n' % self.artifact_dir,
+ m_stderr.getvalue())
def test_handle_clean_args_reboots(self):
"""handle_clean_args_reboots when reboot arg is provided."""