Skip to content
  • Peter Xu's avatar
    cf869d53
    qmp: support out-of-band (oob) execution · cf869d53
    Peter Xu authored
    
    
    Having "allow-oob":true for a command does not mean that this command
    will always be run in out-of-band mode.  The out-of-band quick path will
    only be executed if we specify the extra "run-oob" flag when sending the
    QMP request:
    
        { "execute":   "command-that-allows-oob",
          "arguments": { ... },
          "control":   { "run-oob": true } }
    
    The "control" key is introduced to store this extra flag.  "control"
    field is used to store arguments that are shared by all the commands,
    rather than command specific arguments.  Let "run-oob" be the first.
    
    Note that in the patch I exported qmp_dispatch_check_obj() to be used to
    check the request earlier, and at the same time allowed "id" field to be
    there since actually we always allow that.
    
    Reviewed-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
    Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
    Message-Id: <20180309090006.10018-19-peterx@redhat.com>
    Reviewed-by: default avatarEric Blake <eblake@redhat.com>
    [eblake: rebase to qobject_to(), spelling fix]
    Signed-off-by: default avatarEric Blake <eblake@redhat.com>
    cf869d53
    qmp: support out-of-band (oob) execution
    Peter Xu authored
    
    
    Having "allow-oob":true for a command does not mean that this command
    will always be run in out-of-band mode.  The out-of-band quick path will
    only be executed if we specify the extra "run-oob" flag when sending the
    QMP request:
    
        { "execute":   "command-that-allows-oob",
          "arguments": { ... },
          "control":   { "run-oob": true } }
    
    The "control" key is introduced to store this extra flag.  "control"
    field is used to store arguments that are shared by all the commands,
    rather than command specific arguments.  Let "run-oob" be the first.
    
    Note that in the patch I exported qmp_dispatch_check_obj() to be used to
    check the request earlier, and at the same time allowed "id" field to be
    there since actually we always allow that.
    
    Reviewed-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
    Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
    Message-Id: <20180309090006.10018-19-peterx@redhat.com>
    Reviewed-by: default avatarEric Blake <eblake@redhat.com>
    [eblake: rebase to qobject_to(), spelling fix]
    Signed-off-by: default avatarEric Blake <eblake@redhat.com>
Loading