summaryrefslogtreecommitdiff
path: root/cloudinit
diff options
context:
space:
mode:
Diffstat (limited to 'cloudinit')
-rw-r--r--[-rwxr-xr-x]cloudinit/cmd/devel/__init__.py12
-rw-r--r--cloudinit/config/schema.py2
2 files changed, 11 insertions, 3 deletions
diff --git a/cloudinit/cmd/devel/__init__.py b/cloudinit/cmd/devel/__init__.py
index 9a8f2ebd..357c4ae7 100755..100644
--- a/cloudinit/cmd/devel/__init__.py
+++ b/cloudinit/cmd/devel/__init__.py
@@ -17,9 +17,17 @@ def addLogHandlerCLI(logger, log_level):
return logger
-def read_cfg_paths() -> Paths:
- """Return a Paths object based on the system configuration on disk."""
+def read_cfg_paths(fetch_existing_datasource: str = "") -> Paths:
+ """Return a Paths object based on the system configuration on disk.
+
+ :param fetch_existing_datasource: String one of check or trust. Whether to
+ load the pickled datasource before returning Paths. This is necessary
+ when using instance paths via Paths.get_ipath method which are only
+ known from the instance-id metadata in the detected datasource.
+ """
init = Init(ds_deps=[])
+ if fetch_existing_datasource:
+ init.fetch(existing=fetch_existing_datasource)
init.read_cfg()
return init.paths
diff --git a/cloudinit/config/schema.py b/cloudinit/config/schema.py
index 9005e924..4b7e8016 100644
--- a/cloudinit/config/schema.py
+++ b/cloudinit/config/schema.py
@@ -1264,7 +1264,7 @@ def handle_schema_args(name, args):
if args.docs:
print(load_doc(args.docs))
return
- paths = read_cfg_paths()
+ paths = read_cfg_paths(fetch_existing_datasource="trust")
if args.instance_data:
instance_data_path = args.instance_data
elif os.getuid() != 0: