Changes the disk size and returns the config spec objects in a list.
    The controller property cannot be updated, because controller address
    identifies the disk by the unit and bus number properties.

    disks_diffs
        List of old and new disk properties, the properties are dictionary
        objects

def _update_disks(disks_old_new):
    '''
    Changes the disk size and returns the config spec objects in a list.
    The controller property cannot be updated, because controller address
    identifies the disk by the unit and bus number properties.

    disks_diffs
        List of old and new disk properties, the properties are dictionary
        objects
    '''
    disk_changes = []
    if disks_old_new:
        devs = [disk['old']['address'] for disk in disks_old_new]
        log.trace('Updating disks %s', devs)
        for item in disks_old_new:
            current_disk = item['old']
            next_disk = item['new']
            difference = recursive_diff(current_disk, next_disk)
            difference.ignore_unset_values = False
            if difference.changed():
                if next_disk['size'] < current_disk['size']:
                    raise salt.exceptions.VMwareSaltError(
                        'Disk cannot be downsized size={0} unit={1} '
                        'controller_key={2} '
                        'unit_number={3}'.format(
                            next_disk['size'],
                            next_disk['unit'],
                            current_disk['controller_key'],
                            current_disk['unit_number']))
                log.trace('Virtual machine disk will be updated size=%s '
                          'unit=%s controller_key=%s unit_number=%s',
                          next_disk['size'],
                          next_disk['unit'],
                          current_disk['controller_key'],
                          current_disk['unit_number'])
                device_config_spec = _apply_hard_disk(
                    current_disk['unit_number'],
                    current_disk['key'], 'edit',
                    size=next_disk['size'],
                    unit=next_disk['unit'],
                    controller_key=current_disk['controller_key'])
                # The backing didn't change and we must supply one for
                # reconfigure
                device_config_spec.device.backing = \
                    current_disk['object'].backing
                disk_changes.append(device_config_spec)

    return disk_changes