Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrity errors not handle by REST API #58

Open
vchendrix opened this issue Dec 15, 2016 · 0 comments
Open

Integrity errors not handle by REST API #58

vchendrix opened this issue Dec 15, 2016 · 0 comments
Assignees
Labels
Milestone

Comments

@vchendrix
Copy link
Contributor

Database integrity errors are returned as INternal server errors (500). They should have a nicer handling.

(.venv)vagrant@ubuntu-14:/vagrant$ tail -100f ngt-archive.log 
    response = self._get_response(request)
  File "/vagrant/.venv/lib/python3.4/site-packages/django/core/handlers/base.py", line 187, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/vagrant/.venv/lib/python3.4/site-packages/django/core/handlers/base.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/vagrant/.venv/lib/python3.4/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view
    return view_func(*args, **kwargs)
  File "/vagrant/.venv/lib/python3.4/site-packages/rest_framework/viewsets.py", line 83, in view
    return self.dispatch(request, *args, **kwargs)
  File "/vagrant/.venv/lib/python3.4/site-packages/rest_framework/views.py", line 477, in dispatch
    response = self.handle_exception(exc)
  File "/vagrant/.venv/lib/python3.4/site-packages/rest_framework/views.py", line 437, in handle_exception
    self.raise_uncaught_exception(exc)
  File "/vagrant/.venv/lib/python3.4/site-packages/rest_framework/views.py", line 474, in dispatch
    response = handler(request, *args, **kwargs)
  File "/vagrant/.venv/lib/python3.4/site-packages/rest_framework/mixins.py", line 21, in create
    self.perform_create(serializer)
  File "./archive_api/viewsets.py", line 68, in perform_create
    serializer.save(created_by=self.request.user, modified_by=self.request.user)
  File "/vagrant/.venv/lib/python3.4/site-packages/rest_framework/serializers.py", line 214, in save
    self.instance = self.create(validated_data)
  File "./archive_api/serializers.py", line 141, in create
    dataset = DataSet.objects.create(**validated_data)
  File "/vagrant/.venv/lib/python3.4/site-packages/django/db/models/manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/vagrant/.venv/lib/python3.4/site-packages/django/db/models/query.py", line 399, in create
    obj.save(force_insert=True, using=self.db)
  File "/vagrant/.venv/lib/python3.4/site-packages/django/db/models/base.py", line 796, in save
    force_update=force_update, update_fields=update_fields)
  File "/vagrant/.venv/lib/python3.4/site-packages/django/db/models/base.py", line 824, in save_base
    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
  File "/vagrant/.venv/lib/python3.4/site-packages/django/db/models/base.py", line 908, in _save_table
    result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
  File "/vagrant/.venv/lib/python3.4/site-packages/django/db/models/base.py", line 947, in _do_insert
    using=using, raw=raw)
  File "/vagrant/.venv/lib/python3.4/site-packages/django/db/models/manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/vagrant/.venv/lib/python3.4/site-packages/django/db/models/query.py", line 1045, in _insert
    return query.get_compiler(using=using).execute_sql(return_id)
  File "/vagrant/.venv/lib/python3.4/site-packages/django/db/models/sql/compiler.py", line 1054, in execute_sql
    cursor.execute(sql, params)
  File "/vagrant/.venv/lib/python3.4/site-packages/django/db/backends/utils.py", line 79, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "/vagrant/.venv/lib/python3.4/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/vagrant/.venv/lib/python3.4/site-packages/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/vagrant/.venv/lib/python3.4/site-packages/django/utils/six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "/vagrant/.venv/lib/python3.4/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
django.db.utils.IntegrityError: duplicate key value violates unique constraint "archive_api_dataset_pkey"
DETAIL:  Key (id)=(6) already exists.
@vchendrix vchendrix self-assigned this Dec 15, 2016
@vchendrix vchendrix added the bug label Dec 15, 2016
@vchendrix vchendrix removed this from the M2 - Dataset Metadata Curation milestone Jan 10, 2017
@charuleka charuleka modified the milestone: M5 - Release 1.1.0 Feb 6, 2017
@charuleka charuleka modified the milestones: M7 - Release 1.2, MX - Release X Mar 13, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants