Merge "FalconStor: Fix creating snapshot failed"

This commit is contained in:
Jenkins 2016-11-02 19:58:39 +00:00 committed by Gerrit Code Review
commit 323c13e104
2 changed files with 23 additions and 0 deletions

View File

@ -108,6 +108,7 @@ CG_SNAPSHOT = {
'status': ''}
SNAPSHOT_ID = "abcdabcd-1234-abcd-1234-abcdeffedcbb"
ENCODED_SNAPSHOT_ID = "cinder-8W45SsgKTG2dnSUHoiQeuA"
SNAPSHOT = {'name': "snapshot-" + SNAPSHOT_ID,
'id': SNAPSHOT_ID,
'volume_id': VOLUME_ID,
@ -118,6 +119,15 @@ SNAPSHOT = {'name': "snapshot-" + SNAPSHOT_ID,
'volume': VOLUME,
'metadata': SNAPSHOT_METADATA,
'status': ''}
SNAPSHOT_LONG_NAME = {
'name': "SnapshotsActionsV1Test-Snapshot-" + SNAPSHOT_ID,
'id': SNAPSHOT_ID,
'volume_id': VOLUME_ID,
'volume_size': 2,
'display_name': 'SnapshotsActionsV1Test-Snapshot-901108447',
'volume': VOLUME,
'metadata': SNAPSHOT_METADATA,
'status': ''}
INITIATOR_IQN = 'iqn.2015-08.org.falconstor:01:fss'
TARGET_IQN = "iqn.2015-06.com.falconstor:freestor.fss-12345abc"
@ -292,6 +302,14 @@ class TestFSSISCSIDriver(FSSDriverTestCase):
mock_create_snapshot.assert_called_once_with(SNAPSHOT)
self.assertEqual(result, {'metadata': SNAPSHOT_METADATA})
@mock.patch.object(proxy.RESTProxy, 'create_snapshot',
return_value=API_RESPONSE)
def test_create_snapshot_exceed_characters_len(self, mock_create_snapshot):
SNAPSHOT_METADATA["fss-tm-comment"] = ENCODED_SNAPSHOT_ID
result = self.driver.create_snapshot(SNAPSHOT_LONG_NAME)
mock_create_snapshot.assert_called_once_with(SNAPSHOT_LONG_NAME)
self.assertEqual(result, {'metadata': SNAPSHOT_METADATA})
@mock.patch.object(proxy.RESTProxy, 'delete_snapshot',
return_value=API_RESPONSE)
def test_delete_snapshot(self, mock_delete_snapshot):

View File

@ -348,6 +348,9 @@ class RESTProxy(object):
if not snap_name:
snap_name = "snap-%s" % time.strftime('%Y%m%d%H%M%S')
if len(snap_name) > 32:
snap_name = self._encode_name(snapshot["id"])
self.FSS.create_timemark(vid, snap_name)
snap_metadata['fss_tm_comment'] = snap_name
return snap_metadata
@ -363,6 +366,8 @@ class RESTProxy(object):
if ('metadata' in snapshot and 'fss_tm_comment' in
snapshot['metadata']):
snap_name = snapshot['metadata']['fss_tm_comment']
if len(snap_name) > 32:
snap_name = self._encode_name(snapshot["id"])
tm_info = self.FSS.get_timemark(vid)
rawtimestamp = self._get_timestamp(tm_info, snap_name)