[libvirt] [PATCH] virsh: Add/allow secret-uuid for pool-{define|create}-as

John Ferlan posted 1 patch 6 years, 7 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20170905184258.11674-1-jferlan@redhat.com
tools/virsh-pool.c | 16 +++++++++++++---
tools/virsh.pod    |  9 ++++++---
2 files changed, 19 insertions(+), 6 deletions(-)
[libvirt] [PATCH] virsh: Add/allow secret-uuid for pool-{define|create}-as
Posted by John Ferlan 6 years, 7 months ago
https://bugzilla.redhat.com/show_bug.cgi?id=1476775

For the virsh pool-{define|create}-as command, let's allow using
--secret-uuid on the command line as an alternative to --secret-usage,
but ensure that they are mutually exclusive.

Not sure why I neglected to add it for commit id '8932580'

Signed-off-by: John Ferlan <jferlan@redhat.com>
---
 tools/virsh-pool.c | 16 +++++++++++++---
 tools/virsh.pod    |  9 ++++++---
 2 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/tools/virsh-pool.c b/tools/virsh-pool.c
index ba9281f..03eae94 100644
--- a/tools/virsh-pool.c
+++ b/tools/virsh-pool.c
@@ -109,6 +109,10 @@
      .type = VSH_OT_STRING,                                            \
      .help = N_("auth secret usage to be used for underlying storage") \
     },                                                                 \
