36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
import json
|
|
|
|
def deep_equal(a, b):
|
|
"""
|
|
Compare two data structures for deep equality by converting them to JSON strings.
|
|
|
|
Parameters:
|
|
a (any): First data structure to compare.
|
|
b (any): Second data structure to compare.
|
|
|
|
Returns:
|
|
bool: True if the two data structures are equal, False otherwise.
|
|
"""
|
|
return json.dumps(a, sort_keys=True) == json.dumps(b, sort_keys=True)
|
|
|
|
def get_changes(module_params, module_args_keys_list, current_config):
|
|
"""
|
|
Function to get changes by comparing module parameters with current configuration.
|
|
|
|
Args:
|
|
module_params (dict): The parameters of the module.
|
|
module_args_keys_list (list): List of keys to check in module parameters.
|
|
current_config (dict): The current configuration to compare against.
|
|
|
|
Returns:
|
|
dict: A dictionary containing the changes.
|
|
"""
|
|
changes = {}
|
|
|
|
for key, value in module_params.items():
|
|
if key in module_args_keys_list:
|
|
if value is not None:
|
|
if not deep_equal(value, current_config.get(key)):
|
|
changes[key] = value
|
|
|
|
return changes |