diff options
author | Chad Smith <chad.smith@canonical.com> | 2019-01-31 03:52:13 +0000 |
---|---|---|
committer | Server Team CI Bot <josh.powers+server-team-bot@canonical.com> | 2019-01-31 03:52:13 +0000 |
commit | 489553547f3461bd8ff67d3099237694130eb714 (patch) | |
tree | 373e867be7edd8b9f558a5ed34b9c06ea5483c07 /cloudinit/cmd/clean.py | |
parent | 94a64529dccebd8fe8c7969370b8696e46023fbd (diff) | |
download | vyos-cloud-init-489553547f3461bd8ff67d3099237694130eb714.tar.gz vyos-cloud-init-489553547f3461bd8ff67d3099237694130eb714.zip |
clean: cloud-init clean should not trace when run from within cloud_dir
Avoid traceback when cloud-init clean is run from within
/var/lib/cloud/ deleted dirs.
LP: #1795508
Diffstat (limited to 'cloudinit/cmd/clean.py')
-rw-r--r-- | cloudinit/cmd/clean.py | 26 |
1 files changed, 13 insertions, 13 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 |