'Extend an existing volume.
We may not actually need to resize the space because it\'s size is
always rounded up to a function of the GiB/GB and number of storage
nodes.'

def extend_volume(self, volume, new_size):

    volname = self._get_space_name(volume)
    info = self._get_space_size_redundancy(volname)
    volnewbytes = (new_size * units.Gi)
    new_size_g = math.ceil((float(volnewbytes) / float(self.SPACEGB)))
    wantedsize_g = self._adjust_size_g(new_size_g)
    havesize_g = (info['sizeBytes'] // self.SPACEGB)
    if (havesize_g >= wantedsize_g):
        return
    else:
        delta = int((wantedsize_g - havesize_g))
        params = [self.VGCCLUSTER, 'space-extend']
        params += ['-n', six.text_type(volname)]
        params += ['-s', six.text_type(delta)]
        params += self._make_server_list()
        try:
            self._execute(run_as_root=True, *params)
        except processutils.ProcessExecutionError as err:
            msg = (_('Error    in    space-extend    for    volume    %(space)s    with    %(size)d    additional    GB') % {'space': volname, 'size': delta})
            self._handle_blocked(err, msg)
