[PATCH 07/11] tools: add switches persisted and transient to nodedev-list

Boris Fiuczynski posted 11 patches 7 months, 3 weeks ago
There is a newer version of this series
[PATCH 07/11] tools: add switches persisted and transient to nodedev-list
Posted by Boris Fiuczynski 7 months, 3 weeks ago
Now that we can filter persisted and transient node devices in
virConnectListAllNodeDevices(), add these switches also to the
virsh nodedev-list command.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
---
 docs/manpages/virsh.rst |  8 ++++++--
 tools/virsh-nodedev.c   | 24 ++++++++++++++++++++++--
 2 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/docs/manpages/virsh.rst b/docs/manpages/virsh.rst
index 3a814dccd2..4bcfbc230b 100644
--- a/docs/manpages/virsh.rst
+++ b/docs/manpages/virsh.rst
@@ -5461,7 +5461,7 @@ nodedev-list
 
 ::
 
-   nodedev-list [--cap capability] [--tree] [--inactive | --all]
+   nodedev-list [--cap capability] [--tree] [--inactive | --all] [--persisted | --transient]
 
 List all of the devices available on the node that are known by libvirt.
 *cap* is used to filter the list by capability types, the types must be
@@ -5470,7 +5470,11 @@ separated by comma, e.g. --cap pci,scsi. Valid capability types include
 'scsi', 'storage', 'fc_host', 'vports', 'scsi_generic', 'drm', 'mdev',
 'mdev_types', 'ccw', 'css', 'ap_card', 'ap_queue', 'ap_matrix'. By default,
 only active devices are listed. *--inactive* is used to list only inactive
-devices, and *-all* is used to list both active and inactive devices.
+devices, and *--all* is used to list both active and inactive devices.
+*--persisted* is used to list only persisted devices, and *--transient* is
+used to list only transient devices. Not providing *--persisted* or
+*--transient* will list all devices unless filtered otherwise. *--transient*
+is mutually exclusive with *--persisted* and *--inactive*.
 If *--tree* is used, the output is formatted in a tree representing parents of
 each node.  *--tree* is mutually exclusive with all other options.
 
diff --git a/tools/virsh-nodedev.c b/tools/virsh-nodedev.c
index 54e192d619..4acb955efe 100644
--- a/tools/virsh-nodedev.c
+++ b/tools/virsh-nodedev.c
@@ -390,6 +390,14 @@ static const vshCmdOptDef opts_node_list_devices[] = {
      .type = VSH_OT_BOOL,
      .help = N_("list inactive & active devices")
     },
+    {.name = "persisted",
+     .type = VSH_OT_BOOL,
+     .help = N_("list persisted devices")
+    },
+    {.name = "transient",
+     .type = VSH_OT_BOOL,
+     .help = N_("list transient devices")
+    },
     {.name = NULL}
 };
 
@@ -407,6 +415,8 @@ cmdNodeListDevices(vshControl *ctl, const vshCmd *cmd G_GNUC_UNUSED)
     int cap_type = -1;
     bool inactive = vshCommandOptBool(cmd, "inactive");
     bool all = vshCommandOptBool(cmd, "all");
+    bool persisted = vshCommandOptBool(cmd, "persisted");
+    bool transient = vshCommandOptBool(cmd, "transient");
 
     ignore_value(vshCommandOptStringQuiet(ctl, cmd, "cap", &cap_str));
 
@@ -420,8 +430,13 @@ cmdNodeListDevices(vshControl *ctl, const vshCmd *cmd G_GNUC_UNUSED)
         return false;
     }
 
