fake_lvcreate.py 1.0 KB

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