fake_lvs.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. 'log': [],
  28. }
  29. )
  30. )
  31. def main():
  32. arguments = parse_arguments(*sys.argv[1:])
  33. snapshots = load_snapshots()
  34. print_snapshots_json(arguments, snapshots)
  35. if __name__ == '__main__':
  36. main()