def _ensure_present(self, user): if user: modified_attributes = ctera_common.get_modified_attributes( user, self.parameters) if modified_attributes: self._ctera_filer.users.modify(self.parameters['username'], **modified_attributes) self.ansible_module.ctera_return_value().changed().msg( 'User modified').put(username=self.parameters['username'], **modified_attributes) else: self.ansible_module.ctera_return_value().skipped().msg( 'User details did not change').put( username=self.parameters['username']) else: create_params = { k: v for k, v in self.parameters.items() if k in CteraFilerUser._create_params } if create_params.get('password') is None: raise CTERAException( message="Cannot create new user without a password") self._ctera_filer.users.add(**create_params) self.ansible_module.ctera_return_value().changed().msg( 'User created').put(**create_params)
def _ensure_present(self, user): update_password = self.parameters.pop('update_password') if user: self.parameters.pop('password_change', None) if not update_password: self.parameters.pop('password', None) modified_attributes = ctera_common.get_modified_attributes( user, self.parameters) if modified_attributes: self._ctera_portal.users.modify(self.parameters['name'], **modified_attributes) self.ansible_module.ctera_return_value().changed().msg( 'User modified').put(name=self.parameters['name']) else: self.ansible_module.ctera_return_value().skipped().msg( 'User details did not change').put( name=self.parameters['name']) else: self.parameters[ 'password_change'] = self._translate_password_change( self.parameters['password_change']) create_params = { k: v for k, v in self.parameters.items() if k in CteraPortalLocalUser._create_params } if create_params.get('password') is None: raise CTERAException( message="Cannot create new user without a password") self._ctera_portal.users.add(**create_params) self.ansible_module.ctera_return_value().changed().msg( 'User created').put(**create_params)
def test_object_exists_does_not_exist(self): ctera_host = mock.MagicMock() ctera_host.get = mock.MagicMock(side_effect=CTERAException()) path = "path" exists, actual_return = ctera_common.object_exists(ctera_host, path) ctera_host.get.assert_called_once_with(path) self.assertFalse(exists) self.assertEqual(actual_return, None)
def test__get_cloud_folder_doesnt_exist(self): cloud_folder = CteraPortalCloudFolder() cloud_folder.parameters = dict(name='folder_name', owner=dict(name='admin'), group='group_name') cloud_folder._ctera_portal.cloudfs.find = mock.MagicMock( side_effect=CTERAException(response=munch.Munch(code=404))) self.assertIsNone(cloud_folder._get_cloud_folder())
def test_ctera_portal_login_failed(self): self.portal_object_mock.login = mock.MagicMock( side_effect=CTERAException()) portal_ansible_module = ctera_portal.PortalAnsibleModule(dict()) self.portal_class_mock.assert_called_once_with('192.168.1.1', https=True, port=None) portal_ansible_module.ctera_portal() self.portal_object_mock.login.assert_called_once_with( 'admin', 'password')
def _add_share(self): add_params = { k: v for k, v in self.parameters.items() if k in CteraFilerShare._add_params } if add_params.get('directory') is None: raise CTERAException( message="Cannot create new share without a directory") if add_params.get('acl') is not None: add_params['acl'] = [ self._make_ShareAccessControlEntry(acl_entry) for acl_entry in add_params['acl'] ] self._ctera_filer.shares.add(**add_params) self.ansible_module.ctera_return_value().changed().msg( 'Share created').put(name=self.parameters['name'])
def _execute(self): self.execute_called = True if not self._success: raise CTERAException("Testing Failure")
def test__get_storage_node_doesnt_exist(self): storage_node = ctera_portal_storage_node.CteraPortalStorageNode() storage_node.parameters = dict(name='example') storage_node._ctera_portal.buckets.get = mock.MagicMock( side_effect=CTERAException(response=munch.Munch(code=404))) self.assertIsNone(storage_node._get_storage_node())
def test__get_folder_group_doesnt_exist(self): folder_group = CteraPortalFolderGroup() folder_group.parameters = dict(name='admin') folder_group._ctera_portal.cloudfs.get = mock.MagicMock( side_effect=CTERAException(response=munch.Munch(code=404))) self.assertIsNone(folder_group._get_folder_group())
def test__get_tenant_doesnt_exist(self): tenant = ctera_portal_tenant.CteraPortalTenant() tenant.parameters = dict(name='example') tenant._ctera_portal.portals.get = mock.MagicMock( side_effect=CTERAException(response=munch.Munch(code=404))) self.assertIsNone(tenant._get_tenant())
def test__get_share_failed(self): share = ctera_filer_share.CteraFilerShare() share.parameters = dict(name='demo') share._ctera_filer.shares.get = mock.MagicMock( side_effect=CTERAException(response=munch.Munch(code=401))) self.assertRaises(CTERAException, share._get_share)
def test__get_user_doesnt_exist(self): plan = CteraPortalPlan() plan.parameters = dict(name='admin') plan._ctera_portal.plans.get = mock.MagicMock( side_effect=CTERAException(response=munch.Munch(code=404))) self.assertIsNone(plan._get_plan())
def test_ctera_filer_login_failed(self): self.gateway_object_mock.login = mock.MagicMock(side_effect=CTERAException()) gateway_ansible_module = ctera_edge.GatewayAnsibleModule(dict()) self.gateway_class_mock.assert_called_once_with('192.168.1.1', https=True, port=None) gateway_ansible_module.ctera_filer() self.gateway_object_mock.login.assert_called_once_with('admin', 'password')
def test__get_user_doesnt_exist(self): user = ctera_portal_local_user.CteraPortalLocalUser() user.parameters = dict(name='admin') user._ctera_portal.users.get = mock.MagicMock(side_effect=CTERAException(response=munch.Munch(code=404))) self.assertIsNone(user._get_user())
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(), {})
def test__get_share_doesnt_exist(self): share = ctera_filer_share.CteraFilerShare() share.parameters = dict(name='demo') share._ctera_filer.shares.get = mock.MagicMock( side_effect=CTERAException(response=munch.Munch(code=404))) self.assertIsNone(share._get_share())
def test__get_user_failed(self): user = ctera_filer_user.CteraFilerUser() user.parameters = dict(username='******') user._ctera_filer.users.get = mock.MagicMock( side_effect=CTERAException(response=munch.Munch(code=401))) self.assertRaises(CTERAException, user._get_user)