summaryrefslogtreecommitdiff
path: root/cloudinit/cmd
diff options
context:
space:
mode:
authorAlberto Contreras <alberto.contreras@canonical.com>2022-06-22 17:38:17 +0200
committerGitHub <noreply@github.com>2022-06-22 10:38:17 -0500
commita23c886ea2cd301b6021eb03636beb5b92c429dc (patch)
tree7d2bffbc225c2134115a6db93a9041c08772d562 /cloudinit/cmd
parent2ab0e67da69fc7141e14c172ab73c9ad3895eda3 (diff)
downloadcloud-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-xcloudinit/cmd/devel/logs.py15
-rwxr-xr-xcloudinit/cmd/main.py4
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")