[PATCH 6/7] schema: Add define for object names

Ján Tomko jtomko at redhat.com
Thu Jan 7 08:25:11 UTC 2021


On a Thursday in 2021, Peter Krempa wrote:
>On Wed, Jan 06, 2021 at 21:59:21 +0100, Ján Tomko wrote:
>> On a Wednesday in 2021, Peter Krempa wrote:
>> > Objects such as domain, pool, etc re-define the regex for the format.
>> > Add more generic types for objects with/without a slash which we'll be
>> > able to reuse also for other objects.
>> >
>> > Signed-off-by: Peter Krempa <pkrempa at redhat.com>
>> > ---
>> > docs/schemas/basictypes.rng    | 13 +++++++++++++
>> > docs/schemas/domaincommon.rng  | 17 +++++------------
>> > docs/schemas/storagecommon.rng |  6 ------
>> > docs/schemas/storagepool.rng   |  4 ++--
>> > 4 files changed, 20 insertions(+), 20 deletions(-)
>
>[...]
>
>> > diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
>> > index 39bed92115..4fc6a7ee7a 100644
>> > --- a/docs/schemas/domaincommon.rng
>> > +++ b/docs/schemas/domaincommon.rng
>
>[...]
>
>> > @@ -559,7 +557,7 @@
>> >     </optional>
>> >     <interleave>
>> >       <element name="name">
>> > -        <ref name="domainName"/>
>> > +        <ref name="objectNameWithSlash"/>
>>
>> This is the domain name and cannot contain a slash.
>
>This is not true entirely. The check in the code that enforces that '/'
>is not in the domain name is conditional.
>

Right, I did not realize that.

>It's based on the VIR_DOMAIN_DEF_FEATURE_NAME_SLASH flag being asserted
>by the hypervisors which don't refuse slash in domain name. The
>following drivers use it:
>
>src/openvz/openvz_conf.c:    .features = VIR_DOMAIN_DEF_FEATURE_NAME_SLASH,
>src/vbox/vbox_common.c:    .features = VIR_DOMAIN_DEF_FEATURE_NAME_SLASH,
>src/vmx/vmx.c:                 VIR_DOMAIN_DEF_FEATURE_NAME_SLASH |
>
>
>> >       </element>
>> >       <optional>
>> >         <element name="uuid">
>> > @@ -1391,7 +1389,7 @@
>> >       <optional>
>> >         <element name="backenddomain">
>> >           <attribute name="name">
>> > -            <ref name="domainName"/>
>> > +            <ref name="objectNameWithSlash"/>
>>
>> Added by:
>>
>>     conf: support backend domain name in disk and network devices
>>
>>     At least Xen supports backend drivers in another domain (aka "driver
>>     domain"). This patch introduces an XML config option for specifying the
>>     backend domain name for <disk> and <interface> devices.  E.g.
>>
>>       <disk>
>>         <backenddomain name='diskvm'/>
>>         ...
>>       </disk>
>>       <interface type='bridge'>
>>         <backenddomain name='netvm'/>
>>         ...
>>       </interface>
>>
>> I see no need to relax this to allow a slash.
>
>This isn't relaxing it, but merely keeping it as it was, since
>'domainName' rng type allows slash.
>
>On the other hand, nothing actually uses 'backenddomain', so we can use
>the stricter version without any problem.
>

it is passed to libxl:

src/libxl/libxl_conf.c:    if (l_disk->domain_name) {
src/libxl/libxl_conf.c:        x_disk->backend_domname = g_strdup(l_disk->domain_name);
src/libxl/libxl_conf.c:    if (l_nic->domain_name) {
src/libxl/libxl_conf.c:        x_nic->backend_domname = g_strdup(l_nic->domain_name);

Jano

>>
>> >           </attribute>
>> >           <empty/>
>> >         </element>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20210107/88760d25/attachment-0001.sig>


More information about the libvir-list mailing list