[Kimchi-devel] [kimchi-devel][PATCH 5/5] Update model for storage volume update
Royce Lv
lvroyce at linux.vnet.ibm.com
Mon Jan 12 08:22:48 UTC 2015
On 01/07/2015 02:44 PM, Crístian Viana wrote:
> On 07-01-2015 07:01, lvroyce at linux.vnet.ibm.com wrote:
>> + def update(self, pool, name, params):
>> + vol = self._get_storagevolume(pool, name)
>> + path = vol.path()
>> +
>> + size = int(params['chunk_size'])
>> + index = int(params['index'])
>> + pos = size * index
>> + try:
>> + with f_open(path, 'a+') as fp:
>> + with flock(fp, pos, size):
>> + fp.seek(pos)
>> + fp.write(params['chunk'].fullvalue())
>> + except Exception as e:
>> + raise OperationFailed('KCHVOL0007E',
>> + {'name': name,
>> + 'pool': pool,
>> + 'err': e.message})
>> +
>> + # Refresh to make sure volume can be found in following lookup
>> + StoragePoolModel.get_storagepool(pool, self.conn).refresh(0)
>
> We should not treat the storage volumes as regular files, that depends
> on the underlying storage pool type (e.g. it won't work with logical
> pools and other types). We should use the function
> "<storageVolume>.upload" so libvirt can put data to a storage volume
> in a way that works for every storage pool type.
Good point, haven't tried this api, but will take a look at it .
More information about the Kimchi-devel
mailing list