Skip to content
  • Markus Armbruster's avatar
    cbf036b4
    rbd: Clean up runtime_opts, fix -drive to reject filename · cbf036b4
    Markus Armbruster authored
    
    
    runtime_opts is used for three different purposes:
    
    * qemu_rbd_open() uses it to accept options it recognizes, such as
      "pool" and "image".  Other .bdrv_open() methods do it similarly.
    
    * qemu_rbd_open() accepts additional list-valued options
      auth-supported and server, with the help of qemu_rbd_array_opts().
      The list elements are again dictionaries.  qemu_rbd_array_opts()
      uses runtime_opts to accept their members.  Thus, runtime_opts
      contains recognized sub-sub-options "auth", "host", "port" in
      addition to recognized options.  No other block driver does that.
    
    * qemu_rbd_create() uses it to convert the QDict produced by
      qemu_rbd_parse_filename() to QemuOpts.  No other block driver does
      that.  The keys produced by qemu_rbd_parse_filename() are "pool",
      "image", "snapshot", "conf", "user" and "keyvalue-pairs".
      qemu_rbd_open() accepts these, so no additional ones here.
    
    This is a confusing mess.  Dates back to commit 0f9d252d.  First step
    to clean it up is documenting runtime_opts.desc[]:
    
    * Reorder entries to match the QAPI schema, like we do in other block
      drivers.
    
    * Document why the schema's "server" and "auth-supported" aren't in
      .desc[].
    
    * Document why "keyvalue-pairs", "host", "port" and "auth" are in
      .desc[], but not the schema.
    
    * Delete "filename", because none of the three users actually uses it.
      This fixes -drive to reject parameter filename instead of silently
      ignoring it.
    
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Reviewed-by: default avatarEric Blake <eblake@redhat.com>
    Reviewed-by: default avatarMax Reitz <mreitz@redhat.com>
    Reviewed-by: default avatarJeff Cody <jcody@redhat.com>
    Message-id: 1490691368-32099-7-git-send-email-armbru@redhat.com
    Signed-off-by: default avatarJeff Cody <jcody@redhat.com>
    cbf036b4
    rbd: Clean up runtime_opts, fix -drive to reject filename
    Markus Armbruster authored
    
    
    runtime_opts is used for three different purposes:
    
    * qemu_rbd_open() uses it to accept options it recognizes, such as
      "pool" and "image".  Other .bdrv_open() methods do it similarly.
    
    * qemu_rbd_open() accepts additional list-valued options
      auth-supported and server, with the help of qemu_rbd_array_opts().
      The list elements are again dictionaries.  qemu_rbd_array_opts()
      uses runtime_opts to accept their members.  Thus, runtime_opts
      contains recognized sub-sub-options "auth", "host", "port" in
      addition to recognized options.  No other block driver does that.
    
    * qemu_rbd_create() uses it to convert the QDict produced by
      qemu_rbd_parse_filename() to QemuOpts.  No other block driver does
      that.  The keys produced by qemu_rbd_parse_filename() are "pool",
      "image", "snapshot", "conf", "user" and "keyvalue-pairs".
      qemu_rbd_open() accepts these, so no additional ones here.
    
    This is a confusing mess.  Dates back to commit 0f9d252d.  First step
    to clean it up is documenting runtime_opts.desc[]:
    
    * Reorder entries to match the QAPI schema, like we do in other block
      drivers.
    
    * Document why the schema's "server" and "auth-supported" aren't in
      .desc[].
    
    * Document why "keyvalue-pairs", "host", "port" and "auth" are in
      .desc[], but not the schema.
    
    * Delete "filename", because none of the three users actually uses it.
      This fixes -drive to reject parameter filename instead of silently
      ignoring it.
    
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Reviewed-by: default avatarEric Blake <eblake@redhat.com>
    Reviewed-by: default avatarMax Reitz <mreitz@redhat.com>
    Reviewed-by: default avatarJeff Cody <jcody@redhat.com>
    Message-id: 1490691368-32099-7-git-send-email-armbru@redhat.com
    Signed-off-by: default avatarJeff Cody <jcody@redhat.com>
Loading