def do_group_delete(cs, args): """Removes one or more groups.""" failure_count = 0 for group in args.group: try: shell_utils.find_group(cs, group).delete(args.delete_volumes) except Exception as e: failure_count += 1 print("Delete for group %s failed: %s" % (group, e)) if failure_count == len(args.group): raise exceptions.CommandError("Unable to delete any of the specified " "groups.")
def do_group_create_from_src(cs, args): """Creates a group from a group snapshot or a source group.""" if not args.group_snapshot and not args.source_group: msg = ('Cannot create group because neither ' 'group snapshot nor source group is provided.') raise exceptions.ClientException(code=1, message=msg) if args.group_snapshot and args.source_group: msg = ('Cannot create group because both ' 'group snapshot and source group are provided.') raise exceptions.ClientException(code=1, message=msg) group_snapshot = None if args.group_snapshot: group_snapshot = shell_utils.find_group_snapshot(cs, args.group_snapshot) source_group = None if args.source_group: source_group = shell_utils.find_group(cs, args.source_group) info = cs.groups.create_from_src( group_snapshot.id if group_snapshot else None, source_group.id if source_group else None, args.name, args.description) info.pop('links', None) utils.print_dict(info)
def do_group_snapshot_create(cs, args): """Creates a group snapshot.""" group = shell_utils.find_group(cs, args.group) group_snapshot = cs.group_snapshots.create(group.id, args.name, args.description) info = dict() group_snapshot = cs.group_snapshots.get(group_snapshot.id) info.update(group_snapshot._info) info.pop('links', None) utils.print_dict(info)
def do_group_update(cs, args): """Updates a group.""" kwargs = {} if args.name is not None: kwargs['name'] = args.name if args.description is not None: kwargs['description'] = args.description if args.add_volumes is not None: kwargs['add_volumes'] = args.add_volumes if args.remove_volumes is not None: kwargs['remove_volumes'] = args.remove_volumes if not kwargs: msg = ('At least one of the following args must be supplied: ' 'name, description, add-volumes, remove-volumes.') raise exceptions.ClientException(code=1, message=msg) shell_utils.find_group(cs, args.group).update(**kwargs)
def do_group_snapshot_create(cs, args): """Creates a group snapshot.""" group = shell_utils.find_group(cs, args.group) group_snapshot = cs.group_snapshots.create( group.id, args.name, args.description) info = dict() group_snapshot = cs.group_snapshots.get(group_snapshot.id) info.update(group_snapshot._info) info.pop('links', None) utils.print_dict(info)
def do_group_create_from_src(cs, args): """Creates a group from a group snapshot or a source group.""" if not args.group_snapshot and not args.source_group: msg = ('Cannot create group because neither ' 'group snapshot nor source group is provided.') raise exceptions.ClientException(code=1, message=msg) if args.group_snapshot and args.source_group: msg = ('Cannot create group because both ' 'group snapshot and source group are provided.') raise exceptions.ClientException(code=1, message=msg) group_snapshot = None if args.group_snapshot: group_snapshot = shell_utils.find_group_snapshot( cs, args.group_snapshot) source_group = None if args.source_group: source_group = shell_utils.find_group(cs, args.source_group) info = cs.groups.create_from_src( group_snapshot.id if group_snapshot else None, source_group.id if source_group else None, args.name, args.description) info.pop('links', None) utils.print_dict(info)