def test_vols_for_boolean_specs(self): """Test ssc for boolean specs.""" test_vols = set( [self.vol1, self.vol2, self.vol3, self.vol4, self.vol5]) ssc_map = { 'mirrored': set([self.vol1]), 'dedup': set([self.vol1, self.vol2, self.vol3]), 'compression': set([self.vol3, self.vol4]), 'thin': set([self.vol5, self.vol2]), 'all': test_vols } test_map = { 'mirrored': ('netapp_mirrored', 'netapp_unmirrored'), 'dedup': ('netapp_dedup', 'netapp_nodedup'), 'compression': ('netapp_compression', 'netapp_nocompression'), 'thin': ('netapp_thin_provisioned', 'netapp_thick_provisioned') } for type in test_map.keys(): # type extra_specs = {test_map[type][0]: 'true'} res = ssc_cmode.get_volumes_for_specs(ssc_map, extra_specs) self.assertEqual(len(ssc_map[type]), len(res)) # opposite type extra_specs = {test_map[type][1]: 'true'} res = ssc_cmode.get_volumes_for_specs(ssc_map, extra_specs) self.assertEqual(len(ssc_map['all'] - ssc_map[type]), len(res)) # both types extra_specs =\ {test_map[type][0]: 'true', test_map[type][1]: 'true'} res = ssc_cmode.get_volumes_for_specs(ssc_map, extra_specs) self.assertEqual(len(ssc_map['all']), len(res))
def test_vols_for_boolean_specs(self): """Test ssc for boolean specs.""" test_vols = set( [self.vol1, self.vol2, self.vol3, self.vol4, self.vol5]) ssc_map = {'mirrored': set([self.vol1]), 'dedup': set([self.vol1, self.vol2, self.vol3]), 'compression': set([self.vol3, self.vol4]), 'thin': set([self.vol5, self.vol2]), 'all': test_vols} test_map = {'mirrored': ('netapp_mirrored', 'netapp_unmirrored'), 'dedup': ('netapp_dedup', 'netapp_nodedup'), 'compression': ('netapp_compression', 'netapp_nocompression'), 'thin': ('netapp_thin_provisioned', 'netapp_thick_provisioned')} for type in test_map.keys(): # type extra_specs = {test_map[type][0]: 'true'} res = ssc_cmode.get_volumes_for_specs(ssc_map, extra_specs) self.assertEqual(len(ssc_map[type]), len(res)) # opposite type extra_specs = {test_map[type][1]: 'true'} res = ssc_cmode.get_volumes_for_specs(ssc_map, extra_specs) self.assertEqual(len(ssc_map['all'] - ssc_map[type]), len(res)) # both types extra_specs =\ {test_map[type][0]: 'true', test_map[type][1]: 'true'} res = ssc_cmode.get_volumes_for_specs(ssc_map, extra_specs) self.assertEqual(len(ssc_map['all']), len(res))
def test_get_volumes_for_specs_none_specs(self): none_specs = None expected = self.ssc_map['all'] result = ssc_cmode.get_volumes_for_specs(self.ssc_map, none_specs) self.assertEqual(expected, result)
def test_vols_for_optional_specs(self): """Test ssc for optional specs.""" extra_specs =\ {'netapp_dedup': 'true', 'netapp:raid_type': 'raid4', 'netapp:disk_type': 'SSD'} res = ssc_cmode.get_volumes_for_specs(self.ssc_map, extra_specs) self.assertEqual(1, len(res))
def scan_ssc_data(): volumes = ssc_cmode.get_volumes_for_specs(self.ssc_vols, extra_specs) for vol in volumes: if lun.get_metadata_property('Volume') == vol.id['name']: return True return False
def test_get_volumes_for_specs_not_a_dict(self): not_a_dict = False expected = self.ssc_map['all'] result = ssc_cmode.get_volumes_for_specs(self.ssc_map, not_a_dict) self.assertEqual(expected, result)
def test_get_volumes_for_specs_empty_dict(self): empty_dict = {} expected = self.ssc_map['all'] result = ssc_cmode.get_volumes_for_specs(self.ssc_map, empty_dict) self.assertEqual(expected, result)
def test_get_volumes_for_specs_none_specs(self): none_specs = None expected = self.ssc_map['all'] result = ssc_cmode.get_volumes_for_specs(self.ssc_map, none_specs) self.assertEqual(expected, result)
def test_vols_for_optional_specs(self): """Test ssc for optional specs.""" extra_specs =\ {'netapp_dedup': 'true', 'netapp:raid_type': 'raid4', 'netapp:disk_type': 'SSD'} res = ssc_cmode.get_volumes_for_specs(self.ssc_map, extra_specs) self.assertEqual(1, len(res))
def scan_ssc_data(): volumes = ssc_cmode.get_volumes_for_specs(self.ssc_vols, extra_specs) for vol in volumes: if lun.get_metadata_property('Volume') == vol.id['name']: return True return False
def _is_share_vol_type_match(self, volume, share): """Checks if share matches volume type.""" netapp_vol = self._get_vol_for_share(share) LOG.debug("Found volume %(vol)s for share %(share)s.", {"vol": netapp_vol, "share": share}) extra_specs = na_utils.get_volume_extra_specs(volume) vols = ssc_cmode.get_volumes_for_specs(self.ssc_vols, extra_specs) return netapp_vol in vols
def test_get_volumes_for_specs_not_a_dict(self): not_a_dict = False expected = self.ssc_map['all'] result = ssc_cmode.get_volumes_for_specs( self.ssc_map, not_a_dict) self.assertEqual(expected, result)
def test_get_volumes_for_specs_empty_dict(self): empty_dict = {} expected = self.ssc_map['all'] result = ssc_cmode.get_volumes_for_specs( self.ssc_map, empty_dict) self.assertEqual(expected, result)
def _is_share_vol_type_match(self, volume, share): """Checks if share matches volume type.""" netapp_vol = self._get_vol_for_share(share) LOG.debug("Found volume %(vol)s for share %(share)s.", {'vol': netapp_vol, 'share': share}) extra_specs = na_utils.get_volume_extra_specs(volume) vols = ssc_cmode.get_volumes_for_specs(self.ssc_vols, extra_specs) return netapp_vol in vols
def test_vols_for_optional_specs(self): """Test ssc for optional specs.""" test_vols =\ set([self.vol1, self.vol2, self.vol3, self.vol4, self.vol5]) ssc_map = {'mirrored': set([self.vol1]), 'dedup': set([self.vol1, self.vol2, self.vol3]), 'compression': set([self.vol3, self.vol4]), 'thin': set([self.vol5, self.vol2]), 'all': test_vols} extra_specs =\ {'netapp_dedup': 'true', 'netapp:raid_type': 'raid4', 'netapp:disk_type': 'SSD'} res = ssc_cmode.get_volumes_for_specs(ssc_map, extra_specs) self.assertEqual(len(res), 1)