Modify notification request parameter name
This patch fixed notification request parameters name that different from ETSI definition. Along with this fix, modified an issue where the initial word of under-score would be changed SnakeCase to CamelCase in common/utils function. Closes-Bug: #1914596 Change-Id: Iac04311aee1db7fb5836c32745d29bf63ac5ce20
This commit is contained in:
parent
08b4633514
commit
1a159c3cd7
|
@ -378,8 +378,34 @@ def convert_snakecase_to_camelcase(request_data):
|
||||||
This method takes care only keys in a `dict` or `dicts in a list`.
|
This method takes care only keys in a `dict` or `dicts in a list`.
|
||||||
For simple list with string items, the elements which are actual values
|
For simple list with string items, the elements which are actual values
|
||||||
are ignored during conversion.
|
are ignored during conversion.
|
||||||
|
Also, Snake case is a notation method that uses underscores to connect
|
||||||
|
words. For that reason, if the initial word of the key in dict starts
|
||||||
|
with '_', this function ignore to convert the key.
|
||||||
|
|
||||||
:param request_data: dict with keys or list with items, in snake_case.
|
:param request_data: dict with keys or list with items, in snake_case.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
Before::
|
||||||
|
|
||||||
|
[
|
||||||
|
{"vnf_lcm_op_occ_id" : "uuid"},
|
||||||
|
{
|
||||||
|
"_links" : {
|
||||||
|
"vnf_lcm_op_occ": {"href": "resource_link"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
After::
|
||||||
|
|
||||||
|
[
|
||||||
|
{"vnfLcmOpOccId": "uuid"},
|
||||||
|
{
|
||||||
|
"_links": {
|
||||||
|
"vnfLcmOpOcc": {"href": "resource_link"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
"""
|
"""
|
||||||
def convert(name):
|
def convert(name):
|
||||||
return re.sub('_([a-z])',
|
return re.sub('_([a-z])',
|
||||||
|
@ -389,7 +415,7 @@ def convert_snakecase_to_camelcase(request_data):
|
||||||
new_dict = {}
|
new_dict = {}
|
||||||
for key, property_value in request_data.items():
|
for key, property_value in request_data.items():
|
||||||
property_value = convert_snakecase_to_camelcase(property_value)
|
property_value = convert_snakecase_to_camelcase(property_value)
|
||||||
camelcase = convert(key)
|
camelcase = key if key.startswith('_') else convert(key)
|
||||||
new_dict[camelcase] = property_value
|
new_dict[camelcase] = property_value
|
||||||
return new_dict
|
return new_dict
|
||||||
|
|
||||||
|
|
|
@ -1463,6 +1463,9 @@ class Conductor(manager.Manager):
|
||||||
try:
|
try:
|
||||||
LOG.debug("send_notification start notification[%s]"
|
LOG.debug("send_notification start notification[%s]"
|
||||||
% notification)
|
% notification)
|
||||||
|
|
||||||
|
notification = utils.convert_snakecase_to_camelcase(notification)
|
||||||
|
|
||||||
if (notification.get('notificationType') ==
|
if (notification.get('notificationType') ==
|
||||||
'VnfLcmOperationOccurrenceNotification'):
|
'VnfLcmOperationOccurrenceNotification'):
|
||||||
vnf_lcm_subscriptions = \
|
vnf_lcm_subscriptions = \
|
||||||
|
|
|
@ -68,9 +68,11 @@ class TestCamelToSnakeCase(testtools.TestCase):
|
||||||
class TestSnakeToCamelCase(testtools.TestCase):
|
class TestSnakeToCamelCase(testtools.TestCase):
|
||||||
def test_convert_snakecase_to_camelcase_dict(self):
|
def test_convert_snakecase_to_camelcase_dict(self):
|
||||||
"""Only the dict keys from list should be converted to camelcase"""
|
"""Only the dict keys from list should be converted to camelcase"""
|
||||||
actual_val = utils.convert_snakecase_to_camelcase(
|
data = {"snake_case_key": "snake_case_value",
|
||||||
{"snake_case_key": "snake_case_value"})
|
"_key": "ignore_key_value"}
|
||||||
expected_val = {"snakeCaseKey": "snake_case_value"}
|
actual_val = utils.convert_snakecase_to_camelcase(data)
|
||||||
|
expected_val = {"snakeCaseKey": "snake_case_value",
|
||||||
|
"_key": "ignore_key_value"}
|
||||||
self.assertEqual(expected_val, actual_val)
|
self.assertEqual(expected_val, actual_val)
|
||||||
|
|
||||||
def test_convert_snakecase_to_camelcase_list_with_dict_items(self):
|
def test_convert_snakecase_to_camelcase_list_with_dict_items(self):
|
||||||
|
|
Loading…
Reference in New Issue