def test_profile_update_not_found(self, mock_enforce): self._mock_enforce_setup(mock_enforce, 'update', True) pid = 'non-existent-profile' body = { 'profile': { 'name': 'new_profile', 'metadata': { 'author': 'john d' }, 'permission': 'xxx', } } req = self._put('/profiles/%(profile_id)s' % {'profile_id': pid}, json.dumps(body)) error = senlin_exc.ProfileNotFound(profile=pid) mock_call = self.patchobject(rpc_client.EngineClient, 'call') mock_call.side_effect = shared.to_remote_error(error) resp = shared.request_with_middleware(fault.FaultWrapper, self.controller.update, req, tenant_id=self.project, profile_id=pid, body=body) self.assertEqual(404, resp.json['code']) self.assertEqual('ProfileNotFound', resp.json['error']['type'])
def test_node_update_invalid_profile(self, mock_enforce): self._mock_enforce_setup(mock_enforce, 'update', True) nid = 'aaaa-bbbb-cccc' body = { 'node': { 'name': 'test_node', 'profile_id': 'profile-not-exist', 'role': None, 'metadata': {}, } } req = self._patch('/nodes/%(node_id)s' % {'node_id': nid}, jsonutils.dumps(body)) error = senlin_exc.ProfileNotFound(profile=nid) mock_call = self.patchobject(rpc_client.EngineClient, 'call', side_effect=shared.to_remote_error(error)) resp = shared.request_with_middleware(fault.FaultWrapper, self.controller.update, req, node_id=nid, body=body) mock_call.assert_called_with( req.context, ('node_update', { 'identity': nid, 'name': 'test_node', 'profile_id': 'profile-not-exist', 'role': None, 'metadata': {}, }) ) self.assertEqual(404, resp.json['code']) self.assertEqual('ProfileNotFound', resp.json['error']['type'])
def test_node_create_with_bad_profile(self, mock_enforce): self._mock_enforce_setup(mock_enforce, 'create', True) body = { 'node': { 'name': 'test_node', 'profile_id': 'bad-profile', 'cluster_id': None, 'role': None, 'metadata': {}, } } req = self._post('/nodes', json.dumps(body)) error = senlin_exc.ProfileNotFound(profile='bad-profile') mock_call = self.patchobject(rpc_client.EngineClient, 'call', side_effect=error) resp = shared.request_with_middleware(fault.FaultWrapper, self.controller.create, req, tenant_id=self.project, body=body) mock_call.assert_called_once_with(req.context, ('node_create', body['node'])) self.assertEqual(404, resp.json['code']) self.assertEqual('ProfileNotFound', resp.json['error']['type']) self.assertIsNone(resp.json['error']['traceback'])
def load(cls, ctx, profile_id=None, profile=None): '''Retrieve a profile object from database.''' if profile is None: profile = db_api.profile_get(ctx, profile_id) if profile is None: raise exception.ProfileNotFound(profile=profile_id) return cls.from_db_record(profile)
def profile_update(context, profile_id, values): with session_for_write() as session: profile = session.query(models.Profile).get(profile_id) if not profile: raise exception.ProfileNotFound(profile=profile_id) profile.update(values) profile.save(session) return profile
def load(cls, ctx, profile=None, profile_id=None, project_safe=True): '''Retrieve a profile object from database.''' if profile is None: profile = profile_obj.Profile.get(ctx, profile_id, project_safe=project_safe) if profile is None: raise exception.ProfileNotFound(profile=profile_id) return cls.from_object(profile)
def test_node_create_profile_not_found(self, mock_profile): mock_profile.side_effect = exc.ProfileNotFound(profile='Bogus') ex = self.assertRaises(rpc.ExpectedException, self.eng.node_create, self.ctx, 'n-1', 'Bogus') self.assertEqual(exc.BadRequest, ex.exc_info[0]) self.assertEqual( "The request is malformed: The specified profile " "(Bogus) is not found.", six.text_type(ex.exc_info[1])) mock_profile.assert_called_once_with(self.ctx, 'Bogus')
def test_profile_delete_not_found(self, mock_find): mock_find.side_effect = exc.ProfileNotFound(profile='Bogus') ex = self.assertRaises(rpc.ExpectedException, self.eng.profile_delete, self.ctx, 'Bogus') self.assertEqual(exc.ProfileNotFound, ex.exc_info[0]) self.assertEqual('The profile (Bogus) could not be found.', six.text_type(ex.exc_info[1])) mock_find.assert_called_once_with(self.ctx, 'Bogus')
def test_node_update_profile_not_found(self, mock_find, mock_profile): mock_find.return_value = mock.Mock() mock_profile.side_effect = exc.ProfileNotFound(profile='Bogus') ex = self.assertRaises(rpc.ExpectedException, self.eng.node_update, self.ctx, 'FAKE_NODE', profile_id='Bogus') self.assertEqual(exc.BadRequest, ex.exc_info[0]) self.assertEqual( 'The request is malformed: The specified profile ' '(Bogus) is not found.', six.text_type(ex.exc_info[1])) mock_find.assert_called_once_with(self.ctx, 'FAKE_NODE') mock_profile.assert_called_once_with(self.ctx, 'Bogus')
def test_profile_delete_not_found(self, mock_enforce): self._mock_enforce_setup(mock_enforce, 'delete', True) pid = 'aaaa-bbbb-cccc' req = self._delete('/profiles/%(profile_id)s' % {'profile_id': pid}) error = senlin_exc.ProfileNotFound(profile=pid) mock_call = self.patchobject(rpc_client.EngineClient, 'call') mock_call.side_effect = shared.to_remote_error(error) resp = shared.request_with_middleware(fault.FaultWrapper, self.controller.delete, req, profile_id=pid) self.assertEqual(404, resp.json['code']) self.assertEqual('ProfileNotFound', resp.json['error']['type'])