mirror of
https://github.com/ansible/awx.git
synced 2026-07-03 04:18:02 -02:30
Attempt to infer related pages on export when the link is missing
This commit is contained in:
@@ -72,10 +72,21 @@ class ApiV2(base.Base):
|
||||
}
|
||||
|
||||
for key in post_fields:
|
||||
if key not in _page.related:
|
||||
continue
|
||||
if key in _page.related:
|
||||
related = _page.related[key]
|
||||
else:
|
||||
if post_fields[key]['type'] == 'id' and _page.json.get(key) is not None:
|
||||
log.warning("Related link %r missing from %s, attempting to reconstruct endpoint.",
|
||||
key, _page.endpoint)
|
||||
resource = getattr(self, key, None)
|
||||
if resource is None:
|
||||
log.error("Unable to infer endpoint for %r on %s.", key, _page.endpoint)
|
||||
continue
|
||||
related = self._filtered_list(resource, _page.json[key]).results[0]
|
||||
else:
|
||||
continue
|
||||
|
||||
rel_endpoint = self._cache.get_page(_page.related[key])
|
||||
rel_endpoint = self._cache.get_page(related)
|
||||
if rel_endpoint is None: # This foreign key is unreadable
|
||||
if post_fields[key].get('required'):
|
||||
log.error("Foreign key %r export failed for object %s.", key, _page.endpoint)
|
||||
|
||||
Reference in New Issue
Block a user