diff options
Diffstat (limited to 'openstackclient/identity/v3')
| -rw-r--r-- | openstackclient/identity/v3/limit.py | 29 | ||||
| -rw-r--r-- | openstackclient/identity/v3/registered_limit.py | 48 |
2 files changed, 65 insertions, 12 deletions
diff --git a/openstackclient/identity/v3/limit.py b/openstackclient/identity/v3/limit.py index 57d1dfd6..f2af81e9 100644 --- a/openstackclient/identity/v3/limit.py +++ b/openstackclient/identity/v3/limit.py @@ -78,9 +78,19 @@ class CreateLimit(command.ShowOne): ) region = None if parsed_args.region: - region = utils.find_resource( - identity_client.regions, parsed_args.region - ) + val = getattr(parsed_args, 'region', None) + if 'None' not in val: + # NOTE (vishakha): Due to bug #1799153 and for any another + # related case where GET resource API does not support the + # filter by name, osc_lib.utils.find_resource() method cannot + # be used because that method try to fall back to list all the + # resource if requested resource cannot be get via name. Which + # ends up with NoUniqueMatch error. + # So osc_lib.utils.find_resource() function cannot be used for + # 'regions', using common_utils.get_resource() instead. + region = common_utils.get_resource( + identity_client.regions, parsed_args.region + ) limit = identity_client.limits.create( project, @@ -136,6 +146,19 @@ class ListLimit(command.Lister): region = utils.find_resource( identity_client.regions, parsed_args.region ) + val = getattr(parsed_args, 'region', None) + if 'None' not in val: + # NOTE (vishakha): Due to bug #1799153 and for any another + # related case where GET resource API does not support the + # filter by name, osc_lib.utils.find_resource() method cannot + # be used because that method try to fall back to list all the + # resource if requested resource cannot be get via name. Which + # ends up with NoUniqueMatch error. + # So osc_lib.utils.find_resource() function cannot be used for + # 'regions', using common_utils.get_resource() instead. + region = common_utils.get_resource( + identity_client.regions, parsed_args.region + ) project = None if parsed_args.project: project = utils.find_resource( diff --git a/openstackclient/identity/v3/registered_limit.py b/openstackclient/identity/v3/registered_limit.py index 72e07297..b308080e 100644 --- a/openstackclient/identity/v3/registered_limit.py +++ b/openstackclient/identity/v3/registered_limit.py @@ -69,9 +69,19 @@ class CreateRegisteredLimit(command.ShowOne): ) region = None if parsed_args.region: - region = utils.find_resource( - identity_client.regions, parsed_args.region - ) + val = getattr(parsed_args, 'region', None) + if 'None' not in val: + # NOTE (vishakha): Due to bug #1799153 and for any another + # related case where GET resource API does not support the + # filter by name, osc_lib.utils.find_resource() method cannot + # be used because that method try to fall back to list all the + # resource if requested resource cannot be get via name. Which + # ends up with NoUniqueMatch error. + # So osc_lib.utils.find_resource() function cannot be used for + # 'regions', using common_utils.get_resource() instead. + region = common_utils.get_resource( + identity_client.regions, parsed_args.region + ) registered_limit = identity_client.registered_limits.create( service, @@ -153,9 +163,19 @@ class ListRegisteredLimit(command.Lister): ) region = None if parsed_args.region: - region = utils.find_resource( - identity_client.regions, parsed_args.region - ) + val = getattr(parsed_args, 'region', None) + if 'None' not in val: + # NOTE (vishakha): Due to bug #1799153 and for any another + # related case where GET resource API does not support the + # filter by name, osc_lib.utils.find_resource() method cannot + # be used because that method try to fall back to list all the + # resource if requested resource cannot be get via name. Which + # ends up with NoUniqueMatch error. + # So osc_lib.utils.find_resource() function cannot be used for + # 'regions', using common_utils.get_resource() instead. + region = common_utils.get_resource( + identity_client.regions, parsed_args.region + ) registered_limits = identity_client.registered_limits.list( service=service, @@ -222,9 +242,19 @@ class SetRegisteredLimit(command.ShowOne): region = None if parsed_args.region: - region = utils.find_resource( - identity_client.regions, parsed_args.region - ) + val = getattr(parsed_args, 'region', None) + if 'None' not in val: + # NOTE (vishakha): Due to bug #1799153 and for any another + # related case where GET resource API does not support the + # filter by name, osc_lib.utils.find_resource() method cannot + # be used because that method try to fall back to list all the + # resource if requested resource cannot be get via name. Which + # ends up with NoUniqueMatch error. + # So osc_lib.utils.find_resource() function cannot be used for + # 'regions', using common_utils.get_resource() instead. + region = common_utils.get_resource( + identity_client.regions, parsed_args.region + ) registered_limit = identity_client.registered_limits.update( parsed_args.registered_limit_id, |
