diff mbox series

[2/3] qmp: remove deprecated "change" command

Message ID 20210120144235.345983-3-pbonzini@redhat.com
State New
Headers show
Series vnc: remove "change vnc TARGET" and QMP change command, support "-vnc help" | expand

Commit Message

Paolo Bonzini Jan. 20, 2021, 2:42 p.m. UTC
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 docs/system/deprecated.rst       |  5 ----
 docs/system/removed-features.rst |  5 ++++
 monitor/qmp-cmds.c               | 51 --------------------------------
 qapi/misc.json                   | 49 ------------------------------
 4 files changed, 5 insertions(+), 105 deletions(-)

Comments

Philippe Mathieu-Daudé Jan. 20, 2021, 3:21 p.m. UTC | #1
On 1/20/21 3:42 PM, Paolo Bonzini wrote:
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  docs/system/deprecated.rst       |  5 ----
>  docs/system/removed-features.rst |  5 ++++
>  monitor/qmp-cmds.c               | 51 --------------------------------
>  qapi/misc.json                   | 49 ------------------------------
>  4 files changed, 5 insertions(+), 105 deletions(-)

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Eric Blake Jan. 20, 2021, 3:31 p.m. UTC | #2
On 1/20/21 8:42 AM, Paolo Bonzini wrote:
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  docs/system/deprecated.rst       |  5 ----
>  docs/system/removed-features.rst |  5 ++++
>  monitor/qmp-cmds.c               | 51 --------------------------------
>  qapi/misc.json                   | 49 ------------------------------
>  4 files changed, 5 insertions(+), 105 deletions(-)

>  
> -``change`` (since 2.5.0)
> -''''''''''''''''''''''''
> -
> -Use ``blockdev-change-medium`` or ``change-vnc-password`` instead.

We didn't document a fallback for changing the vnc listener...


> +++ b/docs/system/removed-features.rst
> @@ -53,6 +53,11 @@ are automatically loaded from qcow2 images.
>  Use ``device_add`` for hotplugging vCPUs instead of ``cpu-add``.  See
>  documentation of ``query-hotpluggable-cpus`` for additional details.
>  
> +``change`` (removed in 6.0)
> +'''''''''''''''''''''''''''
> +
> +Use ``blockdev-change-medium`` or ``change-vnc-password`` instead.

...and still don't,...


> -static void qmp_change_vnc(const char *target, bool has_arg, const char *arg,
> -                           Error **errp)
> -{
> -    if (strcmp(target, "passwd") == 0 || strcmp(target, "password") == 0) {
> -        if (!has_arg) {
> -            error_setg(errp, QERR_MISSING_PARAMETER, "password");
> -        } else {
> -            qmp_change_vnc_password(arg, errp);
> -        }
> -    } else {
> -        qmp_change_vnc_listen(target, errp);

...and now we're entirely removing that QMP ability, without
deprecation.  Is that intended?

> +++ b/qapi/misc.json
> @@ -238,55 +238,6 @@
>    'returns': 'str',
>    'features': [ 'savevm-monitor-nodes' ] }
>  
> -##
> -# @change:
> -#
> -# This command is multiple commands multiplexed together.
> -#
> -# @device: This is normally the name of a block device but it may also be 'vnc'.
> -#          when it's 'vnc', then sub command depends on @target
> -#
> -# @target: If @device is a block device, then this is the new filename.
> -#          If @device is 'vnc', then if the value 'password' selects the vnc
> -#          change password command.   Otherwise, this specifies a new server URI
> -#          address to listen to for VNC connections.

That is, I'm wondering if we should be adding a change-vnc-listener QMP
command, and extending the deprecation for 2 more releases to allow this
final use of 'change vnc' to still work.  Or are we really at the point
where we have no known users?
diff mbox series

Patch

diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index e20bfcb17a..651182b2df 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -131,11 +131,6 @@  devices.  It is possible to use drives the board doesn't pick up with
 QEMU Machine Protocol (QMP) commands
 ------------------------------------
 
-``change`` (since 2.5.0)
-''''''''''''''''''''''''
-
-Use ``blockdev-change-medium`` or ``change-vnc-password`` instead.
-
 ``blockdev-open-tray``, ``blockdev-close-tray`` argument ``device`` (since 2.8.0)
 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
index 5b0ff6ab1f..c48266724f 100644
--- a/docs/system/removed-features.rst
+++ b/docs/system/removed-features.rst
@@ -53,6 +53,11 @@  are automatically loaded from qcow2 images.
 Use ``device_add`` for hotplugging vCPUs instead of ``cpu-add``.  See
 documentation of ``query-hotpluggable-cpus`` for additional details.
 
+``change`` (removed in 6.0)
+'''''''''''''''''''''''''''
+
+Use ``blockdev-change-medium`` or ``change-vnc-password`` instead.
+
 Human Monitor Protocol (HMP) commands
 -------------------------------------
 
