fake_lvcreate.py 1018 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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('--snapshot', action='store_true', required=True)
  7. parser.add_argument('--extents')
  8. parser.add_argument('--size')
  9. parser.add_argument('--name', dest='snapshot_name', required=True)
  10. parser.add_argument('logical_volume_device')
  11. return parser.parse_args(unparsed_arguments)
  12. def load_snapshots():
  13. try:
  14. return json.load(open('/tmp/fake_lvm.json'))
  15. except FileNotFoundError:
  16. return []
  17. def save_snapshots(snapshots):
  18. json.dump(snapshots, open('/tmp/fake_lvm.json', 'w'))
  19. def main():
  20. arguments = parse_arguments(*sys.argv[1:])
  21. snapshots = load_snapshots()
  22. assert arguments.extents or arguments.size
  23. snapshots.append(
  24. {'lv_name': arguments.snapshot_name, 'lv_path': f'/dev/vgroup/{arguments.snapshot_name}'},
  25. )
  26. save_snapshots(snapshots)
  27. if __name__ == '__main__':
  28. main()