qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v6] vl.c: Output error on invalid machine type
@ 2014-02-05 13:44 mrezanin
  2014-03-10  8:35 ` Miroslav Rezanina
  2014-03-10  9:41 ` Markus Armbruster
  0 siblings, 2 replies; 4+ messages in thread
From: mrezanin @ 2014-02-05 13:44 UTC (permalink / raw)
  To: qemu-devel

From: Miroslav Rezanina <mrezanin@redhat.com>

Output error message using qemu's error_report() function when user
provides the invalid machine type on the command line. This also saves
time to find what issue is when you downgrade from one version of qemu
to another that doesn't support required machine type yet (the version
user downgraded to have to have this patch applied too, of course).

Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
---
v6:
 - print help instead of list supported machines on error
 vl.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/vl.c b/vl.c
index 383be1b..3297c0a 100644
--- a/vl.c
+++ b/vl.c
@@ -2600,13 +2600,19 @@ static QEMUMachine *machine_parse(const char *name)
     if (machine) {
         return machine;
     }
-    printf("Supported machines are:\n");
-    for (m = first_machine; m != NULL; m = m->next) {
-        if (m->alias) {
-            printf("%-20s %s (alias of %s)\n", m->alias, m->desc, m->name);
+
+    if (name && !is_help_option(name)) {
+        error_report("Unsupported machine type");
+        printf("\nUse '-M help' to list supported machines!\n");
+    } else {
+        printf("Supported machines are:\n");
+        for (m = first_machine; m != NULL; m = m->next) {
+            if (m->alias) {
+                printf("%-20s %s (alias of %s)\n", m->alias, m->desc, m->name);
+            }
+            printf("%-20s %s%s\n", m->name, m->desc,
+                   m->is_default ? " (default)" : "");
         }
-        printf("%-20s %s%s\n", m->name, m->desc,
-               m->is_default ? " (default)" : "");
     }
     exit(!name || !is_help_option(name));
 }
-- 
1.8.5.3

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH v6] vl.c: Output error on invalid machine type
  2014-02-05 13:44 [Qemu-devel] [PATCH v6] vl.c: Output error on invalid machine type mrezanin
@ 2014-03-10  8:35 ` Miroslav Rezanina
  2014-03-10 18:21   ` Andreas Färber
  2014-03-10  9:41 ` Markus Armbruster
  1 sibling, 1 reply; 4+ messages in thread
From: Miroslav Rezanina @ 2014-03-10  8:35 UTC (permalink / raw)
  To: qemu-devel; +Cc: afaerber, Peter Maydell

Hi,
is there any issue with this patch?

Mirek
----- Original Message -----
> From: mrezanin@redhat.com
> To: qemu-devel@nongnu.org
> Sent: Wednesday, February 5, 2014 2:44:23 PM
> Subject: [Qemu-devel] [PATCH v6] vl.c: Output error on invalid machine type
> 
> From: Miroslav Rezanina <mrezanin@redhat.com>
> 
> Output error message using qemu's error_report() function when user
> provides the invalid machine type on the command line. This also saves
> time to find what issue is when you downgrade from one version of qemu
> to another that doesn't support required machine type yet (the version
> user downgraded to have to have this patch applied too, of course).
> 
> Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
> ---
> v6:
>  - print help instead of list supported machines on error
>  vl.c | 18 ++++++++++++------
>  1 file changed, 12 insertions(+), 6 deletions(-)
> 
> diff --git a/vl.c b/vl.c
> index 383be1b..3297c0a 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -2600,13 +2600,19 @@ static QEMUMachine *machine_parse(const char *name)
>      if (machine) {
>          return machine;
>      }
> -    printf("Supported machines are:\n");
> -    for (m = first_machine; m != NULL; m = m->next) {
> -        if (m->alias) {
> -            printf("%-20s %s (alias of %s)\n", m->alias, m->desc, m->name);
> +
> +    if (name && !is_help_option(name)) {
> +        error_report("Unsupported machine type");
> +        printf("\nUse '-M help' to list supported machines!\n");
> +    } else {
> +        printf("Supported machines are:\n");
> +        for (m = first_machine; m != NULL; m = m->next) {
> +            if (m->alias) {
> +                printf("%-20s %s (alias of %s)\n", m->alias, m->desc,
> m->name);
> +            }
> +            printf("%-20s %s%s\n", m->name, m->desc,
> +                   m->is_default ? " (default)" : "");
>          }
> -        printf("%-20s %s%s\n", m->name, m->desc,
> -               m->is_default ? " (default)" : "");
>      }
>      exit(!name || !is_help_option(name));
>  }
> --
> 1.8.5.3
> 
> 
> 

-- 
Miroslav Rezanina
Software Engineer - Virtualization Team

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH v6] vl.c: Output error on invalid machine type
  2014-02-05 13:44 [Qemu-devel] [PATCH v6] vl.c: Output error on invalid machine type mrezanin
  2014-03-10  8:35 ` Miroslav Rezanina