diff --git a/monitor/qmp-cmds.c b/monitor/qmp-cmds.c
index 34f7e75b7b..990936136c 100644
--- a/monitor/qmp-cmds.c
+++ b/monitor/qmp-cmds.c
@@ -251,58 +251,7 @@  void qmp_change_vnc_password(const char *password, Error **errp)
         error_setg(errp, "Could not set password");
     }
 }
-
-static void qmp_change_vnc_listen(const char *target, Error **errp)
-{
-    QemuOptsList *olist = qemu_find_opts("vnc");
-    QemuOpts *opts;
-
-    if (strstr(target, "id=")) {
-        error_setg(errp, "id not supported");
-        return;
-    }
-
-    opts = qemu_opts_find(olist, "default");
-    if (opts) {
-        qemu_opts_del(opts);
-    }
-    opts = vnc_parse(target, errp);
-    if (!opts) {
-        return;
-    }
-
-    vnc_display_open("default", errp);
-}
-
-static void qmp_change_vnc(const char *target, bool has_arg, const char *arg,
-                           Error **errp)
-{
-    if (strcmp(target, "passwd") == 0 || strcmp(target, "password") == 0) {
-        if (!has_arg) {
-            error_setg(errp, QERR_MISSING_PARAMETER, "password");
-        } else {
-            qmp_change_vnc_password(arg, errp);
-        }
-    } else {
-        qmp_change_vnc_listen(target, errp);
-    }
-}
-#endif /* !CONFIG_VNC */
-
-void qmp_change(const char *device, const char *target,
-                bool has_arg, const char *arg, Error **errp)
-{
-    if (strcmp(device, "vnc") == 0) {
-#ifdef CONFIG_VNC
-        qmp_change_vnc(target, has_arg, arg, errp);
-#else
-        error_setg(errp, QERR_FEATURE_DISABLED, "vnc");
 #endif
-    } else {
-        qmp_blockdev_change_medium(true, device, false, NULL, target,
-                                   has_arg, arg, false, 0, errp);
-    }
-}
 
 void qmp_add_client(const char *protocol, const char *fdname,
                     bool has_skipauth, bool skipauth, bool has_tls, bool tls,
diff --git a/qapi/misc.json b/qapi/misc.json
index 27ccd7385f..156f98203e 100644
--- a/qapi/misc.json
+++ b/qapi/misc.json
@@ -238,55 +238,6 @@ 
   'returns': 'str',
   'features': [ 'savevm-monitor-nodes' ] }
 
-##
-# @change:
-#
-# This command is multiple commands multiplexed together.
-#
-# @device: This is normally the name of a block device but it may also be 'vnc'.
-#          when it's 'vnc', then sub command depends on @target
-#
-# @target: If @device is a block device, then this is the new filename.
-#          If @device is 'vnc', then if the value 'password' selects the vnc
-#          change password command.   Otherwise, this specifies a new server URI
-#          address to listen to for VNC connections.
-#
-# @arg: If @device is a block device, then this is an optional format to open
-#       the device with.
-#       If @device is 'vnc' and @target is 'password', this is the new VNC
-#       password to set.  See change-vnc-password for additional notes.
-#
-# Features:
-# @deprecated: This command is deprecated.  For changing block
-#              devices, use 'blockdev-change-medium' instead; for changing VNC
-#              parameters, use 'change-vnc-password' instead.
-#
-# Returns: - Nothing on success.
-#          - If @device is not a valid block device, DeviceNotFound
-#
-# Since: 0.14
-#
-# Example:
-#
-# 1. Change a removable medium
-#
-# -> { "execute": "change",
-#      "arguments": { "device": "ide1-cd0",
-#                     "target": "/srv/images/Fedora-12-x86_64-DVD.iso" } }
-# <- { "return": {} }
-#
-# 2. Change VNC password
-#
-# -> { "execute": "change",
-#      "arguments": { "device": "vnc", "target": "password",
-#                     "arg": "foobar1" } }
-# <- { "return": {} }
-#
-##
-{ 'command': 'change',
-  'data': {'device': 'str', 'target': 'str', '*arg': 'str'},
-  'features': [ 'deprecated' ] }
-
 ##
 # @getfd:
 #