@@ -38,6 +38,8 @@ def setUp(self):
3838 self .ssc_library = capabilities .CapabilitiesLibrary (
3939 'iSCSI' , fake .SSC_VSERVER , self .zapi_client , self .configuration )
4040 self .ssc_library .ssc = fake .SSC
41+ self .ssc_library_nvme = capabilities .CapabilitiesLibrary (
42+ 'NVMe' , fake .SSC_VSERVER , self .zapi_client , self .configuration )
4143
4244 def get_config_cmode (self ):
4345 config = na_fakes .create_configuration_cmode ()
@@ -88,7 +90,8 @@ def test_is_qos_min_supported_not_found(self):
8890
8991 self .assertFalse (result )
9092
91- def test_update_ssc (self ):
93+ @ddt .data ('nfs' , 'iscsi' )
94+ def test_update_ssc (self , protocol ):
9295
9396 mock_get_ssc_flexvol_info = self .mock_object (
9497 self .ssc_library , '_get_ssc_flexvol_info' ,
@@ -114,13 +117,29 @@ def test_update_ssc(self):
114117 self .ssc_library , '_get_ssc_qos_min_info' ,
115118 side_effect = [fake .SSC_QOS_MIN_INFO ['volume1' ],
116119 fake .SSC_QOS_MIN_INFO ['volume2' ]])
120+ if protocol != 'nfs' :
121+ mock_get_ssc_volume_count_info = self .mock_object (
122+ self .ssc_library , '_get_ssc_volume_count_info' ,
123+ side_effect = [fake .SSC_QOS_MIN_INFO ['volume1' ],
124+ fake .SSC_QOS_MIN_INFO ['volume2' ]])
125+ else :
126+ mock_get_ssc_volume_count_info = self .mock_object (
127+ self .ssc_library , '_get_ssc_volume_count_info' ,
128+ side_effect = None )
117129
118130 ordered_ssc = collections .OrderedDict ()
119131 ordered_ssc ['volume1' ] = fake .SSC_VOLUME_MAP ['volume1' ]
120132 ordered_ssc ['volume2' ] = fake .SSC_VOLUME_MAP ['volume2' ]
121133
122134 result = self .ssc_library .update_ssc (ordered_ssc )
123135
136+ if protocol != 'nfs' :
137+ mock_get_ssc_volume_count_info .assert_has_calls ([
138+ mock .call ('volume1' ), mock .call ('volume2' )])
139+ else :
140+ self .ssc_library ._get_ssc_volume_count_info (fake .SSC_VOLUMES [0 ]).\
141+ assert_not_called ()
142+
124143 self .assertIsNone (result )
125144 self .assertEqual (fake .SSC , self .ssc_library .ssc )
126145 mock_get_ssc_flexvol_info .assert_has_calls ([
@@ -543,6 +562,35 @@ def test_get_ssc_qos_min_info_flexgroup(self, qos_min_support):
543562 self .zapi_client .is_qos_min_supported .assert_called_once_with (False ,
544563 'node' )
545564
565+ @ddt .data ('iscsi' , 'fc' , 'nvme' )
566+ def test_get_ssc_volume_count_info (self , protocol ):
567+
568+ self .ssc_library = self .ssc_library_nvme if protocol == 'nvme' else \
569+ self .ssc_library
570+
571+ self .mock_object (self .ssc_library .zapi_client ,
572+ 'get_namespace_sizes_by_volume' ,
573+ return_value = fake .SSC_NAMESPACES_BY_SIZES )
574+
575+ self .mock_object (self .ssc_library .zapi_client ,
576+ 'get_lun_sizes_by_volume' ,
577+ return_value = fake .SSC_LUNS_BY_SIZES )
578+
579+ result = self .ssc_library ._get_ssc_volume_count_info (
580+ fake_client .VOLUME_NAMES [0 ])
581+
582+ expected = {'total_volumes' : 2 }
583+ self .assertEqual (expected , result )
584+
585+ if protocol != 'nvme' :
586+ self .zapi_client .get_lun_sizes_by_volume .\
587+ assert_called_once_with (fake_client .VOLUME_NAMES [0 ])
588+ self .zapi_client .get_namespace_sizes_by_volume .assert_not_called ()
589+ else :
590+ self .zapi_client .get_namespace_sizes_by_volume .\
591+ assert_called_once_with (fake_client .VOLUME_NAMES [0 ])
592+ self .zapi_client .get_lun_sizes_by_volume .assert_not_called ()
593+
546594 @ddt .data (True , False )
547595 def test_is_flexgroup (self , is_fg ):
548596 pool_name = 'fake_pool'
0 commit comments