in marketplace/deployer_util/overlay_test_schema.py [0:0]
def main():
parser = ArgumentParser(description=_PROG_HELP)
parser.add_argument('--test_schema', help='Test schema file', required=True)
parser.add_argument(
'--original_schema', help='Original schema file', required=True)
parser.add_argument(
'--output',
action='append',
default=[],
help='Location(s) of the file(s) to output the overlayed schema')
args = parser.parse_args()
if os.path.isfile(args.test_schema):
test_schema = load_yaml(args.test_schema)
else:
log.info(
'Test schema file {} does not exist. '
'Using the original schema.', args.test_schema)
test_schema = {}
output_schema = load_yaml(args.original_schema)
output_schema['properties'] = output_schema.get('properties', {})
for prop in test_schema.get('properties', {}):
test_type = deep_get(test_schema, 'properties', prop,
'x-google-marketplace', 'type')
output_type = deep_get(output_schema, 'properties', prop,
'x-google-marketplace', 'type')
if (test_type != output_type):
raise Exception(
'Changing x-google-marketplace type is not allowed. Property: {}',
prop)
output_schema['properties'][prop] = test_schema['properties'][prop]
for output in args.output:
with open(output, 'w', encoding='utf-8') as f:
yaml.dump(output_schema, f)