|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] tools/xendomains: Only save/restore/migrate if supported by xenlight
On Wed, Mar 22, 2023 at 01:58:00PM +0000, Peter Hoyes wrote:
> From: Peter Hoyes <Peter.Hoyes@xxxxxxx>
>
> Saving, restoring and migrating domains are not currently supported on
> arm and arm64 platforms, so xendomains prints the warning:
>
> An error occurred while saving domain:
> command not implemented
>
> when attempting to run `xendomains stop`. It otherwise continues to shut
> down the domains cleanly, with the unsupported steps skipped.
The patch looks kind of ok, but shouldn't $XENDOMAINS_SAVE be set to an
empty string in the config by the admin instead?
Or is the issue that $XENDOMAINS_SAVE is set by default, even on arm* ?
Maybe it's easier to check that the command is implemented at run time
rather than trying to have a good default value for XENDOMAINS_SAVE at
install/package time.
> Use `xl help` to detect whether save/restore/migrate is supported by the
> platform. If not, do not attempt to run the corresponding command.
>
> Signed-off-by: Peter Hoyes <Peter.Hoyes@xxxxxxx>
> ---
> tools/hotplug/Linux/xendomains.in | 16 +++++++++++++---
> 1 file changed, 13 insertions(+), 3 deletions(-)
>
> diff --git a/tools/hotplug/Linux/xendomains.in
> b/tools/hotplug/Linux/xendomains.in
> index 70f4129ef4..bafcb874e1 100644
> --- a/tools/hotplug/Linux/xendomains.in
> +++ b/tools/hotplug/Linux/xendomains.in
> @@ -229,6 +229,15 @@ parseln()
> [ -n "$name" -a -n "$id" ] && return 0 || return 1
> }
>
> +subcmd_supported()
> +{
> + local output
> + output=$("$CMD help | grep "^ $1"")
> + if [ ! "$output" ]; then
> + return 1
> + fi
It looks like some quote are in the wrong place. You probably wanted to
write:
output="$($CMD help | grep "^ $1")"
But I'd like to have this slightly more robust, to match the whole
command, rather than the beginning.
(For example `subcmd_supported "pci"` would reture true even if no "pci"
command exist.)
Something like:
$CMD help | grep "^ $1\( \|$\)"
To check that the command name is followed by a space or end-of-line
(even if it seems that there's always a space printed.)
A similar pattern is used in "tools/xl/bash-completion", so it should
probably be fine in the future.
Then, we don't really need the "$output" from grep, we could just ask it
if there's a match or not, with --quiet:
$CMD help | grep -q "^ $1\( \|$\)"
And that would be the whole function. Would that works for you?
The rest of the patch looks fine.
Thanks,
--
Anthony PERARD
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |