@@ -56,7 +56,7 @@ def get(isamAppliance, server=None, port=None, protocol=None, id=None, check_mod
5656 return_obj = isamAppliance .create_return_object ()
5757 return_obj ['data' ], i = _find_forwarder (ret_obj , server , port , protocol )
5858 warnings = []
59- if return_obj ['data' ] == None :
59+ if return_obj ['data' ] is None :
6060 warnings .append (f"No entry found for server { server } port { port } and protocol { protocol } ." )
6161 return_obj ['warnings' ] = warnings
6262
@@ -117,6 +117,10 @@ def set(isamAppliance, server=None, port=None, protocol='udp', id=None, debug=Fa
117117 Update or create a specific remote syslog forwarder
118118 """
119119 warnings = []
120+
121+ if port and isinstance (port , basestring ):
122+ port = int (port )
123+
120124 json_data = {
121125 'server' : server ,
122126 'port' : port ,
@@ -127,9 +131,6 @@ def set(isamAppliance, server=None, port=None, protocol='udp', id=None, debug=Fa
127131 if id is None :
128132 ret_obj = get_all (isamAppliance , check_mode , force )
129133
130- if isinstance (port , basestring ):
131- port = int (port )
132-
133134 existing_forwarder , i = _find_forwarder (ret_obj , server , port , protocol )
134135 if existing_forwarder is not None and sources == [] and existing_forwarder ['sources' ] != sources :
135136 sources = existing_forwarder ['sources' ]
@@ -154,23 +155,19 @@ def set(isamAppliance, server=None, port=None, protocol='udp', id=None, debug=Fa
154155 json_to_post = ret_obj ['data' ]
155156 json_to_post .append (json_data )
156157 update_required = True
157- warnings .append ("existing_forwarder is None " )
158+ warnings .append ("This is a new forwarder " )
158159 else :
159160 if format is not None :
160161 if ibmsecurity .utilities .tools .version_compare (isamAppliance .facts ['version' ], "10.0.2.0" ) < 0 :
161162 warnings .append (f"Appliance at version: { isamAppliance .facts ['version' ]} , format requires 10.0.2.0" )
162163 else :
163164 json_data ["format" ] = format
164- elif 'format' in ret_obj ['data' ][i ]:
165- del ret_obj ['data' ][i ]['format' ]
166- sorted_json_data = tools .json_sort (json_data )
167- logger .debug (f"Sorted input: { sorted_json_data } " )
168- sorted_ret_obj = tools .json_sort (existing_forwarder )
169- logger .debug (f"Sorted existing data: { sorted_ret_obj } " )
170- if sorted_ret_obj != sorted_json_data :
171- logger .info ("Changes detected, update needed." )
172- ret_obj ['data' ][i ] = json_data
173- json_to_post = ret_obj ['data' ]
165+ else :
166+ ret_obj ['data' ][i ].pop ('format' , None )
167+ existing_forwarder .pop ('id' , None )
168+ if tools .json_equals (existing_forwarder , json_data , ignore_keys_not_in_new = True , skipkeys = True , sort_keys = True ):
169+ update_required = False
170+ else :
174171 update_required = True
175172
176173 if update_required :
0 commit comments