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
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
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
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
© 2016 - 2025 Red Hat, Inc.