fake_lvs.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import argparse
  2. import json
  3. import sys
  4. def parse_arguments(*unparsed_arguments):
  5. parser = argparse.ArgumentParser(add_help=False)
  6. parser.add_argument('--report-format', required=True)
  7. parser.add_argument('--options', required=True)
  8. parser.add_argument('--select', required=True)
  9. return parser.parse_args(unparsed_arguments)
  10. def load_snapshots():
  11. try:
  12. return json.load(open('/tmp/fake_lvm.json'))
  13. except FileNotFoundError:
  14. return []
  15. def print_snapshots_json(arguments, snapshots):
  16. assert arguments.report_format == 'json'
  17. assert arguments.options == 'lv_name,lv_path'
  18. assert arguments.select == 'lv_attr =~ ^s'
  19. print(
  20. json.dumps(
  21. {
  22. 'report': [
  23. {
  24. 'lv': snapshots,
  25. }
  26. ]
  27. ,
  28. 'log': [
  29. ]
  30. }
  31. )
  32. )
  33. def main():
  34. arguments = parse_arguments(*sys.argv[1:])
  35. snapshots = load_snapshots()
  36. print_snapshots_json(arguments, snapshots)
  37. if __name__ == '__main__':
  38. main()