1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import argparse
- import json
- import sys
- def parse_arguments(*unparsed_arguments):
- parser = argparse.ArgumentParser(add_help=False)
- parser.add_argument('--snapshot', action='store_true', required=True)
- parser.add_argument('--extents')
- parser.add_argument('--size')
- parser.add_argument('--permission', required=True)
- parser.add_argument('--name', dest='snapshot_name', required=True)
- parser.add_argument('logical_volume_device')
- return parser.parse_args(unparsed_arguments)
- def load_snapshots():
- try:
- return json.load(open('/tmp/fake_lvm.json'))
- except FileNotFoundError:
- return []
- def save_snapshots(snapshots):
- json.dump(snapshots, open('/tmp/fake_lvm.json', 'w'))
- def main():
- arguments = parse_arguments(*sys.argv[1:])
- snapshots = load_snapshots()
- assert arguments.extents or arguments.size
- snapshots.append(
- {'lv_name': arguments.snapshot_name, 'lv_path': f'/dev/vgroup/{arguments.snapshot_name}'},
- )
- save_snapshots(snapshots)
- if __name__ == '__main__':
- main()
|