From a33f7376407c57d86963b7f763c4ded7b4e16d3a Mon Sep 17 00:00:00 2001 From: mikhails Date: Fri, 24 Jan 2025 06:34:35 +0400 Subject: [PATCH] Support "-" in region name for FIP's After moving to raw strings for regular expressions region names with a "-" in name have been broken because raw string duplicates backslashes and it was two backslashes in inital regular experession. With this changes extra back slash deleted what is correct to r'' string. Closes-Bug: 2096623 Change-Id: Ibdf8d93bdb8926b22c3ac978ccb72d795ad4c581 (cherry picked from commit fed6500d226b3b85a89a7bf9c1d984f132c10caf) (cherry picked from commit 5490df4e6b60f00e31e0ff57f863e406728e4eef) --- designate/common/constants.py | 2 +- .../tests/unit/api/v2/test_floatingips.py | 31 +++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/designate/common/constants.py b/designate/common/constants.py index 3fe2024fc..fcf4b08fa 100644 --- a/designate/common/constants.py +++ b/designate/common/constants.py @@ -76,7 +76,7 @@ RE_CERT_TYPE = re.compile(r'(^[A-Z]+$)|(^[0-9]+$)') RE_CERT_ALGO = re.compile(r'(^[A-Z]+[A-Z0-9\-]+[A-Z0-9]$)|(^[0-9]+$)') # Floating IP regexes -RE_FIP = re.compile(r'^(?P[A-Za-z0-9\\.\\-_]{1,100}):(?P[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$') # noqa +RE_FIP = re.compile(r'^(?P[A-Za-z0-9\.\-_]{1,100}):(?P[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$') # noqa # Error Validation regexes RE_REQUIRED = re.compile(r'\'([\w]*)\' is a required property') diff --git a/designate/tests/unit/api/v2/test_floatingips.py b/designate/tests/unit/api/v2/test_floatingips.py index 99ebe6647..1f5d956b0 100644 --- a/designate/tests/unit/api/v2/test_floatingips.py +++ b/designate/tests/unit/api/v2/test_floatingips.py @@ -35,6 +35,37 @@ class FloatingIPTest(oslotest.base.BaseTestCase): ) ) + self.assertEqual( + ('region-one', '2fc6745d-1631-4f34-b13d-90f9014236c0'), + floatingips.fip_key_to_data( + 'region-one:2fc6745d-1631-4f34-b13d-90f9014236c0' + ) + ) + self.assertEqual( + ('region-1', '2fc6745d-1631-4f34-b13d-90f9014236c0'), + floatingips.fip_key_to_data( + 'region-1:2fc6745d-1631-4f34-b13d-90f9014236c0' + ) + ) + self.assertEqual( + ('region-1-test', '2fc6745d-1631-4f34-b13d-90f9014236c0'), + floatingips.fip_key_to_data( + 'region-1-test:2fc6745d-1631-4f34-b13d-90f9014236c0' + ) + ) + self.assertEqual( + ('region.1.test', '2fc6745d-1631-4f34-b13d-90f9014236c0'), + floatingips.fip_key_to_data( + 'region.1.test:2fc6745d-1631-4f34-b13d-90f9014236c0' + ) + ) + self.assertEqual( + ('region.test', '2fc6745d-1631-4f34-b13d-90f9014236c0'), + floatingips.fip_key_to_data( + 'region.test:2fc6745d-1631-4f34-b13d-90f9014236c0' + ) + ) + def test_fip_key_to_data_bad_request(self): self.assertRaisesRegex( exceptions.BadRequest,