def test_cl_vols_ssc_single(self): """Test cluster ssc for single vol.""" na_server = netapp_api.NaServer('127.0.0.1') vserver = 'openstack' test_vols = set([copy.deepcopy(self.vol1)]) sis = {'vola': {'dedup': False, 'compression': False}} mirrored = {'vola': [{'dest_loc': 'openstack1:vol1', 'rel_type': 'data_protection', 'mirr_state': 'broken'}, {'dest_loc': 'openstack2:vol2', 'rel_type': 'data_protection', 'mirr_state': 'snapmirrored'}]} self.mox.StubOutWithMock(ssc_cmode, 'query_cluster_vols_for_ssc') self.mox.StubOutWithMock(ssc_cmode, 'get_sis_vol_dict') self.mox.StubOutWithMock(ssc_cmode, 'get_snapmirror_vol_dict') self.mox.StubOutWithMock(ssc_cmode, 'query_aggr_options') self.mox.StubOutWithMock(ssc_cmode, 'query_aggr_storage_disk') ssc_cmode.query_cluster_vols_for_ssc( na_server, vserver, 'vola').AndReturn(test_vols) ssc_cmode.get_sis_vol_dict( na_server, vserver, 'vola').AndReturn(sis) ssc_cmode.get_snapmirror_vol_dict( na_server, vserver, 'vola').AndReturn(mirrored) raiddp = {'ha_policy': 'cfo', 'raid_type': 'raiddp'} ssc_cmode.query_aggr_options( na_server, 'aggr1').AndReturn(raiddp) ssc_cmode.query_aggr_storage_disk(na_server, 'aggr1').AndReturn('SSD') self.mox.ReplayAll() res_vols = ssc_cmode.get_cluster_vols_with_ssc( na_server, vserver, volume='vola') self.mox.VerifyAll() self.assertEqual(1, len(res_vols))
def test_cl_vols_ssc_all(self): """Test cluster ssc for all vols.""" na_server = netapp_api.NaServer('127.0.0.1') vserver = 'openstack' test_vols = set([copy.deepcopy(self.vol1), copy.deepcopy(self.vol2), copy.deepcopy(self.vol3)]) sis = {'vola': {'dedup': False, 'compression': False}, 'volb': {'dedup': True, 'compression': False}} mirrored = {'vola': [{'dest_loc': 'openstack1:vol1', 'rel_type': 'data_protection', 'mirr_state': 'broken'}, {'dest_loc': 'openstack2:vol2', 'rel_type': 'data_protection', 'mirr_state': 'snapmirrored'}], 'volb': [{'dest_loc': 'openstack1:vol2', 'rel_type': 'data_protection', 'mirr_state': 'broken'}]} self.mox.StubOutWithMock(ssc_cmode, 'query_cluster_vols_for_ssc') self.mox.StubOutWithMock(ssc_cmode, 'get_sis_vol_dict') self.mox.StubOutWithMock(ssc_cmode, 'get_snapmirror_vol_dict') self.mox.StubOutWithMock(ssc_cmode, 'query_aggr_options') self.mox.StubOutWithMock(ssc_cmode, 'query_aggr_storage_disk') ssc_cmode.query_cluster_vols_for_ssc( na_server, vserver, None).AndReturn(test_vols) ssc_cmode.get_sis_vol_dict(na_server, vserver, None).AndReturn(sis) ssc_cmode.get_snapmirror_vol_dict(na_server, vserver, None).AndReturn( mirrored) raiddp = {'ha_policy': 'cfo', 'raid_type': 'raiddp'} ssc_cmode.query_aggr_options( na_server, mox.IgnoreArg()).AndReturn(raiddp) ssc_cmode.query_aggr_storage_disk( na_server, mox.IgnoreArg()).AndReturn('SSD') raid4 = {'ha_policy': 'cfo', 'raid_type': 'raid4'} ssc_cmode.query_aggr_options( na_server, mox.IgnoreArg()).AndReturn(raid4) ssc_cmode.query_aggr_storage_disk( na_server, mox.IgnoreArg()).AndReturn('SAS') self.mox.ReplayAll() res_vols = ssc_cmode.get_cluster_vols_with_ssc( na_server, vserver, volume=None) self.mox.VerifyAll() for vol in res_vols: if vol.id['name'] == 'volc': self.assertEqual(False, vol.sis['compression']) self.assertEqual(False, vol.sis['dedup']) else: pass
def test_query_aggr_options(self): na_server = api.NaServer('127.0.0.1') aggr_attribs = ssc_cmode.query_aggr_options(na_server, 'aggr0') if aggr_attribs: self.assertEqual(aggr_attribs['ha_policy'], 'cfo') self.assertEqual(aggr_attribs['raid_type'], 'raid_dp') else: raise exception.InvalidParameterValue("Incorrect aggr options")
def test_cl_vols_ssc_single(self): """Test cluster ssc for single vol.""" na_server = netapp_api.NaServer('127.0.0.1') vserver = 'openstack' test_vols = set([copy.deepcopy(self.vol1)]) sis = {'vola': {'dedup': False, 'compression': False}} mirrored = { 'vola': [{ 'dest_loc': 'openstack1:vol1', 'rel_type': 'data_protection', 'mirr_state': 'broken' }, { 'dest_loc': 'openstack2:vol2', 'rel_type': 'data_protection', 'mirr_state': 'snapmirrored' }] } self.mox.StubOutWithMock(ssc_cmode, 'query_cluster_vols_for_ssc') self.mox.StubOutWithMock(ssc_cmode, 'get_sis_vol_dict') self.mox.StubOutWithMock(ssc_cmode, 'get_snapmirror_vol_dict') self.mox.StubOutWithMock(ssc_cmode, 'query_aggr_options') self.mox.StubOutWithMock(ssc_cmode, 'query_aggr_storage_disk') ssc_cmode.query_cluster_vols_for_ssc(na_server, vserver, 'vola').AndReturn(test_vols) ssc_cmode.get_sis_vol_dict(na_server, vserver, 'vola').AndReturn(sis) ssc_cmode.get_snapmirror_vol_dict(na_server, vserver, 'vola').AndReturn(mirrored) raiddp = {'ha_policy': 'cfo', 'raid_type': 'raiddp'} ssc_cmode.query_aggr_options(na_server, 'aggr1').AndReturn(raiddp) ssc_cmode.query_aggr_storage_disk(na_server, 'aggr1').AndReturn('SSD') self.mox.ReplayAll() res_vols = ssc_cmode.get_cluster_vols_with_ssc(na_server, vserver, volume='vola') self.mox.VerifyAll() self.assertEqual(1, len(res_vols))
def test_query_aggr_options(self): na_server = netapp_api.NaServer('127.0.0.1') body = etree.XML("""<results status="passed"> <options> <aggr-option-info> <name>ha_policy</name> <value>cfo</value> </aggr-option-info> <aggr-option-info> <name>raidtype</name> <value>raid_dp</value> </aggr-option-info> </options> </results>""") self.mock_object(ssc_cmode.netapp_api, 'invoke_api', mock.Mock( return_value=[netapp_api.NaElement(body)])) aggr_attribs = ssc_cmode.query_aggr_options(na_server, 'aggr0') if aggr_attribs: self.assertEqual('cfo', aggr_attribs['ha_policy']) self.assertEqual('raid_dp', aggr_attribs['raid_type']) else: raise exception.InvalidParameterValue("Incorrect aggr options")
def test_query_aggr_options(self): na_server = netapp_api.NaServer('127.0.0.1') body = etree.XML("""<results status="passed"> <options> <aggr-option-info> <name>ha_policy</name> <value>cfo</value> </aggr-option-info> <aggr-option-info> <name>raidtype</name> <value>raid_dp</value> </aggr-option-info> </options> </results>""") self.mock_object(ssc_cmode.netapp_api, 'invoke_api', mock.Mock(return_value=[netapp_api.NaElement(body)])) aggr_attribs = ssc_cmode.query_aggr_options(na_server, 'aggr0') if aggr_attribs: self.assertEqual('cfo', aggr_attribs['ha_policy']) self.assertEqual('raid_dp', aggr_attribs['raid_type']) else: raise exception.InvalidParameterValue("Incorrect aggr options")
def test_cl_vols_ssc_all(self): """Test cluster ssc for all vols.""" na_server = netapp_api.NaServer('127.0.0.1') vserver = 'openstack' test_vols = set([ copy.deepcopy(self.vol1), copy.deepcopy(self.vol2), copy.deepcopy(self.vol3) ]) sis = { 'vola': { 'dedup': False, 'compression': False }, 'volb': { 'dedup': True, 'compression': False } } mirrored = { 'vola': [{ 'dest_loc': 'openstack1:vol1', 'rel_type': 'data_protection', 'mirr_state': 'broken' }, { 'dest_loc': 'openstack2:vol2', 'rel_type': 'data_protection', 'mirr_state': 'snapmirrored' }], 'volb': [{ 'dest_loc': 'openstack1:vol2', 'rel_type': 'data_protection', 'mirr_state': 'broken' }] } self.mox.StubOutWithMock(ssc_cmode, 'query_cluster_vols_for_ssc') self.mox.StubOutWithMock(ssc_cmode, 'get_sis_vol_dict') self.mox.StubOutWithMock(ssc_cmode, 'get_snapmirror_vol_dict') self.mox.StubOutWithMock(ssc_cmode, 'query_aggr_options') self.mox.StubOutWithMock(ssc_cmode, 'query_aggr_storage_disk') ssc_cmode.query_cluster_vols_for_ssc(na_server, vserver, None).AndReturn(test_vols) ssc_cmode.get_sis_vol_dict(na_server, vserver, None).AndReturn(sis) ssc_cmode.get_snapmirror_vol_dict(na_server, vserver, None).AndReturn(mirrored) raiddp = {'ha_policy': 'cfo', 'raid_type': 'raiddp'} ssc_cmode.query_aggr_options(na_server, mox.IgnoreArg()).AndReturn(raiddp) ssc_cmode.query_aggr_storage_disk(na_server, mox.IgnoreArg()).AndReturn('SSD') raid4 = {'ha_policy': 'cfo', 'raid_type': 'raid4'} ssc_cmode.query_aggr_options(na_server, mox.IgnoreArg()).AndReturn(raid4) ssc_cmode.query_aggr_storage_disk(na_server, mox.IgnoreArg()).AndReturn('SAS') self.mox.ReplayAll() res_vols = ssc_cmode.get_cluster_vols_with_ssc(na_server, vserver, volume=None) self.mox.VerifyAll() for vol in res_vols: if vol.id['name'] == 'volc': self.assertEqual(False, vol.sis['compression']) self.assertEqual(False, vol.sis['dedup']) else: pass