def _parser_callback(args): if args.instance_path and not path.isdir(args.instance_path): raise argparse.ArgumentTypeError( f"Directory {args.instance_path} is not a valid path!") storage = Storage.create(args.instance_path) try: outs = outputs(storage) if args.output: save_outputs(outs, args.format, args.output) else: print(format_outputs(outs, args.format).strip()) except ParseError as e: print(f"{e.loc}: {e}") return 1 except DataError as e: print(str(e)) return 1 return 0
def _parser_callback(args): if args.instance_path and not path.isdir(args.instance_path): raise argparse.ArgumentTypeError( "Directory {0} is not a valid path!".format(args.instance_path)) storage = Storage.create(args.instance_path) try: if args.csar_or_rootdir is None: csar_path = "." else: csar_path = args.csar_or_rootdir outs = info(PurePath(csar_path), storage) if args.output: save_outputs(outs, args.format, args.output) else: print(format_outputs(outs, args.format)) except ParseError as e: print("{}: {}".format(e.loc, e)) return 1 except DataError as e: print(str(e)) return 1 return 0
def _parser_callback(args): if args.instance_path and not path.isdir(args.instance_path): raise argparse.ArgumentTypeError( f"Directory {args.instance_path} is not a valid path!") storage_old = Storage.create(args.instance_path) comparer = TemplateComparer() if args.template: service_template_new_path = Path(args.template.name) else: print("Template file for comparison was not supplied.") return 1 if storage_old.exists("root_file"): service_template_old_path = Path(storage_old.read("root_file")) else: print("There is no root_file in storage.") return 1 if storage_old.exists("inputs"): inputs_old = storage_old.read_json("inputs") else: inputs_old = {} try: if args.inputs: inputs_new = yaml.safe_load(args.inputs) else: inputs_new = {} except yaml.YAMLError as e: print(f"Invalid inputs: {e}") return 1 workdir_old = get_workdir(storage_old) workdir_new = Path(service_template_new_path.parent) try: if args.template_only: template_diff = diff_templates(service_template_old_path, workdir_old, inputs_old, service_template_new_path, workdir_new, inputs_new, comparer, args.verbose) else: instance_comparer = InstanceComparer() with tempfile.TemporaryDirectory() as temp_path: storage_new = Storage.create(temp_path) storage_new.write_json(inputs_new, "inputs") storage_new.write(str(service_template_new_path), "root_file") template_diff = diff_instances(storage_old, workdir_old, storage_new, workdir_new, comparer, instance_comparer, args.verbose) outputs = template_diff.outputs() if args.output: save_outputs(outputs, args.format, args.output) else: print(format_outputs(outputs, args.format)) except ParseError as e: print(f"{e.loc}: {e}") return 1 except DataError as e: print(str(e)) return 1 return 0