mirror of
https://github.com/ansible/awx.git
synced 2026-05-18 06:47:41 -02:30
Remove the NoNaturalKey error
It's too awkward, and it makes more sense to return None instead.
This commit is contained in:
@@ -319,14 +319,16 @@ class Page(object):
|
|||||||
|
|
||||||
def get_natural_key(self):
|
def get_natural_key(self):
|
||||||
if not getattr(self, 'NATURAL_KEY', None):
|
if not getattr(self, 'NATURAL_KEY', None):
|
||||||
raise exc.NoNaturalKey(
|
return None
|
||||||
"Page does not have a natural key: {}".format(getattr(self, 'endpoint', repr(self.__class__)))
|
|
||||||
)
|
|
||||||
natural_key = {}
|
natural_key = {}
|
||||||
for key in self.NATURAL_KEY:
|
for key in self.NATURAL_KEY:
|
||||||
if key in self.related:
|
if key in self.related:
|
||||||
# FIXME: use caching by url
|
try:
|
||||||
natural_key[key] = self.related[key].get().get_natural_key()
|
# FIXME: use caching by url
|
||||||
|
natural_key[key] = self.related[key].get().get_natural_key()
|
||||||
|
except exc.Forbidden:
|
||||||
|
return None
|
||||||
elif key in self:
|
elif key in self:
|
||||||
natural_key[key] = self[key]
|
natural_key[key] = self[key]
|
||||||
if not natural_key:
|
if not natural_key:
|
||||||
@@ -395,7 +397,7 @@ class PageList(object):
|
|||||||
return self.__item_class__(self.connection).create(*a, **kw)
|
return self.__item_class__(self.connection).create(*a, **kw)
|
||||||
|
|
||||||
def get_natural_key(self):
|
def get_natural_key(self):
|
||||||
raise exc.NoNaturalKey
|
return None
|
||||||
|
|
||||||
|
|
||||||
class TentativePage(str):
|
class TentativePage(str):
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
from awxkit.api.resources import resources
|
from awxkit.api.resources import resources
|
||||||
|
import awxkit.exceptions as exc
|
||||||
|
|
||||||
from . import base
|
from . import base
|
||||||
from . import page
|
from . import page
|
||||||
|
|
||||||
@@ -14,8 +16,11 @@ class Role(base.Base):
|
|||||||
if name not in ('users', 'teams')
|
if name not in ('users', 'teams')
|
||||||
]
|
]
|
||||||
if related_objs:
|
if related_objs:
|
||||||
# FIXME: use caching by url
|
try:
|
||||||
natural_key['content_object'] = related_objs[0].get().get_natural_key()
|
# FIXME: use caching by url
|
||||||
|
natural_key['content_object'] = related_objs[0].get().get_natural_key()
|
||||||
|
except exc.Forbidden:
|
||||||
|
return None
|
||||||
|
|
||||||
return natural_key
|
return natural_key
|
||||||
|
|
||||||
|
|||||||
@@ -106,8 +106,3 @@ class IsMigrating(Common):
|
|||||||
class ImportExportError(Exception):
|
class ImportExportError(Exception):
|
||||||
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class NoNaturalKey(ImportExportError):
|
|
||||||
|
|
||||||
pass
|
|
||||||
|
|||||||
Reference in New Issue
Block a user