def _test_ensure_absent(is_present):
     name = 'volume_name'
     volume = ctera_filer_volume.CteraFilerVolume()
     volume.parameters = dict(name=name)
     volume._ensure_absent(volume.parameters if is_present else None)
     if is_present:
         volume._ctera_filer.volumes.delete.assert_called_once_with(name)
     else:
         volume._ctera_filer.volumes.delete.assert_not_called()
 def _test__execute(is_present):
     volume = ctera_filer_volume.CteraFilerVolume()
     volume.parameters = dict(state='present' if is_present else 'absent')
     volume._get_volume = mock.MagicMock(return_value=dict())
     volume._ensure_present = mock.MagicMock()
     volume._ensure_absent = mock.MagicMock()
     volume._execute()
     if is_present:
         volume._ensure_present.assert_called_once_with(mock.ANY)
         volume._ensure_absent.assert_not_called()
     else:
         volume._ensure_absent.assert_called_once_with(mock.ANY)
         volume._ensure_present.assert_not_called()
 def test_get_volume_exists(self):
     expected_volume_dict = dict(
         name='volume_name',
         size=1024,
         filesystem='xfs',
         device='/dev/sd1',
         passphrase='passphrase'
     )
     volume_object_dict = copy.deepcopy(expected_volume_dict)
     volume_object_dict['_classname'] = 'className'
     volume = ctera_filer_volume.CteraFilerVolume()
     volume.parameters = dict(name='volume_name')
     volume._ctera_filer.volumes.get = mock.MagicMock(return_value=munch.Munch(volume_object_dict))
     self.assertDictEqual(expected_volume_dict, volume._get_volume())
 def test_modify_not_size():
     current_attributes = dict(
         name='volume_name',
         size=1024,
         filesystem='xfs',
         device='/dev/sd1',
         passphrase='passphrase'
     )
     desired_attributes = copy.deepcopy(current_attributes)
     desired_attributes['filesystem'] = 'ext4'
     volume = ctera_filer_volume.CteraFilerVolume()
     volume.parameters = desired_attributes
     volume._ensure_present(current_attributes)
     volume._ctera_filer.volumes.modify.assert_not_called()
 def _test_ensure_present(is_present, change_attributes):
     current_attributes = dict(
         name='volume_name',
         size=1024,
         filesystem='xfs',
         device='/dev/sd1',
         passphrase='passphrase'
     )
     desired_attributes = copy.deepcopy(current_attributes)
     if change_attributes:
         desired_attributes['size'] = 2048
     volume = ctera_filer_volume.CteraFilerVolume()
     volume.parameters = desired_attributes
     volume._ensure_present(current_attributes if is_present else None)
     if is_present:
         if change_attributes:
             volume._ctera_filer.volumes.modify.assert_called_with(desired_attributes['name'], size=desired_attributes['size'])
         else:
             volume._ctera_filer.volumes.modify.assert_not_called()
     else:
         volume._ctera_filer.volumes.add.assert_called_with(**desired_attributes)
 def test__get_volume_failed(self):
     volume = ctera_filer_volume.CteraFilerVolume()
     volume.parameters = dict(name='volume_name')
     volume._ctera_filer.volumes.get = mock.MagicMock(side_effect=CTERAException(response=munch.Munch(code=401)))
     self.assertRaises(CTERAException, volume._get_volume)
 def test__get_volume_doesnt_exist(self):
     volume = ctera_filer_volume.CteraFilerVolume()
     volume.parameters = dict(name='volume_name')
     volume._ctera_filer.volumes.get = mock.MagicMock(side_effect=CTERAException(response=munch.Munch(code=404)))
     self.assertDictEqual(volume._get_volume(), {})