@@ -39,49 +39,24 @@ def run(self, tmp=None, task_vars=None):
3939 after ["attributes" ].append (jwks_attribute )
4040 after ["attributes" ] = sorted (after ["attributes" ], key = lambda attr : attr ["name" ])
4141
42- developer_details = task_vars .get (DEVELOPER_DETAILS )
43- if not developer_details :
44- developer_details = []
45- params = {"expand" : True }
46- url = (
47- constants .APIGEE_BASE_URL
48- + f"organizations/{ args .organization } /developers"
49- )
50- while True :
51- resp = utils .get (url , args .access_token , params = params )
52- if resp .get ("failed" ):
53- return resp
54- devs = resp ["response" ]["body" ]["developer" ]
55- developer_details .extend (devs )
56- if len (devs ) == 1000 :
57- # last developer's ID as startKey will be included
58- # in next request, so pop now to de-dupe.
59- last_dev = developer_details .pop ()
60- params ["startKey" ] = last_dev ["developerId" ]
61- else :
62- break
63-
64- try :
65- developer_id = args ._app_data ["developerId" ]
66- developer_ids = [d ["developerId" ] for d in developer_details ]
67- i = bisect .bisect_left (developer_ids , developer_id )
68- if i == len (developer_details ):
69- raise RuntimeError (f"Unable to find developer with id { developer_id } " )
70- except RuntimeError as e :
71- return {"failed" : True , "error" : str (e )}
72-
73- developer = developer_details [i ]
74-
7542 delta = utils .delta (before , after )
7643 result = {
7744 "changed" : bool (delta ),
78- "app" : after ,
79- "developer" : developer ,
80- "ansible_facts" : {DEVELOPER_DETAILS : developer_details },
45+ "app" : after
8146 }
8247
48+ company_exists = "companyName" in args ._app_data .keys ()
49+ developer_exists = "developerId" in args ._app_data .keys ()
50+ if developer_exists and not company_exists :
51+ owner = args ._app_data ["developerId" ]
52+ elif company_exists and not developer_exists :
53+ owner = args ._app_data ["companyName" ]
54+ else :
55+ return {"failed" : True , "error" : f"Invalid owner for app { args ._app_data ['appId' ]} " }
56+
57+ owner_endpoint = "companies" if company_exists else "developers"
8358 app_name = args ._app_data ["name" ]
84- app_path = f"organizations/{ args .organization } /developers/ { developer [ 'email' ] } /apps/{ app_name } /attributes"
59+ app_path = f"organizations/{ args .organization } /{ owner_endpoint } / { owner } /apps/{ app_name } /attributes"
8560
8661 if diff_mode :
8762 result ["diff" ] = [
0 commit comments