+    {.name = "secret-uuid",                                            \
+     .type = VSH_OT_STRING,                                            \
+     .help = N_("auth secret UUID to be used for underlying storage")  \
+    },                                                                 \
     {.name = "adapter-name",                                           \
      .type = VSH_OT_STRING,                                            \
      .help = N_("adapter name to be used for underlying storage")      \
@@ -302,9 +306,11 @@ virshBuildPoolXML(vshControl *ctl,
                *srcDev = NULL, *srcName = NULL, *srcFormat = NULL,
                *target = NULL, *authType = NULL, *authUsername = NULL,
                *secretUsage = NULL, *adapterName = NULL, *adapterParent = NULL,
-               *adapterWwnn = NULL, *adapterWwpn = NULL;
+               *adapterWwnn = NULL, *adapterWwpn = NULL, *secretUUID = NULL;
     virBuffer buf = VIR_BUFFER_INITIALIZER;
 
+    VSH_EXCLUSIVE_OPTIONS("secret-usage", "secret-uuid");
+
     if (vshCommandOptStringReq(ctl, cmd, "name", &name) < 0)
         goto cleanup;
     if (vshCommandOptStringReq(ctl, cmd, "type", &type) < 0)
@@ -319,6 +325,7 @@ virshBuildPoolXML(vshControl *ctl,
         vshCommandOptStringReq(ctl, cmd, "auth-type", &authType) < 0 ||
         vshCommandOptStringReq(ctl, cmd, "auth-username", &authUsername) < 0 ||
         vshCommandOptStringReq(ctl, cmd, "secret-usage", &secretUsage) < 0 ||
+        vshCommandOptStringReq(ctl, cmd, "secret-uuid", &secretUUID) < 0 ||
         vshCommandOptStringReq(ctl, cmd, "adapter-name", &adapterName) < 0 ||
         vshCommandOptStringReq(ctl, cmd, "adapter-wwnn", &adapterWwnn) < 0 ||
         vshCommandOptStringReq(ctl, cmd, "adapter-wwpn", &adapterWwpn) < 0 ||
@@ -349,11 +356,14 @@ virshBuildPoolXML(vshControl *ctl,
             virBufferAsprintf(&buf, "<adapter type='scsi_host' name='%s'/>\n",
                               adapterName);
         }
-        if (authType && authUsername && secretUsage) {
+        if (authType && authUsername && (secretUsage || secretUUID)) {
             virBufferAsprintf(&buf, "<auth type='%s' username='%s'>\n",
                               authType, authUsername);
             virBufferAdjustIndent(&buf, 2);
-            virBufferAsprintf(&buf, "<secret usage='%s'/>\n", secretUsage);
+            if (secretUsage)
+                virBufferAsprintf(&buf, "<secret usage='%s'/>\n", secretUsage);
+            else
+                virBufferAsprintf(&buf, "<secret uuid='%s'/>\n", secretUUID);
             virBufferAdjustIndent(&buf, -2);
             virBufferAddLit(&buf, "</auth>\n");
         }
diff --git a/tools/virsh.pod b/tools/virsh.pod
index c13f96f..bf5a124 100644
--- a/tools/virsh.pod
+++ b/tools/virsh.pod
@@ -3673,7 +3673,8 @@ just I<--build> is provided, then B<pool-build> is called with no flags.
 =item B<pool-create-as> I<name> I<type>
 [I<--source-host hostname>] [I<--source-path path>] [I<--source-dev path>]
 [I<--source-name name>] [I<--target path>] [I<--source-format format>]
-[I<--auth-type authtype> I<--auth-username username> I<--secret-usage usage>]
+[I<--auth-type authtype> I<--auth-username username>
+[I<--secret-usage usage> | I<--secret-uuid uuid>]]
 [[I<--adapter-name name>] | [I<--adapter-wwnn> I<--adapter-wwpn>]
 [I<--adapter-parent parent>]]
 [I<--build>] [[I<--overwrite>] | [I<--no-overwrite>]] [I<--print-xml>]
@@ -3707,10 +3708,12 @@ the host file system.
 [I<--source-format format>] provides information about the format of the
 pool (pool types fs, netfs, disk, logical).
 
-[I<--auth-type authtype> I<--auth-username username> I<--secret-usage usage>]
+[I<--auth-type authtype> I<--auth-username username>
+[I<--secret-usage usage> | I<--secret-uuid uuid>]]
 provides the elements required to generate authentication credentials for
 the storage pool. The I<authtype> is either chap for iscsi I<type> pools or
-ceph for rbd I<type> pools.
+ceph for rbd I<type> pools. Either the secret I<usage> or I<uuid> value may
+be provided, but not both.
 
 [I<--adapter-name name>] defines the scsi_hostN adapter name to be used for
 the scsi_host adapter type pool.
-- 
2.9.5

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH] virsh: Add/allow secret-uuid for pool-{define|create}-as
Posted by John Ferlan 6 years, 6 months ago
ping - tks,

John

On 09/05/2017 02:42 PM, John Ferlan wrote:
> https://bugzilla.redhat.com/show_bug.cgi?id=1476775
> 
> For the virsh pool-{define|create}-as command, let's allow using
> --secret-uuid on the command line as an alternative to --secret-usage,
> but ensure that they are mutually exclusive.
> 
> Not sure why I neglected to add it for commit id '8932580'
> 
> Signed-off-by: John Ferlan <jferlan@redhat.com>
> ---
>  tools/virsh-pool.c | 16 +++++++++++++---
>  tools/virsh.pod    |  9 ++++++---
>  2 files changed, 19 insertions(+), 6 deletions(-)
> > diff --git a/tools/virsh-pool.c b/tools/virsh-pool.c
> index ba9281f..03eae94 100644
> --- a/tools/virsh-pool.c
> +++ b/tools/virsh-pool.c
> @@ -109,6 +109,10 @@
>       .type = VSH_OT_STRING,                                            \
>       .help = N_("auth secret usage to be used for underlying storage") \
>      },                                                                 \
> +    {.name = "secret-uuid",                                            \
> +     .type = VSH_OT_STRING,                                            \
> +     .help = N_("auth secret UUID to be used for underlying storage")  \
> +    },                                                                 \
>      {.name = "adapter-name",                                           \
>       .type = VSH_OT_STRING,                                            \
>       .help = N_("adapter name to be used for underlying storage")      \
> @@ -302,9 +306,11 @@ virshBuildPoolXML(vshControl *ctl,
>                 *srcDev = NULL, *srcName = NULL, *srcFormat = NULL,
>                 *target = NULL, *authType = NULL, *authUsername = NULL,
>                 *secretUsage = NULL, *adapterName = NULL, *adapterParent = NULL,
> -               *adapterWwnn = NULL, *adapterWwpn = NULL;
> +               *adapterWwnn = NULL, *adapterWwpn = NULL, *secretUUID = NULL;
>      virBuffer buf = VIR_BUFFER_INITIALIZER;
>  
> +    VSH_EXCLUSIVE_OPTIONS("secret-usage", "secret-uuid");
> +
>      if (vshCommandOptStringReq(ctl, cmd, "name", &name) < 0)
>          goto cleanup;
>      if (vshCommandOptStringReq(ctl, cmd, "type", &type) < 0)
> @@ -319,6 +325,7 @@ virshBuildPoolXML(vshControl *ctl,
>          vshCommandOptStringReq(ctl, cmd, "auth-type", &authType) < 0 ||
>          vshCommandOptStringReq(ctl, cmd, "auth-username", &authUsername) < 0 ||
>          vshCommandOptStringReq(ctl, cmd, "secret-usage", &secretUsage) < 0 ||
> +        vshCommandOptStringReq(ctl, cmd, "secret-uuid", &secretUUID) < 0 ||
>          vshCommandOptStringReq(ctl, cmd, "adapter-name", &adapterName) < 0 ||
>          vshCommandOptStringReq(ctl, cmd, "adapter-wwnn", &adapterWwnn) < 0 ||
>          vshCommandOptStringReq(ctl, cmd, "adapter-wwpn", &adapterWwpn) < 0 ||
> @@ -349,11 +356,14 @@ virshBuildPoolXML(vshControl *ctl,
>              virBufferAsprintf(&buf, "<adapter type='scsi_host' name='%s'/>\n",
>                                adapterName);
>          }
> -        if (authType && authUsername && secretUsage) {
> +        if (authType && authUsername && (secretUsage || secretUUID)) {
>              virBufferAsprintf(&buf, "<auth type='%s' username='%s'>\n",
>                                authType, authUsername);
>              virBufferAdjustIndent(&buf, 2);
> -            virBufferAsprintf(&buf, "<secret usage='%s'/>\n", secretUsage);
> +            if (secretUsage)
> +                virBufferAsprintf(&buf, "<secret usage='%s'/>\n", secretUsage);
> +            else
> +                virBufferAsprintf(&buf, "<secret uuid='%s'/>\n", secretUUID);
>              virBufferAdjustIndent(&buf, -2);
>              virBufferAddLit(&buf, "</auth>\n");
>          }
> diff --git a/tools/virsh.pod b/tools/virsh.pod
> index c13f96f..bf5a124 100644
> --- a/tools/virsh.pod
> +++ b/tools/virsh.pod
> @@ -3673,7 +3673,8 @@ just I<--build> is provided, then B<pool-build> is called with no flags.
>  =item B<pool-create-as> I<name> I<type>
>  [I<--source-host hostname>] [I<--source-path path>] [I<--source-dev path>]
>  [I<--source-name name>] [I<--target path>] [I<--source-format format>]
> -[I<--auth-type authtype> I<--auth-username username> I<--secret-usage usage>]
> +[I<--auth-type authtype> I<--auth-username username>
> +[I<--secret-usage usage> | I<--secret-uuid uuid>]]
>  [[I<--adapter-name name>] | [I<--adapter-wwnn> I<--adapter-wwpn>]
>  [I<--adapter-parent parent>]]
>  [I<--build>] [[I<--overwrite>] | [I<--no-overwrite>]] [I<--print-xml>]
> @@ -3707,10 +3708,12 @@ the host file system.
>  [I<--source-format format>] provides information about the format of the
>  pool (pool types fs, netfs, disk, logical).
>  
> -[I<--auth-type authtype> I<--auth-username username> I<--secret-usage usage>]
> +[I<--auth-type authtype> I<--auth-username username>
> +[I<--secret-usage usage> | I<--secret-uuid uuid>]]
>  provides the elements required to generate authentication credentials for
>  the storage pool. The I<authtype> is either chap for iscsi I<type> pools or
> -ceph for rbd I<type> pools.
> +ceph for rbd I<type> pools. Either the secret I<usage> or I<uuid> value may
> +be provided, but not both.
>  
>  [I<--adapter-name name>] defines the scsi_hostN adapter name to be used for
>  the scsi_host adapter type pool.
> 

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH] virsh: Add/allow secret-uuid for pool-{define|create}-as
Posted by Erik Skultety 6 years, 6 months ago
On Tue, Sep 05, 2017 at 02:42:58PM -0400, John Ferlan wrote:
> https://bugzilla.redhat.com/show_bug.cgi?id=1476775
>
> For the virsh pool-{define|create}-as command, let's allow using
> --secret-uuid on the command line as an alternative to --secret-usage,
> but ensure that they are mutually exclusive.
>
> Not sure why I neglected to add it for commit id '8932580'

^This is IMHO more suitable under the --- :)


[...]

> diff --git a/tools/virsh.pod b/tools/virsh.pod
> index c13f96f..bf5a124 100644
> --- a/tools/virsh.pod
> +++ b/tools/virsh.pod
> @@ -3673,7 +3673,8 @@ just I<--build> is provided, then B<pool-build> is called with no flags.
>  =item B<pool-create-as> I<name> I<type>
>  [I<--source-host hostname>] [I<--source-path path>] [I<--source-dev path>]
>  [I<--source-name name>] [I<--target path>] [I<--source-format format>]
> -[I<--auth-type authtype> I<--auth-username username> I<--secret-usage usage>]
> +[I<--auth-type authtype> I<--auth-username username>

pool-define-as should have the argument list updated the same way as
pool-create-as and by that I of course mean just the enumeration, since
pool-define-as states that the arguments mean the same thing as for
pool-create-as.

Reviewed-by: Erik Skultety <eskultet@redhat.com> (with the tiny adjustment)

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH] virsh: Add/allow secret-uuid for pool-{define|create}-as
Posted by John Ferlan 6 years, 6 months ago

On 09/27/2017 05:24 AM, Erik Skultety wrote:
> On Tue, Sep 05, 2017 at 02:42:58PM -0400, John Ferlan wrote:
>> https://bugzilla.redhat.com/show_bug.cgi?id=1476775
>>
>> For the virsh pool-{define|create}-as command, let's allow using
>> --secret-uuid on the command line as an alternative to --secret-usage,
>> but ensure that they are mutually exclusive.
>>
>> Not sure why I neglected to add it for commit id '8932580'
> 
> ^This is IMHO more suitable under the --- :)

Kind of an after thought when I wrote it, but I also think working it
into the commit message is good for the ease of chasing history...

> 
> 
> [...]
> 
>> diff --git a/tools/virsh.pod b/tools/virsh.pod
>> index c13f96f..bf5a124 100644
>> --- a/tools/virsh.pod
>> +++ b/tools/virsh.pod
>> @@ -3673,7 +3673,8 @@ just I<--build> is provided, then B<pool-build> is called with no flags.
>>  =item B<pool-create-as> I<name> I<type>
>>  [I<--source-host hostname>] [I<--source-path path>] [I<--source-dev path>]
>>  [I<--source-name name>] [I<--target path>] [I<--source-format format>]
>> -[I<--auth-type authtype> I<--auth-username username> I<--secret-usage usage>]
>> +[I<--auth-type authtype> I<--auth-username username>
> 
> pool-define-as should have the argument list updated the same way as
> pool-create-as and by that I of course mean just the enumeration, since
> pool-define-as states that the arguments mean the same thing as for
> pool-create-as.
> 
> Reviewed-by: Erik Skultety <eskultet@redhat.com> (with the tiny adjustment)
> 

oh right - thanks...

Fixed things up and pushed.

John

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list