[virt-tools-list] [virt-manager PATCH] interface: check ip address format

Chen Hanxiao chen_han_xiao at 126.com
Mon Mar 31 14:31:02 UTC 2014


On 03/31/2014 01:44 AM, Cole Robinson wrote:
> On 03/30/2014 11:33 AM, Chen Hanxiao wrote:
>> From: Chen Hanxiao <chenhanxiao at cn.fujitsu.com>
>>
>> Signed-off-by: Chen Hanxiao <chenhanxiao at cn.fujitsu.com>
>> ---
>>   tests/xmlparse-xml/interface-test-bridge-ip-out.xml |  2 +-
>>   tests/xmlparse.py                                   |  2 +-
>>   virtinst/interface.py                               | 11 ++++++++++-
>>   3 files changed, 12 insertions(+), 3 deletions(-)
>>
>> diff --git a/tests/xmlparse-xml/interface-test-bridge-ip-out.xml b/tests/xmlparse-xml/interface-test-bridge-ip-out.xml
>> index d4cfba0..49e0510 100644
>> --- a/tests/xmlparse-xml/interface-test-bridge-ip-out.xml
>> +++ b/tests/xmlparse-xml/interface-test-bridge-ip-out.xml
>> @@ -15,7 +15,7 @@
>>     </protocol>
>>     <protocol family="ipv6">
>>       <ip address="fe99::215:58ff:fe6e:5" prefix="32"/>
>> -    <ip address="foobar" prefix="38"/>
>> +    <ip address="2002::" prefix="38"/>
>>       <route gateway="1.2.3.4"/>
>>     </protocol>
>>   </interface>
>> diff --git a/tests/xmlparse.py b/tests/xmlparse.py
>> index 3e78a5d..75189bc 100644
>> --- a/tests/xmlparse.py
>> +++ b/tests/xmlparse.py
>> @@ -965,7 +965,7 @@ class XMLParseTest(unittest.TestCase):
>>           check("autoconf", True, False)
>>   
>>           check = self._make_checker(iface.protocols[1].ips[1])
>> -        check("address", "fe80::215:58ff:fe6e:5", "foobar")
>> +        check("address", "fe80::215:58ff:fe6e:5", "2002::")
>>           check("prefix", 64, 38)
>>   
>>           # Remove a child interface, verify it's data remains intact
>> diff --git a/virtinst/interface.py b/virtinst/interface.py
>> index c1e0c88..4fca76a 100644
>> --- a/virtinst/interface.py
>> +++ b/virtinst/interface.py
>> @@ -23,6 +23,7 @@ Classes for building and installing libvirt interface xml
>>   import logging
>>   
>>   import libvirt
>> +import ipaddr
>>   
>>   from virtinst import util
>>   from virtinst.xmlbuilder import XMLBuilder, XMLChildProperty, XMLProperty
>> @@ -32,7 +33,15 @@ class _IPAddress(XMLBuilder):
>>       _XML_PROP_ORDER = ["address", "prefix"]
>>       _XML_ROOT_NAME = "ip"
>>   
>> -    address = XMLProperty("./@address")
>> +    ######################
>> +    # Validation helpers #
>> +    ######################
>> +
>> +    def _validate_ipaddr(self, addr):
>> +        ipaddr.IPAddress(addr)
>> +        return addr
>> +
>> +    address = XMLProperty("./@address", validate_cb=_validate_ipaddr)
>>       prefix = XMLProperty("./@prefix", is_int=True)
>>   
>>   
>>
> ACK
>
> - Cole

Thanks, pushed.

-Chen





More information about the virt-tools-list mailing list