[libvirt] [RFC PATCH 2/7] qemu: command: Move graphics iteration to its own function

John Ferlan jferlan at redhat.com
Mon Jun 4 23:36:23 UTC 2018



On 05/30/2018 09:42 AM, Erik Skultety wrote:
> It should be the command line helper who takes care of the iteration
> rather than the caller.
> 
> Signed-off-by: Erik Skultety <eskultet at redhat.com>
> ---
>  src/qemu/qemu_command.c | 60 +++++++++++++++++++++++++++++--------------------
>  1 file changed, 36 insertions(+), 24 deletions(-)
> 
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index 0b5ec4f2ba..1667b09a8b 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -5323,10 +5323,10 @@ qemuBuildHostdevCommandLine(virCommandPtr cmd,
>                  }
>                  break;
>              case VIR_MDEV_MODEL_TYPE_LAST:
> -                virReportError(VIR_ERR_INTERNAL_ERROR,
> -                               _("unexpected vfio type '%d'"), subsys->u.mdev.model);
> +            default:
> +                virReportEnumRangeError(virMediatedDeviceModelType,
> +                                        subsys->u.mdev.model);
>                  return -1;
> -                break;

Separate and unrelated hunk...

Reviewed-by: John Ferlan <jferlan at redhat.com>

for a separated patch...



>              }
>  
>              virCommandAddArg(cmd, "-device");
> @@ -8042,26 +8042,41 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg,
>  static int
>  qemuBuildGraphicsCommandLine(virQEMUDriverConfigPtr cfg,
>                               virCommandPtr cmd,
> -                             virQEMUCapsPtr qemuCaps,
> -                             virDomainGraphicsDefPtr graphics)
> +                             virDomainDefPtr def,
> +                             virQEMUCapsPtr qemuCaps)
>  {
> -    switch (graphics->type) {
> -    case VIR_DOMAIN_GRAPHICS_TYPE_SDL:
> -        return qemuBuildGraphicsSDLCommandLine(cfg, cmd, qemuCaps, graphics);
> +    size_t i;
>  
> -    case VIR_DOMAIN_GRAPHICS_TYPE_VNC:
> -        return qemuBuildGraphicsVNCCommandLine(cfg, cmd, qemuCaps, graphics);
> +    for (i = 0; i < def->ngraphics; i++) {
> +        virDomainGraphicsDefPtr graphics = def->graphics[i];
>  
> -    case VIR_DOMAIN_GRAPHICS_TYPE_SPICE:
> -        return qemuBuildGraphicsSPICECommandLine(cfg, cmd, qemuCaps, graphics);
> +        switch (graphics->type) {
> +        case VIR_DOMAIN_GRAPHICS_TYPE_SDL:
> +            if (qemuBuildGraphicsSDLCommandLine(cfg, cmd,
> +                                                qemuCaps, graphics) < 0)
> +                return -1;
>  
> -    case VIR_DOMAIN_GRAPHICS_TYPE_RDP:
> -    case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP:
> -    case VIR_DOMAIN_GRAPHICS_TYPE_LAST:
> -        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> -                       _("unsupported graphics type '%s'"),
> -                       virDomainGraphicsTypeToString(graphics->type));
> -        return -1;
> +            break;
> +        case VIR_DOMAIN_GRAPHICS_TYPE_VNC:
> +            if (qemuBuildGraphicsVNCCommandLine(cfg, cmd,
> +                                                qemuCaps, graphics) < 0)
> +                return -1;
> +
> +            break;
> +        case VIR_DOMAIN_GRAPHICS_TYPE_SPICE:
> +            if (qemuBuildGraphicsSPICECommandLine(cfg, cmd,
> +                                                  qemuCaps, graphics) < 0)
> +                return -1;
> +
> +            break;
> +        case VIR_DOMAIN_GRAPHICS_TYPE_RDP:
> +        case VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP:
> +            break;

Slight change from previous, but probably still worthy of the:

        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
                       _("unsupported graphics type '%s'"),
                       virDomainGraphicsTypeToString(graphics->type));
        return -1;

since both are VirtualBox based and not QEMU.

With that change,

Reviewed-by: John Ferlan <jferlan at redhat.com>

For this hunk.

John

> +        case VIR_DOMAIN_GRAPHICS_TYPE_LAST:
> +        default:
> +            virReportEnumRangeError(virDomainGraphicsType, graphics->type);
> +            return -1;
> +        }
>      }
>  
>      return 0;
> @@ -10131,11 +10146,8 @@ qemuBuildCommandLine(virQEMUDriverPtr driver,
>      if (qemuBuildInputCommandLine(cmd, def, qemuCaps) < 0)
>          goto error;
>  
> -    for (i = 0; i < def->ngraphics; ++i) {
> -        if (qemuBuildGraphicsCommandLine(cfg, cmd, qemuCaps,
> -                                         def->graphics[i]) < 0)
> -            goto error;
> -    }
> +    if (qemuBuildGraphicsCommandLine(cfg, cmd, def, qemuCaps) < 0)
> +        goto error;
>  
>      if (qemuBuildVideoCommandLine(cmd, def, qemuCaps) < 0)
>          goto error;
> 




More information about the libvir-list mailing list