* [Qemu-devel] [PATCH] iSCSI: start moving options also for -drive @ 2016-04-12 14:57 Pino Toscano 2016-04-12 14:57 ` [Qemu-devel] [PATCH] iscsi: allow "initiator-name" as block option Pino Toscano ` (2 more replies) 0 siblings, 3 replies; 6+ messages in thread From: Pino Toscano @ 2016-04-12 14:57 UTC (permalink / raw) To: qemu-devel, qemu-block; +Cc: ptoscano, ronniesahlberg, pbonzini, pl, kwolf Hi, to overcome the limitations of the options handling [1], I'm planning to move more options for iSCSI also as block options, so it is possible to specify them with -drive. The only patch in this series is for initiator-target, as I want to be sure the approach is correct, and wanted. [1] http://lists.nongnu.org/archive/html/qemu-devel/2015-11/msg06501.html Thanks, Pino Toscano (1): iscsi: allow "initiator-name" as block option block/iscsi.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) -- 2.5.5 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Qemu-devel] [PATCH] iscsi: allow "initiator-name" as block option 2016-04-12 14:57 [Qemu-devel] [PATCH] iSCSI: start moving options also for -drive Pino Toscano @ 2016-04-12 14:57 ` Pino Toscano 2016-08-29 14:06 ` Max Reitz 2016-04-13 14:21 ` [Qemu-devel] [PATCH] iSCSI: start moving options also for -drive Daniel P. Berrange 2016-08-17 12:13 ` Pino Toscano 2 siblings, 1 reply; 6+ messages in thread From: Pino Toscano @ 2016-04-12 14:57 UTC (permalink / raw) To: qemu-devel, qemu-block; +Cc: ptoscano, ronniesahlberg, pbonzini, pl, kwolf Allow the "initiator-name" for both the -iscsi and the block options: this way it is possible to set it directly as option in the -drive specification. The current way to specify the initiator name for a certain iSCSI target is: -iscsi id=TARGET,initiator-name=IQN which cannot be actually done when TARGET has the optional part, as colon is not accepted as id for QemuOpts [1]. Hence, allow the "initiator-name" also in block options: this way it is possible to set it directly as option in -drive, e.g.: -drive file=URI,driver=iscsi,initiator-name=IQN [1] http://lists.nongnu.org/archive/html/qemu-devel/2015-11/msg06501.html Signed-off-by: Pino Toscano <ptoscano@redhat.com> --- block/iscsi.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/block/iscsi.c b/block/iscsi.c index 302baf8..4a1c300 100644 --- a/block/iscsi.c +++ b/block/iscsi.c @@ -1161,7 +1161,7 @@ static void parse_header_digest(struct iscsi_context *iscsi, const char *target, } } -static char *parse_initiator_name(const char *target) +static char *parse_initiator_name(QDict *options, const char *target) { QemuOptsList *list; QemuOpts *opts; @@ -1169,6 +1169,11 @@ static char *parse_initiator_name(const char *target) char *iscsi_name; UuidInfo *uuid_info; + name = qdict_get_try_str(options, "initiator-name"); + if (name != NULL) { + return g_strdup(name); + } + list = qemu_find_opts("iscsi"); if (list) { opts = qemu_opts_find(list, target); @@ -1304,11 +1309,19 @@ static void iscsi_readcapacity_sync(IscsiLun *iscsilun, Error **errp) } } +#define COMMON_ISCSI_OPTS \ + { \ + .name = "initiator-name", \ + .type = QEMU_OPT_STRING, \ + .help = "Initiator iqn name to use when connecting", \ + } + /* TODO Convert to fine grained options */ static QemuOptsList runtime_opts = { .name = "iscsi", .head = QTAILQ_HEAD_INITIALIZER(runtime_opts.head), .desc = { + COMMON_ISCSI_OPTS, { .name = "filename", .type = QEMU_OPT_STRING, @@ -1473,7 +1486,7 @@ static int iscsi_open(BlockDriverState *bs, QDict *options, int flags, memset(iscsilun, 0, sizeof(IscsiLun)); - initiator_name = parse_initiator_name(iscsi_url->target); + initiator_name = parse_initiator_name(bs->options, iscsi_url->target); iscsi = iscsi_create_context(initiator_name); if (iscsi == NULL) { @@ -1864,6 +1877,7 @@ static QemuOptsList qemu_iscsi_opts = { .name = "iscsi", .head = QTAILQ_HEAD_INITIALIZER(qemu_iscsi_opts.head), .desc = { + COMMON_ISCSI_OPTS, { .name = "user", .type = QEMU_OPT_STRING, @@ -1883,10 +1897,6 @@ static QemuOptsList qemu_iscsi_opts = { .help = "HeaderDigest setting. " "{CRC32C|CRC32C-NONE|NONE-CRC32C|NONE}", },{ - .name = "initiator-name", - .type = QEMU_OPT_STRING, - .help = "Initiator iqn name to use when connecting", - },{ .name = "timeout", .type = QEMU_OPT_NUMBER, .help = "Request timeout in seconds (default 0 = no timeout)", -- 2.5.5 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH] iscsi: allow "initiator-name" as block option 2016-04-12 14:57 ` [Qemu-devel] [PATCH] iscsi: allow "initiator-name" as block option Pino Toscano @ 2016-08-29 14:06 ` Max Reitz 0 siblings, 0 replies; 6+ messages in thread From: Max Reitz @ 2016-08-29 14:06 UTC (permalink / raw) To: Pino Toscano, qemu-devel, qemu-block; +Cc: kwolf, pbonzini, pl, ronniesahlberg [-- Attachment #1: Type: text/plain, Size: 3945 bytes --] On 12.04.2016 16:57, Pino Toscano wrote: > Allow the "initiator-name" for both the -iscsi and the block options: > this way it is possible to set it directly as option in the -drive > specification. > The current way to specify the initiator name for a certain iSCSI > target is: > -iscsi id=TARGET,initiator-name=IQN > which cannot be actually done when TARGET has the optional part, as > colon is not accepted as id for QemuOpts [1]. > > Hence, allow the "initiator-name" also in block options: this way > it is possible to set it directly as option in -drive, e.g.: > -drive file=URI,driver=iscsi,initiator-name=IQN > > [1] http://lists.nongnu.org/archive/html/qemu-devel/2015-11/msg06501.html > > Signed-off-by: Pino Toscano <ptoscano@redhat.com> > --- > block/iscsi.c | 22 ++++++++++++++++------ > 1 file changed, 16 insertions(+), 6 deletions(-) > > diff --git a/block/iscsi.c b/block/iscsi.c > index 302baf8..4a1c300 100644 > --- a/block/iscsi.c > +++ b/block/iscsi.c > @@ -1161,7 +1161,7 @@ static void parse_header_digest(struct iscsi_context *iscsi, const char *target, > } > } > > -static char *parse_initiator_name(const char *target) > +static char *parse_initiator_name(QDict *options, const char *target) > { > QemuOptsList *list; > QemuOpts *opts; > @@ -1169,6 +1169,11 @@ static char *parse_initiator_name(const char *target) > char *iscsi_name; > UuidInfo *uuid_info; > > + name = qdict_get_try_str(options, "initiator-name"); > + if (name != NULL) { > + return g_strdup(name); > + } You should not be using the "options" QDict here but the already parsed QemuOpts ("opts" in the caller). That is, the caller should either pass said @opts or use qemu_opt_get(opts, "initiator-name") to get the name and pass that then. > + > list = qemu_find_opts("iscsi"); > if (list) { > opts = qemu_opts_find(list, target); > @@ -1304,11 +1309,19 @@ static void iscsi_readcapacity_sync(IscsiLun *iscsilun, Error **errp) > } > } > > +#define COMMON_ISCSI_OPTS \ > + { \ > + .name = "initiator-name", \ > + .type = QEMU_OPT_STRING, \ > + .help = "Initiator iqn name to use when connecting", \ > + } > + > /* TODO Convert to fine grained options */ > static QemuOptsList runtime_opts = { > .name = "iscsi", > .head = QTAILQ_HEAD_INITIALIZER(runtime_opts.head), > .desc = { > + COMMON_ISCSI_OPTS, > { > .name = "filename", > .type = QEMU_OPT_STRING, > @@ -1473,7 +1486,7 @@ static int iscsi_open(BlockDriverState *bs, QDict *options, int flags, > > memset(iscsilun, 0, sizeof(IscsiLun)); > > - initiator_name = parse_initiator_name(iscsi_url->target); > + initiator_name = parse_initiator_name(bs->options, iscsi_url->target); > > iscsi = iscsi_create_context(initiator_name); > if (iscsi == NULL) { > @@ -1864,6 +1877,7 @@ static QemuOptsList qemu_iscsi_opts = { > .name = "iscsi", > .head = QTAILQ_HEAD_INITIALIZER(qemu_iscsi_opts.head), > .desc = { > + COMMON_ISCSI_OPTS, > { > .name = "user", > .type = QEMU_OPT_STRING, > @@ -1883,10 +1897,6 @@ static QemuOptsList qemu_iscsi_opts = { > .help = "HeaderDigest setting. " > "{CRC32C|CRC32C-NONE|NONE-CRC32C|NONE}", > },{ > - .name = "initiator-name", > - .type = QEMU_OPT_STRING, > - .help = "Initiator iqn name to use when connecting", > - },{ > .name = "timeout", > .type = QEMU_OPT_NUMBER, > .help = "Request timeout in seconds (default 0 = no timeout)", > This needs to be rebased on block-next (which will be merged to master once the 2.8 window is open), because these options are now in vl.c. Max [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 498 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH] iSCSI: start moving options also for -drive 2016-04-12 14:57 [Qemu-devel] [PATCH] iSCSI: start moving options also for -drive Pino Toscano 2016-04-12 14:57 ` [Qemu-devel] [PATCH] iscsi: allow "initiator-name" as block option Pino Toscano @ 2016-04-13 14:21 ` Daniel P. Berrange 2016-08-17 12:13 ` Pino Toscano 2 siblings, 0 replies; 6+ messages in thread From: Daniel P. Berrange @ 2016-04-13 14:21 UTC (permalink / raw) To: Pino Toscano; +Cc: qemu-devel, qemu-block, kwolf, pbonzini, pl, ronniesahlberg On Tue, Apr 12, 2016 at 04:57:42PM +0200, Pino Toscano wrote: > Hi, > > to overcome the limitations of the options handling [1], I'm planning > to move more options for iSCSI also as block options, so it is possible > to specify them with -drive. > > The only patch in this series is for initiator-target, as I want to be > sure the approach is correct, and wanted. I think the approach makes sense - the current -iscsi arg is utter madness as a concept, so the sooner everything is allowed via -drive the better Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH] iSCSI: start moving options also for -drive 2016-04-12 14:57 [Qemu-devel] [PATCH] iSCSI: start moving options also for -drive Pino Toscano 2016-04-12 14:57 ` [Qemu-devel] [PATCH] iscsi: allow "initiator-name" as block option Pino Toscano 2016-04-13 14:21 ` [Qemu-devel] [PATCH] iSCSI: start moving options also for -drive Daniel P. Berrange @ 2016-08-17 12:13 ` Pino Toscano 2016-08-17 12:16 ` Paolo Bonzini 2 siblings, 1 reply; 6+ messages in thread From: Pino Toscano @ 2016-08-17 12:13 UTC (permalink / raw) To: qemu-devel; +Cc: qemu-block, ronniesahlberg, pbonzini, pl, kwolf, mreitz [-- Attachment #1: Type: text/plain, Size: 654 bytes --] On Tuesday, 12 April 2016 16:57:42 CEST Pino Toscano wrote: > to overcome the limitations of the options handling [1], I'm planning > to move more options for iSCSI also as block options, so it is possible > to specify them with -drive. > > The only patch in this series is for initiator-target, as I want to be > sure the approach is correct, and wanted. > > [1] http://lists.nongnu.org/archive/html/qemu-devel/2015-11/msg06501.html > > Thanks, > > Pino Toscano (1): > iscsi: allow "initiator-name" as block option > > block/iscsi.c | 22 ++++++++++++++++------ > 1 file changed, 16 insertions(+), 6 deletions(-) Ping. Thanks, -- Pino Toscano [-- Attachment #2: This is a digitally signed message part. --] [-- Type: application/pgp-signature, Size: 819 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH] iSCSI: start moving options also for -drive 2016-08-17 12:13 ` Pino Toscano @ 2016-08-17 12:16 ` Paolo Bonzini 0 siblings, 0 replies; 6+ messages in thread From: Paolo Bonzini @ 2016-08-17 12:16 UTC (permalink / raw) To: Pino Toscano, qemu-devel; +Cc: kwolf, qemu-block, pl, mreitz, ronniesahlberg On 17/08/2016 14:13, Pino Toscano wrote: > On Tuesday, 12 April 2016 16:57:42 CEST Pino Toscano wrote: >> to overcome the limitations of the options handling [1], I'm planning >> to move more options for iSCSI also as block options, so it is possible >> to specify them with -drive. >> >> The only patch in this series is for initiator-target, as I want to be >> sure the approach is correct, and wanted. >> >> [1] http://lists.nongnu.org/archive/html/qemu-devel/2015-11/msg06501.html >> >> Thanks, >> >> Pino Toscano (1): >> iscsi: allow "initiator-name" as block option >> >> block/iscsi.c | 22 ++++++++++++++++------ >> 1 file changed, 16 insertions(+), 6 deletions(-) > > Ping. > > Thanks, > I think this makes sense, but Kevin or Max should review it. Paolo ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2016-08-29 14:06 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-04-12 14:57 [Qemu-devel] [PATCH] iSCSI: start moving options also for -drive Pino Toscano 2016-04-12 14:57 ` [Qemu-devel] [PATCH] iscsi: allow "initiator-name" as block option Pino Toscano 2016-08-29 14:06 ` Max Reitz 2016-04-13 14:21 ` [Qemu-devel] [PATCH] iSCSI: start moving options also for -drive Daniel P. Berrange 2016-08-17 12:13 ` Pino Toscano 2016-08-17 12:16 ` Paolo Bonzini
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).