summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChrrrles Paul <chrrrles@users.noreply.github.com>2015-09-17 14:21:03 -0400
committerChrrrles Paul <chrrrles@users.noreply.github.com>2015-09-17 14:21:03 -0400
commit7b778d8a4b830b1b8a76db1f56acd338c6863edc (patch)
treee7eed52fda7cf4bc1fda9721f43ee605c2b8d351
parentb386f0c64d5c0f5e4e40652d053e03141a0b3ee3 (diff)
parent2d420a9bb7536ea3e0214a82658497d683766acf (diff)
downloadansible-7b778d8a4b830b1b8a76db1f56acd338c6863edc.tar.gz
Merge pull request #12424 from amenonsen/ipv6-ranges
Tested. Thanks for spotting and then fixing this -- Allow hexadecimal ranges in IPv6 addresses, not only 0-9
-rw-r--r--lib/ansible/parsing/utils/addresses.py9
-rw-r--r--test/units/parsing/test_addresses.py1
2 files changed, 9 insertions, 1 deletions
diff --git a/lib/ansible/parsing/utils/addresses.py b/lib/ansible/parsing/utils/addresses.py
index 294025e3dd..387f05c627 100644
--- a/lib/ansible/parsing/utils/addresses.py
+++ b/lib/ansible/parsing/utils/addresses.py
@@ -31,6 +31,13 @@ numeric_range = r'''
\]
'''
+hexadecimal_range = r'''
+ \[
+ (?:[0-9a-f]+:[0-9a-f]+) # hexadecimal begin:end
+ (?::[0-9]+)? # numeric :step (optional)
+ \]
+'''
+
alphanumeric_range = r'''
\[
(?:
@@ -50,7 +57,7 @@ ipv6_component = r'''
[0-9a-f]{{1,4}}| # 0..ffff
{range} # or a numeric range
)
-'''.format(range=numeric_range)
+'''.format(range=hexadecimal_range)
ipv4_component = r'''
(?:
diff --git a/test/units/parsing/test_addresses.py b/test/units/parsing/test_addresses.py
index 8f4fe3696e..bb6e51b22a 100644
--- a/test/units/parsing/test_addresses.py
+++ b/test/units/parsing/test_addresses.py
@@ -43,6 +43,7 @@ class TestParseAddress(unittest.TestCase):
'192.0.2.[3:10]:23': ['192.0.2.[3:10]', 23],
'abcd:ef98::7654:[1:9]': ['abcd:ef98::7654:[1:9]', None],
'[abcd:ef98::7654:[6:32]]:2222': ['abcd:ef98::7654:[6:32]', 2222],
+ '[abcd:ef98::7654:[9ab3:fcb7]]:2222': ['abcd:ef98::7654:[9ab3:fcb7]', 2222],
u'fóöb[a:c]r.éxàmplê.com:632': [u'fóöb[a:c]r.éxàmplê.com', 632],
'[a:b]foo.com': ['[a:b]foo.com', None],
'foo[a:b].com': ['foo[a:b].com', None],