@@ -69,9 +69,19 @@ def take_action(self, parsed_args):
6969 )
7070 region = None
7171 if parsed_args .region :
72- region = utils .find_resource (
73- identity_client .regions , parsed_args .region
74- )
72+ val = getattr (parsed_args , 'region' , None )
73+ if 'None' not in val :
74+ # NOTE (vishakha): Due to bug #1799153 and for any another
75+ # related case where GET resource API does not support the
76+ # filter by name, osc_lib.utils.find_resource() method cannot
77+ # be used because that method try to fall back to list all the
78+ # resource if requested resource cannot be get via name. Which
79+ # ends up with NoUniqueMatch error.
80+ # So osc_lib.utils.find_resource() function cannot be used for
81+ # 'regions', using common_utils.get_resource() instead.
82+ region = common_utils .get_resource (
83+ identity_client .regions , parsed_args .region
84+ )
7585
7686 registered_limit = identity_client .registered_limits .create (
7787 service ,
@@ -153,9 +163,19 @@ def take_action(self, parsed_args):
153163 )
154164 region = None
155165 if parsed_args .region :
156- region = utils .find_resource (
157- identity_client .regions , parsed_args .region
158- )
166+ val = getattr (parsed_args , 'region' , None )
167+ if 'None' not in val :
168+ # NOTE (vishakha): Due to bug #1799153 and for any another
169+ # related case where GET resource API does not support the
170+ # filter by name, osc_lib.utils.find_resource() method cannot
171+ # be used because that method try to fall back to list all the
172+ # resource if requested resource cannot be get via name. Which
173+ # ends up with NoUniqueMatch error.
174+ # So osc_lib.utils.find_resource() function cannot be used for
175+ # 'regions', using common_utils.get_resource() instead.
176+ region = common_utils .get_resource (
177+ identity_client .regions , parsed_args .region
178+ )
159179
160180 registered_limits = identity_client .registered_limits .list (
161181 service = service ,
@@ -222,9 +242,19 @@ def take_action(self, parsed_args):
222242
223243 region = None
224244 if parsed_args .region :
225- region = utils .find_resource (
226- identity_client .regions , parsed_args .region
227- )
245+ val = getattr (parsed_args , 'region' , None )
246+ if 'None' not in val :
247+ # NOTE (vishakha): Due to bug #1799153 and for any another
248+ # related case where GET resource API does not support the
249+ # filter by name, osc_lib.utils.find_resource() method cannot
250+ # be used because that method try to fall back to list all the
251+ # resource if requested resource cannot be get via name. Which
252+ # ends up with NoUniqueMatch error.
253+ # So osc_lib.utils.find_resource() function cannot be used for
254+ # 'regions', using common_utils.get_resource() instead.
255+ region = common_utils .get_resource (
256+ identity_client .regions , parsed_args .region
257+ )
228258
229259 registered_limit = identity_client .registered_limits .update (
230260 parsed_args .registered_limit_id ,
0 commit comments