@ 2014-03-10  9:41 ` Markus Armbruster
  1 sibling, 0 replies; 4+ messages in thread
From: Markus Armbruster @ 2014-03-10  9:41 UTC (permalink / raw)
  To: mrezanin; +Cc: qemu-devel

mrezanin@redhat.com writes:

> From: Miroslav Rezanina <mrezanin@redhat.com>
>
> Output error message using qemu's error_report() function when user
> provides the invalid machine type on the command line. This also saves
> time to find what issue is when you downgrade from one version of qemu
> to another that doesn't support required machine type yet (the version
> user downgraded to have to have this patch applied too, of course).
>
> Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
> ---
> v6:
>  - print help instead of list supported machines on error
>  vl.c | 18 ++++++++++++------
>  1 file changed, 12 insertions(+), 6 deletions(-)
>
> diff --git a/vl.c b/vl.c
> index 383be1b..3297c0a 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -2600,13 +2600,19 @@ static QEMUMachine *machine_parse(const char *name)
   static QEMUMachine *machine_parse(const char *name)
   {
       QEMUMachine *m, *machine = NULL;

       if (name) {
           machine = find_machine(name);
       }
>      if (machine) {
>          return machine;
>      }
> -    printf("Supported machines are:\n");
> -    for (m = first_machine; m != NULL; m = m->next) {
> -        if (m->alias) {
> -            printf("%-20s %s (alias of %s)\n", m->alias, m->desc, m->name);
> +
> +    if (name && !is_help_option(name)) {

I don't think !name can happen, but you're sticking to what the existing
code does.  Okay.

> +        error_report("Unsupported machine type");
> +        printf("\nUse '-M help' to list supported machines!\n");

I like this.  It gives a concise error message followed by a hint,
instead of dumping lengthy help on me without a clear indication why I
need it.

-M TYPE is sugar for -machine type=TYPE.  It was deprecated in commit
80f52a6, and purged from documentation and help texts, except for two
occurences in qemu-doc.texi.

Unless we un-deprecate -M, this patch should point to the documented
option -machine type=help, and we should update qemu-doc.texi to use
-machine instead of -M.

> +    } else {
> +        printf("Supported machines are:\n");
> +        for (m = first_machine; m != NULL; m = m->next) {
> +            if (m->alias) {
> +                printf("%-20s %s (alias of %s)\n", m->alias, m->desc, m->name);
> +            }
> +            printf("%-20s %s%s\n", m->name, m->desc,
> +                   m->is_default ? " (default)" : "");
>          }
> -        printf("%-20s %s%s\n", m->name, m->desc,
> -               m->is_default ? " (default)" : "");
>      }
>      exit(!name || !is_help_option(name));
>  }

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH v6] vl.c: Output error on invalid machine type
  2014-03-10  8:35 ` Miroslav Rezanina
@ 2014-03-10 18:21   ` Andreas Färber
  0 siblings, 0 replies; 4+ messages in thread
From: Andreas Färber @ 2014-03-10 18:21 UTC (permalink / raw)
  To: Miroslav Rezanina, qemu-devel
  Cc: Peter Maydell, Michael S. Tsirkin, Marcel Apfelbaum

Hi,

Am 10.03.2014 09:35, schrieb Miroslav Rezanina:
> Hi,
> is there any issue with this patch?

It conflicts with Marcel's machine rework that I have queued.

I wonder if we can avoid the reindent to minimize the collision by
adding an exit(EXIT_FAILURE) in the new if?

Regards,
Andreas

> Mirek
> ----- Original Message -----
>> From: mrezanin@redhat.com
>> To: qemu-devel@nongnu.org
>> Sent: Wednesday, February 5, 2014 2:44:23 PM
>> Subject: [Qemu-devel] [PATCH v6] vl.c: Output error on invalid machine type
>>
>> From: Miroslav Rezanina <mrezanin@redhat.com>
>>
>> Output error message using qemu's error_report() function when user
>> provides the invalid machine type on the command line. This also saves
>> time to find what issue is when you downgrade from one version of qemu
>> to another that doesn't support required machine type yet (the version
>> user downgraded to have to have this patch applied too, of course).
>>
>> Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
>> ---
>> v6:
>>  - print help instead of list supported machines on error
>>  vl.c | 18 ++++++++++++------
>>  1 file changed, 12 insertions(+), 6 deletions(-)
>>
>> diff --git a/vl.c b/vl.c
>> index 383be1b..3297c0a 100644
>> --- a/vl.c
>> +++ b/vl.c
>> @@ -2600,13 +2600,19 @@ static QEMUMachine *machine_parse(const char *name)
>>      if (machine) {
>>          return machine;
>>      }
>> -    printf("Supported machines are:\n");
>> -    for (m = first_machine; m != NULL; m = m->next) {
>> -        if (m->alias) {
>> -            printf("%-20s %s (alias of %s)\n", m->alias, m->desc, m->name);
>> +
>> +    if (name && !is_help_option(name)) {
>> +        error_report("Unsupported machine type");
>> +        printf("\nUse '-M help' to list supported machines!\n");
>> +    } else {
>> +        printf("Supported machines are:\n");
>> +        for (m = first_machine; m != NULL; m = m->next) {
>> +            if (m->alias) {
>> +                printf("%-20s %s (alias of %s)\n", m->alias, m->desc,
>> m->name);
>> +            }
>> +            printf("%-20s %s%s\n", m->name, m->desc,
>> +                   m->is_default ? " (default)" : "");
>>          }
>> -        printf("%-20s %s%s\n", m->name, m->desc,
>> -               m->is_default ? " (default)" : "");
>>      }
>>      exit(!name || !is_help_option(name));
>>  }
>> --
>> 1.8.5.3

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-03-10 18:22 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-05 13:44 [Qemu-devel] [PATCH v6] vl.c: Output error on invalid machine type mrezanin
2014-03-10  8:35 ` Miroslav Rezanina
2014-03-10 18:21   ` Andreas Färber
2014-03-10  9:41 ` Markus Armbruster

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).