def do_replication_create(cs, args): """Create a replication.""" replication = cs.replications.create(args.master_volume, args.slave_volume, name=args.name, description=args.description) utils.print_dict(replication.to_dict())
def do_attach(cs, args): """Add sg-volume attachment metadata.""" mode = args.mode mode = 'rw' if mode is None else mode if mode not in ['rw', 'ro']: print("Attach mode must be rw or ro") return volume = shell_utils.find_volume(cs, args.volume) attach = cs.volumes.attach(volume.id, args.instance_uuid, mode) utils.print_dict(attach.to_dict())
def do_backup_import(cs, args): """Import a backup from record""" driver_data = _extract_driver_data(args) backup_record = { 'availability_zone': args.availability_zone, 'backup_type': args.backup_type, 'backup_size': args.backup_size, 'driver_data': driver_data } backup = cs.backups.import_record(backup_record) utils.print_dict(backup.to_dict())
def do_replication_update(cs, args): kwargs = {} if args.name is not None: kwargs['name'] = args.name if args.description is not None: kwargs['description'] = args.description if not kwargs: msg = 'Must supply either name or description.' raise exceptions.ClientException(code=1, message=msg) replication = shell_utils.find_replication(cs, args.replication) replication = cs.replications.update(replication.id, kwargs) utils.print_dict(replication.to_dict())
def do_create_volume(cs, args): """Create a volume from snapshot, or copy snapshot to a volume.""" if [args.checkpoint_id, args.snapshot_id] == [None, None]: print("create volume must specify a checkpoint or snapshot") return volume = cs.volumes.create(checkpoint_id=args.checkpoint_id, snapshot_id=args.snapshot_id, name=args.name, description=args.description, volume_type=args.volume_type, availability_zone=args.availability_zone, size=args.size, volume_id=args.volume_id) utils.print_dict(volume.to_dict())
def do_backup_update(cs, args): kwargs = {} if args.name is not None: kwargs['name'] = args.name if args.description is not None: kwargs['description'] = args.description if not kwargs: msg = 'Must supply either name or description.' raise exceptions.ClientException(code=1, message=msg) backup = shell_utils.find_backup(cs, args.backup) backup = cs.backups.update(backup.id, kwargs) utils.print_dict(backup.to_dict())
def do_snapshot_update(cs, args): kwargs = {} if args.name is not None: kwargs['name'] = args.name if args.description is not None: kwargs['description'] = args.description if not kwargs: msg = 'Must supply either name or description.' raise exceptions.ClientException(code=1, message=msg) snapshot = shell_utils.find_snapshot(cs, args.snapshot) snapshot = cs.snapshots.update(snapshot.id, kwargs) utils.print_dict(snapshot.to_dict())
def do_update(cs, args): kwargs = {} if args.name is not None: kwargs['name'] = args.name if args.description is not None: kwargs['description'] = args.description if not kwargs: msg = 'Must supply either name or description.' raise exceptions.ClientException(code=1, message=msg) volume = shell_utils.find_volume(cs, args.volume) volume = cs.volumes.update(volume.id, kwargs) utils.print_dict(volume.to_dict())
def do_backup_create(cs, args): """Create backup.""" type = args.type type = 'full' if type is None else type if type not in ['full', 'incremental']: print("Backup type must be full or incremental") return destination = args.destination destination = 'local' if destination is None else destination if destination not in ['local', 'remote']: print("Backup destination must be local or remote") return volume = shell_utils.find_volume(cs, args.volume) backup = cs.backups.create(volume_id=volume.id, name=args.name, description=args.description, type=type, destination=destination) utils.print_dict(backup.to_dict())
def do_replication_failover(cs, args): """Failover a replication.""" replication = shell_utils.find_replication(cs, args.replication) replication = cs.replications.failover(replication.id, args.force) utils.print_dict(replication.to_dict())
def do_replication_disable(cs, args): """Disable a replication.""" replication = shell_utils.find_replication(cs, args.replication) replication = cs.replications.disable(replication.id) utils.print_dict(replication.to_dict())
def do_replication_show(cs, args): """Get a replication.""" replication = shell_utils.find_replication(cs, args.replication) utils.print_dict(replication.to_dict())
def do_checkpoint_create(cs, args): """Create checkpoint.""" replication = shell_utils.find_replication(cs, args.replication) checkpoint = cs.checkpoints.create(replication.id, args.name, args.description) utils.print_dict(checkpoint.to_dict())
def do_show(cs, args): """Get a volume.""" volume = shell_utils.find_volume(cs, args.volume) utils.print_dict(volume.to_dict())
def do_replication_reverse(cs, args): """Reverse a replication.""" replication = shell_utils.find_replication(cs, args.replication) replication = cs.replications.reverse(replication.id) utils.print_dict(replication.to_dict())
def do_backup_show(cs, args): """Get backup.""" backup = shell_utils.find_backup(cs, args.backup) utils.print_dict(backup.to_dict())
def do_disable_sg(cs, args): """Disable volume's SG.""" volume = shell_utils.find_volume(cs, args.volume) volume = cs.volumes.disable(volume.id) utils.print_dict(volume.to_dict())
def do_enable_sg(cs, args): """Enable volume's SG.""" metadata = _extract_metadata(args) volume = cs.volumes.enable(args.volume_id, args.name, args.description, metadata) utils.print_dict(volume.to_dict())
def do_backup_restore(cs, args): """Restore backup.""" backup = shell_utils.find_backup(cs, args.backup) restore = cs.backups.restore(backup.id, args.volume_id) utils.print_dict(restore.to_dict())
def do_replicate_force_failover(cs, args): """Force failover volume's replicate.""" volume = shell_utils.find_volume(cs, args.volume) volume = cs.replicates.failover(volume.id, force=True) utils.print_dict(volume.to_dict())
def do_backup_export(cs, args): """Export backup record.""" backup = shell_utils.find_backup(cs, args.backup) backup_record = cs.backups.export_record(backup.id) utils.print_dict(backup_record.to_dict())
def do_snapshot_create(cs, args): """Create snapshot.""" volume = shell_utils.find_volume(cs, args.volume) snapshot = cs.snapshots.create(volume.id, args.name, args.description) utils.print_dict(snapshot.to_dict())
def do_snapshot_show(cs, args): """Get snapshot.""" snapshot = shell_utils.find_snapshot(cs, args.snapshot) utils.print_dict(snapshot.to_dict())
def do_snapshot_rollback(cs, args): """Rollback snapshot.""" snapshot = shell_utils.find_snapshot(cs, args.snapshot) rollback = cs.snapshots.rollback(snapshot.id) utils.print_dict(rollback.to_dict())
def do_checkpoint_show(cs, args): """Get checkpoint.""" checkpoint = shell_utils.find_checkpoint(cs, args.checkpoint) utils.print_dict(checkpoint.to_dict())
def do_checkpoint_rollback(cs, args): """Rollback checkpoint.""" checkpoint = shell_utils.find_checkpoint(cs, args.checkpoint) rollback = cs.checkpoints.rollback(checkpoint.id) utils.print_dict(rollback.to_dict())