Nitpick: s/exprt/export in title.

Else LGTM, sorry for failing to notice this. I'll take a look at why our
QAs did not catch this.

On Tue, Jul 7, 2015 at 3:17 PM, 'Klaus Aehlig' via ganeti-devel <
[email protected]> wrote:

> Commit 3d835f7d made two incorrect assumptions that
> lead to instance moves failing for plain instances.
> - The Import/Export interface is available at the level
>   of block devices, not (as was assumed in the said
>   commit) at the level of configuration objects.
> - The Import/Export functions provide an argv vector
>   not a single string; also the quoted version thereof
>   is not a parameter so be substituted into a shell
>   template (the quoted string does contain several
>   characters with special meaning to the shell, e.g.,
>   spaces).
> Fix this now.
>
> Signed-off-by: Klaus Aehlig <[email protected]>
> ---
>  lib/backend.py | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/lib/backend.py b/lib/backend.py
> index 519e00d..73e907f 100644
> --- a/lib/backend.py
> +++ b/lib/backend.py
> @@ -4971,12 +4971,13 @@ def _GetImportExportIoCommand(instance, mode,
> ieio, ieargs):
>
>    elif ieio == constants.IEIO_RAW_DISK:
>      (disk, ) = ieargs
> +    real_disk = _OpenRealBD(disk)
>
>      if mode == constants.IEM_IMPORT:
> -      suffix = utils.BuildShellCmd("| %s", disk.Import())
> +      suffix = "| %s" % utils.ShellQuoteArgs(real_disk.Import())
>
>      elif mode == constants.IEM_EXPORT:
> -      prefix = utils.BuildShellCmd("%s |", disk.Export())
> +      prefix = "%s |" % utils.ShellQuoteArgs(real_disk.Export())
>        exp_size = disk.size
>
>    elif ieio == constants.IEIO_SCRIPT:
> --
> 2.4.3.573.g4eafbef
>
>
Hrvoje Ribicic
Ganeti Engineering
Google Germany GmbH
Dienerstr. 12, 80331, München

Geschäftsführer: Graham Law, Christine Elizabeth Flores
Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg

Reply via email to