From: "Roger Pau Monné" <roger.pau@citrix.com>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Subject: Re: [PATCH RFC 02/10] libxl: add new hotplug interface support to hotplug script callers
Date: Mon, 21 Jan 2013 13:11:49 +0100 [thread overview]
Message-ID: <50FD3085.5030102@citrix.com> (raw)
In-Reply-To: <1358762852.3279.161.camel@zakaz.uk.xensource.com>
On 21/01/13 11:07, Ian Campbell wrote:
> On Fri, 2013-01-18 at 16:24 +0000, Roger Pau Monne wrote:
>> On 18/01/13 14:29, Ian Campbell wrote:
>>> On Fri, 2012-12-21 at 17:00 +0000, Roger Pau Monne wrote:
>>>> Add support to call hotplug scripts that use the new hotplug interface
>>>> to the low-level functions in charge of calling hotplug scripts. This
>>>> new calling convention will be used when the hotplug_version aodev
>>>> field is 1.
>>>
>>> Is there perhaps some way we can avoid users having to think about the
>>> hotplug_version?
>>>
>>> For example if we export XENBUGS_PATH as a synonym for BACKEND_PATH and
>>> arrange that the new protocol involves calling action "add" and
>>> "remove" (as well as the other new ones) do old scripts mostly Just Work
>>> because they ignore the prepare/unprepare calls? (as a small sample
>>> vif-bridge and block-nbd seem to).
>>
>> I'm afraid old scripts will return an error when called with commands
>> different than "add" or "remove", this is from block-common.sh:
>>
>> if [ "$command" != "add" ] &&
>> [ "$command" != "remove" ]
>> then
>> log err "Invalid command: $command"
>> exit 1
>> fi
>
> That's a shame.
>
>>> Alternatively by way of backwards compat perhaps we could provide a
>>> wrapper script? So if today you use script="/my-custom-script" you would
>>> switch to script="/etc/xen/hotplug-compat-wrapper /my-custom-script" and
>>> the wrapper would shim or ignore the new calls into the old?
>>
>> Well, from a user point of view, this will still be the same, old
>> hotplug scripts will be called using the "script" config option, so
>> there will be no need to change configuration files. The only difference
>> is that when calling hotplug scripts using the new hotplug interface
>> users should use "method" instead of "script" in their config file, as
>> an example this would be the diskspec line to attach a disk using the
>> iSCSI block script:
>>
>> 'method=block-iscsi,vdev=xvda,target=iqn=iqn.1994-04.org.netbsd.iscsi-target:target0,portal=192.168.1.128'
>>
>> Users don't have to deal directly with hotplug_version, I think forcing
>> them to user a wrapper is worse, because that will mean modifications to
>> config files when updating.
>
> But "users" of libxl do need to care about hotplug_version?
Yes libxl users need to care about hotplug_version, I misunderstood you
and thought you were talking about xl users, not libxl users.
>
> I'm not sure what the answer is here but it would be good if everyone
> writing a toolstack using libxl didn't have to think about what kind of
> script each one was calling.
>
> Could we perhaps mandate the new scripts have a certain comment or other
> grepable property or that they must react without error to a particular
> probing command line option "--are-you-a-v2-script" and have libxl probe
> using that?
If we choose to use think approach we can also get rid of "method",
since libxl will be able to auto-detect script type and react
accordingly. I don't have any preference regarding the way to do this
auto-detection, but maybe stating that the script should return 0
(success) when called with the action "support_v2" could be a good way.
I prefer this rather that having a comment somewhere, since hotplug
scripts can be in any kind of programming language (or even in binary
form AFAIK), this could become more complicated that it seems now.
next prev parent reply other threads:[~2013-01-21 12:11 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-21 16:59 [PATCH RFC 00/10] libxl: new hotplug calling convention Roger Pau Monne
2012-12-21 16:59 ` [PATCH RFC 01/10] libxl: libxl__prepare_ao_device should reset num_exec Roger Pau Monne
2013-01-17 13:57 ` Ian Campbell
2012-12-21 17:00 ` [PATCH RFC 02/10] libxl: add new hotplug interface support to hotplug script callers Roger Pau Monne
2013-01-18 13:29 ` Ian Campbell
2013-01-18 16:24 ` Roger Pau Monné
2013-01-21 10:07 ` Ian Campbell
2013-01-21 12:11 ` Roger Pau Monné [this message]
2013-01-21 12:18 ` Ian Campbell
2013-01-22 9:30 ` Roger Pau Monné
2012-12-21 17:00 ` [PATCH RFC 03/10] libxl: add new "method" parameter to xl disk config Roger Pau Monne
2013-01-17 15:49 ` Ian Campbell
2012-12-21 17:00 ` [PATCH RFC 04/10] libxl: add prepare/unprepare operations to the libxl public interface Roger Pau Monne
2012-12-21 17:00 ` [PATCH RFC 05/10] libxl: add disk specific remove functions Roger Pau Monne
2012-12-21 17:00 ` [PATCH RFC 06/10] xl: add support for new hotplug interface to block-attach/detach Roger Pau Monne
2012-12-21 17:00 ` [PATCH RFC 07/10] libxl: add local attach support for new hotplug scripts Roger Pau Monne
2012-12-21 17:00 ` [PATCH RFC 08/10] libxl: add new hotplug interface support for HVM guests Roger Pau Monne
2012-12-21 17:00 ` [PATCH RFC 09/10] hotplug: document new hotplug interface Roger Pau Monne
2012-12-21 17:00 ` [PATCH RFC 10/10] hotplug/Linux: add iscsi block hotplug script Roger Pau Monne
2013-01-15 16:56 ` [PATCH RFC 00/10] libxl: new hotplug calling convention Roger Pau Monné
2013-01-17 13:56 ` Ian Campbell
2013-01-17 15:30 ` Roger Pau Monné
2013-01-17 15:40 ` Ian Campbell
2013-01-17 15:47 ` Roger Pau Monné
2013-01-17 15:57 ` Ian Campbell
2013-01-17 16:10 ` Roger Pau Monné
2013-01-17 16:15 ` Ian Campbell
2013-01-17 16:45 ` Roger Pau Monné
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50FD3085.5030102@citrix.com \
--to=roger.pau@citrix.com \
--cc=Ian.Campbell@citrix.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.