mirror of
https://github.com/ansible/awx.git
synced 2026-03-19 01:47:31 -02:30
Deal with lack of permissions
This commit is contained in:
@@ -92,7 +92,7 @@ class ApiV2(base.Base):
|
|||||||
# Common import/export methods
|
# Common import/export methods
|
||||||
|
|
||||||
def _get_options(self, endpoint):
|
def _get_options(self, endpoint):
|
||||||
return endpoint.options().json['actions']['POST']
|
return endpoint.options().json['actions'].get('POST', {})
|
||||||
|
|
||||||
# Export methods
|
# Export methods
|
||||||
|
|
||||||
@@ -101,31 +101,34 @@ class ApiV2(base.Base):
|
|||||||
if asset.json.get('managed_by_tower'):
|
if asset.json.get('managed_by_tower'):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
fields = {
|
try:
|
||||||
key: asset[key] for key in options
|
fields = {
|
||||||
if key in asset.json and key not in asset.related
|
key: asset[key] for key in options
|
||||||
}
|
if key in asset.json and key not in asset.related
|
||||||
fields['natural_key'] = get_natural_key(asset)
|
}
|
||||||
|
fields['natural_key'] = get_natural_key(asset)
|
||||||
|
|
||||||
fk_fields = {
|
fk_fields = {
|
||||||
key: get_natural_key(asset.related[key].get()) for key in options
|
key: get_natural_key(asset.related[key].get()) for key in options
|
||||||
if key in asset.related
|
if key in asset.related
|
||||||
}
|
}
|
||||||
|
|
||||||
related = {}
|
related = {}
|
||||||
for k, related_endpoint in asset.related.items():
|
for k, related_endpoint in asset.related.items():
|
||||||
if not related_endpoint:
|
if not related_endpoint:
|
||||||
continue
|
continue
|
||||||
if k == 'object_roles':
|
if k == 'object_roles':
|
||||||
continue
|
continue
|
||||||
rel = related_endpoint._create()
|
rel = related_endpoint._create()
|
||||||
if rel.__class__.__name__ not in EXPORTABLE_RELATIONS:
|
if rel.__class__.__name__ not in EXPORTABLE_RELATIONS:
|
||||||
continue
|
continue
|
||||||
data = related_endpoint.get(all_pages=True)
|
data = related_endpoint.get(all_pages=True)
|
||||||
if 'results' in data:
|
if 'results' in data:
|
||||||
related[k] = [get_natural_key(x) for x in data.results]
|
related[k] = [get_natural_key(x) for x in data.results]
|
||||||
else:
|
else:
|
||||||
related[k] = data.json
|
related[k] = data.json
|
||||||
|
except exc.Forbidden:
|
||||||
|
return None
|
||||||
|
|
||||||
related_fields = {'related': related} if related else {}
|
related_fields = {'related': related} if related else {}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user