mirror of
https://github.com/ansible/awx.git
synced 2026-05-10 02:47:36 -02:30
Merge pull request #7808 from zedr/feat-yaml-import
Allow YAML as a CLI import format Reviewed-by: https://github.com/apps/softwarefactory-project-zuul
This commit is contained in:
@@ -70,9 +70,10 @@ class CLI(object):
|
||||
subparsers = {}
|
||||
original_action = None
|
||||
|
||||
def __init__(self, stdout=sys.stdout, stderr=sys.stderr):
|
||||
def __init__(self, stdout=sys.stdout, stderr=sys.stderr, stdin=sys.stdin):
|
||||
self.stdout = stdout
|
||||
self.stderr = stderr
|
||||
self.stdin = stdin
|
||||
|
||||
def get_config(self, key):
|
||||
"""Helper method for looking up the value of a --conf.xyz flag"""
|
||||
|
||||
@@ -40,7 +40,7 @@ def add_authentication_arguments(parser, env):
|
||||
|
||||
|
||||
def add_output_formatting_arguments(parser, env):
|
||||
formatting = parser.add_argument_group('output formatting')
|
||||
formatting = parser.add_argument_group('input/output formatting')
|
||||
|
||||
formatting.add_argument(
|
||||
'-f',
|
||||
@@ -49,7 +49,7 @@ def add_output_formatting_arguments(parser, env):
|
||||
choices=FORMATTERS.keys(),
|
||||
default=env.get('TOWER_FORMAT', 'json'),
|
||||
help=(
|
||||
'specify an output format'
|
||||
'specify a format for the input and output'
|
||||
),
|
||||
)
|
||||
formatting.add_argument(
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import yaml
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
|
||||
from awxkit import api, config
|
||||
from awxkit.exceptions import ImportExportError
|
||||
from awxkit.utils import to_str
|
||||
from awxkit.api.pages import Page
|
||||
from awxkit.api.pages.api import EXPORTABLE_RESOURCES
|
||||
@@ -135,7 +136,13 @@ class Import(CustomCommand):
|
||||
parser.print_help()
|
||||
raise SystemExit()
|
||||
|
||||
data = json.load(sys.stdin)
|
||||
fmt = client.get_config('format')
|
||||
if fmt == 'json':
|
||||
data = json.load(client.stdin)
|
||||
elif fmt == 'yaml':
|
||||
data = yaml.safe_load(client.stdin)
|
||||
else:
|
||||
raise ImportExportError("Unsupported format for Import: " + fmt)
|
||||
|
||||
client.authenticate()
|
||||
client.v2.import_assets(data)
|
||||
|
||||
Reference in New Issue
Block a user