Add uri_segment for MP LB Resources

This patch adds uri_segment as an alias of resource for all MP LB
resources, enabling proper use of _get_resource_by_name_or_id for these
resources.

Change-Id: I548519a8d2ea25d4324060894e0a3a0d03dd7e7e
(cherry picked from commit dd23782b57)
This commit is contained in:
Shawn Wang 2020-07-22 23:12:09 -07:00
parent dcacd20a68
commit ebfdd5af7d
3 changed files with 11 additions and 2 deletions

View File

@ -94,6 +94,11 @@ class ResourceNotFound(ManagerError):
"%(operation)s")
class MultipleResourcesFound(ManagerError):
message = _("Multiple resources are found on backend (%(manager)s) for "
"%(operation)s, where only one is expected")
class BackendResourceNotFound(ResourceNotFound):
message = _("%(details)s On backend (%(manager)s) with Operation: "
"%(operation)s")

View File

@ -51,6 +51,10 @@ class MonitorTypes(object):
class LoadBalancerBase(utils.NsxLibApiBase):
resource = ''
@property
def uri_segment(self):
return self.resource
@staticmethod
def _build_args(body, display_name=None, description=None, tags=None,
resource_type=None, **kwargs):

View File

@ -513,11 +513,11 @@ class NsxLibApiBase(object):
if len(matched_results) == 0:
err_msg = (_("Could not find %(resource)s %(name)s") %
{'name': name_or_id, 'resource': resource})
raise nsxlib_exc.ManagerError(details=err_msg)
raise nsxlib_exc.ResourceNotFound(details=err_msg)
elif len(matched_results) > 1:
err_msg = (_("Found multiple %(resource)s named %(name)s") %
{'name': name_or_id, 'resource': resource})
raise nsxlib_exc.ManagerError(details=err_msg)
raise nsxlib_exc.MultipleResourcesFound(details=err_msg)
return matched_results[0].get('id')