Skip to content

Commit 88a63af

Browse files
add --restore-root option to specify target for misc vm files
Provide a flag to specify where misc files (NVRAM vars, loader, etc) restored from the backup should be placed.
1 parent c0e7a4c commit 88a63af

File tree

3 files changed

+13
-0
lines changed

3 files changed

+13
-0
lines changed

libvirtnbdbackup/common.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,9 @@ def copy(args: Namespace, source: str, target: str) -> None:
209209
if args.sshClient:
210210
args.sshClient.copy(source, target)
211211
else:
212+
if args.restore_root is not None:
213+
dir, _ = os.path.split(target)
214+
os.makedirs(dir, exist_ok=True)
212215
shutil.copyfile(source, target)
213216
except OSError as e:
214217
log.warning("Failed to copy [%s] to [%s]: [%s]", source, target, e)

libvirtnbdbackup/restore/files.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ def restore(args: Namespace, vmConfig: str, virtClient: virt.client) -> None:
3838

3939
for setting, val in info.items():
4040
f = lib.getLatest(args.input, f"*{os.path.basename(val)}*", -1)
41+
if args.restore_root is not None:
42+
_, _, val_as_relative = os.path.splitroot(val)
43+
val = os.path.join(args.restore_root, val_as_relative)
4144
if lib.exists(args, val):
4245
logging.info(
4346
"File [%s]: for boot option [%s] already exists, skipping.",

virtnbdrestore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,13 @@ def main() -> None:
175175
action="store_true",
176176
help="Preallocate restored qcow images. (default: %(default)s)",
177177
)
178+
opt.add_argument(
179+
"-R",
180+
"--restore-root",
181+
default=None,
182+
type=str,
183+
help="Store restored misc VM files (loader, firmware vars, etc) under alternative root directory (default /)",
184+
)
178185

179186
remopt = parser.add_argument_group("Remote Restore options")
180187
argopt.addRemoteArgs(remopt)

0 commit comments

Comments
 (0)