diff options
author | Alberto Contreras <alberto.contreras@canonical.com> | 2022-06-22 17:38:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-22 10:38:17 -0500 |
commit | a23c886ea2cd301b6021eb03636beb5b92c429dc (patch) | |
tree | 7d2bffbc225c2134115a6db93a9041c08772d562 /cloudinit/cmd | |
parent | 2ab0e67da69fc7141e14c172ab73c9ad3895eda3 (diff) | |
download | cloud-init-git-a23c886ea2cd301b6021eb03636beb5b92c429dc.tar.gz |
cloud-config: honor cloud_dir setting (#1523)
Ensure cloud_dir setting is respected rather than hardcoding
"/var/lib/cloud"
- Modules affected: cmd.main, apport, devel.logs (collect-logs),
cc_snap, sources.DataSourceAzure, sources.DataSourceBigstep,
util:fetch_ssl_details.
- testing: Extend and port to pytest unit tests, add integration test.
LP: #1976564
Diffstat (limited to 'cloudinit/cmd')
-rwxr-xr-x | cloudinit/cmd/devel/logs.py | 15 | ||||
-rwxr-xr-x | cloudinit/cmd/main.py | 4 |
2 files changed, 14 insertions, 5 deletions
diff --git a/cloudinit/cmd/devel/logs.py b/cloudinit/cmd/devel/logs.py index fbe8c500..a87b7043 100755 --- a/cloudinit/cmd/devel/logs.py +++ b/cloudinit/cmd/devel/logs.py @@ -12,6 +12,7 @@ import shutil import sys from datetime import datetime +from cloudinit.cmd.devel import read_cfg_paths from cloudinit.sources import INSTANCE_JSON_SENSITIVE_FILE from cloudinit.subp import ProcessExecutionError, subp from cloudinit.temp_utils import tempdir @@ -19,7 +20,11 @@ from cloudinit.util import chdir, copy, ensure_dir, write_file CLOUDINIT_LOGS = ["/var/log/cloud-init.log", "/var/log/cloud-init-output.log"] CLOUDINIT_RUN_DIR = "/run/cloud-init" -USER_DATA_FILE = "/var/lib/cloud/instance/user-data.txt" # Optional + + +def _get_user_data_file() -> str: + paths = read_cfg_paths() + return paths.get_ipath_cur("userdata_raw") def get_parser(parser=None): @@ -53,6 +58,7 @@ def get_parser(parser=None): " Default: cloud-init.tar.gz" ), ) + user_data_file = _get_user_data_file() parser.add_argument( "--include-userdata", "-u", @@ -61,7 +67,7 @@ def get_parser(parser=None): dest="userdata", help=( "Optionally include user-data from {0} which could contain" - " sensitive information.".format(USER_DATA_FILE) + " sensitive information.".format(user_data_file) ), ) return parser @@ -104,7 +110,7 @@ def _collect_file(path, out_dir, verbosity): _debug("file %s did not exist\n" % path, 2, verbosity) -def collect_logs(tarfile, include_userdata, verbosity=0): +def collect_logs(tarfile, include_userdata: bool, verbosity=0): """Collect all cloud-init logs and tar them up into the provided tarfile. @param tarfile: The path of the tar-gzipped file to create. @@ -152,7 +158,8 @@ def collect_logs(tarfile, include_userdata, verbosity=0): for log in CLOUDINIT_LOGS: _collect_file(log, log_dir, verbosity) if include_userdata: - _collect_file(USER_DATA_FILE, log_dir, verbosity) + user_data_file = _get_user_data_file() + _collect_file(user_data_file, log_dir, verbosity) run_dir = os.path.join(log_dir, "run") ensure_dir(run_dir) if os.path.exists(CLOUDINIT_RUN_DIR): diff --git a/cloudinit/cmd/main.py b/cloudinit/cmd/main.py index f2d1880a..c6303478 100755 --- a/cloudinit/cmd/main.py +++ b/cloudinit/cmd/main.py @@ -47,6 +47,7 @@ from cloudinit import atomic_helper from cloudinit.config import cc_set_hostname from cloudinit import dhclient_hook +from cloudinit.cmd.devel import read_cfg_paths # Welcome message template @@ -661,7 +662,8 @@ def main_single(name, args): def status_wrapper(name, args, data_d=None, link_d=None): if data_d is None: - data_d = os.path.normpath("/var/lib/cloud/data") + paths = read_cfg_paths() + data_d = paths.get_cpath("data") if link_d is None: link_d = os.path.normpath("/run/cloud-init") |