func (c *Cluster) StoragePoolVolumeUpdate(volumeName string, volumeType int, poolID int64, volumeDescription string, volumeConfig map[string]string) error {
	volumeID, _, err := c.StoragePoolNodeVolumeGetType(volumeName, volumeType, poolID)
	if err != nil {
		return err
	}

	err = c.Transaction(func(tx *ClusterTx) error {
		err = storagePoolVolumeReplicateIfCeph(tx.tx, volumeID, "default", volumeName, volumeType, poolID, func(volumeID int64) error {
			err = StorageVolumeConfigClear(tx.tx, volumeID)
			if err != nil {
				return err
			}

			err = StorageVolumeConfigAdd(tx.tx, volumeID, volumeConfig)
			if err != nil {
				return err
			}

			return StorageVolumeDescriptionUpdate(tx.tx, volumeID, volumeDescription)
		})
		if err != nil {
			return err
		}
		return nil
	})

	return err
}
func (c *Cluster) StoragePoolVolumeUpdate(volumeName string, volumeType int, poolID int64, volumeDescription string, volumeConfig map[string]string) error {
	volumeID, _, err := c.StoragePoolNodeVolumeGetType(volumeName, volumeType, poolID)
	if err != nil {
		return err
	}

	err = c.Transaction(func(tx *ClusterTx) error {
		err = storagePoolVolumeReplicateIfCeph(tx.tx, volumeID, "default", volumeName, volumeType, poolID, func(volumeID int64) error {
			err = StorageVolumeConfigClear(tx.tx, volumeID)
			if err != nil {
				return err
			}

			err = StorageVolumeConfigAdd(tx.tx, volumeID, volumeConfig)
			if err != nil {
				return err
			}

			return StorageVolumeDescriptionUpdate(tx.tx, volumeID, volumeDescription)
		})
		if err != nil {
			return err
		}
		return nil
	})

	return err
}
// StoragePoolVolumeUpdate updates the storage volume attached to a given storage
// pool.