import urllib3
from purestorage import FlashArray
import argparse
urllib3.disable_warnings()
array = FlashArray("10.21.214.13", "pureuser", "pureuser")
array_info = array.get()
print("FlashArray {} (version {}) REST session established!".format(array_info['array_name'],
array_info['version']))
def main():
parser = argparse.ArgumentParser(add_help=True)
parser.add_argument('--source', help="Source volume", default=None)
parser.add_argument('--backup', help="Backup NFS volume", default=None)
parser.add_argument('--target', help="Target volume", default=None)
parser.add_argument('--overwrite', help="Overwrite on copy", action='store_true',
default=False)
parser.add_argument('--copy', help="Copy volume", action='store_true', default=False)
parser.add_argument('--snapshot', help="Take snapshot", action='store_true', default=False)
parser.add_argument('--restore', help="Restore snapshot", action='store_true', default=False)
parser.add_argument('--list', help="List volumes", action='store_true', default=False)
try:
options = parser.parse_args()
except Exception as e:
parser.print_help()
sys.exit(1)
if options.list:
print("\nListing volumes:")
for v in array.list_volumes():
if v['name'].startswith('p4'):
print(v['name'])
print("\nsnapshots:")
snapshots = [v for v in array.list_volumes(snap=True)]
for s in snapshots:
print(s)
print("\nsnapshots transfer {}:".format(options.backup))
snapshots = [v for v in array.list_volumes(snap=True, transfer=True)]
for s in snapshots:
print(s)
if options.backup:
print("\nsnapshots on {}:".format(options.backup))
snapshots = [v for v in array.list_volumes(snap=True, on=options.backup)]
for s in snapshots:
print(s)
if options.copy:
print("Copying {} to {}, overwrite {}".format(
options.source, options.target, options.overwrite))
print(array.copy_volume(options.source, options.target, overwrite=options.overwrite))
if options.restore:
print("Restoring {} from {}, snap=True".format(
options.source, options.backup))
print("cmd: array.create_snapshot({}, snap=True, on={})".format(
options.source, options.backup))
print(array.create_snapshot(options.source, snap=True, on=options.backup))
if options.snapshot:
print(array.create_pgroup_snapshot(options.source, replicate_now=True))
if __name__ == '__main__':
main()