def test_remove_export_fail_1(self): self.nms_mock.scsidisk.delete_lu('cinder/volume1') self.nms_mock.stmf.destroy_targetgroup('cinder/volume1') self.nms_mock.iscsitarget.delete_target('iqn:volume1').AndRaise( nexenta.NexentaException()) self.mox.ReplayAll() self.drv.remove_export({}, self.TEST_VOLUME_REF)
def test_delete_volume(self): self.drv.share2nms = {self.TEST_EXPORT1: self.nms_mock} self._create_volume_db_entry() self.drv._ensure_share_mounted = lambda *_, **__: 0 self.drv._execute = lambda *_, **__: 0 self.nms_mock.server.get_prop('volroot').AndReturn('/volumes') self.nms_mock.folder.get_child_props('stack/share/volume-1', 'origin').AndReturn(None) self.nms_mock.folder.destroy('stack/share/volume-1', '-r') self.mox.ReplayAll() self.drv.delete_volume({ 'id': '1', 'name': 'volume-1', 'provider_location': self.TEST_EXPORT1 }) self.mox.ResetAll() # Check that exception not raised if folder does not exist on # NexentaStor appliance. self.nms_mock.server.get_prop('volroot').AndReturn('/volumes') self.nms_mock.folder.get_child_props('stack/share/volume-1', 'origin').AndReturn(None) mock = self.nms_mock.folder.destroy('stack/share/volume-1', '-r') mock.AndRaise(nexenta.NexentaException("Folder does not exist")) self.mox.ReplayAll() self.drv.delete_volume({ 'id': '1', 'name': 'volume-1', 'provider_location': self.TEST_EXPORT1 }) self.mox.ResetAll()
def _stub_export_method(self, module, method, args, error, raise_exception, fail=False): m = getattr(self.nms_mock, module) m = getattr(m, method) mock = m(*args) if raise_exception and fail: mock.AndRaise(nexenta.NexentaException(error)) else: mock.AndReturn(error)
def test_delete_snapshot(self): self.nms_mock.snapshot.destroy('cinder/volume1@snapshot1', '') self.mox.ReplayAll() self.drv.delete_snapshot(self.TEST_SNAPSHOT_REF) self.mox.ResetAll() # Check that exception not raised if snapshot does not exist mock = self.nms_mock.snapshot.destroy('cinder/volume1@snapshot1', '') mock.AndRaise(nexenta.NexentaException( 'Snapshot cinder/volume1@snapshot1 does not exist')) self.mox.ReplayAll() self.drv.delete_snapshot(self.TEST_SNAPSHOT_REF)
def test_delete_snapshot(self): self.drv.share2nms = {self.TEST_EXPORT1: self.nms_mock} self._create_volume_db_entry() self.nms_mock.server.get_prop('volroot').AndReturn('/volumes') self.nms_mock.snapshot.destroy('stack/share/volume-1@snapshot1', '') self.mox.ReplayAll() self.drv.delete_snapshot({'volume_id': '1', 'name': 'snapshot1'}) self.mox.ResetAll() # Check that exception not raised if snapshot does not exist on # NexentaStor appliance. self.nms_mock.server.get_prop('volroot').AndReturn('/volumes') mock = self.nms_mock.snapshot.destroy('stack/share/volume-1@snapshot1', '') mock.AndRaise(nexenta.NexentaException("Snapshot does not exist")) self.mox.ReplayAll() self.drv.delete_snapshot({'volume_id': '1', 'name': 'snapshot1'}) self.mox.ResetAll()
def test_do_create_volume(self): volume = { 'provider_location': self.TEST_EXPORT1, 'size': 1, 'name': 'volume-1' } self.drv.shares = {self.TEST_EXPORT1: None} self.drv.share2nms = {self.TEST_EXPORT1: self.nms_mock} compression = self.configuration.nexenta_volume_compression self.nms_mock.server.get_prop('volroot').AndReturn('/volumes') self.nms_mock.folder.create_with_props( 'stack', 'share/volume-1', {'compression': compression}) self.nms_mock.netstorsvc.share_folder(self.TEST_SHARE_SVC, 'stack/share/volume-1', self.TEST_SHARE_OPTS) self.nms_mock.appliance.execute( 'dd if=/dev/zero of=/volumes/stack/share/volume-1/volume bs=1M ' 'count=0 seek=1024' ) self.nms_mock.appliance.execute('chmod ugo+rw ' '/volumes/stack/share/volume-1/volume') self.mox.ReplayAll() self.drv._do_create_volume(volume) self.mox.ResetAll() self.nms_mock.server.get_prop('volroot').AndReturn('/volumes') self.nms_mock.folder.create_with_props( 'stack', 'share/volume-1', {'compression': compression}) self.nms_mock.netstorsvc.share_folder( self.TEST_SHARE_SVC, 'stack/share/volume-1', self.TEST_SHARE_OPTS).AndRaise(nexenta.NexentaException('-')) self.nms_mock.folder.destroy('stack/share/volume-1') self.mox.ReplayAll() self.assertRaises(nexenta.NexentaException, self.drv._do_create_volume, volume)