mirror of
https://github.com/ansible/awx.git
synced 2026-01-09 23:12:08 -03:30
Resolve review comments
This commit is contained in:
parent
9b047c2af6
commit
c39172f516
@ -29,51 +29,51 @@ options:
|
||||
organizations:
|
||||
description:
|
||||
- organization names to export
|
||||
type: str
|
||||
type: list
|
||||
users:
|
||||
description:
|
||||
- user names to export
|
||||
type: str
|
||||
type: list
|
||||
teams:
|
||||
description:
|
||||
- team names to export
|
||||
type: str
|
||||
type: list
|
||||
credential_types:
|
||||
description:
|
||||
- credential type names to export
|
||||
type: str
|
||||
type: list
|
||||
credentials:
|
||||
description:
|
||||
- credential names to export
|
||||
type: str
|
||||
type: list
|
||||
execution_environments:
|
||||
description:
|
||||
- execution environment names to export
|
||||
type: str
|
||||
type: list
|
||||
notification_templates:
|
||||
description:
|
||||
- notification template names to export
|
||||
type: str
|
||||
type: list
|
||||
inventory_sources:
|
||||
description:
|
||||
- inventory soruces to export
|
||||
type: str
|
||||
type: list
|
||||
inventory:
|
||||
description:
|
||||
- inventory names to export
|
||||
type: str
|
||||
type: list
|
||||
projects:
|
||||
description:
|
||||
- project names to export
|
||||
type: str
|
||||
type: list
|
||||
job_templates:
|
||||
description:
|
||||
- job template names to export
|
||||
type: str
|
||||
type: list
|
||||
workflow_job_templates:
|
||||
description:
|
||||
- workflow names to export
|
||||
type: str
|
||||
type: list
|
||||
requirements:
|
||||
- "awxkit >= 9.3.0"
|
||||
notes:
|
||||
@ -95,9 +95,9 @@ EXAMPLES = '''
|
||||
job_templates: "My Template"
|
||||
credential: 'all'
|
||||
|
||||
- name: Export two or more inventories with a comma separated list of names
|
||||
- name: Export a list of inventories
|
||||
export:
|
||||
inventory: "My Inventory1,My Inventory2"
|
||||
inventory: ['My Inventory 1', 'My Inventory 2']
|
||||
'''
|
||||
|
||||
import logging
|
||||
@ -115,24 +115,12 @@ except ImportError:
|
||||
def main():
|
||||
argument_spec = dict(
|
||||
all=dict(type='bool', default=False),
|
||||
credential_types=dict(type='str'),
|
||||
credentials=dict(type='str'),
|
||||
execution_environments=dict(type='str'),
|
||||
inventory=dict(type='str'),
|
||||
inventory_sources=dict(type='str'),
|
||||
job_templates=dict(type='str'),
|
||||
notification_templates=dict(type='str'),
|
||||
organizations=dict(type='str'),
|
||||
projects=dict(type='str'),
|
||||
teams=dict(type='str'),
|
||||
users=dict(type='str'),
|
||||
workflow_job_templates=dict(type='str'),
|
||||
)
|
||||
|
||||
# We are not going to raise an error here because the __init__ method of ControllerAWXKitModule will do that for us
|
||||
if HAS_EXPORTABLE_RESOURCES:
|
||||
for resource in EXPORTABLE_RESOURCES:
|
||||
argument_spec[resource] = dict(type='str')
|
||||
argument_spec[resource] = dict(type='list')
|
||||
|
||||
module = ControllerAWXKitModule(argument_spec=argument_spec)
|
||||
|
||||
|
||||
@ -213,13 +213,23 @@ class ApiV2(base.Base):
|
||||
assets = (self._export(asset, post_fields) for asset in endpoint.results)
|
||||
return [asset for asset in assets if asset is not None]
|
||||
|
||||
def _check_for_int(self, value):
|
||||
return isinstance(value, int) or (isinstance(value, str) and value.isdecimal())
|
||||
|
||||
def _filtered_list(self, endpoint, value):
|
||||
if isinstance(value, int) or value.isdecimal():
|
||||
if isinstance(value, list) and len(value) == 1:
|
||||
value = value[0]
|
||||
if self._check_for_int(value):
|
||||
return endpoint.get(id=int(value))
|
||||
|
||||
options = self._cache.get_options(endpoint)
|
||||
identifier = next(field for field in options['search_fields'] if field in ('name', 'username', 'hostname'))
|
||||
if len(value.split(',')) > 0:
|
||||
identifier += '__in'
|
||||
if isinstance(value, list):
|
||||
if all(self._check_for_int(item) for item in value):
|
||||
identifier = 'or__id'
|
||||
else:
|
||||
identifier = 'or__' + identifier
|
||||
|
||||
return endpoint.get(**{identifier: value}, all_pages=True)
|
||||
|
||||
def export_assets(self, **kwargs):
|
||||
|
||||
@ -161,7 +161,7 @@ class Export(CustomCommand):
|
||||
# 1) the resource flag is not used at all, which will result in the attr being None
|
||||
# 2) the resource flag is used with no argument, which will result in the attr being ''
|
||||
# 3) the resource flag is used with an argument, and the attr will be that argument's value
|
||||
resources.add_argument('--{}'.format(resource), nargs='?', const='')
|
||||
resources.add_argument('--{}'.format(resource), nargs='*')
|
||||
|
||||
def handle(self, client, parser):
|
||||
self.extend_parser(parser)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user