[libvirt] [PATCH] schema: Allow multiple machines for sparc VMs
Martin Kletzander
mkletzan at redhat.com
Wed Apr 15 12:05:14 UTC 2015
On Wed, Apr 15, 2015 at 04:25:11PM +0530, Prerna Saxena wrote:
>
>On Monday 13 April 2015 07:50 PM, Daniel P. Berrange wrote:
>> On Mon, Apr 13, 2015 at 04:14:53PM +0200, Martin Kletzander wrote:
>>> Use the same pattern as there is for x86 machines.
>>>
>>> Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
>>> ---
>>> docs/schemas/domaincommon.rng | 4 +++-
>>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
>>> index 03fd541..80b30df 100644
>>> --- a/docs/schemas/domaincommon.rng
>>> +++ b/docs/schemas/domaincommon.rng
>>> @@ -384,7 +384,9 @@
>>> </optional>
>>> <optional>
>>> <attribute name="machine">
>>> - <value>sun4m</value>
>>> + <data type="string">
>>> + <param name="pattern">[a-zA-Z0-9_\.\-]+</param>
>>> + </data>
>>> </attribute>
>>> </optional>
>>> </group>
>> I think you could probably simplify this all much more. All these
>> architecture specific blocks of machine type names should just be
>> deleted and so this:
>>
>> <define name="ostypehvm">
>> <element name="type">
>> <optional>
>> <choice>
>> <ref name="hvmx86"/>
>> <ref name="hvmmips"/>
>> <ref name="hvmsparc"/>
>> <ref name="hvmppc"/>
>> <ref name="hvmppc64"/>
>> <ref name="hvms390"/>
>> <ref name="hvmarm"/>
>> <ref name="hvmaarch64"/>
>> </choice>
>> </optional>
>> <value>hvm</value>
>> </element>
>> </define>
>>
>> Would simplify to just
>>
>> <define name="ostypehvm">
>> <element name="type">
>> <optional>
>> <attribute name="arch">
>> <choice>
>> <value>i686</value>
>> ....others...
>> </choice>
>> </attribute>
>> </optional>
>> <optional>
>> <attribute name="machine">
>> <data type="string">
>> <param name="pattern">[a-zA-Z0-9_\.\-]+</param>
>> </data>
>> </attribute>
>> </optional>
>> </element>
>> </define>
>Hi Martin, Daniel,
>I have not been able to try this patch, it fails with this error :
>
>error: internal error: Unable to parse RNG /test-libvirt/share/libvirt/schemas/domain.rng: Reference osexe has no matching definition
>Internal found no define for ref osexe
>
>However, had some concerns purely by looking at this patch. This change is very x86-centric, it does not respect other architectures.
>I think the rationale for simplifying domaincommon.rng would have been to group all types that obey this pattern string:
>
><param name="pattern">[a-zA-Z0-9_\.\-]+</param>
>
>
>However, this regex does not conform to machine types for _all_ architectures.
>As an example, see this :
><define name="hvms390">
> <group>
> <optional>
> <attribute name="arch">
> <choice>
> <value>s390</value>
> <value>s390x</value>
> </choice>
> </attribute>
> </optional>
> <optional>
> <attribute name="machine">
> <choice>
> <value>s390</value>
> <value>s390-virtio</value>
> <value>s390-ccw</value>
> <value>s390-ccw-virtio</value>
> </choice>
> </attribute>
> </optional>
> </group>
> </define>
>
>The s390 arch only allows four machine names : "s390", "s390-virtio", "s390-ccw", "s390-ccw-virtio".
>With the patch you suggest, even a string such as "abcdefg" will become a legitimate machine type for s390x, which seems like an odd thing.
>Likewise, ppc64[le] architecture allows only strings such as pseries, pseries-2.1, pseries-2.2 ..
>This patch will allow any random machine name, which seems somewhat odd to me.
>
Well, that's now. If new QEMU comes with new machine type, we'll have
to fix libvirt to work with that. I was trying to look into the
future a bit.
Anyway, there'll be a v3, so that's going to be the place to make
discussions.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20150415/2a8e91c3/attachment-0001.sig>
More information about the libvir-list
mailing list