2323 meraki_compare_equality2 ,
2424 get_dict_result ,
2525)
26- from ansible_collections .cisco .meraki .plugins .plugin_utils .exceptions import (
27- InconsistentParameters ,
28- )
26+
2927
3028# Get common arguments specification
3129argument_spec = meraki_argument_spec ()
@@ -165,9 +163,13 @@ def get_object_by_name(self, name):
165163 if isinstance (items , dict ):
166164 if 'response' in items :
167165 items = items .get ('response' )
168- result = get_dict_result (items , 'vlan' , name )
169- if result is None :
170- result = items
166+ for item in items :
167+ if (item .get ("vlan" ) == self .new_object .get ("vlan" ) and
168+ item .get ("protocol" ) == self .new_object .get ("protocol" ) and
169+ item .get ("srcPort" ) == self .new_object .get ("srcPort" ) and
170+ item .get ("dstPort" ) == self .new_object .get ("dstPort" )):
171+ result = item
172+ break
171173 except Exception as e :
172174 print ("Error: " , e )
173175 result = None
@@ -184,7 +186,12 @@ def get_object_by_id(self, id):
184186 if isinstance (items , dict ):
185187 if 'response' in items :
186188 items = items .get ('response' )
187- result = get_dict_result (items , 'qosRuleId' , id )
189+ if id is not None :
190+ print ("Is NOT NONE" )
191+ result = get_dict_result (items , 'qosRuleId' , id )
192+ else :
193+ # Validate if this
194+ print ("Is NONE" )
188195 except Exception as e :
189196 print ("Error: " , e )
190197 result = None
@@ -194,33 +201,21 @@ def exists(self):
194201 id_exists = False
195202 name_exists = False
196203 prev_obj = None
197- o_id = self .new_object .get ("id" )
204+ o_id = self .new_object .get ("qosRuleId" ) or self . new_object . get ( " id" )
198205 o_id = o_id or self .new_object .get (
199206 "qos_rule_id" ) or self .new_object .get ("qosRuleId" )
200- name = self .new_object .get ("vlan " )
207+ name = self .new_object .get ("name" ) or self . new_object . get ( "id " )
201208 if o_id :
202209 prev_obj = self .get_object_by_id (o_id )
203- id_exists = prev_obj is not None and isinstance ( prev_obj , dict )
204- if not id_exists and name or name is None :
210+ else :
211+ print ( "Is NONE" )
205212 prev_obj = self .get_object_by_name (name )
206- name_exists = prev_obj is not None and isinstance (prev_obj , dict )
207- if name_exists :
208- _id = prev_obj .get ("id" )
209- _id = _id or prev_obj .get ("qosRuleId" )
210- if id_exists and name_exists and o_id != _id :
211- raise InconsistentParameters (
212- "The 'id' and 'name' params don't refer to the same object" )
213- if _id :
214- self .new_object .update (dict (id = _id ))
215- self .new_object .update (dict (qosRuleId = _id ))
216- if _id :
217- prev_obj = self .get_object_by_id (_id )
218213 it_exists = prev_obj is not None and isinstance (prev_obj , dict )
219214 return (it_exists , prev_obj )
220215
221216 def requires_update (self , current_obj ):
222217 requested_obj = self .new_object
223-
218+ current_obj [ "networkId" ] = requested_obj . get ( "networkId" ) or None
224219 obj_params = [
225220 ("dscp" , "dscp" ),
226221 ("dstPort" , "dstPort" ),
0 commit comments