Merge "ganesha: read and store non-ASCII data in exports"
This commit is contained in:
commit
23385fd49a
manila
@ -518,14 +518,14 @@ class GaneshaManager(object):
|
|||||||
def _get_rados_object(self, obj_name):
|
def _get_rados_object(self, obj_name):
|
||||||
"""Get data stored in Ceph RADOS object as a text string."""
|
"""Get data stored in Ceph RADOS object as a text string."""
|
||||||
return self.ceph_vol_client.get_object(
|
return self.ceph_vol_client.get_object(
|
||||||
self.ganesha_rados_store_pool_name, obj_name).decode()
|
self.ganesha_rados_store_pool_name, obj_name).decode('utf-8')
|
||||||
|
|
||||||
def _put_rados_object(self, obj_name, data):
|
def _put_rados_object(self, obj_name, data):
|
||||||
"""Put data as a byte string in a Ceph RADOS object."""
|
"""Put data as a byte string in a Ceph RADOS object."""
|
||||||
return self.ceph_vol_client.put_object(
|
return self.ceph_vol_client.put_object(
|
||||||
self.ganesha_rados_store_pool_name,
|
self.ganesha_rados_store_pool_name,
|
||||||
obj_name,
|
obj_name,
|
||||||
data.encode())
|
data.encode('utf-8'))
|
||||||
|
|
||||||
def _delete_rados_object(self, obj_name):
|
def _delete_rados_object(self, obj_name):
|
||||||
return self.ceph_vol_client.delete_object(
|
return self.ceph_vol_client.delete_object(
|
||||||
|
@ -1021,24 +1021,26 @@ class GaneshaManagerTestCase(test.TestCase):
|
|||||||
self._manager._remove_rados_object_url_from_index.called)
|
self._manager._remove_rados_object_url_from_index.called)
|
||||||
|
|
||||||
def test_get_rados_object(self):
|
def test_get_rados_object(self):
|
||||||
|
fakebin = six.unichr(246).encode('utf-8')
|
||||||
self.mock_object(self._ceph_vol_client, 'get_object',
|
self.mock_object(self._ceph_vol_client, 'get_object',
|
||||||
mock.Mock(return_value=b'fakedata'))
|
mock.Mock(return_value=fakebin))
|
||||||
|
|
||||||
ret = self._manager_with_rados_store._get_rados_object('fakeobj')
|
ret = self._manager_with_rados_store._get_rados_object('fakeobj')
|
||||||
|
|
||||||
self._ceph_vol_client.get_object.assert_called_once_with(
|
self._ceph_vol_client.get_object.assert_called_once_with(
|
||||||
'fakepool', 'fakeobj')
|
'fakepool', 'fakeobj')
|
||||||
self.assertEqual(b'fakedata'.decode(), ret)
|
self.assertEqual(fakebin.decode('utf-8'), ret)
|
||||||
|
|
||||||
def test_put_rados_object(self):
|
def test_put_rados_object(self):
|
||||||
|
faketext = six.unichr(246)
|
||||||
self.mock_object(self._ceph_vol_client, 'put_object',
|
self.mock_object(self._ceph_vol_client, 'put_object',
|
||||||
mock.Mock(return_value=None))
|
mock.Mock(return_value=None))
|
||||||
|
|
||||||
ret = self._manager_with_rados_store._put_rados_object(
|
ret = self._manager_with_rados_store._put_rados_object(
|
||||||
'fakeobj', 'fakedata')
|
'fakeobj', faketext)
|
||||||
|
|
||||||
self._ceph_vol_client.put_object.assert_called_once_with(
|
self._ceph_vol_client.put_object.assert_called_once_with(
|
||||||
'fakepool', 'fakeobj', 'fakedata'.encode())
|
'fakepool', 'fakeobj', faketext.encode('utf-8'))
|
||||||
self.assertIsNone(ret)
|
self.assertIsNone(ret)
|
||||||
|
|
||||||
def test_delete_rados_object(self):
|
def test_delete_rados_object(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user