-    if (tree && (cap_str || inactive)) {
-        vshError(ctl, "%s", _("Option --tree is incompatible with --cap and --inactive"));
+    if (transient && (persisted || inactive)) {
+        vshError(ctl, "%s", _("Option --transient is incompatible with --persisted and --inactive"));
+        return false;
+    }
+
+    if (tree && (cap_str || inactive || persisted || transient)) {
+        vshError(ctl, "%s", _("Option --tree is incompatible with --cap, --inactive, --persisted and --transient"));
         return false;
     }
 
@@ -509,6 +524,11 @@ cmdNodeListDevices(vshControl *ctl, const vshCmd *cmd G_GNUC_UNUSED)
     if (!inactive)
         flags |= VIR_CONNECT_LIST_NODE_DEVICES_ACTIVE;
 
+    if (persisted)
+        flags |= VIR_CONNECT_LIST_NODE_DEVICES_PERSISTED;
+    if (transient)
+        flags |= VIR_CONNECT_LIST_NODE_DEVICES_TRANSIENT;
+
     if (!(list = virshNodeDeviceListCollect(ctl, caps, ncaps, flags))) {
         ret = false;
         goto cleanup;
-- 
2.42.0
_______________________________________________
Devel mailing list -- devel@lists.libvirt.org
To unsubscribe send an email to devel-leave@lists.libvirt.org
Re: [PATCH 07/11] tools: add switches persisted and transient to nodedev-list
Posted by Jonathon Jongsma 7 months, 1 week ago
On 1/19/24 10:38 AM, Boris Fiuczynski wrote:
> Now that we can filter persisted and transient node devices in
> virConnectListAllNodeDevices(), add these switches also to the
> virsh nodedev-list command.
> 
> Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
> ---
>   docs/manpages/virsh.rst |  8 ++++++--
>   tools/virsh-nodedev.c   | 24 ++++++++++++++++++++++--
>   2 files changed, 28 insertions(+), 4 deletions(-)
> 
> diff --git a/docs/manpages/virsh.rst b/docs/manpages/virsh.rst
> index 3a814dccd2..4bcfbc230b 100644
> --- a/docs/manpages/virsh.rst
> +++ b/docs/manpages/virsh.rst
> @@ -5461,7 +5461,7 @@ nodedev-list
>   
>   ::
>   
> -   nodedev-list [--cap capability] [--tree] [--inactive | --all]
> +   nodedev-list [--cap capability] [--tree] [--inactive | --all] [--persisted | --transient]

s/persisted/persistent/

>   
>   List all of the devices available on the node that are known by libvirt.
>   *cap* is used to filter the list by capability types, the types must be
> @@ -5470,7 +5470,11 @@ separated by comma, e.g. --cap pci,scsi. Valid capability types include
>   'scsi', 'storage', 'fc_host', 'vports', 'scsi_generic', 'drm', 'mdev',
>   'mdev_types', 'ccw', 'css', 'ap_card', 'ap_queue', 'ap_matrix'. By default,
>   only active devices are listed. *--inactive* is used to list only inactive
> -devices, and *-all* is used to list both active and inactive devices.
> +devices, and *--all* is used to list both active and inactive devices.
> +*--persisted* is used to list only persisted devices, and *--transient* is

here too

> +used to list only transient devices. Not providing *--persisted* or
> +*--transient* will list all devices unless filtered otherwise. *--transient*
> +is mutually exclusive with *--persisted* and *--inactive*.

again

>   If *--tree* is used, the output is formatted in a tree representing parents of
>   each node.  *--tree* is mutually exclusive with all other options.
>   
> diff --git a/tools/virsh-nodedev.c b/tools/virsh-nodedev.c
> index 54e192d619..4acb955efe 100644
> --- a/tools/virsh-nodedev.c
> +++ b/tools/virsh-nodedev.c
> @@ -390,6 +390,14 @@ static const vshCmdOptDef opts_node_list_devices[] = {
>        .type = VSH_OT_BOOL,
>        .help = N_("list inactive & active devices")
>       },
> +    {.name = "persisted",

again

> +     .type = VSH_OT_BOOL,
> +     .help = N_("list persisted devices")

again


> +    },
> +    {.name = "transient",
> +     .type = VSH_OT_BOOL,
> +     .help = N_("list transient devices")
> +    },
>       {.name = NULL}
>   };
>   
> @@ -407,6 +415,8 @@ cmdNodeListDevices(vshControl *ctl, const vshCmd *cmd G_GNUC_UNUSED)
>       int cap_type = -1;
>       bool inactive = vshCommandOptBool(cmd, "inactive");
>       bool all = vshCommandOptBool(cmd, "all");
> +    bool persisted = vshCommandOptBool(cmd, "persisted");

again

> +    bool transient = vshCommandOptBool(cmd, "transient");
>   
>       ignore_value(vshCommandOptStringQuiet(ctl, cmd, "cap", &cap_str));
>   
> @@ -420,8 +430,13 @@ cmdNodeListDevices(vshControl *ctl, const vshCmd *cmd G_GNUC_UNUSED)
>           return false;
>       }
>   
> -    if (tree && (cap_str || inactive)) {
> -        vshError(ctl, "%s", _("Option --tree is incompatible with --cap and --inactive"));
> +    if (transient && (persisted || inactive)) {
> +        vshError(ctl, "%s", _("Option --transient is incompatible with --persisted and --inactive"));

again

> +        return false;
> +    }
> +
> +    if (tree && (cap_str || inactive || persisted || transient)) {
> +        vshError(ctl, "%s", _("Option --tree is incompatible with --cap, --inactive, --persisted and --transient"));

again

>           return false;
>       }
>   
> @@ -509,6 +524,11 @@ cmdNodeListDevices(vshControl *ctl, const vshCmd *cmd G_GNUC_UNUSED)
>       if (!inactive)
>           flags |= VIR_CONNECT_LIST_NODE_DEVICES_ACTIVE;
>   
> +    if (persisted)
> +        flags |= VIR_CONNECT_LIST_NODE_DEVICES_PERSISTED;
> +    if (transient)
> +        flags |= VIR_CONNECT_LIST_NODE_DEVICES_TRANSIENT;
> +
>       if (!(list = virshNodeDeviceListCollect(ctl, caps, ncaps, flags))) {
>           ret = false;
>           goto cleanup;


Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
_______________________________________________
Devel mailing list -- devel@lists.libvirt.org
To unsubscribe send an email to devel-leave@lists.libvirt.org
Re: [PATCH 07/11] tools: add switches persisted and transient to nodedev-list
Posted by Boris Fiuczynski 7 months, 1 week ago
On 1/31/24 22:38, Jonathon Jongsma wrote:
> On 1/19/24 10:38 AM, Boris Fiuczynski wrote:
>> Now that we can filter persisted and transient node devices in
>> virConnectListAllNodeDevices(), add these switches also to the
>> virsh nodedev-list command.
>>
>> Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
>> ---
>>   docs/manpages/virsh.rst |  8 ++++++--
>>   tools/virsh-nodedev.c   | 24 ++++++++++++++++++++++--
>>   2 files changed, 28 insertions(+), 4 deletions(-)
>>
>> diff --git a/docs/manpages/virsh.rst b/docs/manpages/virsh.rst
>> index 3a814dccd2..4bcfbc230b 100644
>> --- a/docs/manpages/virsh.rst
>> +++ b/docs/manpages/virsh.rst
>> @@ -5461,7 +5461,7 @@ nodedev-list
>>   ::
>> -   nodedev-list [--cap capability] [--tree] [--inactive | --all]
>> +   nodedev-list [--cap capability] [--tree] [--inactive | --all] 
>> [--persisted | --transient]
> 
> s/persisted/persistent/
> 
>>   List all of the devices available on the node that are known by 
>> libvirt.
>>   *cap* is used to filter the list by capability types, the types must be
>> @@ -5470,7 +5470,11 @@ separated by comma, e.g. --cap pci,scsi. Valid 
>> capability types include
>>   'scsi', 'storage', 'fc_host', 'vports', 'scsi_generic', 'drm', 'mdev',
>>   'mdev_types', 'ccw', 'css', 'ap_card', 'ap_queue', 'ap_matrix'. By 
>> default,
>>   only active devices are listed. *--inactive* is used to list only 
>> inactive
>> -devices, and *-all* is used to list both active and inactive devices.
>> +devices, and *--all* is used to list both active and inactive devices.
>> +*--persisted* is used to list only persisted devices, and 
>> *--transient* is
> 
> here too
> 
>> +used to list only transient devices. Not providing *--persisted* or
>> +*--transient* will list all devices unless filtered otherwise. 
>> *--transient*
>> +is mutually exclusive with *--persisted* and *--inactive*.
> 
> again
> 
>>   If *--tree* is used, the output is formatted in a tree representing 
>> parents of
>>   each node.  *--tree* is mutually exclusive with all other options.
>> diff --git a/tools/virsh-nodedev.c b/tools/virsh-nodedev.c
>> index 54e192d619..4acb955efe 100644
>> --- a/tools/virsh-nodedev.c
>> +++ b/tools/virsh-nodedev.c
>> @@ -390,6 +390,14 @@ static const vshCmdOptDef 
>> opts_node_list_devices[] = {
>>        .type = VSH_OT_BOOL,
>>        .help = N_("list inactive & active devices")
>>       },
>> +    {.name = "persisted",
> 
> again
> 
>> +     .type = VSH_OT_BOOL,
>> +     .help = N_("list persisted devices")
> 
> again
> 
> 
>> +    },
>> +    {.name = "transient",
>> +     .type = VSH_OT_BOOL,
>> +     .help = N_("list transient devices")
>> +    },
>>       {.name = NULL}
>>   };
>> @@ -407,6 +415,8 @@ cmdNodeListDevices(vshControl *ctl, const vshCmd 
>> *cmd G_GNUC_UNUSED)
>>       int cap_type = -1;
>>       bool inactive = vshCommandOptBool(cmd, "inactive");
>>       bool all = vshCommandOptBool(cmd, "all");
>> +    bool persisted = vshCommandOptBool(cmd, "persisted");
> 
> again
> 
>> +    bool transient = vshCommandOptBool(cmd, "transient");
>>       ignore_value(vshCommandOptStringQuiet(ctl, cmd, "cap", &cap_str));
>> @@ -420,8 +430,13 @@ cmdNodeListDevices(vshControl *ctl, const vshCmd 
>> *cmd G_GNUC_UNUSED)
>>           return false;
>>       }
>> -    if (tree && (cap_str || inactive)) {
>> -        vshError(ctl, "%s", _("Option --tree is incompatible with 
>> --cap and --inactive"));
>> +    if (transient && (persisted || inactive)) {
>> +        vshError(ctl, "%s", _("Option --transient is incompatible 
>> with --persisted and --inactive"));
> 
> again
> 
>> +        return false;
>> +    }
>> +
>> +    if (tree && (cap_str || inactive || persisted || transient)) {
>> +        vshError(ctl, "%s", _("Option --tree is incompatible with 
>> --cap, --inactive, --persisted and --transient"));
> 
> again

All changed

> 
>>           return false;
>>       }
>> @@ -509,6 +524,11 @@ cmdNodeListDevices(vshControl *ctl, const vshCmd 
>> *cmd G_GNUC_UNUSED)
>>       if (!inactive)
>>           flags |= VIR_CONNECT_LIST_NODE_DEVICES_ACTIVE;
>> +    if (persisted)
>> +        flags |= VIR_CONNECT_LIST_NODE_DEVICES_PERSISTED;
>> +    if (transient)
>> +        flags |= VIR_CONNECT_LIST_NODE_DEVICES_TRANSIENT;
>> +
>>       if (!(list = virshNodeDeviceListCollect(ctl, caps, ncaps, 
>> flags))) {
>>           ret = false;
>>           goto cleanup;
> 
> 
> Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>

Thanks

> _______________________________________________
> Devel mailing list -- devel@lists.libvirt.org
> To unsubscribe send an email to devel-leave@lists.libvirt.org

-- 
Mit freundlichen Grüßen/Kind regards
    Boris Fiuczynski

IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Wolfgang Wendt
Geschäftsführung: David Faller
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294
_______________________________________________
Devel mailing list -- devel@lists.libvirt.org
To unsubscribe send an email to devel-leave@lists.libvirt.org