10
format_list = {'json', 'yaml'}
11
# Make up some resonable data returned from each service
15
'version': '1.3.1+13.10.20131003.1-0ubuntu2~fginther.1',
19
'/path/to/diff.gz']}},
22
'ppa': 'ppa:team/ppa'},
25
'version': '1.3.1+13.10.20131003.1-0ubuntu2~fginther.1',
30
'python-autopilot-test',
31
'python-autopilot-trace',
32
'python-autopilot-vis'],
33
'ppa': 'ppa:team/ppa'},
36
'image': '/path/to/image'},
41
'/path/to/artifact2']},
44
'image': '/path/to/image'},
47
logger = logging.getLogger('lander_service_wrapper')
48
stdout_handler = logging.StreamHandler(stream=sys.stdout)
49
formatter = logging.Formatter('%(levelname)s: %(message)s')
50
stdout_handler.setFormatter(formatter)
51
logger.addHandler(stdout_handler)
54
def parse_arguments():
55
parser = argparse.ArgumentParser(
56
description='Wraps the REST API calls with a progress queue monitor.')
57
parser.add_argument('--service',
59
help='The service name to call.')
60
parser.add_argument('--input-file',
62
help='File containing all of the input parameters.')
63
parser.add_argument('--input-format',
66
help='''Format for the input parameter file
67
{}.'''.format(format_list))
68
parser.add_argument('--output-file',
70
help='File to store the API call results.')
71
parser.add_argument('--output-format',
74
help='''Format for API call results
75
{}.'''.format(format_list))
76
return parser.parse_args()
80
args = parse_arguments()
81
if args.service not in data:
82
logger.error("ERROR: Unknown service: {}".format(args.service))
85
if args.input_format not in format_list:
87
"ERROR: Unknown input format: {}".format(args.input_format))
90
if args.output_format not in format_list:
92
"ERROR: Unknown output format: {}".format(args.output_format))
95
logger.debug('Executing service wrapper: {}'.format(args.service))
96
# TODO: Call the service and collect the returned data
97
# For now, canned responses are used as the return data
98
with open(args.output_file, 'w') as output_file:
100
if args.output_format == 'json':
101
out_data = json.dumps(data[args.service])
102
elif args.output_format == 'yaml':
103
out_data = yaml.dump(data[args.service])
104
logger.debug('Output data [{}]: {}'.format(args.output_format,
106
output_file.write('{}\n'.format(out_data))
107
logger.debug('Exit 0')
111
if __name__ == '__main__':