On Wed, May 04, 2016 at 04:09:02PM +0200, Pino Toscano wrote:
On Wednesday 04 May 2016 14:12:30 Richard W.M. Jones wrote:
> For Windows, we now print:
>
> $ virt-customize -a ./test-data/phony-guests/windows.img --install MSSQL
> [ 0.0] Examining the guest ...
> [ 14.2] Setting a random seed
> virt-customize: warning: random seed could not be set for this type of
> guest
> [ 14.2] Installing packages: MSSQL
> virt-customize: error: '--install' failed because inspection could not
> determine the package manager for this guest OS.
>
> If this guest OS is a common one with ordinary package management then this
> may have been caused by a failure of libguestfs inspection.
>
> For OSes such as Windows that lack package management, this is not
> possible. Try using one of the '--firstboot*' flags instead (described in
> the manual).
> ---
> customize/customize_run.ml | 19 ++++++++++++++-----
> 1 file changed, 14 insertions(+), 5 deletions(-)
>
> diff --git a/customize/customize_run.ml b/customize/customize_run.ml
> index 83e70a6..c0e1e44 100644
> --- a/customize/customize_run.ml
> +++ b/customize/customize_run.ml
> @@ -94,7 +94,7 @@ exec >>%s 2>&1
> in
>
> (*
http://distrowatch.com/dwres.php?resource=package-management *)
> - let guest_install_command packages =
> + let rec guest_install_command packages =
> let quoted_args = String.concat " " (List.map quote packages) in
> match g#inspect_get_package_management root with
> | "apk" ->
> @@ -116,10 +116,11 @@ exec >>%s 2>&1
> | "urpmi" -> sprintf "urpmi %s" quoted_args
> | "yum" -> sprintf "yum -y install %s" quoted_args
> | "zypper" -> sprintf "zypper -n in -l %s" quoted_args
> +
> | "unknown" ->
> - error (f_"--install is not supported for this guest operating
system")
> + error_unknown_package_manager (s_"--install")
> | pm ->
> - error (f_"sorry, don't know how to use --install with the
'%s' package manager") pm
> + error_unimplemented_package_manager (s_"--install") pm
>
> and guest_update_command () =
> match g#inspect_get_package_management root with
> @@ -142,10 +143,18 @@ exec >>%s 2>&1
> | "urpmi" -> "urpmi --auto-select"
> | "yum" -> "yum -y update"
> | "zypper" -> "zypper -n update -l"
> +
> | "unknown" ->
> - error (f_"--update is not supported for this guest operating
system")
> + error_unknown_package_manager (s_"--update")
> | pm ->
> - error (f_"sorry, don't know how to use --update with the
'%s' package manager") pm
> + error_unimplemented_package_manager (s_"--update") pm
> +
> + (* Windows has package_management == "unknown". *)
> + and error_unknown_package_manager flag =
> + error (f_"'%s' failed because inspection could not determine the
package manager for this guest OS.\n\nIf this guest OS is a common one with ordinary
package management then this may have been caused by a failure of libguestfs
inspection.\n\nFor OSes such as Windows that lack package management, this is not
possible. Try using one of the '--firstboot*' flags instead (described in the
manual).") flag
what about
"cannot run '%s' because no package management has been detected for
this guest OS.\n etc"
> +
> + and error_unimplemented_package_manager flag pm =
> + error (f_"sorry, '%s' with the '%s' package manager has
not been implemented.\n\nIf this guest OS has ordinary package management then you will
need to add support to virt-customize.\n\nFor OSes lack package management, this is not
possible.\n\nYou can work around this by using one of the '--run*' or
'--firstboot*' options instead (described in the manual).") flag pm
I'd shorten this message:
"sorry, '%s' with the '%s' package manager has not been implemented
yet.\n\nYou can work around this by using one of the '--run*' or
'--firstboot*' options instead (described in the manual)."
rationale behind that:
- telling users to add support for that is not exactly useful, and what
will happen in such cases is that we get reports with that
- if the OS lacks package management, then the result will be "unknown"
and thus the other message will be shown
- this would be shown in virt-builder, other than virt-customize (but
that's just a minor point)
Thanks - I pushed these with the changes you suggested.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW