Message ID | 20190809091107.11161-1-kwolf@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | qemu-img convert: Deprecate using -n and -o together | expand |
On 09.08.19 11:11, Kevin Wolf wrote: > bdrv_create options specified with -o have no effect when skipping image > creation with -n, so this doesn't make sense. Warn against the misuse > and deprecate the combination so we can make it a hard error later. > > Signed-off-by: Kevin Wolf <kwolf@redhat.com> > --- > qemu-img.c | 5 +++++ > qemu-deprecated.texi | 7 +++++++ > 2 files changed, 12 insertions(+) Reviewed-by: Max Reitz <mreitz@redhat.com>
On 8/9/19 4:11 AM, Kevin Wolf wrote: > bdrv_create options specified with -o have no effect when skipping image > creation with -n, so this doesn't make sense. Warn against the misuse > and deprecate the combination so we can make it a hard error later. > > Signed-off-by: Kevin Wolf <kwolf@redhat.com> > --- > qemu-img.c | 5 +++++ > qemu-deprecated.texi | 7 +++++++ > 2 files changed, 12 insertions(+) > > diff --git a/qemu-img.c b/qemu-img.c > index 79983772de..d9321f6418 100644 > --- a/qemu-img.c > +++ b/qemu-img.c > @@ -2231,6 +2231,11 @@ static int img_convert(int argc, char **argv) > goto fail_getopt; > } > > + if (skip_create && options) { > + warn_report("-o has no effect when skipping image creation"); > + warn_report("This will become an error in future QEMU versions."); It looks a bit odd to have two output lines, where one is a phrase and the other is a full sentence. But I don't have any better ideas how to represent it, so Reviewed-by: Eric Blake <eblake@redhat.com>
On Fri, Aug 9, 2019 at 12:11 PM Kevin Wolf <kwolf@redhat.com> wrote: > bdrv_create options specified with -o have no effect when skipping image > creation with -n, so this doesn't make sense. Warn against the misuse > and deprecate the combination so we can make it a hard error later. > > Signed-off-by: Kevin Wolf <kwolf@redhat.com> > --- > qemu-img.c | 5 +++++ > qemu-deprecated.texi | 7 +++++++ > 2 files changed, 12 insertions(+) > > diff --git a/qemu-img.c b/qemu-img.c > index 79983772de..d9321f6418 100644 > --- a/qemu-img.c > +++ b/qemu-img.c > @@ -2231,6 +2231,11 @@ static int img_convert(int argc, char **argv) > goto fail_getopt; > } > > + if (skip_create && options) { > + warn_report("-o has no effect when skipping image creation"); > + warn_report("This will become an error in future QEMU versions."); > + } > + > s.src_num = argc - optind - 1; > out_filename = s.src_num >= 1 ? argv[argc - 1] : NULL; > > diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi > index fff07bb2a3..7673d079c5 100644 > --- a/qemu-deprecated.texi > +++ b/qemu-deprecated.texi > @@ -305,6 +305,13 @@ to just export the entire image and then mount only > /dev/nbd0p1 than > it is to reinvoke @command{qemu-nbd -c /dev/nbd0} limited to just a > subset of the image. > > +@subsection qemu-img convert -n -o (since 4.2.0) > + > +All options specified in @option{-o} are image creation options, so they > +have no effect when used with @option{-n} to skip image creation. This > +combination never made sense and shows that the user misunderstood the > +effect of the options, so this will be made an error in future versions. > The user misunderstood by not reading qemu code? Both the online help and the manual page do not mention anything about that, so I think they should be fixed to explain the behavior, and this text should mention that the behavior was never documented. Nir > + > @section Build system > > @subsection Python 2 support (since 4.1.0) > -- > 2.20.1 > > >
On 8/9/19 5:11 AM, Kevin Wolf wrote: > bdrv_create options specified with -o have no effect when skipping image > creation with -n, so this doesn't make sense. Warn against the misuse > and deprecate the combination so we can make it a hard error later. > > Signed-off-by: Kevin Wolf <kwolf@redhat.com> > --- > qemu-img.c | 5 +++++ > qemu-deprecated.texi | 7 +++++++ > 2 files changed, 12 insertions(+) > > diff --git a/qemu-img.c b/qemu-img.c > index 79983772de..d9321f6418 100644 > --- a/qemu-img.c > +++ b/qemu-img.c > @@ -2231,6 +2231,11 @@ static int img_convert(int argc, char **argv) > goto fail_getopt; > } > > + if (skip_create && options) { > + warn_report("-o has no effect when skipping image creation"); > + warn_report("This will become an error in future QEMU versions."); > + } > + > s.src_num = argc - optind - 1; > out_filename = s.src_num >= 1 ? argv[argc - 1] : NULL; > > diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi > index fff07bb2a3..7673d079c5 100644 > --- a/qemu-deprecated.texi > +++ b/qemu-deprecated.texi > @@ -305,6 +305,13 @@ to just export the entire image and then mount only /dev/nbd0p1 than > it is to reinvoke @command{qemu-nbd -c /dev/nbd0} limited to just a > subset of the image. > > +@subsection qemu-img convert -n -o (since 4.2.0) > + > +All options specified in @option{-o} are image creation options, so they > +have no effect when used with @option{-n} to skip image creation. This > +combination never made sense and shows that the user misunderstood the > +effect of the options, so this will be made an error in future versions. > + I would avoid too much finger-wagging here. We can just say that the combination never had a well-defined behavior, so it will now be treated as an error. Otherwise: Reviewed-by: John Snow <jsnow@redhat.com>
diff --git a/qemu-img.c b/qemu-img.c index 79983772de..d9321f6418 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -2231,6 +2231,11 @@ static int img_convert(int argc, char **argv) goto fail_getopt; } + if (skip_create && options) { + warn_report("-o has no effect when skipping image creation"); + warn_report("This will become an error in future QEMU versions."); + } + s.src_num = argc - optind - 1; out_filename = s.src_num >= 1 ? argv[argc - 1] : NULL; diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi index fff07bb2a3..7673d079c5 100644 --- a/qemu-deprecated.texi +++ b/qemu-deprecated.texi @@ -305,6 +305,13 @@ to just export the entire image and then mount only /dev/nbd0p1 than it is to reinvoke @command{qemu-nbd -c /dev/nbd0} limited to just a subset of the image. +@subsection qemu-img convert -n -o (since 4.2.0) + +All options specified in @option{-o} are image creation options, so they +have no effect when used with @option{-n} to skip image creation. This +combination never made sense and shows that the user misunderstood the +effect of the options, so this will be made an error in future versions. + @section Build system @subsection Python 2 support (since 4.1.0)
bdrv_create options specified with -o have no effect when skipping image creation with -n, so this doesn't make sense. Warn against the misuse and deprecate the combination so we can make it a hard error later. Signed-off-by: Kevin Wolf <kwolf@redhat.com> --- qemu-img.c | 5 +++++ qemu-deprecated.texi | 7 +++++++ 2 files changed, 12 insertions(+)