ralph icon indicating copy to clipboard operation
ralph copied to clipboard

Server Error 500 when trying to delete an IP address

Open Napsty opened this issue 4 years ago • 0 comments

Steps to reproduce

  • Open Data Center / All hosts and Open a host or datacenter asset (alternative: search for an object)
  • Switch to Network tab (/data_center/datacenterasset/52/network/)
  • Delete IP Address

Expected behavior

IP Address is removed from field

Actual behavior

Server Error 500

/var/log/ralph/ralph.log shows:

[07.12.2021 16:45:26,663] ERROR   [MainProcess 3374] base - Internal Server Error: /data_center/datacenterasset/52/network/
Traceback (most recent call last):
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/core/handlers/base.py", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/lib/python3.6/contextlib.py", line 52, in inner
    return func(*args, **kwds)
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/views/generic/base.py", line 71, in view
    return self.dispatch(request, *args, **kwargs)
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/ralph/lib/permissions/views.py", line 38, in wraps
    return func(self, request, *args, **kwargs)
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/ralph/lib/permissions/views.py", line 38, in wraps
    return func(self, request, *args, **kwargs)
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/ralph/lib/permissions/views.py", line 38, in wraps
    return func(self, request, *args, **kwargs)
  [Previous line repeated 1 more time]
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/ralph/admin/views/extra.py", line 191, in dispatch
    extra_context=extra_context
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/reversion/revisions.py", line 297, in do_revision_context
    return func(*args, **kwargs)
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/contrib/admin/options.py", line 1521, in change_view
    return self.changeform_view(request, object_id, form_url, extra_context)
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/ralph/admin/mixins.py", line 343, in changeform_view
    request, object_id, form_url, extra_context
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/utils/decorators.py", line 34, in _wrapper
    return bound_func(*args, **kwargs)
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/utils/decorators.py", line 110, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/utils/decorators.py", line 30, in bound_func
    return func.__get__(self, type(self))(*args2, **kwargs2)
  File "/usr/lib/python3.6/contextlib.py", line 52, in inner
    return func(*args, **kwds)
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/contrib/admin/options.py", line 1470, in changeform_view
    self.save_related(request, form, formsets, not add)
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/contrib/admin/options.py", line 1104, in save_related
    self.save_formset(request, form, formset, change=change)
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/contrib/admin/options.py", line 1092, in save_formset
    formset.save()
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/forms/models.py", line 636, in save
    return self.save_existing_objects(commit) + self.save_new_objects(commit)
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/forms/models.py", line 753, in save_existing_objects
    saved_instances.append(self.save_existing(form, obj, commit=commit))
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/forms/models.py", line 623, in save_existing
    return form.save(commit=commit)
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/ralph/networks/forms.py", line 220, in save
    self.ip.save()
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/ralph/networks/models/networks.py", line 766, in save
    super(IPAddress, self).save(*args, **kwargs)
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/ralph/lib/mixins/models.py", line 66, in save
    super(LastSeenMixin, self).save(*args, **kwargs)
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/db/models/base.py", line 734, in save
    force_update=force_update, update_fields=update_fields)
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/db/models/base.py", line 762, in save_base
    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/db/models/base.py", line 827, in _save_table
    forced_update)
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/db/models/base.py", line 877, in _do_update
    return filtered._update(values) > 0
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/db/models/query.py", line 580, in _update
    return query.get_compiler(self.db).execute_sql(CURSOR)
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1062, in execute_sql
    cursor = super(SQLUpdateCompiler, self).execute_sql(result_type)
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 829, in execute_sql
    sql, params = self.as_sql()
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1030, in as_sql
    val = field.get_db_prep_save(val, connection=self.connection)
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/db/models/fields/__init__.py", line 710, in get_db_prep_save
    prepared=False)
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/db/models/fields/__init__.py", line 2004, in get_db_prep_value
    value = self.get_prep_value(value)
  File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/db/models/fields/__init__.py", line 2011, in get_prep_value
    if value and ':' in value:
TypeError: argument of type 'IPv4Address' is not iterable

Environment

  • Ralph version: 20211123.1
  • Operating system: Ubuntu 18.04.6 LTS
  • Method of installation: Deb package? Manual installation? Docker? DEB via APT repo

Napsty avatar Dec 07 '21 15:12 Napsty