@@ -50,6 +50,18 @@ def _get_action_by_id(id):
5050 LOG .exception (msg )
5151 abort (http_client .NOT_FOUND , msg )
5252
53+ @staticmethod
54+ def _get_action_by_ref (ref ):
55+ try :
56+ action_db = Action .get_by_ref (ref )
57+ if not action_db :
58+ raise ValueError ('Referenced action "%s" doesnt exist' % (ref ))
59+ return action_db
60+ except Exception as e :
61+ msg = 'Database lookup for ref="%s" resulted in exception. %s' % (ref , e )
62+ LOG .exception (msg )
63+ abort (http_client .NOT_FOUND , msg )
64+
5365 @staticmethod
5466 def _get_runner_by_id (id ):
5567 try :
@@ -70,18 +82,21 @@ def _get_runner_by_name(name):
7082
7183
7284class ParametersViewController (object ):
73- def get_one (self , action_id , requester_user ):
74- return self ._get_one (action_id , requester_user = requester_user )
85+ def get_one (self , ref_or_id , requester_user ):
86+ return self ._get_one (ref_or_id , requester_user = requester_user )
7587
7688 @staticmethod
77- def _get_one (action_id , requester_user ):
89+ def _get_one (ref_or_id , requester_user ):
7890 """
7991 List merged action & runner parameters by action id.
8092
8193 Handle:
8294 GET /actions/views/parameters/1
8395 """
84- action_db = LookupUtils ._get_action_by_id (action_id )
96+ if ResourceReference .is_resource_reference (ref_or_id ):
97+ action_db = LookupUtils ._get_action_by_ref (ref_or_id )
98+ else :
99+ action_db = LookupUtils ._get_action_by_id (ref_or_id )
85100
86101 permission_type = PermissionType .ACTION_VIEW
87102 rbac_utils = get_rbac_backend ().get_utils_class ()
0 commit comments