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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/30/2014 11:33 AM, Chen Hanxiao wrote:
> From: Chen Hanxiao <chenhanxiao@xxxxxxxxxxxxxx>
> 
> Signed-off-by: Chen Hanxiao <chenhanxiao@xxxxxxxxxxxxxx>
> ---
>  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

_______________________________________________
virt-tools-list mailing list
virt-tools-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/virt-tools-list




[Index of Archives]     [Linux Virtualization]     [KVM Development]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]

  Powered by Linux