[Kimchi-devel] [PATCH][Kimchi 1/2] Issue #836: Allow user change guest graphics type

Bianca Carvalho bianca at linux.vnet.ibm.com
Thu Sep 1 21:00:47 UTC 2016


Reviewed-by: Bianca Carvalho <bianca at linux.vnet.ibm.com>


Em 8/31/16 8:13 PM, Ramon Medeiros escreveu:
> Allow vm to choose between spice and vnc
>
> Signed-off-by: Ramon Medeiros <ramonn at linux.vnet.ibm.com>
> ---
>   API.json     |  6 ++++++
>   docs/API.md  |  1 +
>   i18n.py      |  2 +-
>   model/vms.py | 10 ++++++++++
>   4 files changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/API.json b/API.json
> index a3af02d..dca6840 100644
> --- a/API.json
> +++ b/API.json
> @@ -377,6 +377,12 @@
>                               "description": "Life time for the graphics password.",
>                               "type": "number",
>                               "error": "KCHVM0032E"
> +                        },
> +                        "type": {
> +                            "description": "Graphics type",
> +                            "type": "string",
> +                            "enum": ["spice", "vnc"],
> +                            "error": "KCHVM0054E"
>                           }
>                       }
>                   },
> diff --git a/docs/API.md b/docs/API.md
> index 7bd677f..093acb4 100644
> --- a/docs/API.md
> +++ b/docs/API.md
> @@ -166,6 +166,7 @@ server.
>           * passwdValidTo *(optional)*: lifetime for the console password. When
>                                         omitted the password will be valid just
>                                         for 30 seconds.
> +        * type *(optional)*: graphics type. VNC or Spice.
>       * cpu_info *(optional)*: CPU-specific information.
>           * maxvcpus *(optional)*: The maximum number of vCPUs that can be
>                 assigned to the VM. If topology is specified, maxvcpus must be a
> diff --git a/i18n.py b/i18n.py
> index e8d9c05..4cc931b 100644
> --- a/i18n.py
> +++ b/i18n.py
> @@ -106,7 +106,7 @@ messages = {
>       "KCHVM0051E": _("Cannot reset %(name)s. Virtual machine is already shut off."),
>       "KCHVM0052E": _("Boot order must be a list. Devices accepted: hd, cdrom, fd or network."),
>       "KCHVM0053E": _("Bootmenu must be boolean. Values accepted: true of false."),
> -
> +    "KCHVM0054E": _("Graphic type not valid. Values accepted: vnc or spice."),
>       "KCHVM0055E": _("Migrate to localhost %(host)s is not allowed."),
>       "KCHVM0056E": _("To migrate a virtual machine to the remote host %(host)s the user %(user)s must have password-less login to the remote host."),
>       "KCHVM0057E": _("Can not migrate virtual machine %(name)s when its in %(state)s state."),
> diff --git a/model/vms.py b/model/vms.py
> index 7f607f5..0e61e0d 100644
> --- a/model/vms.py
> +++ b/model/vms.py
> @@ -291,6 +291,12 @@ class VMModel(object):
>
>               # GRAPHICS can be updated offline or online
>               if 'graphics' in params:
> +
> +                # some parameters cannot change while vm is running
> +                if DOM_STATE_MAP[dom.info()[0]] != 'shutoff':
> +                    if 'type' in params['graphics']:
> +                        raise InvalidParameter('KCHVM0074E',
> +                                               {'params': 'graphics type'})
>                   dom = self._update_graphics(dom, params)
>
>               # Live updates
> @@ -702,6 +708,10 @@ class VMModel(object):
>               valid_to = time.strftime('%Y-%m-%dT%H:%M:%S', expire_time)
>               graphics.attrib['passwdValidTo'] = valid_to
>
> +        gtype = params['graphics'].get('type')
> +        if gtype is not None:
> +            graphics.attrib['type'] = gtype
> +
>           conn = self.conn.get()
>           if not dom.isActive():
>               return conn.defineXML(ET.tostring(root, encoding="utf-8"))




More information about the Kimchi-devel mailing list